기타/기타 잡다한 것들

[신경망] 파이썬으로 인공 신경망 만들기 2

제주도소년 2018. 9. 27. 21:30

신경망 초기화 하기


입력계층의 노드, 은닉 계층의 노드, 출력 계층의 노드의 수를 정해야 한다.

이를 통해 신경망의 형태와 크기를 정의하게 되는 것이다.


신경망 내에 직접 정의하기보다는 신경망의 객체가 생성될 때 매개변수를 이용해 정의한다.

그래야 다른 크기를 가지는 새로운 신경망도 때에 따라 손쉽게 생성할 수 있기 때문이다.


초기화에서 또 한가지 잊지 말아야 할 것은 학습률이다.

학습률은 새로운 신경망을 만들 때 매우 중요한 매개변수이다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 신경망 클래스의 정의
class neuralNetwork:
    
    # 신경망 초기화
    def __init__(self, inputnodes, hiddennodes, outputnodes, learningrate):
        # 입력, 은닉, 출력 계층의 노드 개수 설정
        self.inodes = inputnodes
        self.hnodes = hiddennodes
        self.onodes = outputnodes
        
        # 학습률
        self.lr = learningrate
    
    # 신경망 학습
    def train():
        pass
    
    # 신경망에 질의
    def query():
        pass
cs



신경망 객체 생성



1
2
3
4
5
6
7
8
9
10
# 입력, 은닉, 출력 노드의 수
input_nodes = 3
hidden_nodes = 3
output_nodes = 3
 
# 학습률 0.3
learning_rate = 0.3
 
# 인스턴스 생성
= neuralNetwork(input_nodes, hidden_nodes, output_nodes, learning_rate)
cs

'


다음 순서는 신경망 객체에 입력, 은닉, 출력 계층의 노드 수를 알려줬으나 어떠한 답을 얻지 못하였으니

어떠한 답을 얻는게 다음 포스트에서 할 일