퍼셉트론(Perceptron) - 4 (인공지능의 2차 부흥)

    퍼셉트론을 포스팅 하면서, 인공지능의 시작과 함께 1차 인공지능의 겨울이 오는 것까지 설명을 하였다. 퍼셉트론은 인공지능의 시작이며, 현재 가장 핫하고 진보적인 기술인 딥러닝(Deep Learning)의 시초가 되는 기술이다. 즉 퍼셉트론을 제대로 이해할 수 있어야, 딥러닝을 제대로 이해할 수 있다고 말해도 과언이 아닌 것이다.


    인공지능의 한동안 거의 사라진 기술이다시피 하였다. 막대한 금액을 퍼부었지만, 별다른 성과를 내지 못했던 이 기술은 점차 연구를 중단하게 되고, 근근이 몇군데에서만 연구를 시작하게 된다.



    그러다가, 전문가 시스템(Expert System)이 발전하면서 인공지능의 관심도가 증가하게 된다. 사실 퍼셉트론이 처음 생겼을 때는 사용할 수 있는 분야가 없어서 쇠퇴하였지만, 전문가 시스템은 기업들이 적극적으로 사용하였고 실제 수백억원의 원가를 절감하는 사례도 나타나면서 신경망은 아니지만, 인공지능의 관심도는 급증하게 된다.


    이 전문가 시스템은 인공지능 발전의 중요한 한 획이므로, 다음 포스팅에 자세히 쓰기로 한다. 


    XOR의 문제를 극복하지 못한 퍼셉트론은 다층 퍼셉트론(Multi Layer Perceptron)이 나타나면서 새로운 국면에 진입하게 된다. 다층 퍼셉트론이란 퍼셉트론을 여러개를 합친 것을 의미한다.



    기존의 퍼셉트론은 위와 같은 input layer와 output layer의 2개로만 이루어진, 구조를 보여왔다. 이러한 구조는 XOR의 난제를 해결하지 못하지만, 퍼셉트론을 겹치면 얘기가 달라진다.


    아래는 진리표로 XOR을 극복하는 것을 보여준다.


    NAND 진리표


    OR 진리표


    XOR 진리표는 X1값과 X2값이 동일해야지, Y값이 1이 나오는 진리표라는 것을 잘 알고 있다. 그럼 위의 값을 AND로 합치면 어떻게 될까??


    우선, 위의 값을 좀 더 알기 쉽게 다시 표로 정리를 하자면 아래와 같이 볼 수 있다.


    X1과 X2를 NAND와 OR는 어떻게 해석하느냐이다. 여기서 왼쪽 2개의 값은 Input 값이고, 우측 2개의 값은 Output값인데 Output 값을 다시 Input 값으로 생각하고, 이 값들을 AND 값으로 던지면 어떻게 될까??



    위의 표를 보면 알겠지만, NAND값과 OR값을 AND로 연결하니, XOR의 값을 출력할 수 있게 되었다.

    이렇게 레이어가 하나 더 생긴 것을 그림으로 표현하면 아래와 같다.



    위의 그림이 이해가 가는가? 



      구성도 설명, (ex: x1=1, x2=1 일 경우)


    1. 상단의 y1은 NAND로 연산되기 때문에 x1, x2 모두 1은 0 값으로 연산

    2. 하단의 y2는 OR로 연산되기 때문에 x1, x2 모두 1은 1 값으로 연산

    3. 최종적으로 출력은 AND로 하기 때문에 y1는 0, y2는 1인 것은 결과가 0이다.


    이러한 퍼셉트론이 하나 이상 더 있는 것을 다층 퍼셉트론이라고 하고, XOR을 해결할 수 있게 되었다. 위의 구성도는 매우 단순한 다층 퍼셉트론이고, 이를 좀 더 복잡하게 보여주면 


    다층 퍼셉트론(Multi Layer Perceptron, MLP)


    위와 같은 많은 익숙한 모습들을 볼 수 있다. 단층 퍼셉트론부터가 사실 신경망의 시작이지만, 본격적으로 인공지능에 활용이 되기 시작하는 것이 바로 위의 모형인 다층 퍼셉트론(Multi Layer Perceptron)이 나오면서 이고, 이때부터 인공신경망(neural network, 혹은 artificial neural network ANN)이라는 말을 쓰게 된다.


    그러나 다시 앞길이 창창할 것만 같았던 다층 퍼셉트론도 한계를 보이게 되는데 당시의 컴퓨터 기술도 문제지만 SW적인 기술도 문제여서, Layer를 여러개 쌓기가 너무나도 힘들었고, 더욱 큰 것은 인공신경망에 대항하는 머신러닝의 기술들(SVM, RandomForest 등)이 등장하여 인공신경망의 관심도가 하락한 것도 이유이다.


    무거운 신경망 없이도, SVM이나 랜덤포레스트같은 기술을 사용하면 더 빠르고, 쉽고, 원인 분석도 찾을 수 있어서 다시 신경망 기술은 잊혀지고, 머신러닝이 신경망을 누르며 인공지능의 자리를 차지하게 된다. 


    한동안 머신러닝의 시대가 이어지고, 신경망은 쥐죽은 듯 살다가, 2006년 딥러닝(Deep Learning)이 발표되고 나서부터 다시 인공지능의 자리를 머신러닝 기술에게서 뺏어오게 된다. 현재까지 딥러닝은 인공지능의 기술중 가장 핫하고, 가장 빠른 발전을 해오고 있어서 현재는 딥러닝으로 어떤 아이디어를 먼저 만들어내느냐의 싸움이 일어나기도 한다.


    딥러닝의 가장 핫한 오픈소스


    얼마전(2015년)에는 구글이 텐서플로우(TensorFlow)라는 딥러닝 오픈소스를 공개하여, 텐서플로우로 대동단결이라는 말이 나오기도 했을 정도이다. 추후 텐서플로우에 대한 것은 강좌로 보여주고자 한다.



    퍼셉트론


    댓글

    Designed by JB FACTORY