본문 바로가기

DEEP LEARNING/Fundamental Concept

Linear Regression & Logistic Regression

Linear Regression

  • 입력값: discrete, continuous한 값을 모두 받아 출력값으로 continuous 한 값 예측
    • input값을 사용하여 가장 잘 예측하는 선을 찾는 것 (주어진 데이터를 선형함수에 근사)
  • 딥러닝으로는 하나의 퍼셉트론을 이용한 모델
  • 모형의 평가지표 cost function으로 MSE 사용
  • cost function 최소화시킬 수 있는 weight bias를 찾기 위해 미분
    • 회귀분석이란 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