CS231n Lecture #4 (Introduction to Neural Network) 정리

Mini's Place·2022년 2월 13일
0

Lecture Note


cs231n_2017_lecture4.pdf

Keyword


  • Neural networks
  • Computational graphs
  • Backpropagation
  • Activation functions
  • Biological neurons
💡 한번은 Back Propagation에 대한 정리를 제대로 해야겠다싶어 강의와는 별개로 추가적으로 공부한 내용을 정리했습니다...! 혹시 누군가 본다면 도움이 될까 하여...

BackPropagation


  • Last Lecture cs1
  • 신경망 학습 과정
    • 입력값이 각 layer를 지나며 weight를 곱하고 예측하는 Output값을 도출
    • 예측된 Output값과 실제 Output값 간의 오차를 계산
    • 오차를 줄이기 위한 Layer의 weight 등을 업데이트를 위해 Back Propagtion
  • Training Data를 이용해 저번 강의에서 배운 Loss Function을 최소화시키는 것이 신경망 학습의 목표 → Gradient Descent (경사하강법)의 등장
  • Gradient Descent (경사하강법)
    • 극점을 찾기 위해 Gradient의 반대 방향으로 이동하는 방법
    • Loss 함수의 값을 최소화시키기 위해 파라미터 값을 찾는 방법
    • Output에 영향을 주는 변수들이 loss에 미치는 영향을 나타내는 Gradient를 계산하고 반대로 더해준다.
  • Simple Example cs2
    • f(x,y,z)=(x+y)zf(x,y,z)=(x+y)z
      • Input : x = -2, y = 5, z = -4
      • 우리가 얻고자 하는 것: 변수 x,y,z가 결과값에 미치는 영향 ⇒df/dx,df/dy,df/dzdf/dx, df/dy, df/dz
      • 근데? 이걸 바로 구할 수 없으니 Chain Rule을 이용해서 끝에서 거슬러 올라가는 식으로 구한다!
      • 각 변수가 예측값에 미치는 영향인 미분값을 찾았다! 그래서?
      • 예측값과 실제결과값 간의 차이를 줄이기 위해 변수를 업데이트하자.
      • 변수가 1개인 경우 (Gradient Descent)
        • x=xrdf/dxx = x - r * df/dx → r : Learning Rate
      • 변수가 여러 개인 경우 (Gradient Descent)
        • x=xrdf/dxx = x - r * df/dx
        • y=yrdf/dyy = y - r * df/dy
        • ...
    • 순서
      1. Computational Graph로 나타내기
      2. 모든 출력으로 이어지는 모든 계산이 무엇인지 파악
      3. 역방향 계산 해야할때 Computational Graph에서 정의한 변수에 대한 Gradient를 가져옴
      4. Chain Rule을 이용해 연결

Neural Network


Before ) f=Wxf=Wx 처럼 다양한 선형 Score 함수에 대해 배웠다.

Now) f=W2max(0,W1x)f = W_2max(0,W_1x) 와 같은 2-layer Neural Network를 다루어볼 것이다.

💡 **신경망(Neural Network)** : 함수들의 집합 → Nonlinear한 복잡한 함수를 만들기 위해 간단한 함수들을 계층적으로 여러개 쌓아올렸다고 생각하면 됨.
  • 2-layer Neural Network cs3
    • W1 : 같은 템플릿을 찾는 것

    • h : W1 에서 가지고 있는 템플릿에 대한 Score값(함수) → W1의 각 템플릿이 얼마나 많은지를 나타냄

    • W2 : h 모두에 가중치를 부여하고 중간 점수를 더해 최종점수를 도출

      → 3-layer Neural Network는 f=W3max(0,W2max(0,W1x))f = W_3max(0,W_2max(0,W_1x))의 형태를 가짐

  • 왜 이걸 Neural Network라고 부르는가!

cs4

cs5

→ 여러 자극을 받아 반응하기까지 뉴런에서 발생하는 일련의 과정이 비슷한 구조를 가짐. (뉴런이 훠얼~씬 복잡)

→ 실제로 이를 연구하는 신경과학자들에 따르면 실제 방식과 가장 유사한 비선형성의 종류는 ReLU(모든 음수 임력값에 대해선 0, 양수 입력에 대해서는 선형 함수)라고 했다고 함.

  • Activation Function
    • Sigmoid : σ(x)=1/(1+ex)\sigma(x) = 1/(1+e^{-x})
    • ReLU : max(0,x)
    • Leaky ReLU : max(0.1x,x)max(0.1x,x)
    • Maxout : max(w1Tx+b1,w2Tx+b2)max(w_1^Tx+b_1, w_2^Tx+b_2)
    • tanh : tanh(x)

0개의 댓글