지난 강의 복습

즉,  optimization은 loss를 최소화하는 W를 찾아가는 과정이다. (Parameter update)

 

 

Computational Graph

Backpropagation

 

- Forward Pass

오른쪽처럼 Graph로 표현이 가능하고 왼쪽->오른쪽으로 가는 방향을 FP(Forward Pass)라고 한다.

 

 

Input에 대한 Gradient를 구하면(Output에 얼마정도의 영향을 미치는지)

매개변수 q를 사용한다. Want를 얻기 위해서는 BP(Backward Pass, Backpropagation)이 필요하다.

 

 

f에 대한 gradient를 구해준다. 

빨간 숫자가 f에 대한 gradient를 의미하게 된다.

 

 

 

Forward pass를 하는 과정에서 local gradient를 구할 수 있다. 

Backward pass를 하는 과정에서 global gradient를 구할 수 있다.

=> 결국 local gradient와 global gradient를 곱해 gradient를 구할 수 있다. 

Backpropagation = Backpropagation

 

다른 예제로 다시 확인

 

 

gradient 계산

 

- sigmoid function

복잡한 계산 없이 자기 자신의 값으로 미분값을 표현 가능하다.

미분값이 자기 자신으로 표현이 된다.

 

- Backward flow의 패턴

add gate : gradient를 그대로 같은 값으로 전파해준다. local gradient = 1

max gate : 큰 것만 곱하기 1을 하는 결과가 되어 하나만 취하게 된다. 

mul gate : 곱하는 것의 반대쪽 gradient로 바뀌게 된다. 

 

 

- Gradient가 분기 되었을 때는 더하면 된다.

 

 

- Implementation : forward / backward API

 

forward pass시의 local gradient를 저장해놓기 위해 self.x, self.y로 저장.

이렇게 수많은 layer들을 레고 조립하듯이 구성하는 과정을 거친다.

 

 

x,y,z가 벡터인 경우 dL/dz는 벡터가 되고, dz/dx는 matrix가 된다. 

 

 

Q : what is the size of the Jacobian matrix?

A : 4096X4096

 

Q2: what does it look like?

A: identity matrix와 유사하지만, 모두 1이 아닌 구조

 

- mini-batch를 사용한 경우

mini batch size가 100인 경우 [409,600 x 409,600] matrix가 된다.

 

Neural Network

non-parametric approach : one class - one classifier

parametric approach : one class - multi classifier

 

- 뉴런과의 비교

 

-Activation Function의 종류

ReLU를 사용하는 것이 일반적

 

신경망의 종류

 

more neurons -> more capacity(분류 능력)

하지만 오버피팅이 되지 않도록 조절하기 위해서 신경망의 사이즈를 조절하는 것이 아니라, regularization을 조절해야한다. 

 

neural networks: bigger = better (but might have to regularize more strongly)

+ Recent posts