논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

UFLDL Tutorial 9. Supervised Neural Networks – Exercise: Supervised Neural Networks

Supervised Neural Networks - Exercise: Supervised Neural Networks

이 연습문제에서는 MNIST 데이터셋의 10개 숫자를 분류하는 신경망 분류기를 훈련시킬 것입니다. 신경망의 출력 유닛은 이전 Softmax regression 연습문제에서 풀었던 것과 완전히 동일한 함수를 사용합니다. Softmax regression 함수 한개만으로는 언더피팅의 예제에서처럼 트레이닝 셋에 잘 피팅되지 않습니다. 반면 신경망은 낮은 편향(bias)를 가질 뿐더러 트레이닝 셋에 잘 피팅됩니다. 여기서는 앞에서 살펴본 다층 신경망에서의 역전파 알고리즘을 이용하여 제곱-에러 손실 함수(squared error loss function)에 대한 망 내의 모든 파라미터의 그래디언트를 계산하고자 합니다. Cost function은 squared error function 대신 softmax regression (cross entropy)에서와 같은 함수를 사용하고자 합니다.

Cost function는 softmax regression의 cost function과 거의 비슷합니다. 다만 입력 데이터 $x$로부터 직접 예측을 하는 대신, softmax 함수의 입력으로 마지막 은닉 층까지 거쳐나온 hypothesis $h_{W, b} (x)$를 사용합니다. 이제 loss function은 다음과 같습니다.

$$\begin{align} J(\theta) = - \left[ \sum_{i=1}^{m} \sum_{k=1}^{K} 1\left\{y^{(i)} = k\right\} \log \frac{\exp(\theta^{(k)\top} h_{W,b}(x^{(i)}))}{\sum_{j=1}^K \exp(\theta^{(j)\top} h_{W,b}(x)^{(i)}))}\right] \end{align}$$

차이점은 출력 층의 에러항 $(\delta^{(n_l)})$입니다. Cross entropy cost에 의해 다음과 같습니다.

$$\begin{align} \delta^{(n_l)} = - \sum_{i=1}^{m}{ \left[ \left( 1\{ y^{(i)} = k\} - P(y^{(i)} = k | x^{(i)}; \theta) \right) \right] } \end{align}$$

이 항을 이용하여 파라미터의 그래디언트를 계산하기 위한 역전파 알고리즘 전체를 구현해야 합니다.

주어진 코드에서 신경망의 전방 전파를 수행하는 cost function을 구현한 다음, 그래디언트를 계산하면 됩니다. 전과 마찬가지로 그래디언트 기반의 최적화를 위하여 minFunc 최적화 패키지를 사용할 것입니다. 그래디언트 계산을 수치적으로 검사하는 것도 빠지면 안됩니다. 구현한 것들이 여러 은닉 층을 가진 신경망을 제대로 훈련시켜야 하기 때문입니다. 구현을 하게 되면서 다음의 마일스톤을 따르도록 합니다.

  • 하나의 은닉층에서 알고리즘을 구현하고 그래디언트를 검사합니다. 그래디언트 검사를 할 때 트레이닝 데이터 행렬의 일부만을 사용하여 입력 차원과 샘플 숫자를 줄여서 사용하여도 됩니다. 비슷하게 그래디언트 검사할 때에도 적은 수의 은닉 유닛을 사용하여 계산 시간을 줄일 수 있습니다.
  • 2개 은닉층에 대하여 그래디언트 검사를 구현합니다.
  • 여러 망 구조에 대해서 훈련시키고 테스트를 수행해 봅니다. 256개의 은닉 유닛으로 이루어진 하나의 은닉층에서 100%의 훈련 셋 결과가 나와야 합니다. 신경망이 많은 파라미터를 가지기 때문에 오버피팅의 위험성을 가지고 있기 때문입니다. 큰 크기의 여러 은닉 층과 weight decay 페널티로 실험을 하다보면 어떤 종류의 구조가 가장 좋은 성능을 내는지 알 수 있을 것입니다. 한개의 은닉 층보다 여러 은닉층으로 구성된 신경망이 더 잘 작동하는지 확인할 수 있어야 합니다.
  • (선택) 코드를 은닉 유닛의 nonlinearity (시그모이드, tanh, rectified linear)를 위하여 여러 선택을 할 수 있도록 구현해보세요.

Tags:
Add a Comment Trackback