brunch

매거진 머신러닝

You can make anything
by writing

C.S.Lewis

by 모험과 안정 Mar 15. 2024

학습을 위한 학습 - 메타러닝

메타의 의미

메타의 사전적인 정의를 보면 ~을 넘어, 상위 개념으로 쓰인다. 이렇게 들으면 '메타'라는 단어가 굉장히 낯설게 느껴질 것이다. 하지만, 메타인지라는 단어는 굉장히 익숙하고 많이 들어보지 않았는가. 인지라는 것은 무언가를 알거나 모르는 것을 의미하므로 메타의 뜻과 결합하면 메타인지는 인지보다 상위개념으로 내가 이것을 아는지 혹은 모르는 지를 아는 것이다. 그래서 공부할 때 메타인지가 뛰어나다는 것은 내가 공부를 잘한다는 뜻이 아니고, 내가 무엇을 아는 지 모르는지 정확히 알고 있다는 뜻이다.


메타러닝

먼저 머신러닝에서 러닝의 의미를 쉽게 살펴보면, 학습을 통해 이 데이터가 class 1나 2인지 혹은 어떤 값을 갖는지를 배운다. 아래 그림을 보면 class 1과 2를 구분하는 것이라고 보면 된다. 그렇다면 메타러닝은 무엇인가? 이러한 학습에 대해서 학습하는 것이다. 예를 들면 아래 그림과 같이 class 1과 2를 구분할 때 2차 함수나 3차 함수를 쓰는 게 좋을 지, 1차 함수를 써야 되는지를 배우는 것이다.


러닝의 경우 고정된 함수에서 class1과 2를 가장 잘 구별할 수 있는 함수와 관련된 parameter를 찾아야 된다. 하지만, 메타러닝은 class 1과 2를 구분할 때 1차 함수 및 여러 다항 함수를 통해 class 1과 2를 구분했을 대 어떤 함수가 가장 2개의 class를 잘 구분하는 지 탐색해서 어떤 함수 형태가 최적의 함수인지를 찾는 것이다. 이와 같이 함수의 형태에 해당하는 parameter는 러닝에 사용되는 parameter와 구분되며 이를 hyperparameter라고 부른다.


그림 1 일반적인 러닝과 메타 러닝의 차이. 일반적인 러닝은 왼쪽과 같이 같은 형태의 함수의 계수를 바꿔가며 (위치를 바꿔가며) 정확도가 가장 높은 계수를 찾는다 (class 1과 2를 가장 잘 구분하는). 반면, 메타러닝은 함수의 형태를 바꿔가며 학습에 가장 적합한 함수를 찾는 것과 같다. 적합하다의 기준은 분류 정확도가 될 수도 있고, 함수의 계수를 찾는데 소요되는 cost가 될 수도 있다.


Hyperparameter

Hyperparameter의 대표적인 예시로는 아래와 같다. 


1) Learning rate

- 학습의 보폭을 결정하는 parameter이다. 대개는 인공신경망 모델이 학습할 때 사용하는 가중치가 업데이트 되는 속도와 관련이 있다. Learning rate가 크면, 가중치가 크게 업데이트 되고, 작으면 작게 업데이트 된다.


2) Dropout

신경망 학습과정에서 과적합을 방지하기 위해 일부 뉴런을 무작위로 배재시켜서 학습하는 것, dropout 비율에 따라 배제되는 뉴런의 갯수가 달라진다. 그래서 얼마나 배제시켜야 학습이 잘 되는지 test를 한다.


3) epoch

전체 데이터를 이용하여 학습한 횟수, 대개는 epoch을 통해 최대 학습 횟수를 설정하여 parameter를 업데이트 하는데, 횟수가 너무 적으면 optimum에 도달하지 못할 수 있고, 너무 많이하면 optimum을 지나치게 벗어난 곳까지 업데이트를 하는 경우도 있다.


그림 2 Learning rate와 Dropout

매거진의 이전글 BO - 학습을 위한 학습
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari