728x90

수식 MLE

위 수식에 대해서 자세히 알아보자.

 

P(x)라는 알고자 하는 확률분포에서 x,y data를 샘플링하여 모은 데이터로 파라미터를 찾고자 한다.

 

 

 

이때, 이 파라미터는 상황에 따라 다르다. 가우시안이라면  μ,  σ  일것이고, 신경망이라면 weights, bias 것이다. 그래서 식처럼 maximum log likelihood 최대화 하는 theta 찾는다. 해당 식을 풀이하자면 “Xi 입력으로 넣고, theta라는 어떠한 파라미터가 있었을 yi 값은 확률 값이 얼마인가?” 그렇게 얻은 확률값에 log 취하고 이런 과정을 N 반복하고 모두 더한다. 그렇게 더한 값들 중에 theta 가장 값을 찾으면 된다. 방식은 어디까지나 Ascent 방식이다.

 

 

우리는 마이너스를 곱해줌으로써 argmax -> argmin으로 Gradient Descen 이용할수 있다

 

수식을 하나씩 살펴보겠다.

 

Xi 넣었을 얻게되는 y_hat 결과는 softmax vector이다.

Vector 아래 그림을 통해 보면

 

정답인 y 원핫 인코딩으로 레이블링 되어 있었을 것이다. 가운데 값이 1이고 나머지 0이다. y_hat 클래스일 확률이 들어있다.

 

두개를 Dot Product 해주면 아래처럼 실행된다.

 

결과는 결국 1 있는 자리에만 log확률값이 출력될것이다. 이러한 과정을 거친 결과의 합에 -1 결과값이 minimize하도록 동작하게 된다. 여기서 수식을 여겨봐야한다.

 

수식은 바로 Cross entropy 매우 흡사하다. 아래 그림이 CE식이다.

 

다른 점이 있다면 1/N 있다는 점이다. 하지만 이는 중요하지 않다. 왜냐하면 theta 미분할 상수는 날라가기 때문에 결국 MLE(NLL) 같은 개념인 것이다. 지금껏 Classification에서 loss CE 사용했는데 이는 결국 MLE 하기 위한 과정이었던 것이다.

 

728x90

'NLP > 패캠_자연어 입문' 카테고리의 다른 글

7.Kullback  (0) 2021.12.07
6. MAP(Maximum A Posterior)  (0) 2021.12.01
4. MLE  (0) 2021.11.28
3. Probabilistic Perspective  (0) 2021.11.28
2. Auto Encoder  (0) 2021.11.27
728x90

2021.11.28 - [NLP/패캠_자연어 입문] - 3. Probabilistic Perspective

 

3. Probabilistic Perspective

복습하는 확률기초 1. 기댓값 P(X)라는 분포에서 샘플링한 X를 f(x)에 넣으면 f(x)의 개별 값들을 알 수 있다. 이 값들을 평균 낸다. P(x): 소문자 x이므로 분포가 아닌 어떠한 값이 주어진 상태 P(Z)라

ghdrldud329.tistory.com

 

2021.11.28 - [NLP/패캠_자연어 입문] - 4. MLE

 

4. MLE

MLE  샘플링 된 만 명의 신장 데이터가 있다고 가정해본다. 내가 알고 싶었던 것은 전국 사람들의 정규분포를 알고 싶었던 것이다. 즉, 모집단이 궁금해서 표본집단을 만개를 수집해 놓은 것이다

ghdrldud329.tistory.com

 

 

728x90
728x90

MLE

 샘플링 된 만 명의 신장 데이터가 있다고 가정해본다. 내가 알고 싶었던 것은 전국 사람들의 정규분포를 알고 싶었던 것이다. 즉, 모집단이 궁금해서 표본집단을 만개를 수집해 놓은 것이다. 이 모집단을 알기 위해서 아래 이미지처럼 평균과 분산을 랜덤하게 설정하여 각 샘플링에 대한 확률 값이 어떤지를 알아낸다

위처럼 랜덤하게 평균과 분산을 만들어 가면서 비교하던 도중

 

위 이미지처럼 가장 높은 확률값을 가지고 있다. 높은 확률값을 가지고 있다는 것은 빨간 점선이 길다는 것이다. 빨간 길이들의 곱을 구하면(Likelihood)세번째 분포가 가장 길다는 걸 알수있다. 그러면 이 초록색 분포가 Ground Truth 확률분포에 가장 근접한 분포가 될 것이다. 점선들의 곱 = Likelihood이다. 즉, Likelihood라는 function이 있을 때  μ, σ 입력으로 넣으면 μ, σ 가우시안 함수를 만든다. 준비해둔 샘플들을 넣어서 샘플들의 density 곱의 (길이의 ) 알아낸다.

 

위에서 언급된 파라미터는 μ, σ이며, 데이터를 얼마나 잘 설명하는지에 대한 기준은

Probability Density의 값이다.(클수록 잘 설명)

 

 

주사위를 20번 던졌을 때 위와 같이 나왔다고 가정하여 Likelihood를 구해본다.

 

랜덤하게 정한 μ, σ를 가지고 Theta1, Theta2를 만들었다. 가능도는 Probability Density이므로 위에서 설명한 것처럼 곱해주면 된다. 위 결과 theta1이 더 높기 때문에 theta2는 삭제하고 다른 μ, σ를 사용하여 다른 theta 분포를 계속해서 만들어 간다. 이 과정을 계속 반복해서 가능도가 가장 높은 값을 찾아 내도록 하는 것이 Maximum Likelihood Estimation이다. 이름 그대로 가능도를 최대로 하는 파라미터를 찾아내는 것이다.

 

 

곱셈으로 하면 underflow가 발생하기 때문에 log를 넣어서 곱셈을 덧셈으로 바꿔 해결 할 수 있을 뿐만 아니라 덧셈이 더 연산이 빠르다는 장점을 이용 할 수 있다.

 

무작정 랜덤하게 파라미터를 설정하기 보다는 Gradient Asent를 이용하여, 파라미터 Theta를 가장 최대화 하는 값을 찾으면 된다. Ascent는 Descent와 다르게 부호가 + 이다.

 

 

 

 

*진도를 더 나가기에 앞서 짚고 넘어가야 할 부분

-> theta라는 파라미터를 갖는 확률분포에서의 x의 확률값

 

 

->theta라는 파라미터를 갖는 확률분포의 x가 주어졌을 때 y의 확률값

 

 

*신경망과 MLE의 관계

어떤 확률분포 P(X)에서 샘플링한 x를 넣었을 때, c일 확률 값을 뜻하는 위 수식을 잘 숙지할 필요가 있다. 이 개념이 딥러닝과 관련이 있다.

 

 

 

위에서 배운 내용에서 MLE는 가능도를 최대화 하는 파라미터 μ, σ를 찾는 방법이리고 소개했다. 이는 가우시안 분포일 경우에 파라미터가 μ, σ라는 것이다. 그러면 딥러닝 신경망에서 μ, σ에 해당하는 부분은 무엇일까? 바로 위 그림처럼 weights와 bias다. 즉, 가능도를 최대화 하는 weights와 bias를 찾으면 되는 것이다.

딥러닝 신경망에 위 식을 접목 시킨다면, theta라는 파라미터(weights, bias)를 갖는 확률분포에서 x라는 값이 주어졌을 때의 y의 확률 값 구한다.

 

 

 

여기에 log를 붙이고 summation한 값이 최대화되는 값을 Gradient Ascent를 통해 log likelihood를 구한다. 보통의 딥러닝은 Gradient Descent만을 하는데 Descent와 Ascent의 차이점은 부호뿐 이기에 Descent에서 -1을 곱해주면 최대화 문제를 최소화 문제로 접근이 가능하다. Negative는 -1를 곱했음을 의미한다. 따라서 기존에 최대화 해야 했던 문제를 -1를 곱하여 최소화 하는 문제로 바꿀 수 있는 것이다.

 

그래서 NLL통해 argmax가 아닌 argmin을 구하게 되면 우리가 목표로 하는 함수를 모사하는 theta(weights bias)가 되는 것이다

 

 

728x90

'NLP > 패캠_자연어 입문' 카테고리의 다른 글

6. MAP(Maximum A Posterior)  (0) 2021.12.01
5. MLE 수식  (0) 2021.11.29
3. Probabilistic Perspective  (0) 2021.11.28
2. Auto Encoder  (0) 2021.11.27
1. Feature Vector  (0) 2021.11.27
728x90

 

복습하는 확률기초

1.  기댓값

P(X)라는 분포에서 샘플링한 X를 f(x)에 넣으면 f(x)의 개별 값들을 알 수 있다. 이 값들을 평균 낸다.

 

P(x): 소문자 x이므로 분포가 아닌 어떠한 값이 주어진 상태

 

P(Z)라는 분포에서 샘플링한 Z가 주어졌을 때, X(대문자)라는 random variable이 x(소문자)를 가졌을 확률값에 대해서 가중평균을 한 것이다.

 

 

 

 

 

위 지도에서 대한민국의 면적 값을 알고 싶을 때 몬테카를로를 사용해 볼 수 있다. P(X)를 사각형 안에서 랜덤하게 유니폼 샘플링하는 함수라고 가정해본다. 그래서 위 지도에 빨간 점처럼 샘플링를 하는데, 이때 한반도에 찍힌 점과 아닌 점에 대해서 비율을 알수 있다. 예를들어 한반도 점이 20개, 그 외에 점을 100개 했을 때 20/100 = 20%이며, 이를 (w*h)*0.2계산하면 한반도의 넓이를 근사한 값이 되겠다. 만일 1억번을 점찍는다면 이 근사한 값이 더욱 정밀하게 근사하게 될것될 것이다. 즉, 몬테카를로는 샘플링 횟수가 많을수록 정밀하게 되는 approximation 방법이다

728x90

'NLP > 패캠_자연어 입문' 카테고리의 다른 글

6. MAP(Maximum A Posterior)  (0) 2021.12.01
5. MLE 수식  (0) 2021.11.29
4. MLE  (0) 2021.11.28
2. Auto Encoder  (0) 2021.11.27
1. Feature Vector  (0) 2021.11.27
728x90

딥러닝 수학 강의를 수강하며 필기한 내용을 순서 대로 정리했습니다.

요즘은 지식그래프와 개체명 중심으로 공부하고 있어서 딥러닝 수학은 뒷전으로

미뤄지고 있는데진도가 나가는 대로 계속 채울 예정입니다

 

2021.04.20 - [Data Diary] - 2021-04-20(딥러닝 수학1)

 

2021-04-20(딥러닝 수학1)

오늘은 딥러닝 수학 강의를 수강하기 시작했습니다. chapter1을 수강했는데 간단한 딥러닝 개요와 파이썬 리뷰? 까지 수강했습니다. class 부분은 제 약점인데 설명을 너무 잘해주셔서 실습하는 동

ghdrldud329.tistory.com

 

2021.04.22 - [Data Diary] - 2021-04-22(딥러닝 수학2_Gradient & Jacobian)

 

2021-04-22(딥러닝 수학2_Gradient & Jacobian)

오늘은 미분부터 jacobian매트릭스까지 간략하게 정리하여 포스팅하겠습니다~ 여담이지만 전 문과생 출신이라서 작년 자코비안 매트릭스에 대해 공부할때 정말 멘탈이 싹 나갔던 기억이 있습니

ghdrldud329.tistory.com

 

2021.04.26 - [Data Diary] - 2021-04-26(딥러닝 수학3_Vector Chain Rule)

 

2021-04-26(딥러닝 수학3_Vector Chain Rule)

Chain Rule 위 두 함수가 있을때 이를 결합한 Z함수가 아래처럼 있습니다. 이때, Z함수를 s로 미분한 값을 알아 낼수 있을까요? S는 X,Y에 포함된 element입니다. 그리고 X,Y는 Z함수안에 포함되어 있습니

ghdrldud329.tistory.com

 

2021.04.28 - [Data Diary] - 2021-04-28(딥러닝수학4_Linear Regression & Gradient Descent)

 

2021-04-28(딥러닝수학4_Linear Regression & Gradient Descent)

저번 포스팅 체인 룰에 이어서 이번 시간부터는 Linear Regression을 시작으로 포스팅하겠습니다. 1. Linear Regression? 데이터 공부하면서 참 자주 들었으면서도 잘 몰랐던 부분이지 않을까 합니다. 오늘

ghdrldud329.tistory.com

 

2021.05.13 - [Data Diary] - 2021-05-13(딥러닝수학5_Gradient Descent2 & learning late)

 

2021-05-13(딥러닝수학5_Gradient Descent2 & learning late)

1. Gradient Descent 하나에 대한 세타가 아니라 2개이상의 세타를 구하게 되면 아래와 같은 과정을 거치게 된다. gradient descent를 구하는 방법은 Loss와 Cost 방법이 있다. 각각에 대하여 2차원(세타0,세타

ghdrldud329.tistory.com

 

2021.05.18 - [Data Diary] - 2020-05-18(딥러닝 수학6_basic building nodes)

 

2020-05-18(딥러닝 수학6_basic building nodes)

딥러닝 연산 시 필요한 기본적인 노드들을 만들어 보면서 복습하는 시간을 가졌습니다. 아래의 노드들을 차례대로 생성해 줍니다. 1) Plus_node x,y 를 더해서 z를 만들어 줍니다. z= x+y 를 각각 편미

ghdrldud329.tistory.com

 

2021.05.26 - [Data Diary] - 2021-05-26(딥러닝 수학7_이론 실습)

 

2021-05-26(딥러닝 수학7_이론 실습)

딥러닝 수학5에서 다룬 내용을 가지고 실습을 하는 시간을 가졌습니다. 먼저 데이터를 생성하는데 y= 5x 라는 방정식 데이터를 100개 만듭니다. (5는 실제 theta이고, 학습을 통해서 따로 설정한 세

ghdrldud329.tistory.com

 

2021.08.11 - [Data Diary] - 2021-08-11(딥러닝 수학8_Mini-batch and vectorization)

 

2021-08-11(딥러닝 수학8_Mini-batch and vectorization)

minibatch x,ydata를 위와 같이 하나씩 가져와서 업데이트를 진행할때의 문제점은 cost가 크다는 점이다. 만일 백만개 데이터가 있다면 이를 하나씩 접근해서 구하기엔 비효율적이다. 이를 해결하기

ghdrldud329.tistory.com

 

2021.08.17 - [Data Diary] - 2021-08-17(딥러닝수학 9_Vectorization2 &batch Gradient Descent )

 

2021-08-17(딥러닝수학 9_Vectorization2 &batch Gradient Descent )

1. Vectorization 파란색 박스까지만 취급을 한다면 빨간색 벡터처럼 나온다. 즉, 1번 loss, 2번 loss,.., n번 loss를 벡터화된 모습일 것이다. 이때 cost는 어떤 역할을 할까? forward 일때는 평균값을 구하여..

ghdrldud329.tistory.com

 

2021.08.19 - [Data Diary] - 2021-08-19(딥러닝수학10_Loss function & Gradient Descent)

 

2021-08-19(딥러닝수학10_Loss function & Gradient Descent)

*실습링크 2021.08.26 - [Data 일기] - 2021-08-26(딥러닝 수학 11_mini batch & for one sample-Theory) 2021-08-26(딥러닝 수학 11_mini batch & for one sample-Theory) 1. mini batch 3번의 iteration 학습 과..

ghdrldud329.tistory.com

 

2021.08.24 - [Data Diary] - 2021-08-24(딥러닝 수학11_Cost function & Feature Scaling)

 

2021-08-24(딥러닝 수학11_Cost function & Feature Scaling)

저번 딥러닝 수학9에서 배웠던 V 형태의 loss function들을 어떻게 합쳐서 cost function으로 만드는지와 합쳐졌을때 이상적인 학습이 어떤 모습을 보일지 자세히 알아본다. *실습링크 2021.09.04 - [실습 no

ghdrldud329.tistory.com

 

2021.08.26 - [Data Diary] - 2021-08-26(딥러닝 수학 12_mini batch & for one sample-Theory)

 

2021-08-26(딥러닝 수학 12_mini batch & for one sample-Theory)

저번 포스팅 딥러닝 수학10에 이어서 포스팅 하겠습니다. *실습링크 2021.09.04 - [실습 note] - 딥러닝 수학 실습과제 모음 9~12 딥러닝 수학 실습과제 모음 9~12 실습파일이 없는 줄 알았는데 있더라구

ghdrldud329.tistory.com

 

2021.09.08 - [Data Diary] - 2021-09-08(딥러닝 수학 13_ for Several Samples Theory & Implementation)

 

2021-09-08(딥러닝 수학 13_ for Several Samples Theory & Implementation)

저번 포스팅까지는 하나의 데이터에 대한 학습과정을 공부했습니다. 이번 시간부터는 미니배치 즉, 여러개 샘플을 가지고 학습을 시키는 방법에 대해 공부한 내용을 포스팅하겠습니다. 2가지로

ghdrldud329.tistory.com

 

2021.09.10 - [Data Diary] - 2021-09-10(딥러닝 수학14_dataset 변화에 따른 th1,th0 학습 시각화)

 

2021-09-10(딥러닝 수학14_dataset 변화에 따른 th1,th0 학습 시각화)

이번 포스팅에서는 주로 weight 변화에 따라서 bias에 어떠한 영향을 미치는지를 중점적으로 살펴보도록 한다. weight, bias가 3,3인 것으로 부터 mu, sigma의 변화에 따른 영향을 살펴본다. *표준편차가 1

ghdrldud329.tistory.com

 

2021.09.14 - [Data Diary] - 2021-09-14(딥러닝 수학15_multi-variate Linear Regression)

 

2021-09-14(딥러닝 수학15_multi-variate Linear Regression)

저번 포스팅까지는 X 변수가 하나라는 가정하에 진행해 왔습니다. 이제 부터는 X가 둘 이상인 multi을 다룹니다. 위 그림처럼, X들이 여러개 나뉘어 졌다. X1: 공부시간, X2: 등하교 시간으로 예를 들

ghdrldud329.tistory.com

 

2021.09.21 - [Data Diary] - 2021-09-19(딥러닝 수학16)

 

2021-09-19(딥러닝 수학16)

지난 포스팅에 이어서 th가 2개 이상인 멀티에서는 Update가 어떻게 진행이 되는지 살펴보도록 합니다. 이해를 돕기 위해서 input data가 1개라는 가정하에 진행합니다. 눈에 띄는 점은 th가 2개 이기

ghdrldud329.tistory.com

 

 

728x90
728x90

2021.11.27 - [NLP/패캠_자연어 입문] - 1. Feature Vector

 

1. Feature Vector

* 해당 필기내용은 패스트캠퍼스 자연어 입문 강의를 알려드립니다 Featureand FeatureVector 1. 개요 머신러닝에서의 feature를 설명하기 위해서 Mnist 샘플을 통해 알아보자. 0과1 처럼 서로다른 숫자 모

ghdrldud329.tistory.com

 

2021.11.27 - [NLP/패캠_자연어 입문] - 2. Auto Encoder

 

2. Auto Encoder

* 해당 필기내용은 패스트캠퍼스 자연어 입문 강의를 알려드립니다 Auto Encoder 오토인코더의 목적은 입력값 x을 넣었을 때, 출력값이 입력값 이었던 x값을 최대한 그대로 출력하는 것이다. 이 과

ghdrldud329.tistory.com

 

728x90
728x90

* 해당 필기내용은 패스트캠퍼스 자연어 입문 강의를 알려드립니다 

Auto Encoder

오토인코더의 목적은 입력값 x을 넣었을 때, 출력값이 입력값 이었던 x값을 최대한 그대로 출력하는 것이다. 이 과정에서 Z라는 병목현상이 발생한다. 즉 입구가 좁아지기 되면서 x의 모든 정보가 아닌 정말 중요한 값들만 살려서 압축시킨다. 이를 통해 우리는 중요한 feature만을 추출할수 있게 된다.

 

압축을 위해서 encoder는 버릴 건 버리고, 챙길 건 챙기는 역할을 수행한다. 버리는 것은 필요없는 정보, 뻔한 특징들을 예로 들 수 있겠다.

 

 

Z는 차원이 작기 때문에 데이터를 선택하고, 압축하는 과정을 수행한다. Z의 차원크기에 따라 압축의 정도가 달라진다. 또한 Z는 x를 복원하기 위한 정보를 엑기스로 모아 놓은 것이다. 그렇기 때문에 입력에 비해서 Dense vector이다.(엑기스만 있기 때문) Z를 feature vector라고도 볼수 있다.

 

또는 인코더에 샘플을 통과시키는 것은 feature vector에 대한 임베딩 과정이라고 볼 수 있다.

 

Decoder의 목적은 Z를 가지고 최대한 원상복구를 하는 것이다. 보통 MSELoss를 통해 수행한다.

 

encoder에서 차원이 바뀔 때 마다 변하는 feature vector들은 어떤 의미를 가지고 있는지 궁금할수 있다.

Mnist 데이터를 encoder에 돌린 Z의 결과를 시각화 한 그림이다. 각 색깔별로 군집되어 있으며 각 색깔은 0~9까지를 표현한다. 내가 알려주지도 않았는데 같은 숫자끼리는 뭉치는 걸 볼수 있다. 물론 서로 겹치는 부분도 존재한다. Plot에 뿌려진 공간을 잠재 공간이라고 부른다.

 

 

히든 벡터는 layer가 바뀔 때 마다 생기는 중간 결과물 이기도 하다. 히든 벡터에 핵심 정보를 잘 담아야 복원이 잘 이뤄질수 있는 것이다. 

 

하지만 각 히든 벡터의 핵석은 현재로썬 어렵다. 마지막으로 아래 요약을 통해 정리를 해본다

 

 

728x90

'NLP > 패캠_자연어 입문' 카테고리의 다른 글

6. MAP(Maximum A Posterior)  (0) 2021.12.01
5. MLE 수식  (0) 2021.11.29
4. MLE  (0) 2021.11.28
3. Probabilistic Perspective  (0) 2021.11.28
1. Feature Vector  (0) 2021.11.27
728x90

* 해당 필기내용은 패스트캠퍼스 자연어 입문 강의를 알려드립니다 

 

Featureand FeatureVector

1. 개요

머신러닝에서의 feature를 설명하기 위해서 Mnist 샘플을 통해 알아보자. 0과1 처럼 서로다른 숫자 모양에 대해서 구별할수 있는 feature가 필요하다. 또한 같은 5라는 숫자라도 사람마다 필기체가 다르듯 약간의 차이가 있다. 우리들은 다른 필기체라 하더라도 5라고 금방 인식하는 반면 머신러닝은 이둘을 구별하는 feature 필요하다. 정리를 하자면 각 샘플간의 feature와 샘플 내에 feature가 필요할것이다.

 

 

 

전통적인 머신러닝방법은 사람이 직접 feature를 정의하고 추출하는 전 과정이 필요한 반면, 딥러닝은 스스로 feature를 추출하는 장점이 있다. (각 장단점은 위 이미지 참고)

Tabular라는 건 엑셀처럼 행과 열로 구성되어서 row에 홍길동이 있고 어떤 특징들이 있는지 column에 나열하는 것을 말한다. 그래서 특징벡터는 각 특징들을 모아서 하나의 vector로 만든 것이라 할수 있다. 각 샘플만의 특징들을 vector로 정리 할수 있게 되고, 이를 이용해서 샘플간의 차이, 유사도 등 새로운 정보를 알아 낼수가 있다.

 

 

2. 원핫인코딩

 

원핫인코딩은 희소벡터이다.(값이 대부분 0으로 채워진) 희소벡터의 문제점은 벡터간의 유사도를 구할수 없다는 점이다. 위 공책과 노트의 벡터를 서로 곱해주면 0이 된다. 공책-노트, 노트-지우개 등 다른 벡터끼리 해봐도 결과는 0이기 때문에 추가 정보를 얻을수 없다. 사람은 볼펜과 샤프 혹은 연필과 샤프를 유사한 개념으로 보고있다. 그래서 “연필이 없으면 샤프를 쓴다” 라고 생각할수 있다. 하지만 희소벡터로 학습 시키면 이 두개의 유사도를 모르기 때문에 성능이 떨어지는 결과를 얻게 된다.

 

희소벡터의 문제점을 해결하기 위해서 임베딩이라는 개념이 생겨났다. Word2vec 등 임베딩 기법을 통해서 마치 사람처럼 사물간의 유사도를 잴수 있는 dense vector로 바꿀수 있게 된다.

 

 

 

728x90

'NLP > 패캠_자연어 입문' 카테고리의 다른 글

6. MAP(Maximum A Posterior)  (0) 2021.12.01
5. MLE 수식  (0) 2021.11.29
4. MLE  (0) 2021.11.28
3. Probabilistic Perspective  (0) 2021.11.28
2. Auto Encoder  (0) 2021.11.27

+ Recent posts