손실 함수 미분의 어려움
- 우리는 손실 함수의 기울기를 0으로 만들어 나가는 경사 하강법을 공부했다.
- 하지만, 한 변수에 대한 손실 함수의 기울기를 구하는 것은 쉽지 않다
=> 한 변수는 여러 개의 뉴런의 값에 영향을 미친다
=> 그러므로 연쇄법칙을 이용해야 하고, 식이 아주 길어진다

Back Propagation
- 전파란 어떤 값이 신경망을 통해 이동하는 것을 뜻한다.
- 오차 역전파는 손실 값이 입력층까지 도달해 각 유닛의 미분값을 구하는 것
=> 이를 통해 복잡한 미분 계산을 점화식으로 대체한다.

- bottom up dp 와 같은 형식으로, 다음 node 의 미분값들을 계산하고 저장해 현재 node 의 미분값을 구한다.

곱셈 레이어 구현
- 두 개의 입력값을 받아 곱을 출력하는 레이어를 생각해보자
- 결과가 xy 일때, x에 대한 미분값은 y, y에 대한 미분값은 x다.
class MulLayer:
def __init__(self):
self.x = None
self.y = None
def forward(self, x, y):
self.x = x
self.y = y
out = x * y
return out
def backward(self, dout):
dx = dout * self.y
dy = dout * self.x
return dx, dy