-
밑바닥부터 시작하는 딥러닝3 (3) : 제 1 고지 미분 자동 계산Deep learning study/밑바닥 부터 시작하는 딥러닝3 2022. 9. 3. 00:27
3 단계 함수 연결
'3단계에서는 또 다른 함수를 구현하고 여러 함수를 조합해 계산할 수 있도록 함'
3.1 Exp 함수 구현
- 딥러닝 모듈 만들때 class DNN(nn.Module): 과 같은 구조
Class Exp(Function): def forward(self, x): return np.exp(x)
- Function 클래스 상속후 forward 메서드에서 원하는 계산 구현
3.2 함수 연결
- Function 클래스의 call 메서드는 입력과 출력이 모두 Variable 인스턴스이므로 자연스럽게 DeZero 함수들을 연이어 사용할 수 있었음 ⇒ self.data로 구현하지 않으면 다른 method에서 사용을 못함[확인 필요]
A = Square() B = Exp() C = Square() x = Variable(np.array(0.5)) a = A(x) b = B(a) c = C(b) print(y.data)
- 3개의 함수 A, B, C 연이어 적용
- x, a, b, y가 모두 Variable 인스턴스 ⇒ Function 클래스의 call 메서드의 입출력이 Variable 인스턴스로 통일되어 있는 덕분
- 위 함수 연결을 하나의 큰 함수로 볼 수 있는데 이처럼 여러 함수로 구성된 함수를 합성함수라고 함
'계산 그래프를 보여주는 이유 : 계산 그래프를 이용하면 각 변수에 대한 미분을 효율적으로 계산할 수 있기 때문 '
→ 변수별 미분을 계산하는 알고리즘 : 역전파!
'Deep learning study > 밑바닥 부터 시작하는 딥러닝3' 카테고리의 다른 글
밑바닥부터 시작하는 딥러닝3 (5) : 제 1 고지 미분 자동 계산 (0) 2022.09.03 밑바닥부터 시작하는 딥러닝3 (4) : 제 1 고지 미분 자동 계산 (0) 2022.09.03 밑바닥부터 시작하는 딥러닝3 (2) : 제 1 고지 미분 자동 계산 (0) 2022.09.03 밑바닥부터 시작하는 딥러닝3 (1) : 제 1 고지 미분 자동 계산 (0) 2022.09.03 밑바닥부터 시작하는 딥러닝3 (0) (0) 2022.09.03