[CS231n] Lecture 4 | Introduction to Neural Networks

2024. 7. 29. 11:57·CS231n
더보기

CS231n 강의 홈페이지: https://cs231n.stanford.edu/

CS231n Spring 2017 유튜브 강의 영상: https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk

강의 슬라이드 & 한글 자막: https://github.com/visionNoob/CS231N_17_KOR_SUB

Recap

  • Loss Functions
    • 함수 f는 입력 x에 따른 클래스들에 대한 스코어 벡터 Y를 출력
    • 이에 대한 예측이 잘 된 혹은 잘 되지 않은 정도를 손실 함수를 통해 계산
    • 손실 함수는 data loss term과 regularization term으로 구성
    • 정규화 항은 모델의 복잡성을 조절함
  • Optimization
    • 최적의 파라미터 W를 찾는 과정
    • 경사 하강법: 그래디언트의 반대 방향을 반복적으로 구해 가장 낮은 loss에 도달
    • Numerical gradient: 유한 차분 근사(finite difference approximation)을 통해 계산. 매우 느리고 근사치임
    • Analytic gradient: 미분을 통해 빠르고 정확하게 계산

Computational Graph

  • Computational Graph를 사용하여 함수를 표현함으로써 backpropagation을 사용할 수 있음
  • backpropagation은 그래디언트를 얻기 위해 Computational Graph 내부의 모든 변수에 대해 chain rule을 재귀적으로 사용

Backpropagation: a simple example

Backpropagation process

  • \( x = -2, y = 5, z = -4 \)이고 \( f(x, y, z) = (x + y)z \)로 표현되는 함수가 있을 때 이를 computational graph로 표현하면 그림과 같다
  • 구하고자 하는 것은 함수 \( f(x, y, z) \)의 출력에 대한 각 변수의 그래디언트인 \( \frac{\partial f}{\partial x}, \frac{\partial f}{\partial y}, \frac{\partial f}{\partial z} \)
  • 이때 매개변수 \( q = x + y \)를 도입하여 \( f = qz \)로 표현
  • 오류역전파는 재귀적인 방식이므로 뒤에서부터 값을 구해보면
    • \( \frac{\partial f}{\partial z} = q = x + y = 3\)
    • \( \frac{\partial f}{\partial y} = \frac{\partial f}{\partial q} \frac{\partial q}{\partial y} = z \times 1 = -4 \)
    • \( \frac{\partial f}{\partial x} = \frac{\partial f}{\partial q} \frac{\partial q}{\partial x} = z \times 1 = -4 \)
    • 그래디언트는 함수에 대한 각 변수의 영향력으로 해석할 수 있음

Local Gradient & Upstream Gradient

  • 그래디언트를 구하기 위해 해당 노드와 바로 연결된 노드만 고려
  • \( x, y \)에 대한 그래디언트를 구하기 위해 \( z \) 이외의 다른 부분은 고려하지 않음
  • 그림에서와 같이 \( \frac{\partial L}{\partial x}, \frac{\partial L}{\partial y} \) 를 구하는 방법
    • 'local gradient'인 \( \frac{\partial z}{\partial x}, \frac{\partial z}{\partial y} \)와
    • 이전 단계에서 얻은 'upstream gradient'인 \( \frac{\partial L}{\partial z} \)를 각각 곱함
  • 이러한 과정이 그래프의 앞단까지 반복적으로 진행됨

Backpropagation: another example

  • 최종단의 upstream gradient를 1.00으로 가정. 계산 과정 ▼
  • 더보기

     

     

  • 나머지 단순 합노드와 곱노드 계산은 아래 그림과 같이 구함
  • sigmode gate를 한 번에 계산

    • \( \sigma (x) = \frac{1}{1+e^{-x}} \)일 때 \( \frac{\partial \sigma (x)}{\partial x} = (1 - \sigma (x))\sigma (x) \)임을 이용
    • 그래프의 간결함 ↔ 계산의 복잡도는 trade-off 관계

Patterns in backward flow

  • add gate
    • gradient distributor 역할
    • local gradient의 값이 1이므로 upstream gradient의 값을 동일하게 분배해줌
  • max gate
    •  gradient router 역할
    • 최댓값이 전달된 노드로만 upstream gradient가 흐르게 해줌
  • mul gate
    • gradient switcher 역할
    • 다른 변수의 값만큼 upstream gradient를 스케일링하여 전달해줌

Backpropagation with Vectors & Matrices

출쳐: 서울대학교 이준석 교수님 - 시각적 이해를 위한 머신러닝 (2023 spring) 유튜브 강의

  • 중요한 것은 원래 변수와 그래디언트의 차원이 동일해야 함 (차원분석을 통해 파악)
  • 행렬곱 순서 유의: Downstream Gradient = Local Gradient * Upstream Gradient
  • Example
  • 더보기



Neural Networks

 

  • 컴퓨팅 노드가 서로 연결되어 입력 신호를 받는 방식이 뉴런과 유사함
  • 그러나 실제 생물학적 뉴런이 훨씬 복잡

Activation Functions

 


Architectures of Neural Networks

 

  • Fully-Connected layers (FC layers)
    • FC layers는 각 레이어가 행렬 곱셈을 통해 연결됨
    • 3-레이어 신경망은 2개의 히든 레이어로 구성
    • 하나의 행렬 곱셈으로 여러 뉴런의 출력을 동시에 계산
    • 비선형성을 적용하여 뉴런의 값을 계산하고 이를 다음 레이어로 전달
  • Backpropagation
    • 역전파 알고리즘을 통해 신경망의 가중치를 업데이트하여 학습을 진행

References

  • 서울대학교 이준석 교수님 - 시각적 이해를 위한 머신러닝 (2023 spring)
      • Lecture 4. Neural Networks & Backpropagation
      • https://www.youtube.com/watch?v=KDmT15zv0Rc&list=PL0E_1UqNACXDTwuxUzCl5AeEjXBfWxCwc&index=4

'CS231n' 카테고리의 다른 글

[CS231n] Lecture 7 | Training Neural Networks II  (0) 2024.08.13
[CS231n] Lecture 6 | Training Neural Networks I  (0) 2024.08.08
[CS231n] Lecture 5 | Convolutional Neural Networks  (0) 2024.07.30
[CS231n] Lecture 3 | Loss Functions and Optimization  (0) 2024.07.26
[CS231n] Lecture 2 | Image Classification  (0) 2024.07.24
'CS231n' 카테고리의 다른 글
  • [CS231n] Lecture 6 | Training Neural Networks I
  • [CS231n] Lecture 5 | Convolutional Neural Networks
  • [CS231n] Lecture 3 | Loss Functions and Optimization
  • [CS231n] Lecture 2 | Image Classification
ymkwon
ymkwon
공부 기록, 논문 리뷰 등에 대한 정리
  • ymkwon
    ymkwon
    ymkwon
  • 전체
    오늘
    어제
    • 분류 전체보기 (21)
      • CS231n (9)
      • 기계학습 (2)
      • 딥러닝 (0)
      • Paper Review (4)
      • Computer Vision (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    cs231
    cs231n
    멀티모달
    딥러닝
    컴퓨터비전
    기계학습
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
ymkwon
[CS231n] Lecture 4 | Introduction to Neural Networks
상단으로

티스토리툴바