[풀잎스쿨] CS231n 4강 (2) Neural Networks

데이터 여행자·2021년 1월 24일
0
post-custom-banner
  • 스탠퍼드 대학의 CS231n: Convolutional Neural Networks for Visual Recognition
    본 포스팅은 CS231n의 내용을 정리한 것이다. 이곳에 출처가 따로 언급되지 않은 이미지들은 스탠퍼드 대학에서 제공하는 강의 슬라이드에서 가지고 왔다.
    [CS231n] http://cs231n.stanford.edu/2017/syllabus.html

Neural Networks(신경망)


이전까지는 선형함수만을 다루었다. 그러나 이제는 n-layer Neural Network를 다룰 것이다. n층 신경망은 비선형함수인 활성함수(activation function)를 사용한다. 예로는 2층 신경망에서 활성함수인 max함수(ReLU)를 사용한 것을 보여준다.

선형 함수의 경우(non-parametric approach)는 위의 그림과 같이 한 템플릿에 1개의 특징(feature)만을 가지고 있다. 그러나 다중 레이어 네트워크(parametric approach)에서는 1개의 히든 레이어(은닉층)에 여러 개의 노드가 존재한다. 각각의 히든 노드가 1개의 특징을 담당하게 되므로 여러 개의 노드가 존재하면 여러 개의 특징을 표현할 수 있다. 여기서 노드의 개수는 hyperparameter이므로 실험에 따라 결정할 수 있다. CIFAR-10을 예로 들면, 3072개의 픽셀을 가진 입력값 x는 가중치 w1w_1과 결합되어 히든 레이어 h에서 100개의 노드, 즉 100개의 특징을 가지게 된다. 100개의 특징은 또 가중치 w2w_2와 결합되어 최종적인 score가 나와 10개의 클래스로 분류된다.

딥러닝은 3층 이상의 레이어를 쌓는 것을 말한다.


인간의 뇌에 있는 뉴런을 그림으로 그리면 위와 같다. 수상돌기(dendrite)에서 신호를 받으면 세포체(cell body)에서 신호를 종합하여 축삭(axon)을 통해 다른 뉴런으로 신호를 이동시킨다. 이는 각 computational node가 하는 일과 비슷하다. 입력값(신호)인 x0,x1,x2x_0, x_1, x_2가 들어오면 세포체에서 가중치와 입력값을 더한 값을 서로 결합하고, 활성함수에 의해 비선형 함수로 만든 후, 다음 노드에 전달한다. sigmoid activation function을 하나의 예로 보여주고 있다.

위의 그림을 코드로 구현하면 다음과 같다.

신경망이 인간의 뇌와 비슷하게 작동한다고 해도 인간의 뇌와는 다르다. 인간의 뇌는 신경망보다 더 복잡하기 때문이다.

활성함수의 다양한 예가 있으며, ReLU를 많이 사용한다.

다음은 신경망의 Architecture를 그림으로 표현한 것이다. 왼쪽의 그림은 2층 신경망(2-layer Neural Net or 1-hidden-layer Neural Net)이며, 각 노드가 모두 연결된 "Fully-connected(FC)" layers이다. 행렬곱을 통해 뉴런의 값을 계산할 수 있다.

post-custom-banner

0개의 댓글