딥러닝 알고리즘에는 여러 측면을 제어하는 많은 초매개변수가 있습니다. 이 중 일부는 실행 시간과 메모리 사용량에 영향을 미치고, 다른 일부는 훈련 과정에서 모델의 품질과 새 입력에 대한 추론 정확도에 영향을 줍니다.
초매개변수 값을 선택하는 방법은 주로 두 가지입니다. 첫 번째는 수동 선택으로, 이는 사람이 직접 초매개변수 값을 결정하는 것입니다. 두 번째는 자동 선택으로, 이는 특정 알고리즘을 사용하여 초매개변수 값을 결정하는 것입니다. 초매개변수를 직접 선택할 때는 해당 초매개변수가 어떤 역할을 하는지 이해하고, 기계 학습 모델이 어떻게 일반화되는지 고려해야 합니다. 반면에 자동 초매개변수 선택 알고리즘을 사용하면 이러한 이해의 필요성이 줄어들지만, 계산 비용이 많이 증가할 수 있습니다.
수동으로 초매개변수 선택하기
초매개변수를 수동으로 선택할 때는 초매개변수, 훈련 오차, 일반화 오차, 계산 자원 간의 관계를 이해해야 합니다. 이를 위해 학습 알고리즘의 유효 수용력에 관련된 기본 개념을 명확히 이해해야 합니다. 보통 수동으로 초매개변수를 선택할 때는 특정 실행 시간과 메모리 예산 제약하에 일반화 오차가 최소화되는 값을 찾습니다.
수동 매개변수 검색의 주요 목표는 모델의 유효 수용력을 과제의 복잡도에 맞게 설정하는 것입니다. 이를 제한하는 요인은 세 가지가 있습니다. 첫째는 모델의 표현력이며, 둘째는 학습 알고리즘이 비용 함수를 효과적으로 최소화하는 능력, 셋째는 비용 함수와 훈련 절차가 모델을 규제하는 정도입니다. 모델에 많은 층과 많은 은닉 단위가 있을수록 표현력이 높아지며, 따라서 더 복잡한 함수를 표현할 수 있게 됩니다. 그러나 이는 모델이 모든 함수를 학습할 수 있다는 것을 의미하지는 않습니다. 훈련 비용이 많이 드는 함수나 정규화 항으로 인해 학습이 어려운 함수도 있을 수 있습니다.
U자 형태의 곡선
일반화 오차를 하나의 매개변수의 함수로 그래프로 나타내면 일반적으로 U자 형태의 곡선이 나타납니다. 한 극단에서는 매개변수 값이 낮은 수용력에 해당하며, 이 근처에서는 일반화 오차가 큽니다. 이는 훈련 오차와 시험 오차 사이의 큰 격차로 나타납니다. 최적의 모델 수용력은 두 극단의 중간 어딘가에 존재하며, 이 지점에서는 가능한 최소의 일반화 오차가 나타납니다.
초매개변수의 영향
초매개변수 중에는 값이 크면 과대적합이 발생하는 것들이 있습니다. 예를 들어, 은닉 단위의 수가 많으면 모델의 수용력을 향상하여 과대적합이 발생할 수 있습니다. 반면에 값이 작으면 과대적합이 발생하는 초매개변수들도 있습니다. 예를 들어, 가중치 감쇄 계수가 허용 가능한 최솟값인 0이면 학습 알고리즘의 유효 수용력이 최대화되어 과대적합이 발생할 수 있습니다.
초매개변수에 대한 일반화 오차가 완전한 U자 곡선이 아닌 경우도 있습니다. 이산적인 초매개변수들이 많이 있으며, 그런 경우에는 U자 곡선의 일부 점들만 나타납니다. 또한 이진 초매개변수들도 있으며, 이러한 초매개변수들은 학습 알고리즘의 선택적 구성요소의 사용 여부를 결정하는 스위치로 작용합니다. 이런 경우에는 U자 곡선의 두 점만 나타납니다. 또한 초매개변수에 최댓값이나 최솟값이 존재할 수 있으며, 이 경우 모델은 해당 곡선의 일부 영역에 접근할 수 없습니다. 예를 들어, 가중치 감쇄 계수는 0보다 작을 수 없기 때문에 모델이 과소적합될 때 가중치 감쇄 계수를 0으로 설정하여 과대적합 영역으로 들어가는 것은 불가능합니다. 따라서 어떤 초매개변수는 모델의 수용력을 줄일 수만 있습니다.
학습 속도의 중요성
학습 속도는 딥러닝에서 중요한 초매개변수 중 하나입니다. 시간이 제한적이어서 단 하나의 초매개변수만 조절할 수 있다면 이것이 학습 속도여야 합니다. 학습 속도는 다른 초매개변수들보다 조금 더 복잡한 방식으로 모델의 유효 수용력을 제어합니다. 모델의 유효 수용력은 최적의 최적화 문제에 가장 잘 맞는 학습 속도일 때 최대가 됩니다.
학습 속도는 일반화 오차가 아닌 훈련 오차에 대해 U자 곡선을 보입니다. 학습 속도가 너무 크면 경사 하강법이 훈련 오차를 줄이는 대신 증가시킬 수 있습니다. 이러한 현상은 이상적인 이차 오차 함수에서 최적 학습 오차의 적어도 두 배인 지점에서 발생합니다.
학습 오차가 너무 작으면 훈련 속도가 느려지고, 때로는 훈련 오차가 큰 지점에서 벗어나지 못할 수도 있습니다.
최적의 초매개변수 조합
학습 속도 이외의 초매개변수를 조절할 때는 훈련 오차와 시험 오차를 모두 주시하고, 모델이 과대적합이나 과소적합을 일으키는지 진단해야 합니다.
과대적합이 발생한다면 모델의 수용력을 줄이기 위해 초매개변수를 조정할 필요가 있습니다. 이를 위해서는 초매개변수 값을 줄이거나 정규화를 적용하여 모델을 더 단순하게 만들어야 합니다.
반면에 과소적합이 발생한다면 모델의 수용력을 늘리기 위해 초매개변수를 조정해야 합니다. 이를 위해서는 초매개변수 값을 늘리거나 모델의 복잡성을 높여야 합니다.
따라서 훈련 오차와 시험 오차를 함께 고려하여 모델의 적절한 수용력을 조절하는 것이 중요합니다.
수동 조정이 중요성
훈련 집합에 대한 오차가 목표 오차율보다 크다면, 모델의 수용력을 높여야 합니다. 이를 위해서는 정규화를 사용하지 않고, 최적화 알고리즘이 제대로 작동한다는 확신이 있다면, 신경망에 층을 추가하거나 각 층에 은닉 단위를 더 추가하여 수용력을 높여야 합니다.
그러나 이러한 조치는 모델에 관련된 계산 비용을 증가시킬 수 있습니다. 따라서 모델의 수용력을 높이는 것과 계산 비용 간에는 trade-off가 존재합니다. 최종적으로는 모델의 성능과 계산 비용을 적절히 고려하여 최적의 수용력을 결정해야 합니다.
시험 집합에 대한 오차가 목표 오차율보다 클 때 두 가지 선택지가 있습니다. 시험 오차는 훈련 오차에 일반화 격차를 더한 것이므로, 최적의 시험 오차는 두 수량이 적절히 절충될 때 나옵니다. 일반적으로 신경망은 시험 오차가 아주 낮을 때 최고의 성과를 냅니다. 이때 시험 오차를 결정하는 주된 요인은 격차입니다.
따라서 목표는 이 일반화 격차를 줄이되 훈련 오차가 증가하는 것보다 빠른 속도로 줄이지는 않는 것입니다. 정규화 초매개변수들을 변경하여 모델의 유효 수용력을 낮추면 일반화 격차가 줄어듭니다. 일반적으로 최고의 성능은 큰 모델을 잘 정규화했을 때 나옵니다. 따라서 모델의 수용력을 적절히 조절하고 정규화를 통해 일반화 격차를 줄이는 것이 중요합니다.
대부분의 초매개변수는 모델의 수용력을 향상하거나 감소시키는 데 기여합니다. 예를 들어, 층의 개수나 각 층의 은닉 단위 수를 증가시키면 모델의 수용력을 향상하고, 이는 과대적합의 가능성을 높일 수 있습니다.
반면에 정규화 초매개변수를 증가시키거나 학습 속도를 줄이면 모델의 수용력이 감소하고, 이는 과소적합의 가능성을 높일 수 있습니다.
따라서 초매개변수를 설정할 때는 모델의 수용력에 대한 이러한 효과를 고려하여 최적의 조합을 찾아야 합니다.
초매개변수를 수동으로 조정할 때는 시험 집합에서 좋은 성과를 얻는 것이 궁극적인 목표여야 합니다. 정규화를 추가하는 것은 이 목표를 달성하는 여러 방법 중 하나일 뿐입니다. 훈련 오차를 낮추는 한 훈련 데이터를 더 수집하여 일반화 오차를 줄이는 것이 항상 가능합니다.
사실, 모델의 수용력과 훈련 집합 크기를 계속 증가시켜 가며 일반화 오차를 줄이는 무차별 대입 방법은 항상 성공합니다. 그러나 이 접근 방식은 훈련과 추론을 위한 계산 비용이 매우 높기 때문에 적절한 자원이 제공되는 경우에만 적용할 수 있습니다.
이론적으로는 이 방법이 실패할 수도 있지만, 적절한 모델을 선택한 경우 대부분의 문제에서 최적화가 큰 걸림돌이 되지 않는다고 보입니다.
결론
딥러닝 모델의 성능을 향상시키기 위해 초매개변수를 선택하는 것은 중요한 과정입니다. 초매개변수의 값은 실행 시간, 메모리 사용량, 모델의 품질, 추론 정확도 등에 영향을 미칩니다. 초매개변수 선택은 수동 또는 자동으로 이루어질 수 있으며, 이에는 모델의 유효 수용력, 훈련 및 시험 오차를 고려해야 합니다. 일반적으로 U자 형태의 곡선을 따르며, 초매개변수의 적절한 조정을 통해 과대적합 또는 과소적합을 방지할 수 있습니다. 특히 학습 속도는 모델의 유효 수용력을 중요하게 제어하며, 이는 다른 초매개변수들보다 복잡한 방식으로 작용합니다. 결국 최적의 초매개변수 조합은 훈련 오차와 시험 오차를 동시에 고려하여 결정되어야 하며, 수동 조정을 통해 모델의 일반화 성능을 최적화하는 것이 핵심입니다.