머신러닝 다시 시작하기 - 4
머신러닝 다시 시작하기-4
참고 게시글
머신러닝에 대한 간략한 요약을 1, 2, 3을 통해 해보았다. 머신러닝 중 요즘 핫해진 뉴럴 네트워크를 공부해보도록 하겠다. 뉴럴 네트워크가 어떤 필요에 의해 탄생했는 지는 각설하고 바로 간단한 개념으로 들어가겠다. 어떤 방향으로 나아갈 지 고민이다. 머신러닝은 모델링, 학습, 평가 단계로 진행했지만 딥러닝은 아래와 같이 간단하게 진행해보겠다.
- Modeling
- Cost function
- propagation (foward / back)
참고 게시글의 내용과 많이 겹치겠지만 좀 더 복잡한 식이 나올 예정이다.
1. Modeling
딥러닝의 모델링은 필자도 자세하게 모르겠지만 잘못 생각하고 있다가 이번에 새롭게 알게 된 내용을 정리하고자 한다. 기존의 여러 강의를 듣거나 독학을 할 경우 충분히 헷갈릴 수 있는 부분이기 때문에 도움이 되길 바란다.
(출처 : https://i.ytimg.com/vi/n7DNueHGkqE/maxresdefault.jpg)
1-1) 각 노드는 값을 가진다.
자세히 공부하기 전에는 각 노드의 값은 알 수 없는 줄 알았다. Input Layer와 Output Layer의 값만 보고 Hidden Layer의 값은 알 수 없는 채 정확도만 알 수 있는 줄 알고 있었다.
하지만 각 Hidden Layer의 노드는 의 결과값을 갖고 있다. 그리고 Layers 사이에 검은색 선마다 값을 갖고 있는데 흔히 아는 가중치 값을 갖고 있다.
위 식에 대해 간단히 얘기해보자면, 에서 1은 그 레이어의 첫번째 노드라는 의미고, 2는 두번째 레이어라는 뜻이다. 즉, 두 번째 노드의 첫 번째 노드의 값이라는 뜻이다.
에서 (1)은 뉴럴 네트워크에서 위 그림 중 선들이 의미하는 것은 가중치 값들인데 그 중 첫번째 가중치의 행렬을 뜻한다. 그 행렬 중 두번째 레이어 중 첫 번째(=1) 노드와 첫번째 레이어 중 첫번째(=0) 노드가 연결된 선의 가중치 값을 의미한다. 첫 번째가 의미하는 값이 Input은 0이고 Hidden은 1로 왜 다르냐면, Hidden Layers 부터는 값은 주로 Bias 값으로 처리하기 때문이다.
마지막으로 g 함수는 Activation Function을 의미한다. 이건 나중에 설명하겠다.
1-2) 은닉층의 갯수
왜 Hidden Layer의 갯수를 늘리면 정확도가 증가하지 않는가? Neural Network Faq 문서에 의하면, 은닉층의 갯수는 2개 초과하면서 정확도가 점점 내려간다고 한다. 그 이유는 은닉층의 갯수가 많아질 수록 local minimum 문제에서 빠져나오기 힘들다고 추정할 뿐이다. 아직 미지의 구간이다.
그리고 은닉층 노드의 갯수는 동일하게 하는 것이 정석인듯 하다. 즉 위 그림처럼 1 은닉층과 2 은닉층의 노드 갯수가 동일하다.
1-3) 활성화 함수
레이어에서 레이어로 나아갈 때 각 값은 활성화 함수를 지난다. 정확히 얘기하면 Input 값에서 가중치 w(=) 값을 곱한 값을 z라 하고 위에서 적은 노드의 값 로 계산되어 진다. g 함수가 활성화 함수이다.
위 설명을 수식으로 표현하면 아래와 같다.
왜 굳이 활성화함수를 추가하는가? 선형함수인 h(x)=cx를 활성화함수로 사용한 3층 네트워크를 떠올려 보자. 이를 식으로 나타내면 y(x)=h(h(h(x)))가 된다. 이는 실은 y(x)=ax와 똑같은 식이다. a=c3이라고만 하면 끝이죠. 즉, 은닉층이 없는 네트워크로 표현할 수 있다. 뉴럴네트워크에서 층을 쌓는 혜택을 얻고 싶다면 활성화함수로는 반드시 비선형 함수를 사용해야 한다.
댓글
댓글 쓰기