더북(TheBook)

2 파이썬 코드로 실행하는 신경망

 

신경망을 실행하는 클래스는 초깃값의 지정, 업데이트 함수, 역전파 함수로 구성됩니다.

먼저 초깃값을 다음과 같이 지정합니다. 입력 값, 은닉층의 초깃값, 출력층의 초깃값, 바이어스 그리고 활성화 함수와 가중치 초깃값이 필요합니다.

# 신경망의 실행
class NeuralNetwork:

    # 초깃값 지정
    def __init__(self, num_x, num_yh, num_yo, bias=1):

        # 입력 값(num_x), 은닉층의 초깃값(num_yh), 출력층의 초깃값(num_yo), 바이어스
        self.num_x = num_x + bias # 바이어스는 1로 설정
        self.num_yh = num_yh
        self.num_yo = num_yo

        # 활성화 함수 초깃값
        self.activation_input = [1.0] * self.num_x
        self.activation_hidden = [1.0] * self.num_yh
        self.activation_out = [1.0] * self.num_yo

        # 가중치 입력 초깃값
        self.weight_in = makeMatrix(self.num_x, self.num_yh)
        for i in range(self.num_x):
            for j in range(self.num_yh):
                self.weight_in[i][j] = random.random()

        # 가중치 출력 초깃값
        self.weight_out = makeMatrix(self.num_yh, self.num_yo)
        for j in range(self.num_yh):
            for k in range(self.num_yo):
                self.weight_out[j][k] = random.random()

        # 모멘텀 SGD를 위한 이전 가중치 초깃값
        self.gradient_in = makeMatrix(self.num_x, self.num_yh)
        self.gradient_out = makeMatrix(self.num_yh, self.num_yo)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.