티스토리 뷰
Computational graph : 각 연산을 node로 나타내서 복잡한 연산의 모든 절차를 그래프로 표현하는 방법. -> analytic
AlexNet : Convolutional Network
chain rule : df/dy = df/dq * dq/dy로 바꿔서 계산할 수 있는 것.
앞 node의 local gradient를 현재 node의 gradient를 계산할 때 이용한다.
즉, 현재 node의 gradient는 앞 node의 연산을 미분한 식에 현재 node의 값을 넣어 계산한 값 * 앞 node의 gradient 값이다.
앞 node의 연산이 +면 앞 node의 gradient를 그대로 현재 node의 gradient 값으로 전달해준다.
물론, node들을 group 지어서 하나의 gate로 만들 수도 있다. (*-1 -> exp -> +1 -> 1/x는 sigmoid gate로 묶는다.)
ADD gate : gradient distributor (앞 node의 gradient를 그대로 전해주니까=upstream의 gradient를 똑같이 여러 개에 전달해준다.)
Q. What is max gate?
A. add 되는 두 개의 node 중 더 큰 값을 가진 node에게 원래 add gate의 gradient를 전달하고, 더 작은 값을 가진 node에게는 0을 전달한다.
MAX gate : gradient router (Max의 인자가 여러개라면 Max pooling이라고 보면 된다.)
Q. What is a mul gate?
A. Gradient를 서로 바꿔준다.
MUL gate : gradient switcher (어감상 exchanger가 더 맞음.)
X = 3, Y = 4 이고 X노드 Y노드를 multiple 할 때 X에는 4 * upstream gradient가 되고, Y에는 3 * upstream gradient가 돼서 switcher라고 한다.
Gradient는 branch에서 더해진다! (SUM UP)
여기까지 x, y (input) 는 Scalar 일 때의 gradient를 살펴보았음.
이젠 X, y 가 vector인 경우를 살펴보도록 하겠다.
local gradient : Jacobian matrix (derivative of each element of upstream vector each element of 'now' vector)
Q. 만약 4096 dimension의 input vector가 f(x) = max(0, x) gate를 통과하여 4096 dimention의 output vector가 되었을 때 jacobian matrix의 사이즈는?
A. 4096 * 4096
Q. 위 상황과 그대로 size 100의 minibatch를 사용하면 Jacobian matrix의 사이즈는?
A. 409600 * 409600
Q. 첫 번째 질문 상황일 때 Jacobian matrix는 어떻게 생겼는가?
A. diagonal.
vector matrix에 대한 mul 연산 gradient :
matrix를 펼쳐서 각 원소에 어떤 상대 matrix의 원소가 곱해지는지 확인 후 각각 곱해주어야 한다.
Neural Networks
Linear score function : f=Wx
2-layer Neural Network : f=W2 max(0,W1x)
h1 = f(np.dot(W1, x) + b1)
out = np.dot(W2, h1) + b2
이런 식으로 계산된다.
Layer는 효율적인 vectorized code를 이용할 수 있는 특성을 가진다.
'학교공부 > Deep Learning' 카테고리의 다른 글
[Deep Learning] cs231n 6강 내용 정리 (1) (0) | 2017.10.15 |
---|---|
[Deep Learning] cs231n 5강 내용 정리 (1) (1) | 2017.10.15 |
[Deep Learning] cs231n 3강 내용 정리 (1) (1) | 2017.10.14 |
[Deep Learning] cs231n 2강 내용 정리 (2) (3) | 2017.10.14 |
[Deep Learning] CS231n "1X1 Convolution" 이란? (0) | 2017.10.10 |