티스토리 뷰

반응형


이전 까지의 내용 

  • 이전 글에서는 MLP 를 통해 XOR Gate 를 풀어내는 과정을 살펴보았습니다. 이번 글에서는 MLP 가 어떻게 수많은 parameter 들을 학습하는 지에 대해서 살펴보겠습니다.

  • 전체 내용은 SlideShare 에서 한번에 보실 수 있으며 youtube 로도 볼 수 있습니다.



MLP 가 학습하는 방법 - 역전파

  • Perceptron 은 사람의 뉴런을 모방하여 만들어냈습니다. 연구자들은 MLP 의 수많은 parameter 들을 학습시키기 위해서 사람의 학습과정을 다시 한 번 모방했습니다.

  • 자유투를 연습하는 영상입니다. 맨 앞의 분은 학습을 마치셔서 던지는 족족 슛을 성공하지만 뒤 쪽의 분들은 실패하고 다시 던지는 과정을 반복하고 있습니다.

  • 던진 공이 골대의 좌측으로 가서 튕겨나오면 다시 던질 때는 조금 우측으로, 너무 낮게 던졌으면 조금 더 높게 던지면서 어떻게 던져야 슛을 성공하는지를 배워나갑니다.

  • 이것을 MLP 학습과정에 적용해보면 어떻게 될까요?

  • 만든 모델이 계산한 값이 정답보다 작으면 좀 더 크게 나올 수 있게 parameter 들을 수정하고, 정답보다 크면 좀 더 작게 나올 수 있게 parameter 들을 수정하는 과정. 다시말해 계산 값과 정답의 차이를 작게 만들어 나가는 과정이 학습과정이라고 할 수 있습니다. 이 과정을 수식으로 표현해보면 다음과 같습니다.



  • 새로운 w 는 기존 w 에서 수정값을 빼는 것입니다. 수정값은 lerning rate, gradient, cost function 으로 구성되어 있는데 하나하나 알아보겠습니다.



차이를 계산하는 방법 - Cost Function 

  • 차이를 계산하는데도 방법이 있습니다. 단순히 차이를 구할수도 있고, 차이들을 제곱해서 평균내는 방법도 있고, 더 복잡한 수식을 사용하여 구하는 방법도 있습니다만 본 포스트에서는 가장 많이 사용되는 2가지 Function 에 대해 살펴보겠습니다.


  • 가장 기본적인 오차함수 입니다. 최소제곱법이라고도 불리는 Minimum Squared Error (MSE) 는 가장 직관적이며 벌써 하고계신 방법일 수도 있습니다. 각 값들의 차이를 제곱해서 평균을 내는 방법입니다. 제곱하지 않으면 부호가 존재하기 때문에 차이가 상쇄될 수 있습니다. 오차를 제곱해서 합하면 이런 왜곡을 방지할 수 있고 더 큰 차이일 수록 더 크게 반영되는 장점 또한 가지고 있습니다.



  • 두 번째로 알아 볼 Cost Function 은 Averaged Cross Entropy Error 입니다. 이 함수는 분류 문제에 많이 사용하는 방법입니다. 분류 문제의 경우 정답이 One-hot 인코딩 되어 있는 경우가 대부분입니다. 

  • One-hot 인코딩이란 하나의 값만 1 이고 나머지는 0 인 표기방법인데, 예를 들어 개와 고양이를 표기할 때 개는 [ 1, 0 ] , 고양이는 [ 0, 1 ] 로 표기하는 방법입니다.

  • 따라서 정답은 0 과 1 로 구성되어 있고 계산값은 log 함수에 넣습니다. 만약 정답이 0 이라면 y*log(y_hat) 값은 0 일 것입니다. 또한 정답이 1 이라면 오차는 log (y_hat) 이고, 계산값인 y_hat 이 정답인 1에 가까워 질 수록 log(1) = 0 에 가까워 지기 때문에 전체 오차는 0으로 근접하는 것을 알 수 있습니다. log (0.5) 처럼 1보다 작은 수에 log 함수를 취하면 음수가 나오기 때문에 전체 식에 -1 을 곱해주는 것 또한 알 수 있습니다. 



Learning Rate & Gradient 


  • 학습을 나타내는 수식입니다. 한 번에 얼마나 학습할지를 정해주는 Learning Rate 와 Cost 를 줄이는 방향을 나타내는 Gradient 만 구한다면 학습을 할 수 있습니다.

  • Gradient 표기의 뜻은 총 Error 에 weight 가 얼마나 영향을 끼치는가 입니다. 이를 알기 위해선 기초적인 미분 방법을 아셔야 합니다. 웹이나 youtube 에 기초 미분이라고 검색해보시면 여러 강좌가 있으니 잘 맞는 강의를 수강하시면 좋을 것 같습니다.



새로운 Activation Function 

  • 학습을 위한 Cost Function 도 찾았고 어떻게 학습을 할 수 있는지에 대한 방법도 찾았습니다. 하지만 문제가 하나 있습니다. Perceptron 에서 사용하던 Step Function 은 Gradient 가 어느 위치에서든 0이라는 사실입니다.

  • 이를 해결하기 위해서 연구자들은 Step Function 과 동일하게 출력값이 0 과 1 사이에 있으면서 미분가능한 함수를 찾았습니다. 

  • 0 과 1 사이로 출력하면서 미분가능한 함수 Sigmoid Function 입니다. 이제 학습식를 풀기 위한 모든 준비를 마쳤습니다.

  • 다음 시간엔 이 식들과 함수들을 가지고 MLP 가 학습하는 과정을 한 단계씩 살펴보겠습니다.


다음글 - Part. 4 MLP 학습과정 : 역전파 (backpropagation)




부족한 블로그에 방문해 주셔서 감사합니다.

잘못된 부분이나 질문이 있으시면 

댓글로 말씀해주세요.


금방 확인하고 피드백 드리겠습니다.


좋은 하루 되세요. ^^


반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함