이번글에서는 단순한 Layer 부터 한번 구현해 보겠습니다. 앞의 글에서본 계산 그래프의 곱셈 노드를 'MultiLayer', 덧셈 노드를 'AddLayer'라는 이름으로 구현합니다. 곱셈 계층 모든 계층은 forward()와 backward()라는 공통의 Method(인터페이스)를 갖도록 구현합니다. forward()는 Forward Propagation(순전파), backward()는 Back propagation(역전파)를 처리합니다. 한번 구현해 보겠습니다. # coding: utf-8 class MulLayer: def __init__(self): self.x = None self.y = None # x와 y를 인수라 받고 두 값을 곱해서 반환 def forward(self, x, y): sel..
Backpropagation (오차역전파법) Backpropagation(오차역전파법)은 Weight Parameter(가중치 매개변수)의 Gradient(기울기)를 효율적으로 계산하는 방법입니다. Backpropagation(오차역전파법)을 이해하는 방법은 2가지가 있습니다. 하나는 수식을 통해서, 다른 하나는 계산 그래프를 통한것입니다. 보통은 수식을 통하지만, 이번에는 계산 그래프로 사용해서 '시각적'으로 한번 이해해 보겠습니다. 계산 그래프 계산 과정을 그래프로 한번 나타내 보겠습니다. 여기서의 그래프는 잘아는 그래프 자료구조로, 복수의 Node, Edge로 표현됩니다. 한번 문제를 보면서 이해해 보겠습니다. Q.1 현빈 군은 슈퍼에서 1개에 100원인 사과를 2개 샀습니다. 이때 지불 금액을 구..