모델이 복잡하거나 최적화가 어려운 경우, 직접 복잡한 모델을 훈련하는 것이 부담스러울 수 있습니다. 이런 상황에서는 먼저 간단한 모델을 훈련하여 기본적인 과제를 해결한 후, 이 모델을 복잡하게 확장하는 것이 효과적일 수 있습니다. 또는 먼저 간단한 과제에 대해 모델을 훈련한 후, 이를 최종 과제에 적용하는 것이 효과적일 때도 있습니다. 이렇게 더 간단한 과제에 대해 먼저 간단한 모델을 훈련한 후 실제 과제에 대한 복잡한 모델을 훈련하는 접근법을 '사전훈련'이라고 합니다.
탐욕 알고리즘과 결합 최적화
탐욕 알고리즘은 하나의 문제를 여러 구성요소로 분해하여 각 구성요소의 최적 해를 개별적으로 찾습니다. 하지만 이렇게 찾은 최적해들을 합치더라도 원래 문제의 최적 해를 항상 보장하지는 않습니다. 그런데도 탐욕 알고리즘은 계산 비용이 적고, 탐욕적 해의 품질이 종종 받아들일 수 있는 수준이기 때문에 유용합니다. 탐욕 알고리즘으로 구한 해를 초깃값으로 사용하여 결합 최적화 알고리즘을 적용하면 속도가 빠르고 해의 품질이 크게 향상될 수 있습니다.
탐욕적 지도 사전훈련
탐욕적 지도 사전훈련이 도움이 되는 이유는 깊은 계층구조의 중간 수준에 대해 더 효과적인 지침을 제공하기 때문입니다. 일반적으로 사전훈련은 최적화와 일반화 모두에 도움을 줄 수 있습니다.
전이 학습과 사전훈련
지도 사전훈련의 개념을 전이 학습의 맥락으로 확장한 방법이 있습니다. 가중치 층이 8개인 심층 합성곱 신경망을 먼저 일련의 과제에 대해 사전훈련합니다. 그 후, 이 신경망의 처음 k개의 층으로 같은 크기의 신경망을 초기화합니다. 다음으로, 두 번째 신경망의 모든 층을 결합하여 새로운 과제를 수행하는데, 이때 원래 과제보다 더 적은 수의 훈련 샘플을 사용합니다.
FitNet 접근방식
FitNet 접근 방식은 먼저 아주 깊고 넓은 신경망을 훈련한 후, 이 신경망을 교사로 사용하여 학생 역할을 하는 또 다른 신경망을 훈련합니다. 학생 신경망은 교사보다 훨씬 깊고 얇으며, 일반적인 상황에서 훈련하기 어려운 형태의 신경망입니다. 이 방식에서는 학생 신경망이 원래 과제의 출력뿐만 아니라 교사 신경망의 중간층의 값들도 예측하도록 훈련하여 학습을 촉진합니다.
FitNet은 교사 신경망의 중간층을 예측하는 것이 목표입니다. 즉, 학생 신경망은 두 가지 목적을 가집니다: 주어진 과제를 수행하는 매개변수 값을 산출하고, 교사 신경망의 중간층을 예측합니다.
가늘고 깊은 신경망이 넓고 얕은 신경망보다 훈련이 어려울 수 있지만, 일반화 성능이 더 좋을 수 있으며 매개변수가 적기 때문에 계산 비용이 더 적게 듭니다. 실험 결과에 따르면, 중간층의 힌트가 제공되지 않을 때 학생 신경망의 성능이 나쁩니다. 이러한 중간층의 힌트는 훈련이 어려운 신경망의 훈련을 도와주는 도구로 볼 수 있습니다. 그러나 다른 최적화 기법을 사용하거나 아키텍처를 변경하여 문제를 해결할 수도 있습니다.
최적화 알고리즘을 개선하는 것이 항상 최고의 최적화 전략은 아닙니다. 대신, 최적화가 더 쉬워지도록 모델을 처음부터 잘 설계하는 접근 방식이 심층 모델의 최적화를 개선하는 데에 효과적입니다.
활성화 함수와 최적화
원칙적으로는 지그재그 패턴을 보이는 비단조적으로 증가하거나 감소하는 함수도 딥러닝 모델의 활성화 함수로 사용할 수 있습니다. 그러나 이렇게 사용하면 최적화가 매우 어려워집니다. 실제 응용에서는 강력한 최적화 알고리즘을 사용하는 것보다 최적화하기 쉬운 모델을 선택하는 것이 더 중요합니다. 지난 30년 동안 신경망 학습의 주요 진보는 최적화 절차의 변경보다는 모델의 개선에서 비롯되었습니다. 1980년대에 도입된 확률적 경사 하강법은 현재의 최신 신경망 응용에서도 여전히 중요한 역할을 하고 있습니다.
현대 신경망의 설계
현대의 신경망들은 대부분 미분 가능하고, 정의역의 대다수에서 기울기가 큰 활성화 함수와 신경망 층 사이의 선형 변환을 사용하는 설계상의 선택을 반영하고 있습니다. 특히 LSTM이나 정류 선형 단위, 맥스아웃 단위와 같은 혁신적인 모델들은 기존 모델들보다 선형 함수 쪽으로 더 많이 기울어져 있습니다. 이런 혁신적인 모델들은 최적화가 쉽다는 장점을 가지고 있습니다.
선형 변환의 야코비 행렬에 적절한 특잇값들이 존재하는 한, 이러한 모델들에서는 기울기가 여러 층을 통과하며 손실 함수의 최적 해로 향합니다. 또한, 선형 함수들은 한 방향으로 꾸준히 증가하기 때문에, 손실 함수가 줄어들려면 출력을 어느 방향으로 조절해야 하는지 기울기를 통해 쉽게 알 수 있습니다. 즉, 현대 신경망은 국소적인 기울기 정보를 활용하여 멀리 떨어진 최적 해로 효과적으로 이동할 수 있도록 설계되어 있습니다.
다양한 모델 설계 전략
최적화를 돕는 다양한 모델 설계 전략이 있습니다. 예를 들어, 층 사이에 직선 경로나 도약 연결이 있는 경우, 낮은 층의 매개변수에서 출력까지의 최단 경로 길이가 줄어들어 기울기 소실 문제가 완화됩니다. 도약 연결과 관련된 한 가지 아이디어는 출력의 복사본을 신경망의 중간 은닉층에 연결하는 것입니다. 이러한 방법은 GoogLeNet과 심층 지도 신경망에서 사용됩니다.
아래쪽 층들이 큰 기울기를 받도록 보조 헤드를 신경망 상단의 주된 출력과 동일한 과제를 수행하도록 훈련합니다. 이는 사전훈련 전략의 한 대안으로 볼 수 있습니다. 이 방법에서는 모든 층을 결합적으로 훈련하되, 바람직한 행동 방식에 대한 힌트가 더 짧은 경로를 통해 중간층들에 제공되도록 아키텍처를 변경할 수 있습니다. 이러한 힌트들은 낮은 층에 오류 신호를 제공하여 학습을 도와줍니다.
모델이 복잡하거나 최적화가 어려운 경우, 직접 복잡한 모델을 훈련하는 것이 부담스러울 수 있습니다. 이런 상황에서는 먼저 간단한 모델을 훈련하여 기본적인 과제를 해결한 후, 이 모델을 복잡하게 확장하는 것이 효과적일 수 있습니다. 또는 먼저 간단한 과제에 대해 모델을 훈련한 후, 이를 최종 과제에 적용하는 것이 효과적일 때도 있습니다. 이렇게 더 간단한 과제에 대해 먼저 간단한 모델을 훈련한 후 실제 과제에 대한 복잡한 모델을 훈련하는 접근법을 '사전훈련'이라고 합니다.
결론
다양한 모델 설계 전략과 최적화 기법을 고려할 때, 복잡한 모델을 직접 훈련하는 것이 어려울 때에는 먼저 간단한 모델을 사용하여 기본적인 과제를 해결한 후, 이를 복잡하게 확장하는 것이나 간단한 과제에 대해 모델을 훈련한 후 이를 최종 과제에 적용하는 것이 효과적일 수 있습니다. 이러한 접근 방식을 사전훈련이라고 합니다.