더북(TheBook)

그 밖에 환경 변수에는 활성화 함수와 초기 가중치도 지정되어야 합니다. 다음 코드는 활성화 함수를 지정하는 예입니다. 시그모이드 함수와 하이퍼볼릭 탄젠트 함수를 각각 따로 만들어 줍니다. 함수마다 미분 적용 여부를 결정할 수 있게 합니다. 하이퍼볼릭 탄젠트 함수는 미분할 경우 1 - (출력의 제곱)입니다(9.1절 참조). 이와 함께 가중치가 들어갈 배열을 만들어 줍니다.

# 활성화 함수 - 1. 시그모이드
# 미분할 때와 아닐 때 각각의 값
def sigmoid(x, derivative=False):
    if (derivative==True):
        return x * (1 - x)
    return 1 / (1 + np.exp(-x))

# 활성화 함수 - 2. tanh
# tanh 함수의 미분은 1 - (활성화 함수 출력의 제곱)
def tanh(x, derivative=False):
    if (derivative==True):
        return 1 - x ** 2
    return np.tanh(x)

# 가중치 배열을 만드는 함수
def makeMatrix(i, j, fill=0.0):
    mat = []
    for i in range(i):
        mat.append([fill] * j)
    return mat
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.