Chainer를 이용한 간단한 신경망 구현 ~ 모델 설명편 ~

지난번 에서 심층 학습 프레임 워크인 Chainer를 사용하여 실제로 신경망을 구축하는 기사를 쓰고 있습니다.
이번에는
1. 데이터 준비
2. 모델 설명
3. 최적화 알고리즘 설정
4. 학습
5. 결과 출력


2. 모델 설명

에 대해 씁니다.

구축할 신경망



지난번 쓴대로 이번에 사용하는 Iris 데이터는 입력이 4차원이고 그 출력이 3차원입니다.
매우 간단하게 생각하면 네트워크는 아래 그림과 같이 구축 할 수 있습니다.



그러나 구축해야 할 것은 중간층을 가진 신경망입니다. 입력과 출력 사이에 레이어가 필요합니다.
사례를 단순화하고 중간층을 하나 추가합니다. 노드 수는 6 개로 가정합니다.

그러면 네트워크는 다음 그림과 같습니다.


다시 말하지만, Chainer의 기본 객체에 대해 ~links편~
y = wx + b

라는 선형으로 나타냅니다. 즉, 입력 레이어와 중간 레이어에 각각 바이어스 b가 필요합니다.
그것을 고려한 그림은 다음과 같습니다.



Iris 모델



우리는 Chain 객체를 사용하여 Iris의 신경망 모델을 표현합니다.
class IrisChain(Chain):
    def __init__():
        super(IrisChain, self).__init__(
             l1 = L.Linear(4, 6),
             l2 = L.Linear(6, 3),
    )

    def __call__(self, x, y):
        return F.mean_squared_error(self.fwd(x), y)

    def fwd(self, x):
        h1 = F.sigmoid(self.l1(x))
        h2 = self.l2(h1)
        return h2

자세한 설명은 여기 문서를 참조하십시오.
입력 레이어 : 4
중간층:6
출력 층:3
그래서,
4 → 6
l1 = L.Linear(4, 6)

6 → 3
l2 = L.Linear(6, 4)

라고 표현하고 있습니다.

이번은 여기까지입니다.
다음은이 모델에서 얻은 오류의 최소값을 찾는 최적화에 대해 설명합니다.

참고



야마시타 타카요시
일러스트에서 알 수있는 딥 러닝 코단샤
신나 히로유키
Chainer에 의한 실천 심층 학습~복잡한 NN의 실장 방법~ 오옴사

좋은 웹페이지 즐겨찾기