ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • weka - 신경망 이론 개념 이해하기 - perceptron
    프로그래밍/자연어처리 2016. 5. 1. 12:52
    반응형






    일단 웨카 실습으로 가기전에 간단하게 신경망 이론을 복습해보자. 





    신경망 이론은 신경세포를 모델링 하여 생성된 기계학습 방법으로 

    신경망은 신경세포를 모델링한 뉴론(neuron)이라는 단순한 unit들이 상호 연결연결된 망을 의미한다. 







    더 자세한 설명을 위해 아래에 책의 일부분을 발췌하였다. 

     (참고: 패턴인식 개론: MATLAB 실습을 통한 입체적 학습) 




    생물학적인 신경세포는 수상돌기(dendrite), 축색돌기(axon) 그리고 세포체(cell body or soma)로 이루어져 있는데,

    수상돌기는 인접 뉴런으로부터 신경 흥분이 세포체로 입력되는 통로이며

    축색돌기는 가늘고 긴 신경섬유로 신경 흥분을 전달하는 역할을 한다. 

    세포체는 일정 시간동안 입력된 자격을 세포체 내에서 가중(weighted summation)되고 

    그 값이 임계치(역치)이상이 되면 뉴런이 활성화 하여 축색돌기로 자극이 전달되는 메커니즘을 갖는다. 


    이러한 생물학적인 신경세포에서 수장돌기는 입력 유닛으로 설정하고, 

    세포체의 가중합은 각 유닛과 연결된 연결 가중치의 곱의 합으로 계산되고, 

    이것이 활성화 함수라고 하는 함수에 의하여 출력 값을 얻도록 모델링 될 수 있다. 






    위 그림이 전통적인 신경세포의 모습이고 

    아래 그림이 모델링 된 신경세포의 모습이다.


    위 개념을 간단히 식으로 표현하면 아래와 같다. (참고: 웨카 동영상 강의 & 구글링해서 찾은 이미지) 





    각 test 인스턴스 하나당 속성들의 linear combination으로 표현되며 

    훈련을 거치면 각 속성들의 weight를 구할 수 있다.


    이 식에서 w0는 bias 또는 threshold로 출력값으로 클래스를 구분할 때 기준점의 역할을 한다. 

    이 변수 역시 훈련을 통해 조정된다. 



    이러한 linear combination으로 나온 x값으로 클래스를 구분하기 위해

    사용하는 함수를 activation functions이라고 하는데 

    위 예시에는 단순하게 x값이 0을 넘으면 class 1 아니면 class 2이라는 

    단순한 step function을 사용하였다. 


    그러나 신경망에는 사용할 수 있는 아래와 같은 다양한 활성 함수들이 있다.



    출처: http://www.slideshare.net/SungJuKim2/multi-layer-perceptron-back-propagation





    출처:https://bi.snu.ac.kr/Courses/4ai15s/slides/6-Deep_Learning.pdf



    기계학습으로 클래스 예측을 한다는 것은 간단하게 말하자면 

    인스턴스들의 클래스를 구분짓는 선(decision boundary) 을 찾는 것이다. 


    perceptron은 linear combination을 f(x)로 사용하기 때문에 

    아래와 같이 클래스가 뒤섞여 있을 때도 직선인 decision boundary를 사용할 수 밖에 없다는 한계가 존재한다. 









     

    여기서 신경망의 역사를 잠깐 정리해보면

    퍼셉트론은 1957년에 나온 오래된 알고리즘으로 

    등장과 동시에 대중들의 관심을 받았으나 

    간단한 XOR문제조차 해결하지 못한다는 것이 

    1970년대에 밝혀지면서 퍼셉트론의 인기는 급격히 쇠락하고 만다. 



    그러나 1980대에 perceptron의 약점을 보완한 multilayer perceptron(MLP)이 나오면서 

    한동안 다시 새로운 부흥기를 맞는다. 


    MLP는 여러 개의 layer를 쌓음으로써 nonlinear decision boundaries를 만들 수 있었고 

    여러 개의 layer로 인해 생기는 여러 개의 파라미터의 tuning을 back propagation을 통해 해결하였다. 







    그러나 파라미터 튜닝에 많은 훈련 시간이 걸리면서

    성능은 커널 기반의 다른 학습 알고리즘에 밀리면서 다시 주류에서 한동안 밀려나다  

    최근에 위 단점들을 보안한 딥러닝으로 다시 핫하게 떠오르고 있다. 

    (뭔가 이정도면 죽어도 죽지않는듯한 -_-) 




    다음에는 MLP와 딥러닝에 관련해서 이어 포스팅하겠다. 









     





      

    728x90
    반응형
Designed by Tistory.