[CS231n] Lecture 4 | Introduction to Neural Networks

2024. 7. 29. 11:57·CS231n
목차
  1. Recap
  2. Computational Graph
  3. Backpropagation: a simple example
  4. Local Gradient & Upstream Gradient
  5. Backpropagation: another example
  6. Patterns in backward flow
  7. Backpropagation with Vectors & Matrices
  8. Neural Networks
  9. Activation Functions
  10. Architectures of Neural Networks
  11. References
더보기

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

Local Gradient & Upstream Gradient

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

Backpropagation: another example

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

     

     

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

    • σ(x)=11+e−xσ(x)=11+e−x일 때 ∂σ(x)∂x=(1−σ(x))σ(x)∂σ(x)∂x=(1−σ(x))σ(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
  1. Recap
  2. Computational Graph
  3. Backpropagation: a simple example
  4. Local Gradient & Upstream Gradient
  5. Backpropagation: another example
  6. Patterns in backward flow
  7. Backpropagation with Vectors & Matrices
  8. Neural Networks
  9. Activation Functions
  10. Architectures of Neural Networks
  11. References
'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)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

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

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

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.