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의 실장 방법~ 오옴사

좋은 웹페이지 즐겨찾기