Section 1

머신러닝 

  1. 개요
    1. 입력 데이터가 주어졌을 때 답을 유추해 줄 수 있는 최적의 함수(오류 최소화)를 찾는 알고리즘 기법을 통칭. 어떤 데이터를 기반으로 함수를 찾느냐에 따라 머신러닝 기법이 달라짐. 
    2. 머신러닝의 종류로는 기호주의/연결주의/확률주의/유전 알고리즘/유추 주의가 있음.
  2. 왜 필요한가
    1. 처리 해야 할 업무, 코드의 복잡도가 높아지면서 보다 지능화된 서비스 구현이 필요해짐. 
    2. 종잡을 수 없는 패턴에 따른 애플리케이션 구현의 어려움.
      ex) 필기체를 인식하려고 할 때, 동일한 숫자여도 변형으로 인해 if else와 같은 조건으로 구분하여 숫자를 인식하기 어려움. 
    3. 기존 컴퓨터 사이언스의 패러다임의 변화가 요구됨. 
      1. 기존 컴퓨터 사이언스 : 결과를 출력하기 위해 로직을 구현
      2. 머신 러닝 : 입력 데이터가 있으면 결과값을 이용해 최적의 패턴을 유추

딥러닝(Deep Learning)

  1.  개요
    1. 심층신경망 기법을 통해 모델을 만드는 것. 뇌의 학습과 기억의 매커니즘을 모방한 방식.
    2. 임계점이 넘는 input이 들어오면 활성화 시켜 다른 뉴런으로 전하거나 output을 다른 방식으로 내보냄. 여러 개가 연결될수록 학습이 강화됨.(더 추상적이고 깊은 사고)
    3. y = W0+W1*X1+ … +Wn*Xn 
      1. W : 가중치, parameter. 머신이 학습하는 것 
    4. 학습을 통해 최적의 가중치 W값을 찾는 것이 딥러닝의 목표.
  2. 장점
    1. 매우 유연하고 확장성 있는 모델 구성 가능
      1. CNN Feature Extractor(기존에는 직접 feature를 뽑아낸 후 타 머신러닝 알고리즘을 적용했으나 딥러닝은 자체적인 모델링 수행), RNN, GAN, 강화 학습 
      2. 과거에는 최적화하기 어려운 문제들을 딥러닝 기반으로 모델링 수행 
    2. 다양한 영역에서 확장되어 활용 
      1. 영상, 음성, 자연어 뿐만 아니라 수치최적 등 다양한 영역의 최적화 문제의 해결책 제시 
  3. 단점
    1. 매우 많은 컴퓨팅 연산 필요(GPU 등 고가 H/W 필요)
    2. 지나치게 고차원의 최적화 유도 
      1. 많은 Weight가 필요함. 정형 데이터에서 큰 성능 향상이 어려움. 
      2. 학습데이터에만 최적화시켜 오버피팅의 가능성이 큼.

 

퍼셉트론(Perceptron)

  1. 개요
    1. Hidden Layer가 없이 Single Layer로 구성된 가장 단순한 형태의 신경망. 입력 피처들과 가중치, Activation, 출력 값으로 구성.
    2. Weighted sum이 unit step(활성함수)을 넘어가면 1로 출력. 임계점 아래라면 0으로 출력.
  2. 퍼셉트론의 학습
    1. weight 값을 변경해나가며 예측 값과 실제 값의 차이가 최소가 되는 weight를 찾는 과정.

 

회귀(Regression) 

  1. 개요
    1. 여러 개의 독립 변수와 한 개의 종속 변수 간의 상관관계를 모델링하는 기법을 통칭
      1. 아파트 가격(종속 변수)와 방 개수, 아파트 크기, 주변 학군 등(독립 변수)의 상관관계 
      2. y = W0+W1*X1+ … +Wn*Xn 에서 Xn 이 독립 변수, Y가 종속 변수. 주어진 데이터를 기반으로 하여 최적의 Wn, 회귀 계수를 찾아내는 것.
  2. 단순 선형 회귀
    1. 관련 값
      1. 상수항 : bias 
      2. 에러 : 실제값과 모델 사이의 오류값 

    2. 오류 측정 방법
      1. RSS : 오류 값의 제곱을 구해 더하는 방식. Error^2 = RSS. (실제값 - 예측값)^2의 합. 회귀식이 독립변수 X, 종속변수 Y가 중심 변수가 아니라 w변수(회귀 계수)가 중심 변수임을 인지해야함. 
      2. MSE : 선형 회귀의 비용 함수. RSS를 학습 건수로 나누어 계산할 수 있음.

 

경사하강법(Gradient Descent)

  1. 개요
    1. 점진적으로 반복적인 계산을 통해 W 파라미터 값을 업데이트하면서 오류 값이 최소가 되는 W 파라미터를 구하는 방식.
    2. 핵심은 어떻게 하면 오류가 작아지는 방향으로 W값을 보정할 수 있는가에 있음.
    3. 편미분을 활용해 최소값 반환
  2. 손실 함수의 편미분 
    1. Loss는 MSE
    2. 여러 개의 w 파라미터를 가지고 있는 경우 순차적으로 편미분을 진행해 계수 값을 얻을 수 있음. 
    3. W 값은 손실 함수의 편미분 값을 update하면서 계속 갱신함. 일정한 계수를 곱해 편미분 값을 감소시키는 방향으로 적용하며 이 때의 계수를 학습률이라고 함. 
  3. 퍼셉트론 기반 단순 선형 회귀에서의 적용
    1. 정해진 반복 수만큼 손실함수 편미분을 구하고 weight, bias update 수행

 

확률적 경사하강법(Stochastic Gradient Descent)와 Mini-Batch GD

  1. 개요
    1. 입력 데이터가 크고 심층신경망으로 구성할 경우 레이어가 늘어나 gradient descent 방식은 많은 computing 자원이 소모됨. 
    2. SGD : 전체 학습 데이터 중 한 건만 임의로 선택하여 GD 계산. 
    3. Mini - Batch GD : 전체 학습 데이터 중 특정 크기만큼 (Batch 크기) 임의로 선택해서 GD 계산. 
    4. 일반적으로 Mini-Batch GD가 대부분의 딥러닝 Framework에서 채택됨.
  2. 문제
    1. learning rate 크기에 따른 이슈. step이 너무 작을경우 최소점에 수렴하는데 너무 오랜 시간이 걸릴 수 있음. 반대로 step이 너무 클 경우 최소점을 찾지 못하거나 오히려 발산 될 수 있음. 
    2. 전역 최소점(Global Minimum)과 국소 최소점(Local Minimum) 이슈.

 

Section 2

심층 신경망(다중 퍼셉트론) 이해 

  1. 개요
    1. 기본 퍼셉트론은 간단한 문제만 해결이 가능
    2. 은닉층 (Hidden layer)가 포함된 다중 퍼셉트론으로 심층 신경망을 구성 
    3. weight 파라미터의 개수가 훨씬 늘어남.
    4. 입력층 -> Hidden Layer -> 출력층 -> output
    5. 개별 미분 -> relu로 activate를 반복하면 파라미터의 수 증가에 따라 수식 자체가 너무 복잡해짐 -> backpropagation으로 극복 
  2. 학습법
    1. Feed Forward 수행 -> Backpropagation을 수행하면서 Weight Update -> iteration으로 앞의 과정 반복.
    2. 출력층에 가까운 순으로 미분해가며 가중치를 업데이트하는 것. 

 

오차 역전파(Backpropagation)의 이해 

  1. 개요
    1. Chain rule을 이용해 output에서 가까운 순서대로 거꾸로 출력된 가중치들을 갖고, 그 가중치들을 update하는 것.
    2. 출력층부터 역순으로 Gradient를 전달하여 전체 Layer의 가중치를 update하는 방식
  2. Chain Rule
    1. 복잡한 고차원 식을 보다 간편하게 미분할 수 있도록 해줌.
    2. MSE를 계산할 때도 Chain rule을 적용하면 간단해진다.
    3. 아무리 개별 변수가 복잡하게 구성된 함수의 미분이라도 해당 함수가(미분 가능한) 내포 함수의 연속적인 결합으로 되어 있다면 연쇄 법칙으로 쉽게 미분 가능

 

활성화 함수(Activation Function)

  1. Sigmoid Function
    1. 출력층의 이진 분류시 마지막 classificcation에서 사용
    2. 더 이상 Hidden Layer에 사용되지 않음.
    3. Gradient가 0이 되고 W -> W+G이기 때문에 G가 의미가 없어짐.
    4. 평균이 0이 아님.
  2. Hyperbolic Tangent
    1. Sigmoid와 동일하게 입력값이 커질수록 Vanishing Gradient 문제가 발생.
    2. 하지만 평균은 0이 됨.
  3. Rectified Linear Unit (ReLU)
    1. Vanishing Gradient 이슈 해결
    2. Leaky ReLU, ELU 등 많이 나오지만, 은닉층에서 가장 많이 쓰임
  4. Softmax
    1. multi classification에 사용 
  5. 목적
    1. 딥러닝 네트워크에 비선형성을 적용하기 위함
    2. 하지만, 비선형성은 오버피팅이 일어나기 쉬움.

 

MSE

  1. 개요
    1. 회귀에서는 주로 MSE 사용. 분류에서는 Cross Entropy

 

Cross Entropy Loss

  1. 개요
    1. classification 출력층 중 softmax는 multi, sigmoid는 binary
    2. 예측값과 실제값의 균일도를 줄이는 방식
    3. (위 : softmax, 아래: sigmoid)
    4. y hat: sigmoid가 적용된 값
  2. Cross Entropy 사용 이유
    1. Squared Error 기반은 일반적으로 잘못된 예측에 대해서 상대적으로 높은 비율의 패널티가 부과되어 Loss값의 변화가 심함. 
    2. 매우 잘못된 예측의 경우 CE보다 낮은 비율의 패널티
  3. 계산 방식
    1. c는 클래스의 개수 
    2. 실제값이 아닌 값들은 모두 0. 실제값의 결과만 1. -> 실제값에 해당하는 loss만 계산됨 
    3. -log를 취함으로써 아주 잘못된 예측 결과에는 매우 높은 Loss 부여 

 

Optimizer

  1. 개요
    1. Gradient Descent를 최적화하는 모든 방법
    2. 보다 최적으로 GD를 적용하기 위해 사용
    3. 최소 Loss로 보다 빠르고 안정적으로 수렴할 수 있는 기법 적용이 필요
    4. Global minimum을 적절하게 찾지 못하는 이슈에 대응하기 위해 나옴.
  2. 방식
    1. Learning rate조절 (Local minimum 이슈)
    2. Gradient를 보정해서 넣어줌 (Local minimum 이슈)
    3. Momentum (Gradient 보정)
    4. AdaGrad (learning rate를 조절)
    5. RMS Prop (learning rate를 조절) 
    6. ADAM (Gradient 보정 & Learning rate 조절) ~= Momentum + RMS Prop

 

Momentum 

  1. 개요
    1. 가중치를 계속 update 수행시마다 이전의 Gradient들의 값을 일정 수준 반영시키면서 신규 가중치로 update 적용 
    2. Local minimum에서 빠져나올 수 있게 해줌. 
  2. 효과
    1. SGD의 경우는 무작위한 데이터를 기반으로 Gradient를 계산하므로 최소점을 찾기 위한 최단 스텝 형태로 가중치가 update되지 못하고 지그재그 형태의 update가 발생하기 쉬움. 
    2. Momentum 을 통해 지그재그 형태의 update를 일정 수준 개선 가능.

 

AdaGrad(Adaptive Gradient)

  1. 개요
    1. 가중치 별로 서로 다른 Learning Rate를 동적으로 적용
    2. 적게 변화된 가중치 -> 큰 Learning Rate. 많이 변화된 가중치 -> 작은 Learning Rate
    3. 엡실론은 분모가 0이 되는 것을 방지하기 위해 아주 작은 수 사용. 
    4. Gradient의 제곱은 언제나 양이기 때문에 iteration마다 st의 값이 계속 증가하며 Learning Rate가 아주 작게 변환되는 문제점 발생.

 

RMSProp

  1. 개요
    1. 지나치게 Learning Rate가 작아지는 것을 막기 위해 Gradient 제곱 값을 단순히 더하지 않고 지수 가중 평균법(Exponentially weighted Average)로 구함. 
    2. 지수 가중 평균 계수는 오랜 과거의 Gradient 값의 영향을 줄일 수 있도록 설정. 보통 0.9를 적용
    3. 과거 Gradient 값의 영향력이 지속적으로 상쇄 

 

Adam(Adaptive Moment Estimation)

  1. 개요
    1. RMSProp과 같이 개별 Weight에 서로 다른 Learning Rate를 적용함과 동시에 Gradient에 Momentum 효과를 부여 
    2. Learning Rate를 적용하는 부분은 RMS와 유사. 지수 가중 평균 적용.

 

+ Recent posts