3.1 Exp 함수 구현
numpy.exp
- 함수는 주어진 입력 배열에 대한 자연 상수 e의 지수 값을 계산
- e는 오일러의 수 또는 네이피어의 상수로 약 2.71828의 값을 가짐
- numpy.exp는 통계, 머신러닝, 딥러닝에서는 로그 변환의 역변환, 활성화 함수, 소프트맥스 함수의 계산에 사용됨
특징
1. 벡터화 연산: 배열의 모든 요소에 대해 동시에 지수 연산 수행할 수 있어 코드가 간결해짐
2. 브로드캐스팅: 다른 크기의 배열 간 연산이 가능하도록 크기를 자동으로 조정
(추가) 넘파이의 배열 지수 함수들
exp( ) : exponential 값을 구해줌
exp2( ) : 배열값으로 2를 거듭제곱해줌
expm1( ) : exp(배열값) - 1
# Exp 함수 구현
class Exp(Function):
def forward(self, x):
return np.exp(x)
3.2 함수 연결
A = Square()
B = Exp()
C = Square()
x = Variable(np.array(0.5))
a = A(x)
b = B(a)
y = C(b)
print(y.data)
- x, a, b, y가 모두 Variable 인스턴스

- 위의 그림과 같이 여러 함수로 구성된 함수를 합성 함수라고 함
y = C(B(A(x))) 이런 느낌인데 책에 코드에서는 이해하기 쉬우라고 a, b, y라는 변수에 넣어준듯
# 전체 소스 코드
import numpy as np
class Variable:
def __init__(self, data):
self.data = data
class Function:
def __call__(self, input):
x = input.data
y = self.forward(x)
output = Variable(y)
return output
def forward(self, x):
raise NotImplementedError()
class Square(Function):
def forward(self, x):
return x ** 2
class Exp(Function):
def forward(self, x):
return np.exp(x)
A = Square()
B = Exp()
C = Square()
x = Variable(np.array(0.5))
a = A(x)
b = B(a)
y = C(b)
# y = C(B(A(x)))
print(y.data)
a = A(x)의 값을 뽑아내는 방식

b = B(a)의 값을 뽑아내는 방식

y= C(b)는 a = A(x)와 값만 다르고 동일한 방식으로 진행됨
'Study 공부할레나' 카테고리의 다른 글
| [스터디/밑시딥3] 제 1고지 미분 자동 계산_6.수동 역전파 (0) | 2023.08.13 |
|---|---|
| [스터디/밑시딥3] 제 1고지 미분 자동 계산_5.역전파 이론 (0) | 2023.08.13 |
| [스터디/밑시딥3] 제 1고지 미분 자동 계산_4.수치 미분 (0) | 2023.08.12 |
| [스터디/밑시딥3] 제 1고지 미분 자동 계산_2.변수를 낳는 함수 (0) | 2023.08.12 |
| [스터디/밑시딥3] 제 1고지 미분 자동 계산_1.상자로서의 변수 (0) | 2023.08.12 |