2 min read

Backpropagation, Neural Network

  • 해당 포스트는 cs231n 강의를 참고로 요약한 내용입니다.

Topic: Backpropagation & Neural Network

Notes

  • Backpropagation

    • Computation Graph : 함수가 어떤 연산을 거쳐 최종 값에 도달하는지 나타낸 그래프.

    • chain rule을 사용, 초기에 설정된 변수들이 최종 값에 얼마나 많은 영향을 미치는지 조사하기 위해 사용.

    • local gradient + gradients

      https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b1055c51-5873-4cdd-811d-41bb94a38ad1/Untitled.png

    • sigmoid gate

    • sigmoid는 자주 사용되는 activation 함수로, 여러 computation을 미분하지 않고 한 번에 처리할 수 있도록 해준다.

    • Patterns in backward flow

    • add, max, mul이 computation에서 사용될 때, 패턴이 나타나기 때문에 계산을 효율적으로 진행할 수 있다.

      1. add : 이전 gradient가 그대로 전해진다(distribute)
      2. max : 이전 gradient가 한 쪽으로만 전해진다(routing)
      3. mul : 해당 변수의 반대편 변수 값(switch)을 전해진 gradient에 곱한다.
  • Gradients for vectorized code

    • 인풋이 vector로 오게 되었을 때는, Jacobian matrix를 사용.
      • Jacobian matrix : 다변수 벡터 함수의 도함수 행렬

        https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b4cd1835-4291-446a-b2b2-0ce33dc19941/Untitled.png

  • Neural Networks

    • Neural Network는 기본적으로 함수들이 결합된 형태.

    • 기존의 linear function들 사이에 h라는 hidden layer가 추가되어있다.

      • hidden layer : non-linearity function, 여기선 max(0, W_1*x) 까지가 hidden layer.
    • 구조

      https://s3-us-west-2.amazonaws.com/secure.notion-static.com/09be100e-c785-4aa8-9e49-9b85101fd520/Untitled.png

      • 2, 3layer NN에서는 위와 같은 모양을 갖고 있고, 모든 인풋이 모든 행렬 연산을 빠짐없이 수행하는 fully connected 형식을 취하고 있다.

SUMMARY:

  • Backpropagation의 작동 원리 : 넘겨진 gradient, local gradient를 사용해 초기의 input이 output에 미치는 영향력을 알 수 있다.
  • chain rule을 사용해 계산하며, vector를 사용할 때는 jacobian matrix를 사용한다.
  • NN은 기존의 linear score function들 사이에 activation function을 통한 hidden layer를 설치해 뇌의 신경망에서 시냅스와 spark가 작동하는 것처럼 구현해놓은 결과물.**