ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [이석중의 알기쉬운 인공지능] 하이퍼변수 (Hyperparameter) 최적화(5) – Hyperband
    사업계획 2021. 10. 3. 08:47

     

     

     

    하이퍼변수 최적화 문제를 흔히 “Multi-Armed Bandit(줄여서 MAB로 사용) 문제”라고 부른다. 여기서 Bandit은 원래 길에서 여행객을 노리는 ‘노상 강도라’는 뜻을 갖고 있고, Multi-Armed는 ‘팔이 여러 개 있는”의 의미이기 때문에 결합하면 직관적으로 이해가 가지 않을 수도 있다. MAB는 승률을 알 수 없는 다수의 슬롯머신이 있는 카지노에서 한정된 돈(게임 머니) 만을 사용하여 가장 승률이 좋은 기기를 찾아내어 결과적으로 가장 많은 돈을 따는 방법이나 알고리즘을 뜻한다.

    슬롯머신 게임을 통해 가장 많은 돈을 따려면 어떻게 해야 할까? 개별 슬롯머신들의 승률을 알고 있다면, 승률이 가장 높은 기기에만 베팅 하면 되기 때문에 쉬운 문제다. 하지만 요즘 사회적으로 이슈가 되고 있는 게임 속 “확률형 아이템”처럼, 많은 슬롯머신 기기의 승률을 모르는 상태라면, 갖고 있는 돈을 적절하게 나누고 어떤 기계가 가장 좋은 승률을 보이는지 확인을 한 뒤에, 그 기계에 올인(다 걸기)하는 것이 합리적인 방법이다. 물론 여기에도 현재 가용한 돈(예산, budget)이 얼마이고, 개별 기기들의 승률 확인을 위해 어떻게 배분을 할 것이지 등등 고민 거리는 많기는 하다.

    그럼 하이퍼변수 최적화가 왜 MAB 문제와 비슷한지 알아보자. 라스베가스 대형 카지노의 엄청나게 많은 슬롯머신처럼, 딥러닝 신경망의 하이퍼변수 조합은 그 경우의 수가 사실상 무한대에 가깝다. 그러므로 모든 하이퍼변수의 조합을 끝까지 학습시켜 어느 조합이 가장 좋은 것인지 확인하는 것은, 마치 카지노에 있는 모든 슬롯머신의 승률을 확인하겠다고 덤비는 것처럼 무모하고 비용이 많이 드는 일이다. 또한 얼마나 베팅을 해봐야 해당 슬롯머신의 승률을 제대로 파악했다고 확신할 수 없듯이, 어느 정도(학습시간이나 epoch 수) 학습을 시켜야 학습이 제대로 학습이 된 것인지 사전에 예측하기가 쉽지 않다.

    이런 상황이기는 하지만, 어떤 효율적인 판단 기준에 따라, 끝까지 베팅을 해보지 않아도 해당 기기의 승률을 판단할 수 있는 좋은 방법이 있다면 이야기가 좀 달라질 수 있다. 지난 연재에서 살펴본 SHA(연속적으로 반감하기, Successive Halving Algorithm)이 바로 그것이다.

    SHA의 핵심 아이디어는 한정된 예산만을 갖고 있는 상황에서 각 슬롯머신의 승률을 끝까지 살펴보는 것이 아니라, 일정 정도만을 수행한 뒤에 결과가 좋지 못한 절반을 버리고, 이것을 조기 종료(early stopping) 라고 부름, 가망성이 있어 보이는 것들만 추가적으로 평가를 진행하며, 다시 일정 정도를 수행시킨 뒤 절반을 버리는 방식으로 계속 진행시킨다. 결과적으로 최고의 승률이나 최고에 가까운 승률을 갖는 기기를 찾는데 들어가는 예산을 줄이면서도, MAB의 경우처럼 한번에 여러 대의 슬롯머신을 가동시킬 수가 있기 때문에 시간도 절감할 수 있어 전체적인 비용 효율성을 높일 수 있다.

    하지만, SHA에도 몇 가지 문제가 있다. 우선 비용(B, Budget)과 몇 대(N, Number)의 슬롯머신을 동시에 평가할 것인지에 따라 결과가 영향을 받게 된다. 하이퍼변수 최적화를 위해 개발된 방법인데, B와 N이 다시 하이퍼변수가 되는 셈이 되며, B와 N을 어떻게 정해야 할 것인지에 대한 확실한 방법이 없다. 또 다른 문제는 승률이 나쁜 슬롯머신인지 좋은 머신인지를 어느 정도 베팅 해보고 결정할 것인가에 대한 확실한 가이드라인이 없듯이, 나쁜 하이퍼변수 조합을 조기에 평가한다는 것이 틀릴 수도 있다. 학습 데이터나 평가 데이터 집합의 양이나 수에 의하여 특정 하이퍼변수의 학습 진척도가 영향을 받을 수 있으며, 어떤 것들은 상당히 오랫동안 학습을 시켜야 그 결과가 나타나는 것들도 있다. 이런 경우에는 조기 종료(early stopping)가 오히려 좋은 하이퍼변수 조합을 버리게 만들 수도 있다.

    하이퍼밴드(Hyperband)는 SHA의 개발진들이 SHA 문제를 개선하기 위해 만든 방법이다. SHA 방법과 달리, 한 개의 하이퍼변수 조합에 최대로 할당할 수 있는 예산(R)만을 정의하였고, SHA와 달리 균등하게 자원을 할당하는 것이 아니라, 2개의 루프를 사용하여 늦게 결과가 나타나는 것들도 고려할 수 있는 방법을 제공하였다. 내부 루프는 개념적으로는 SHA와 동일하지만, 외부 루프는 고정된 예산(B)에 대하여, N을 몇 가지 조절할 수 있게 함으로써 과도한 조기 종료로 인한 문제를 해결하였다.

    SHA와 하이퍼밴드 방법은 조기 종료와 결합한 병렬적인 하이퍼변수 조합 평가 방법을 이용하여 고속으로 최적의 하이퍼변수 조합을 찾을 수 있는 수단을 제공해줬다. 또한 베이지안 최적화방식에서는 다음 탐색 후보를 결정할 때 무작위가 아니라 기 탐색한 조합들의 정보까지 고려하여 확률적으로 의미 있는 후보를 정하는 방식으로 탐색의 효율성을 높였다. BOHB(Bayesian Optimization and Hyperband)는 두 방식을 결합하여 탐색의 효율성을 더욱 높인 방식으로 최근에는 이런 연구들이 많이 진행되고 있다.

    결론적으로, 최적화 문제는 기존 연재에서 많이 살펴보았던 것처럼 탐험(exploration)과 활용(exploitation)을 적절하게 섞어 사용하는 문제로 귀결되고 있다. 딥러닝 하이퍼변수의 경우처럼 탐색의 공간이 크고, 1개의 후보를 평가하는 비용이 클 수밖에 없는 상황이라면, 더욱 탐험과 활용간의 균형(trade-off), 조기 종료와 병렬 평가 및 효율적인 다음 탐색 영역 결정 방식이 중요해지기 때문에 하이퍼밴드의 개념을 정확하게 이해해야 할 것 같다.

    출처 : YTIMES청년신문(http://www.ytimes.co.kr)

Designed by Tistory.