딥러닝 알고리즘에서는 다양한 형태의 최적화가 필요하다. PCA와 같은 모형에서 추론을 위해서도 최적화가 필요하며, 해석적 최적화는 알고리즘 설계나 증명에 사용된다. 신경망 훈련은 딥러닝의 최적화 문제 중에서 가장 어렵고, 이를 해결하기 위해 수백 대의 컴퓨터를 며칠에서 수개월 동안 사용하는 것이 일반적이다. 이러한 문제를 해결하기 위한 특화된 최적화 기법이 개발되었다.
심층 모형의 훈련과 최적화
심층 모형의 훈련에 사용되는 최적화 알고리즘은 전통적인 최적화 알고리즘과 다릅니다. 기계 학습은 대체로 간접적으로 작용하며, 대부분의 시나리오에서는 비용 문제로 시험 집합을 기준으로 한 성과 측도를 평가하는 것이 현실적으로 어려울 수 있습니다.
기계 학습 알고리즘의 주요 목표는 평균 일반화 오차, 즉 위험도를 줄이는 것입니다. 이 위험도는 진 분포의 기댓값을 기반으로 합니다. 진 분포를 알고 있다면 위험도 최소화는 최적화 문제로 해결될 수 있습니다. 그러나 실제로는 분포를 알지 못하고 훈련 집합만을 가지고 있기 때문에 위험도 최소화는 순수한 최적화 문제가 아닌 기계 학습 문제로 간주합니다.
경험적 위험도 최소화와 대리 손실함수
기계 학습 문제를 최적화 문제로 변환하는 가장 간단한 방법은 훈련 집합에 대한 기대 손실을 최소화하는 것입니다. 이는 진 분포를 훈련 집합으로 정의되는 경험 분포로 대체하는 것을 의미합니다.
평균 훈련 오차를 최소화하는 훈련 과정을 경험적 위험도 최소화라고 합니다. 이 설정에서도 기계 학습은 전통적인 최적화와 유사하나, 직접 위험도를 최적화하는 대신 경험적 위험도를 최소화합니다. 진 위험도가 어떤 조건에서 어느 정도로 감소할 것인지에 대한 이론적 연구 결과가 많이 있습니다.
경험적 위험도 최소화의 주요 문제점은 과대적합이 발생하기 쉽다는 것입니다. 많은 경우에서 경험적 위험도 최소화는 바람직하지 않습니다. 또한, 현대적 최적화 알고리즘 중 가장 효과적인 것들은 경사 하강법을 기반으로 하는데, 유용한 손실함수 중에는 미분이 어려운 경우가 많습니다. 예를 들어, 0-1 손실함수가 그러한 예입니다. 이 두 문제로 인해 딥러닝에서는 경험적 위험도 최소화를 거의 사용하지 않습니다. 대신, 다른 접근 방식을 사용하는데, 이 방식에서는 실제로 최적화하려는 수량과 최적화하고자 하는 수량 사이의 차이가 더 큽니다.
대리 손실함수와 훈련의 효과성
종종 우리가 관심을 가지는 손실함수를 효과적으로 최적화하기 어려운 경우가 있습니다. 예를 들어, 0-1 손실함수의 기댓값을 정확히 최소화하는 것은 현실적으로 불가능합니다. 심지어 선형 분류기에도 해당합니다. 이러한 상황에서는 진짜 손실함수보다 여러 가지 장점이 있는 대리 손실함수를 최적화하는 것이 일반적입니다. 예를 들면, 0-1 손실함수의 대리로 정확한 부류의 로그 가능도를 사용하는 것이 흔합니다. 음의 로그 가능도를 이용하면 모델은 입력이 주어졌을 때 각 부류의 조건부 확률을 추정할 수 있으며, 이를 통해 조건부 확률을 잘 추정하는 모델은 기대분류 오차가 최소인 부류를 선택할 수 있습니다.
대리 손실함수를 사용하는 경우에는 모델의 학습 능력이 개선되기도 합니다. 예를 들어, 로그 가능도를 대리 손실함수로 사용하여 훈련한 모델을 시험 집합에 적용하면 0-1 손실함수가 0에 도달한 후에도 계속 감소할 수 있습니다. 이는 기대 0-1 손실이 0일 때도 부류들을 서로 더 잘 구분함으로써 분류기의 강인함을 개선할 수 있기 때문입니다. 이렇게 되면 분류기의 확신도와 신뢰도가 높아져, 단순히 훈련 집합에 대해 평균 0-1 손실을 최소화했을 때보다 더 많은 정보를 훈련 데이터로부터 추출하게 됩니다.
일반적인 최적화와 훈련 알고리즘의 차이점
일반적인 최적화와 훈련 알고리즘 사이의 중요한 차이점은 훈련 알고리즘이 극소점에서 멈추지 않는다는 것입니다. 기계 학습 알고리즘은 대리 손실함수를 최소화하고, 조기 종료 기준이 충족되면 알고리즘을 종료합니다. 조기 종료 기준은 일반적으로 진 손실함수를 기반으로 하며, 과대적합이 시작되면 알고리즘을 종료하도록 설계됩니다. 따라서 대리 손실함수의 미분이 아직 큰 경우에도 훈련 알고리즘이 종료되는 경우가 많습니다. 이는 순수한 최적화와는 매우 다른 접근 방식입니다. 순수한 최적화 알고리즘은 기울기가 아주 작아지면 수렴했다고 판단하여 실행을 종료합니다.
기계 학습의 비용 함수와 샘플링
기계 학습 알고리즘과 일반적인 최적화 알고리즘 사이의 또 다른 중요한 차이점은 기계 학습에서 목적 함수를 훈련 데이터의 합으로 분해하는 경우가 많다는 것입니다. 기계 학습을 위한 최적화 알고리즘은 각 반복에서 매개변수를 업데이트할 때 완전한 비용 함수가 고려하는 항들의 일부만을 사용하여 비용 함수의 기댓값을 추정합니다.
이 기댓값을 실제로 계산하려면 전체 데이터 세트의 모든 샘플에 대해 모델을 평가해야 하므로 계산 비용이 매우 높아집니다. 실제 응용에서는 데이터 세트에서 일부 샘플을 무작위로 추출하여 그 샘플들에 대해서만 평균을 계산하여 기댓값을 추정합니다.
적은 수의 샘플을 이용하여 기울기를 통계적으로 추정하는 것이 바람직한 이유 중 하나는 훈련 데이터에 중복성이 있을 수 있다는 점입니다. 최악의 경우 훈련 데이터의 샘플 m개가 모두 동일한 데이터의 복사본일 수 있습니다. 이러한 경우 표본추출을 기반으로 한 기울기 추정 방법에서는 단 하나의 샘플로 기울기의 참값을 추정할 수 있으며, 이렇게 하면 필요한 계산량은 기본 방법에 비해 m 분의 1이 됩니다. 실제 응용에서는 이러한 최악의 경우를 직면할 가능성은 적지만, 여러 샘플이 기울기에 비슷한 기여를 할 수 있는 상황은 실제로 발생할 수 있습니다.
훈련 집합 전체를 사용하는 최적화 알고리즘을 배치 경사 하강법 또는 결정론적 경사 하강법이라고 합니다. 배치 경사법은 모든 훈련 샘플을 하나의 큰 배치에서 동시에 처리한다는 의미에서 이 이름이 붙었습니다. 그러나 미니배치 확률적 경사 하강법에서는 미니배치를 단순히 '배치'라고 부를 때가 많아, 이러한 용어 사용에는 혼동의 여지가 있습니다. 일반적으로 '배치 경사 하강법'이라는 용어는 훈련 집합 전체의 사용을 의미하지만, 단순히 샘플들의 집합을 '배치'라고 부르는 것은 훈련 집합 전체의 사용을 반드시 의미하지는 않습니다.
결론
딥러닝 알고리즘에서는 다양한 형태의 최적화가 필요하며, 신경망 훈련은 딥러닝의 최적화 문제 중에서도 가장 어렵습니다. 이를 해결하기 위해 특화된 최적화 기법이 개발되었으며, 경험적 위험도 최소화와 대리 손실함수를 통한 훈련은 일반적인 최적화와는 다른 접근 방식을 제시합니다. 또한, 기계 학습에서는 훈련 데이터의 샘플링을 통해 기울기를 추정하는 것이 중요하며, 이러한 차이점을 고려하여 훈련 알고리즘이 설계됩니다.