👩🏻‍💻Standford CS231N Deep Learning -4

박수빈·2021년 6월 1일
0

CS231N

목록 보기
3/6

2020/09/13 깃헙 블로그 기록

4. Introduction to Neural Network

Computational Graph

  • 복잡한 수식을 나눠서 간단하게
    image

Convolutional Network

  • 여러 layer를 거쳐 결과를 낸다

Backpropagation

image

  • 예시는 간단하지만, 실제 neural network는 복잡함

  • 식을 하나씩 나눠서 미분과 chain rule을 이용해 각각의 편미분 값 구함

  • derivative: the rate of change of a function wrt that variable surrounding an infinitesimally small region near a particular point

  • 오른쪽에서 넘어온 gradient를 local gradient과 곱해 또 다음 layer에게 gradient로 넘겨줌
    image

  • sigmoid처럼 식을 나누지 않고 미분해도 복잡하지 않은 경우 묶어서 생각할 수 있다
    image

  • backpropagation을 하면, 최종결과 값을 증가시키거나, 감소시키기 위해 최초 인풋 값을 어떻게 조정해야할지 알 수 있음.

    Patterns in backward flow

  • add gate
    - gradient distributor
    - 값을 그대로 뒤로 전달
    image

  • max gate
    - gradient router
    - max로 선택된 값에 gradient 몰빵
    - 선택받지 못한 곳은 그냥 0
    - 아주 작은 h 만큼 인풋을 움직여도 max값이 변하지 않기 떄문(미분 공식 생각해보기)
    image

  • mul gate
    - gradient switcher
    - 넘어온 gradient에 곱해지는 값 곱함
    image

  • branches
    - 두 가닥에서 넘어오는 gradient를 받는 경우, 그냥 더해줌
    image

Jacobian matrix

  • 각 노드로 넘어오는 것이 value가 아니라 matrix가 되면 {dx/dx}, 즉 local gradient는 Jacobian matrix
  • diagonal matrix
  • Jacobian matrix의 와 본래 W의 크기는 같음 -> Sanity check

Neural Networks

  • W1을 곱한 후 스코어가 0보다 큰 것만 h로
  • h에만 W2를 곱해 스코어 계산
  • 거름망처럼 생각하면 될듯
    image
  • 실제 뉴런과 비슷한 구조
  • 사이에 낀 층을 hidden layer라고 함
  • 3-layer Neural Net =2-hidden-la

Activation Function

image

꼼지락

미분과 편미분의 차이에 대해 찾아봐야겠다

profile
개발자가 되고 싶은 학부생의 꼼지락 기록

0개의 댓글