카테고리 없음

MLP Optimization with GA : XOR Problem

杉山空 2023. 9. 19. 08:28
728x90

INTRODUCTION

 MLP를 최적화하기 위한 방법으로 가장 잘 알려진 방법은 loss function(or objective function)의 미분을 이용한 함수 최적화 방법과 backpropagation을 이용하는 것이다. 다만, 이런 방법 외에도 GA(Genetic Algorithm)을 이용하여 MLP를 최적화 할 수 있다. - 물론, 이 또한 잘 알려진 방법이다 - 본문에서는 GA를 이용한 간단한 MLP 최적화에 관해 다룰 것이다. 또한, MLP를 이용하는 가장 유명한 예시(or 문제)인 XOR problem에 대해 다룬다.

 

MLP Optimization with GA

  어떤 문제를 GA를 통해 해결하기 위해서는 유전자가 어떤 의미를 가지는지 정해주는 것이 가장 중요하다. 필자는 퍼셉트론의 가중치 하나가 5개의 유전자를 가지며, 이중 4개는 가중치의 절댓값을 형성하고, 나머지 하나는 부호를 결정하도록 설정했다.

  당연하게도, MLP의 층별로, 혹은 퍼셉트론 별로 최적화를 해주면 안된다. MLP를 구성하는 모든 퍼셉트론을 나타내는 유전자를 한 번에 묶어서 하나의 개체로 보아야 한다. 그리고 GA를 통해 이런 개체중 우수한(적합한) 것을 선별한다. 개체들 중 우수한 것은 당연히 loss가 작은 것이다. 필자는 loss function으로 단순히 MSE를 이용했다.

 

XOR Problem

  본문에서는 XOR problem에 관한 자세한 설명은 하지 않겠다.

간단히 설명하자면, 하나의 퍼셉트론은 보통 하나의 선을 긋는다. 때문에 두 집단이 하나의 선으로 분류되기 힘든 상황이 있을 수 있다. 이런 대표적인 상황이 XOR이다. XOR problem을 해결하기 위해 MLP가 개발되었으며, MLP를 최적화하기 위한 backpropagation은 조금 뒤에 고안되었다. - GA는 MLP보다 앞서 알려져 있었다 -

 

Code

https://github.com/Sora-Sugiyama/GA/tree/main

728x90