안녕하세요, 코딩하는 물리학자입니다.
저번 글에서 Meta-heuristic Algorithm이 무엇인지에 관하여 알아보았으니 본 게시글부터 어떤 Algorithm들이 있는지에 대해 살펴보고자 합니다.
특히 이번 글에서는 많이 알려진 Meta-heuristic Algorithm 중 하나인 Simulated Annealing(SA)에 대해 알아보겠습니다.
Local Search?
Simulated Annealing은 Local search 방법 중 하나입니다. Local search 방법은 다음과 같은 특징을 가지고 있습니다.
Single solution으로부터 시작한다.
현재 solution 주변 neighbour를 조사하여, 만일 현재보다 낫다면 그 neighbour로 state를 옮긴다.
Simulated Annealing?
Simulated Annealing이 무엇인지, 대체 어떻게 나온 Algorithm인지 이해하기 위해 Annealing이 뭔지에 대한 느낌을 잡아봅시다.
- Simulated Annealing...?
SA에 대해 구글에 검색해보면 이에 대한 번역으로 '담금질 기법'이란 용어가 함께 나오는 것을 볼 수 있습니다. 잉? 갑자기 웬 담금질? 바로 이 Simulated Annealing이 금속의 냉각에서 아이디어를 얻어 만들어진 Algorithm이기 때문입니다. '담금질'이란, 고온의 금속을 냉각시켜 굳히는 과정을 말하는데요. 높은 온도의 금속이 식으며 단단해지는 이 과정에서 원자들은 자신의 Energy가 더 작아지는 State를 찾아가게 됩니다.
- 온도가 내려감에 따라 더 낮은 Energy state를 찾아 움직인다.
위의 그림은 이 과정을 꽤 잘 나타내주고 있습니다. 위의 세부그림(공이 그려진 작은 그림들)의 세로축은 Energy (Objective function), 가로축은 variable이고 작은 공들은 particle들이라고 생각해봅시다. 시간이 지나며 온도가 낮아짐에 따라 particle들은 낮은 Energy를 갖는 state를 찾아 움직이고, 시간이 충분히 지나면 Local Minima에 안착하게 됩니다.
즉, SA는 고온의 금속이 식으며 Energy를 최소화하는 것과 같이, 주어진 Objective Function을 최소화하는 state를 구할 수 있지 않을까? 하는 아이디어에서 나온 Algorithm입니다. 이와 비슷한 방법으로 Metropolis-Hastings Algorithm이 있는데 이는 추후 Bayesian Inference 항목에서 기회가 된다면 소개해드리겠습니다.
Pseudo Code
자, Simulated Annealing이 '담금질'의 원리를 이용하여 더 낮은 objective function 값을 얻겠다는 것은 알겠는데, 어떻게 이를 적용하겠다는 것일까요? 아래의 Pseudo Code와 함께 알아보겠습니다.
- (좌) Simulated Annealing (우) Acceptance ratio
※ 덤 !
1) 담금질을 한다고 금속의 원자들이 최소의 Energy를 갖는 State(Global Minimum)로 가는 것은 아닙니다. 온도를 매우 서서히 조심스럽게 낮추며 최대한 낮은 Local Minimum에 도달하도록 해야 합니다. 드라마나 소설에서 보면 좋은 무기를 만들기 위해 대장장이들이 담금질을 여러번 하는 것을 볼 수 있을텐데, Local Minimum에 빠진 금속 원자들을 움직여 최대한 Global Minimum에 이르게 하기 위함입니다.
2) 최근 논문에 따르면, 대부분 우리가 생각하는 Local Minimum은 사실 Saddle Point라고 합니다. high dimension의 상황에서 사실 Local Minimum은 매우매우 드문 상황이기 때문. Saddle Point인데 빠져나오는 속도가 너무 느려서 Local Point라 착각하는 것이라고.... (뭐 사실 나오는 속도가 너무 느리면 사실 그거나 그거나 싶긴 하다만;)
논문 : Y.N.Dauphin et al, Identifying and attacking the saddle point problem in high-dimensional non-convex optimization, NIPS 2014
주소 : http://papers.nips.cc/paper/5486-identifying-and-attacking-the-saddle-point-problem-in-high-dimensional-non-convex-optimization
논문에 대한 설명 : https://darkpgmr.tistory.com/148 (개인적으로 자주 참고하는 blog입니다.)
'Computer Science > Metaheuristic Algorithm' 카테고리의 다른 글
[0] Meta-heuristic Algorithm이란? (3) | 2019.01.23 |
---|