backpropagation - 목적 : 각각의 웨이트가 결과에 얼마나 영향을 미치는지를 알아보자!
Backpropagation with scalar - 각각의 가중치 값 찾기!!
- q = x+y
- f = q * z
- Purpose : Want to calculate df/dx. df/dy, df/dz
(x,y,z가 함수 F에 미치는 영향을 알 수 있다. 기울기값이므로 초기 인풋값의 변화량만큼의 f값의 변화를 알 수 있기 때문)
Chain rule을 통해 단계마다의 함수값을 미분하며 올라가면 가장 최상층 웨이트의 미분값도 알 수 있다!!
Process of backpropagation in Local gradient
각 노드(함수)를 거슬러 올라갈때, [upstream gradient] X [local gradient] = [next step upstream gradient]
- upstream gradient - 거슬러 올라온, 쌓여가는 미분값. 해당 그림에선 dL/dz가 upstream gradient
- local gradient - 각각의 노드에 있는 함수의 해당 변수에 대한 미분값. 해당 그림에선 dz/dx, dz/dy가 된다.
아무리 복잡한 식이라도, chain rule을 이용한 역전파 방식으로 모든 미분값을 구할 수 있다! - 컴퓨터 분야에서 역전파를 쓰는 이유!!!
Patterns in backward flow
- 역전파시 게이트들의 역할
- ADD gate - upstream gradient가 gate를 통과하며 여러 갈래로 나뉘어진다
- MAX gate - upstream gradient가 gate를 통과하며, Max가 아닌 값에는 0이, Max 값에는 그대로 들어간다.
- 이유 : 실제 MAXgate에 영향을 미치는 인자는 MAX값 밖에 없기 때문.
- MUL gate - upstream gradient가 gate를 통과하며 다른 브랜치의 값으로 scaling한다(크기 변경) - 곱하기니까
Backpropagation with vector
위처럼, 스칼라 값으로 역전파가 아닌 벡터 값으로 역전파를 해도 방식은 동일, 다만 local gradient는 jacobian matrix가 된다. - 각 요소의 미분값을 포함하는 행렬
Quiz
입력의 어떤 부분이 출력에 영향을 주는가?
- 자코비안 매트릭스의 각각의 input은 output의 해당 요소에만 영향을 줌 - 대각 행렬 형태 지님
- 자코비안 벡터 예시
Neural networks - 신경망 모델
- 기존 : f = Wx의 form
- 2-layer 신경망 : 두개의 함수 존재, 사이에 활성함수 존재
인공신경망과 신경망의 공통점
인공신경망 구조
'Computer Technology 기록부 > 인공지능 학습 기록부' 카테고리의 다른 글
CS231n Lecture 06. Training Neural Network (0) | 2022.02.07 |
---|---|
CS231n Lecture 05. CNN - Convolution Neural Network (0) | 2022.02.06 |
신경망(Neural Network)이란? (0) | 2022.01.25 |
딥러닝과 신경망의 본질 (0) | 2022.01.20 |
CS231n lecture 03 Loss function and optimization (0) | 2022.01.17 |
댓글