머신러닝 교과서 10장
선형 회귀 모델에 대해 알아보자. 보스턴 집 가격 예측 문제를 예시로 들어서 설명하겠다.
2025/01/09
Jinsoolve.
Categories
Tags
3월 안에는 꼭...
About
언어 모델이란, 결국에는 그 다음으로 어떤 단어가 오는 것이 가장 자연스러운지를 확률로 보고 가장 높은 확률의 단어를 선택해서 문장을 구성하는 방식이다.
위 포스트에서는 n-gram 모델이 무엇이고 어떤 원리인지를 살펴볼 것이다.
이전의 n-1개의 단어들을 살펴보고 그 다음 n번째로 어떤 단어가 올 확률이 가장 높은 지를 계산해서 문장을 구성하는 방식의 언어모델이다.
모든 단어를 살펴보는 것이 아니라, 최근 n-1개의 단어를 보고 그 다음 n번째 단어를 추정하는 방식.
샘플링이란, 전체 데이터 집단에서 일부 데이터를 선택하는 과정이다.
위에서 n-gram 방식을 통해서 그 다음에 올 단어들의 확률을 구했다고 가정하자. 그럼 해당 단어들을 어떻게 샘플링 할 것인가에 대해서 얘기해보자.
1 ~ k 등 까지의 단어들을 뽑는 샘플링
상위 누적확률 p 만큼까지의 단어들을 뽑는 샘플링
Extrinsic Evaluation은 실제로 언어모델을 실제상황에 적용하여서 평가하는 방식이다.
그러나 이 방식은 비싸고 시간이 많이 걸린다.
따라서 우리는 모델을 평가하기 위해 주로 Intrinsic Evaluation을 사용한다. Train과 Test Dataset을 나누어서 이를 적용해본다.
사전적 의미로는 혼란도라는 의미이다. 언어 모델의 평가지표 중 하나로써, 원하는 문장과 생성한 문장이 일치하지 않으면 혼란도는 높을 것이다. 쉽게 생각해보면, 모델의 손실함수와 동일한 의미를 갖는다고 볼 수 있다.
위와 같이 Cross-entropy 형태로 나타낸다.
Cross-Entroy(교차 엔트로피)란, 두 개의 확률 분포 간의 차이를 측정하는 손실함수이다.
특히 분류 문제에서 모델의 예측이 정답과 얼마나 다른지를 평가하는 데 사용된다.
당연히 모델이 정확해질수록(혹은 훈련을 더 많이 할수록) ppl 수치는 낮아질 것이다.
Smoothing은 훈련데이터에 없는 단어나 구성이 등장했을 때, 확률을 0으로 두지 않게 하기 위해 적절한 값을 부여하는 기법이다.
확률을 0으로 설정해버리면, 해당 단어나 조합이 절대 발생하지 않는다고 판단하여 실제로 있는 말임에도 불구하고 언어모델이 해당 말을 생성하지 않는 문제가 발생한다. 이를 해결하기 위해 smoothing 기법을 사용한다.
Smoothing을 하는 방식에도 여러 가지가 있다. 총 3가지 방식이 있다.
확률에 특정 값을 균일하게 더해서 해결하는 방식이다. 흔히, Add-k(혹은 Add-alpha) 기법으로 알려져 있다.
여러 개의 n-gram의 확률 값을 가중 평균을 이용해서 합쳐서 최종 확률을 계산하는 방식이다.
위 그림은 trigram, bigram, unigram의 확률 값을 가중평균을 이용해서 합친 것이다. 위와 같이 처리해주면 확률이 0이 되는 문제점을 해결할 수 있다.
이때 가중평균의 값은 하이퍼 파리미터처럼 valid 데이터셋을 통해서 추정해내자.
Additive 기법과 반대의 느낌이다.
기존의 단어들과 구성들의 확률값 에서 약간의 값을 뺀 후, 새로운 단어나 구성이 들어온다면 거기로 나눠줘서 해결하는 방식이다.
위 그림처럼 기존 확률값들에서 0.5씩 빼준 다음, 빼서 얻은 값을 새로운 단어나 구성이 들어온다면 거기로 나눠준다.
선형 회귀 모델에 대해 알아보자. 보스턴 집 가격 예측 문제를 예시로 들어서 설명하겠다.
2025/01/09
레이블이 없는 데이터들을 분석하여 비슷한 데이터들끼리 그룹으로 묶을 것이다.이를 군집으로 묶는다하여 클러스터링(clustering)이라 한다. - k-평균 알고리즘을 이용하여 클러스터 중심 찾기- 상향식 방법으로 계층적 군집 트리 만들기- 밀집도 기반의 군집 알고리즘을 사용하여 임의 모야을 가진 대상 구분하기
2025/01/09
딥러닝은 인공 신경망을 효과적으로 학습시키기 위한 머신러닝의 하위분야이다. 아래 내용을 소개하겠다.- 다층 신경망 개념- 역전파 알고리즘- 이미지 분류를 위한 다층 신경망 훈련
2025/01/09
복잡한 수학이나 구현 과정을 텐서플로우에서 이미 구현해 놓았다. 이를 사용하는 법을 알아보자.텐서플로우의 함수나 여러가지 기능들은 어느정도 생략하겠다. 사용하면서 익히는 것이 가장 좋다.
2025/01/09