2차 방법은 최적화 개선을 위해 이차미분을 사용하며, 뉴턴법이 가장 대표적입니다. 뉴턴법은 테일러급수를 이용하여 신경망의 목적함수를 근사하며, 특정 점에서 목적함수를 근사하는데 2차 테일러급수를 사용합니다. 국소 이차함수에서 뉴턴법은 헤세 행렬을 활용하여 극소점에 직접 도달하게 됩니다. 볼록함수가 아닌 목적함수에 대해서는 뉴턴법의 갱신 규칙을 여러 번 적용하여 극소점에 점차 접근할 수 있습니다.
헤세 행렬과 뉴턴법의 적용
목적함수의 표면이 이차가 아니더라도 헤세 행렬이 양의 정부호이면 뉴턴법을 적용할 수 있습니다. 이를 위해 2단계 반복 절차가 필요하며, 첫 단계에서는 헤세 행렬의 역행렬을 갱신하거나 계산합니다.
뉴턴법의 한계와 정칙화 전략
뉴턴법은 헤세 행렬이 양의 정부호 행렬일 때 가장 적합합니다. 그러나 딥러닝에서 목적함수의 표면은 일반적으로 볼록하지 않아 뉴턴법에 방해가 되는 특징들이 있습니다. 예를 들어, 안장점 부근에서 헤세 행렬의 양수가 아닌 고윳값이 있으면 뉴턴법은 해에서 멀어지게 됩니다. 이러한 문제를 피하기 위해 헤세 행렬을 정칙화할 수 있으며, 주대각 성분에 상수를 더하는 정칙화 전략이 흔히 사용됩니다. 이 전략은 레번버그-마쿼트 알고리즘과 같은 뉴턴법 근사 알고리즘에 적용됩니다. 음의 고윳값이 0에 가까울 때 이 전략은 잘 작동합니다. 그러나 곡률이 극단적인 경우, 음의 고윳값 영향을 상쇄하기 위해 상수를 크게 잡아야 할 수 있습니다. 그러나 상수가 커지면 주대각 행렬이 헤세 행렬을 지배하게 되어, 뉴턴법이 경사 하강법보다 더 작은 단계를 밟게 되므로, 상수를 아주 크게 설정해야 할 수도 있습니다.
뉴턴법의 계산 복잡도
뉴턴법을 큰 신경망의 훈련에 적용하는 데 어려움을 주는 요인 중 하나는 높은 계산 비용입니다. 헤세 행렬의 성분 개수는 매개변수 개수의 제곱에 비례하며, 매개변수가 k개일 때 뉴턴법은 k x k 행렬의 역행렬을 계산해야 합니다. 이러한 계산의 복잡도는 O(k³)입니다. 또한, 매개변수가 갱신될 때마다 헤세 역행렬을 모든 훈련 반복에서 계산해야 하므로, 현실적으로 뉴턴법으로 훈련할 수 있는 신경망은 매개변수가 매우 적은 경우에만 가능합니다.
켤레 기울기법의 개요
켤레 기울기법은 헤세 역행렬의 계산을 피하기 위해 두 켤레 방향을 번갈아 취하여 하강하는 효율적인 방법입니다. 이 접근 방식은 최대 경사법의 약점인 지그재그 경로를 개선하기 위해 기울기와 연관된 방향으로 직선 검색을 반복하는 방식에서 영감을 받았습니다. 최대 경사법은 사발 모양의 이차 표면에 적용될 때 비효율적인 지그재그 경로를 보여주는데, 이는 각 직선 검색의 방향이 이전 직선 검색의 방향과 반드시 수직이어야 하기 때문입니다.
켤레 기울기법은 최대 경사법의 문제점인 지그재그 패턴을 극복하기 위해 개발된 방법입니다. 최대 경사법에서는 이전 방향과 수직인 방향으로 하강하면 이전 방향에서의 최소점이 보존되지 않아, 각 직선 검색의 끝점에서의 기울기를 따라 내려가면 이전 직선 검색에서 얻은 개선을 취소하는 문제가 발생합니다. 이를 해결하기 위해 켤레 기울기법은 두 켤레 방향을 번갈아 취하여 하강함으로써 효율적인 경로를 찾아내려고 합니다.
켤레 기울기법의 개요 한계와 실용성
켤레 기울기법은 주로 이차 목적함수에 적용되었지만, 신경망 및 딥러닝 모델과 같은 복잡한 모델의 목적함수는 이차함수와 매우 다릅니다. 켤레 기울기법을 적용할 때, 목적함수가 이차함수가 아니라는 보장이 없고, 켤레 방향들이 이전 방향의 목적함수 최솟값을 유지한다는 보장도 없습니다. 이로 인해, 일반적인 켤레 기울기법과는 다르게 비선형 켤레 기울기법은 때로는 변경되지 않은 기울기를 따라 직선 검색을 다시 시작합니다.
실무자들의 보고에 따르면, 신경망 훈련에 비선형 켤레 기울기법을 적용하면 어느 정도 괜찮은 결과를 얻을 수 있다고 합니다. 그러나 비선형 켤레 기울기법을 적용하기 전에 확률적 경사 하강법을 몇 번 실행하는 것이 유리한 경우가 많다고 합니다. 또한, 켤레 기울기법은 전통적으로 배치 방법으로 분류되지만, 미니배치 버전들이 신경망 훈련에도 성공적으로 적용된 사례가 있습니다. 신경망에 특화된 켤레 기울기법의 버전도 제안되었는데, 비례 켤레 기울기 알고리즘이 그 예입니다.
BFGS 알고리즘의 개요와 한계
BFGS 알고리즘은 켤레 기울기법과 유사하게 뉴턴법의 장점을 취하면서도 계산 부담을 줄이려는 시도입니다. 켤레 기울기법과의 주요 차이점은 BFGS가 뉴턴법의 갱신 규칙을 더 직접적으로 근사한다는 것입니다.
켤레 기울기법과 마찬가지로 BFGS 알고리즘도 2차 정보를 반영하여 직선 검색을 수행합니다. 그러나 두 방법의 주요 차이점은 전체 최적화의 성공 여부가 직선 검색이 해당 방향으로의 진짜 최소점에 매우 가까운 점을 찾느냐의 여부에 크게 의존하지 않는다는 것입니다. 따라서, 켤레 기울기법에 비해 BFGS는 각 직선 검색을 더 빠르게 수렴시키는 데 덜 많은 시간이 필요합니다.
하지만, BFGS 알고리즘은 헤세 역행렬의 근사값을 저장해야 하는데, 이를 위해 O(n²)의 메모리가 필요합니다. 이러한 이유로, 매개변수가 수백만 개인 대부분의 현대적인 딥러닝 모델에서는 BFGS 알고리즘이 실용적이지 않을 수 있습니다.
결론
결론적으로, 뉴턴법은 목적함수가 이차 형태일 때 가장 효과적이지만, 딥러닝과 같이 복잡한 모델에서는 한계가 있습니다. 특히, 헤세 행렬의 계산 비용과 목적함수의 비선형성으로 인해 실제로 사용하기 어렵습니다. 이에 대한 대안으로는 켤레 기울기법과 BFGS 알고리즘이 제안되었으며, 이들은 뉴턴법의 장점을 유지하면서 계산 부담을 줄이는 데 노력하고 있습니다. 그러나 대규모 딥러닝 모델에서는 여전히 실용적인 해결책을 찾기 위한 연구가 필요합니다.