1. Knowledge Distillation 이란
Knowledge(지식)을 Distillation(증류), 말 그대로 지식을 증류, 전달한다는 뜻입니다.
비교적 정확도가 높고 추론시간이 긴 복잡한 모델로부터 그 기능을 추출해와서 간단한 모델에게 전해줍니다.
2. 어디에 쓸까
최근에 삼성에서 공개한 갤럭시 S24 시리즈에는 새로운 인공지능을 탑재해 출시했을 만큼, 일상생활에 인공지능이 많이 쓰이고 있습니다.
만약 우리가 S24모델을 구매해서 인공지능을 사용한다고 가정해봅시다. 높은 정확도는 당연하게도 필수겠지만,
A. 정확도 95%, 추론시간 1시간
B. 정확도 90%, 추론시간 1분
두 모델 중 어느것이 우리가 사용하기에 적합할지 따져보면, 아무래도 B 모델이겠죠.
복잡한 모델로부터 우리가 필요한 가벼운 모델로 일종의 경량화 시키는 방법이라고 보시면 되겠습니다.
3. 어떻게 쓸까
보통 크고 무거운 모델을 선생 모델, 타겟이 되는 가벼운 모델을 학생 모델이라고 칭합니다.
지식 증류를 행할때는 크게 두 가지 방향으로 나누어 생각해 볼 수 있습니다.
선생 모델의 어떤 Knowledge를, 학생 모델에게 어떻게 Distillation할지.
3-1. Knowledge
대표적으로는 선생 모델의 출력 결과를 학생 모델이 모방하게끔 하는 방법이 있습니다. 정확히는 softmax layer를 거치고 난 후, input이 각 label에 해당할 확률 값입니다. 이를 soft target이라고 합니다.
여기서 기존의 softmax 식에 새로운 변수인 온도(τ, temperature)라는 값을 사용합니다.
더욱 soft해진 결과값은 학생 모델이 이를 잘 모방할 수 있도록 하는 효과가 있다고 합니다.
결국 중요한건 좋은 출력값이니 이걸 모방시키면 당연히 정확도가 높아진다고 생각해야할지 모르겠습니다.
다른 방법으로는 선생 모델의 Activation Boundary를 전달하는 것입니다. 출력 보다는 중간 계층에 집중하겠다는 것입니다.
Activation Boundary는 중간 계층에 있는 수 많은 hidden layer의 선형 식이 모여서 만들어진 일종의 "선"입니다. 이 선을 넘어가면 Negative이고 아니라면 Positive라는 식으로 간략하게 이해해볼 수 있습니다.
이러한 Activation Boundary를 좋은 값으로 갖는다면 좋은 일반화 성능을 나타낼 수 있게 됩니다. 다만 선의 모양이 미분 불가능한 각진 모양이므로 이를 미분 가능하도록 가공해주는 과정을 거쳐야 합니다.
그 밖에도 선생 모델의 계층 구조 사이의 거리나 각도같은, 벡터를 이용한 연산 값을 학생모델에게 전달해주어 지식 증류를 시행하는 방법도 있습니다. 참고로 이런 벡터를 이용하는 방식은 대부분의 CV 분야에서 많이 쓰인다고 합니다.
3-2. Distillation
이번엔 어떻게 지식을 전달해주느냐 입니다.
대표적인 방법은 offline distillation입니다. pre-trained된 선생 모델로부터 학생 모델에게 지식을 전달해주는 기본적인 방법이라고 볼 수 있습니다.
학생 모델이 출력으로 내놓은 soft target 값이 선생 모델의 soft target과 일치하는 정도를 첫 번째 loss로 놓고, 학생 모델의 출력이 실제 label과 일치하는 정도를 두 번째 loss로 놓습니다.
두 loss를 특정 가중치 (λ, 1- λ) 로 합치면 우리가 역전파에 사용할 최종 loss를 얻을 수 있습니다. 이 과정을 반복하여 학생을 선생에 비슷해지도록 학습시키는 것입니다.
다른 예로는 online distillation이 있습니다. 이 개념은 선생 모델이 따로 존재하지 않습니다. 대신 여러 개의 학생 모델이 학습을 병행하면서 서로 지식을 공유하고 학습해 나가는 형태입니다.
학생 모델은 선생 모델을 모방하는 대신 나머지 학생 모델들의 평균 예측값을 모방하는 방향으로 학습해 나아갑니다.
그 밖에도 self distillation이 있는데 자기 자신과 자신으로부터 뽑아낸 값이 각각 선생 모델, 학습 모델 역할을 수행합니다.
살짝 어려운 개념 같습니다..
결국 지식 증류에서 더 나아가야 할 방향은 어떤 지식을 어떠한 방식으로 행해야 할지입니다. 인공지능 시장이 계속 커지고 있는 요즘 지식 증류는 점점 수요가 높은 분야로 자리매김 할 것 같습니다. 한 번 지식 증류 열심히 공부해서 우리 모두 일론 머스크 손잡고 화성 가봅시다.
참고자료