반응형
Backpropagation
- backpropagation
- 가중치 매개변수의 기울기를 효율적으로 계산하는 방법
- 덧셈 노드의 backpropagation
- 값을 그대로 다음 노드로 전달함
- 곱셈 노드의 backpropagation
- 노드에 연결된 다른 노드값을 곱함
activation function의 forward/backward
- ReLU
class Relu:
def __init__(self):
self.mask = None
def forward(self, x):
self.mask = (x <= 0)
out = x.copy()
out[self.mask] = 0
return out
def backward(self, dout):
dout[self.mask] = 0
dx = dout
return dx
- Sigmoid
class Sigmoid:
def __init__(self):
self.out = None
def forward(self, x):
out = 1 / (1 + np.exp(-x))
self.out = out
return out
def backward(self, dout):
dx = dout * (1.0 - self.out) * self.out
return dx
- Softmax
class SoftmaxWithLoss:
def __init__(self):
self.loss = None #손실
self.y = None #softmax의 출력
self.t = None #정답 레이블(원-핫 벡터)
def forward(self, x, t):
self.t = t
self.y = softmax(x)
self.loss = cross_entropy_error(self.y, self.t)
return self.loss
def backward(self, dout=1):
batch_size = self.t.shape[0]
dx = (self.y - self.t) / batch_size
return dx
반응형
'AI > DeepLearning' 카테고리의 다른 글
[밑바닥부터 시작하는 딥러닝1] 밑딥 스터디 CH7 정리 (1) | 2024.07.25 |
---|---|
[밑바닥부터 시작하는 딥러닝1] 밑딥 스터디 CH6 정리 (4) | 2024.07.25 |
[밑바닥부터 시작하는 딥러닝1] 밑딥 스터디 CH4 정리 (1) | 2024.07.24 |
[밑바닥부터 시작하는 딥러닝1] 밑딥 스터디 CH3 정리 (1) | 2024.07.24 |
딥러닝 개념정리 (0) | 2023.04.13 |