Extreme Learning Machine(극학습기계)

공대생의 팁 2019.05.15 02:57


 인공지능 분야가 발전하면서 다양한 구조의 알고리즘들이 발굴되고 있으며 이는 조금씩 발전되고 있습니다. 물론 각 알고리즘들이 제시하는 다양한 제안들이 하나둘씩 쌓여가다 보면 언젠가는 알파고를 뛰어넘는 새로운 알고리즘이 나타나리라 기대합니다.

 이번 포스팅에서는 2006년 난양공대(NTU)의 Guang-Bin Huang이 투고한 2019년 5월 15일 현재 피인용수 7044회의 논문인 Extreme Learning machine에 대해 보도록 하겠습니다.



 Neural Network(인공신경망)의 구조는 거의 대부분이 다음과 같은 모습을 가지고 있습니다.


 위의 그림에서 x는 input, b는 bias, w는 input layer와 hidden layer를 연결해주는 weight vector, N는 hidden layer의 node, β는 hidden layer와 output layer를 이어주는 weight vector, t는 output을 의미합니다. 위 그림의 neural network를 식으로 다음과 같이 나타낼 수 있습니다.



 이 때 함수 g()는 무한으로 미분이 가능한 함수로 흔히 알려진 삼각함수 sin() 혹은 cos()와 자연함수 e^x가 있습니다.


 위 구조의 Neural Network를 기존의 방식대로 학습을 시킬때는 다음과 같은 방법으로 흔히 사용합니다.



 흔히 사용되는 알고리즘은 forward propagation으로 계산을 하여 기존의 출력값과 비교하여 오차를 구한 후 back propagation 과정을 통해 weight값을 조정합니다. 가장 보편적으로 사용되는 알고리즘이지만 다음과 같은 이슈가 존재합니다.


 1) learning rate인 η의 값이 너무 작으면 학습 속도가 매우 느려진다. 그러나 η의 값이 너무 클 경우 학습 속도가 불안전해 지면서 심할 경우 값이 수렴되지 않고 발산하는 경우가 발생한다.

 2) back propagation을 하는 과정에서 값이 local minima에 빠질 가능성이 존재한다. 이 경우 global minimum에 도달하지 못하고 local minima에 갇혀버릴 수 있다.

 3) back propagation에 의해 오버트래이닝이 되면 over-fitting이 되어 학습 결과물이 더 좋아지지 않을 가능성이 있다.

 4) 위의 알고리즘 자체에서 가지고 있는 핵심 수단인 gradient-base 학습은 시간이 매우 많이 걸리는 방법이다.


 가장 많이 사용되는 gradient-base 알고리즘의 단점들을 좀 더 효율적인 방법을 찾아보기 위해 만들어진 알고리즘이 이번에 소개하는 Extreme Learning Machine입니다.


 그럼 위에서 보았떤 Neural Network의 구조를 다시 한 번 보도록 하겠습니다.



 Neural Network의 입력에서 hidden layer까지의 과정을 H로 가정하고 이를 식으로 나타내면 다음과 같이 나타낼 수 있습니다.



이 때 위의 식에서 나타낸 부분들은 아래와 같이 나타낼 수 있습니다. 





 위에서 주어진 행렬 H를 사용하여 최적의 값을 찾기 위해 다음과 같은 식으로 나타낼 수 있습니다.



 기존의 출력값 T를 행렬 H와 β의 최소값을 찾아 결과값이 최소로 나오게 한다면 우리는 최적의 weight vector를 얻을 수 있습니다. 위 식에서 β의 최소값은 다음과 같은 식으로 찾을 수 있겠습니다.



 이 식을 사용함으로서 기존의 알고리즘에서 사용하던 back propagation 과정을 거치지 않고 적합한 값을 빠르게 찾을 수 있는 방법입니다. 여기서 †는 Dagger(칼표)로서 Moore-Penrose generalized inverse(Pseudo inverse, 의사역행렬)로서 행렬 H가 정사각행렬이 아닐 때 유사 역행렬을 구하는 방식입니다. pseudo inverse에 대해 자세히 알고 싶으신 분들께서는 아래의 사이트를 참조 하시면 큰 도움이 될 것입니다.


https://darkpgmr.tistory.com/108


 이러한 방식의 Extreme Learning Machine을 좀 더 발전시켜 auto encoding을 사용하는 OS-ELM알고리즘과 OR-ELM알고리즘으로 발전하게 됩니다. OR-ELM의 알고리즘에 대해 다루는 사이트를 소개하면서 글을 마치도록 하겠습니다.


Online Recurrent Extreme Learning Machine

https://github.com/chickenbestlover/Online-Recurrent-Extreme-Learning-Machine




출저 : HUANG, Guang-Bin; ZHU, Qin-Yu; SIEW, Chee-Kheong. Extreme learning machine: theory and applications. Neurocomputing, 2006, 70.1-3: 489-501

https://www.sciencedirect.com/science/article/pii/S0925231206000385