Linear Regression
- 입력값: discrete, continuous한 값을 모두 받아 출력값으로 continuous 한 값 예측
- input값을 사용하여 가장 잘 예측하는 선을 찾는 것 (주어진 데이터를 선형함수에 근사)
- 딥러닝으로는 하나의 퍼셉트론을 이용한 모델
- 모형의 평가지표 cost function으로 MSE 사용
- cost function 최소화시킬 수 있는 weight와 bias를 찾기 위해 미분
- 회귀분석이란 loss function을 최소화하는 지점, 즉 미분해서 미분값이 0이 되는 지점을 찾는 것
- 회귀분석이란 loss function을 최소화하는 지점, 즉 미분해서 미분값이 0이 되는 지점을 찾는 것
Gradient Descent
- minimum을 바로 구하지 않고, 현재 loss에 대한 w의 gradient(경사도)를 구해서 gradient x learning rate만큼 w를 업데이트 한다.
- 속도 : learning rate로 조절
- 데이터가 많아서 한번에 다 넣고 학습하면 시간이 오래걸려 메모리가 부족하다
- 데이터를 mini-batch로 나누어 그 토막마다 1스텝을 가는 것(업데이트)
- batch 학습은 learning rate을 더 키우기 때문에 batch의 학습시간이 mini-batch보다 빠름
- 결국 minimum global으로 이동
- Stochastic Gradient Descent, Mini-batch Training
Multi Variable Linear Regression
- Multi Variable Linear Regression은 input값으로 스칼라가 아닌 벡터값을 받는 형태
- 복잡도가 exponential 하게 증가하여 계산이 불가능
- Gradient Descent 방법 사용
Logistic Regression
- Linear Regression으로 binary classification 진행
- 아웃라이어에 영향을 받지않고 Classification을 하기 위해 0~1사이의 값으로 나오게 함
- linear regression 식에 sigmoid function을 통과
- loss function으로 MSE를 쓰면 loss function이 convex function이 되지 않음
- maximum likelihood estimation으로 새로운 loss function을 정의
Multi Layer Perceptron
Back Propagation
- loss로부터 거꾸로 한단계씩 미분값을 구하고 이들을 chain rule 이용하여 weight에 의한 gradient를 구하는 방법
- 모든 그래프는 노드와 엣지로 표현됨을 이용
- add gate : gradient distributor (이전 값들의 합)
- copy gate : gradient adder (이전 값 그대로 전달)
- max gate : gradient router (큰 값을 전달)
- mul gate : gradient switcher (다른 값과 곱)
- 여러개가 있을 경우, gradient의 합으로 표현
Softmax
- multi class classification에서 sigmoid function으로 나온 output layer는 이론적으로 모두 0 또는 1이 나올 수 있고, 클래스 중 하나가 선택되어야 함
- 함수의 결과는 확률로 나타내지는데 이를 softmax를 통과시켜 0, 1로 변환
- 전체 함수의 합으로 나누면 확률로 나타낼 수 있는데 exp을 취하는 이유는?
- 모든 확률이 > 0 이어야 하므로 exp를 취함으로써 양수로 변환
- 차이의 절대량을 유지하기 위해 (1:2 와 0.1:02는 다름)
Entropy
- 정보량의 기댓값(평균)
$$H(X)=E[I(X)]=E[-ln(P(X))]=\sum p(x_i)I(x_i)= -\sum(x_i)log_b P(x_i)$$
- 정보량은 확률의 역수 (항상 일어나는 사건이라면 확률은 1이고 정보량은 0)
- 확률이 적을수록 정보량이 많음
Cross Entropy
- 크로스 엔트로피는 MSE를 MLE로 쓰면 나오는 형태
- 실제값 분포 p와 Model이 예측한 분포를 q라고 하였을 때 Cross entropy를 minimize 하는 것은 p와 q의 분포가 가까워지도록 만드는 것과 같음
$$cost(W) = - \frac{1}{m} \sum y log(H(x)) + (1 - y) log (1-H(x))$$
Kullback-Leibler(KL) Divergence
- 두 확률 분포간의 거리를 나타냄
$$D_{KL} (p || q ) = - H(p) + H(p,q) = H(p,q)$$
- Cross Entropy 최소화하는 것이 KL Divergence를 최소화
- Regression이외에는 direct하게 구할 수 있는 방법이 없으므로 iterative한 방법을 사용(미분)
Fundamental Equation behind Back-Prop
- binary classification에 MSE가 적절하지 않은 이유
- 네트워크의 출력이 정답과 차이가 크게 나면 weight가 초반에 바뀌지 않고 activation function의 미분 term 때문에 오히려 적게 바뀌게 되어 학습이 잘 되지 않게됨
Cross Entropy vs Mean Squared Error
- 크로스 엔트로피를 쓰면 미분값이 사라지는데 MSE를 쓰면 cost를 w로 미분할 때 마지막 레이어의 activation의 미분이 들어가게 되는데 이 때 sigmoid가 들어가면서 (regression은 미분값이 1이므로 영향이 없음) 학습에 부정적 영향을 미침
- 각각 모델의 cross entropy와 squared loss를 계산해보면, mse는 모든 class에 대해서 에러를 계산하는 반면 cross entropy는 정답인 class에 대해서만 계산함
'DEEP LEARNING > Fundamental Concept' 카테고리의 다른 글
Object Detection (0) | 2020.03.25 |
---|---|
Modern CNN (0) | 2020.03.10 |
Convolutional Neural Network (0) | 2020.03.03 |
Training Neural Networks (0) | 2020.02.24 |
What is AI? (0) | 2020.02.02 |