7. Regularization for Deep Learning

심층 학습에서의 다양한 정규화 방법을 알아보자.

7.1. Parameter Norm Penalties

일반적인 정규화 방법은 가중치를 징벌하는 항을 비용 함수에 붙이는 것이다.

\tilde{J}(\mathbf{\theta}; \mathbf{X}, \mathbf{y}) = J(\mathbf{\theta}; \mathbf{X}, \mathbf{y}) + \alpha \Omega(\mathbf{\theta})

징벌 항에 대한 계수 \alpha는 모든 층에 대해 다르게 적용할 수도 있지만 그런 최적의 값을 찾는 데 드는 시간을 아끼기 위해 모든 층에 대해 일괄적으로 적용할 수도 있다.

7.1.1. L^{2} Parameter Regularization

L^{2} 매개변수 노름 징벌은 가중치 감쇠로 더 잘 알려져 있다. 이는 능선 회귀 또는 티코노프 회귀라고도 하며, \Omega(\mathbf{\theta}) = \frac{1}{2} \lVert \mathbf{w} \rVert_{2}^{2} 형태의 징벌항을 붙이는 것이다.

7.1.2. L^{1} Regularization

모델 매개변수를 징벌하는 다른 방법으로는 L^{1} 정규화가 있다. 이는 \Omega(\mathbf{\theta}) = \lVert \mathbf{w} \rVert_{1} = \sum_{i} \lvert w_{i} \rvert 형태의 징벌항을 붙이는 것이다. 이는 희박한 해를 유도하는 특성이 있어 특성 선택에 많이 쓰인다. L^{2} 정규화는 가우시안 사전분포를 차용한 최대사후확률추정추론과 밀접한 연관이 있고, L^{1} 정규화는 등장 라플라스 사전분포를 차용한 최대사후확률추정추론과 밀접한 연관이 있다.

7.2. Norm Penalties as Constrained Optimization

노름 징벌항은 라그랑지안 함수를 도입한 조건부 최적화 문제로도 생각할 수 있다. 이를 통해 경사 하강법 알고리즘을 수정한 뒤 적용하는 것은 징벌항의 상한에 대해서는 적절한 값을 알고 있지만 학습율을 찾을 시간은 없을 때 유용하다. 또한, 징벌항은 비볼록 최적화에 적용했을 때 국소적 해에 갇히는 문제가 있는데 이런 문제를 피할 수도 있다. 마지막으로 명시적 조건을 통해 재사영시키는 접근법은 최적화 과정에서 얼마간의 안정성을 제공한다.

7.3. Regularization and Under-Constrained Problems

어떤 경우엔 기계 학습 문제가 적절히 정의되기 위해 정규화가 필요하다. 예를 들어 \mathbf{X}^{T} \mathbf{X}가 역행렬이 존재하지 않을 때 \alpha \mathbf{I}를 더해서 유사역행렬을 만들어주는 경우가 있다. 이런 경우들에 대해 정규화는 반복적 방법에 대해서 해가 수렴함을 보장한다.

7.4. Dataset Augmentation

기계 학습 모델이 일반화될 수 있도록 하는 가장 좋은 방법은 더 많은 데이터로 학습하는 것이다. 하나의 방법은 가짜 데이터를 만들어 학습 집합에 추가하는 방법이 있다. 이는 물체 인식 문제에서 특히 유용하다. 그러나 가짜 데이터를 만들 때 분류될 클래스를 바꾸는 변환을 수행해서는 안 된다.

7.5. Noise Robustness

정규화는 가중치에 무작위 노이즈 \epsilon_{\mathbf{W}} \sim \mathcal{N}(\mathbf{\epsilon}; \mathbf{0}, \eta \mathbf{I})를 더해서도 얻어질 수 있다.

7.5.1. Injecting Noise at the Output Targets

데이터셋에서 라벨이 잘못 매겨진 경우도 있다. 이런 경우엔 라벨에 대한 노이즈를 직접 모델링해서 보완한다. 이 방법으론 라벨 다듬질 등이 쓰인다.

7.6. Semi-Supervised Learning

심층 학습에 대해서는 반지도 학습은 대개 \mathbf{h} = f(\mathbf{x})를 학습하는 것을 나타낸다. 모델의 비지도학습과 지도학습 부분을 별도로 가지는 대신, P(\mathbf{x})이나 P(\mathbf{x}, \mathbf{y}) 중 하나의 생성적 모델이 구별적 모델 P(\mathbf{y} | \mathbf{x})와 매개변수를 공유하도록 하는 모델을 형성하도록 할 수 있다.

7.7. Multitask Learning

다중 작업 학습은 여러 작업으로부터 유도되는 표본을 풀링해서 일반화 관점에서 모델을 발전시키는 것이다. 이 경우 모델은 두 부분으로 나뉜다: 작업 각각에 연관된 매개변수들과, 일반적인 매개변수들. 심층 학습의 관점에 존재하는 일반적인 믿음은 다음과 같다. 서로 다른 작업들과 연관되어 있는 데이터에서 관측되는 변화들을 설명하는 인자들 중에서는, 어떤 인자들은 둘 이상의 작업들간 공유된다.

7.8. Early Stopping

모델이 과적합되는 것을 막기 위해서, 학습 오차가 일정 기준 이하가 되면 바로 학습을 멈출 수 있다. 이를 이른 중단이라 한다. 이른 중단 시점을 판별하는 알고리즘의 구현은 다음과 같다.

Let n be the number of steps between evaluation
Let p be the "patience", the number of times to observe worsening validation set error before giving up
Let θ_0 be the initial parameters
θ = θ_0
i = 0
j = 0
v = ∞
θ_* = θ
i_* = i
while j < p do
    Update θ by running the training algorithm for n steps
    i = i + n
    v' = ValidationSetError(θ)
    if v' < v then
        j = 0
        θ_* = θ
        i_* = i
        v = v'
    else
        j = j + 1
Best parameters are θ_*, best number of training steps is i_*.

이른 중단에서의 초매개변수 결정의 계산 비용은 대개 학습 중 검증 집합에 대한 평가를 수행하는 부분이 많이 차지한다. 이른 중단에 대해서는 최적의 매개변수에 대한 복제를 유지하는 추가 비용도 있지만, 이 비용은 대개 무시할 만하다. 이른 중단은 영향을 덜 미치는 형태의 정규화라고 볼 수 있으며, 단독으로 쓰일 수도 있고 다른 정규화 방법과도 같이 쓰일 수 있다. 이는 검증 집합을 필요로 한다. 이른 중단을 통해 데이터 전체를 재학습하기 전 학습을 얼마나 길게 할지를 결정하는 방법은 다음과 같다.

Let X_train and y_train be the training set
Split X_train and y_train to (X_subtrain, X_valid) and (y_subtrain, y_valid) respectively
Run early stopping starting from random θ using X_subtrain and y_subtrain for training data and X_valid and y_valid for validation data. This returns i_*, the optimal number of steps
Set θ to random values again
Train on X_train and y_train for i_* steps

데이터를 전부 사용하는 다른 방법은 학습의 첫 라운드에서 얻어진 매개변수를 유지한 뒤 학습을 계속하되, 그 뒤에는 모든 데이터를 쓰는 것이다. 이른 중단은 학습 시의 계산량도 줄이므로 유용하다. 이른 중단은 정규화의 효과도 있다. 이른 중단을 이용해 어떤 매개변수가 과적합되기 시작했는가를 판별하는 방법은 다음과 같다.

Let X_train and y_train be the training set
Split X_train and y_train into (X_subtrain, X_valid) and (y_subtrain and y_valid) respectively
Run early stopping starting from random θ using X_subtrain and y_subtrain for training data and X_valid and y_valid for validation data. This updates θ
ε = J(θ, X_subtrain, y_subtrain)
while J(θ, X_valid, y_valid) > ε do
    Train on X_train and y_train for n steps

단순한 선형 모델에 이차 오차 함수를 적용하고 간단한 경사 하강법을 적용한 경우에는 이른 중단은 L^{2} 정규화와 동치이다.

7.9. Parameter Tying and Parameter Sharing

모델 매개변수에 대해서 어떤 매개변수가 다른 매개변수에 의존성을 가짐을 가정하는 게 더 나을 때도 있다. 이런 경우에는 특정 매개변수가 같도록 강제하는 매개변수 공유의 접근법을 쓴다.

7.9.1. Convolutional Neural Networks

매개변수 공유의 가장 성공적인 예는 컨볼루션 신경망(CNN)이다. 이는 복수의 이미지 위치간 매개변수를 공유함으로써 매개변수의 전체 수를 극적으로 낮춘다.

7.10. Sparse Representations

다른 전략으로는 신경망의 유닛에 대한 활성 함수에 징벌항을 둬서 그 활성 함수의 해가 희박함을 유도하는 방법이 있다. 이는 매개변수 정규화와 똑같은 방식으로 할 수도 있고 직교 정합 추적 등의 다른 방법을 쓸 수도 있다.

7.11. Bagging and Other Ensemble Methods

배깅(붓스트랩 집적)은 여러 모델을 조합해 일반화 오차를 줄이는 방법이다. 이는 모델 평균내기라는 기계 학습 테크닉의 일부로, 이 전략을 차용한 방법은 앙상블 방법으로 불린다. 이것이 통하는 이유는 서로 다른 모델은 테스트 집합에서 대개 같은 오차를 내지 않기 때문이다. 서로 다른 앙상블 방법은 모델의 앙상블을 다른 방법으로 형성한다. 모델 평균내기는 일반화 오차를 줄이는 매우 강력하고 신뢰성 있는 방법이다. 앙상블 모델이 꼭 일반화 오차를 줄이는 데만 목적이 있는 것은 아니다. 부스팅은 각각 모델에 비해 더 용량이 높은 모델을 만드는 데 목적이 있다.

7.12. Dropout

드롭아웃은 연산량도 만히 들지 않으면서 강력한 정규화 방법이다. 이는 큰 신경망을 아주 많이 앙상블링한 모델에 대해 배깅을 실용적으로 만든 것으로 생각할 수 있다. 구체적으로, 드롭아웃은 기반 망에서 출력이 아닌 모든 유닛을 제거함으로써 얻어지는 부분 망들을 전부 앙상블한 것을 학습한다. 배깅의 경우 k개의 서로 다른 모델에 대해 k개의 서로 다른 데이터셋을 만들어서 학습하지만, 드롭아웃은 지수적으로 많은 모델에 대해 이를 모방한다. 드롭아웃 학습은 배깅 학습과 같지는 않다. 배깅의 경우에는 모든 모델이 독립적이나 드롭아웃의 경우에는 모델이 매개변수를 공유하고 각 모델이 부모 신경망의 서로 다른 매개변수 집합을 상속받는다. 이는 지수 개수만큼의 모델을 감당 가능한 만큼의 메모리로 학습할 수 있게 해 준다.

예측을 위해서는 배깅 앙상블은 모든 구성원으로부터의 예측을 누적해야 추론을 할 수 있다. 드롭아웃의 경우에는 모든 모델에 대해 평균을 내는 것이 불가능하므로, 산술평균을 기하평균으로 바꿔서 근사를 한다. 이 수정의 발상은 유닛의 출력에 대한 올바른 기대값을 구하는 것에 있다. 이를 가중치 조정 추정 규칙이라 한다. 이는 회귀 망이나 비선형성이 없는 신경망에도 적용할 수 있다. 드롭아웃의 한 이점은 연산량이 매우 싸다는 것이다. 또한, 사용될 수 있는 모델이나 학습 과정에 대해 크게 제한받지 않는다는 장점도 있다. 다만, 특정 모델에 드롭아웃을 적용할 때 각 단계별 연산량은 적을 수 있어도, 완전 계에 드롭아웃을 적용하는 비용은 유의미할 수 있다. 드롭아웃은 모델의 유효 용량을 줄이기 때문에, 이를 상쇄하려면 모델의 크기를 늘려야 하기 때문이다.

드롭아웃 학습을 성공적으로 수행하기 위해 꼭 추계성이 필요한 것은 아니다. 경사를 계산할 때 더 적은 추계성으로 인해 더 빠른 수렴을 낳은 빠른 드롭아웃도 존재한다. 또한, 추계성이 있다고 해서 그것으로 충분한 것도 아니다. 드롭아웃 부스팅이라는 접근법에서는 고전적 드롭아웃과 완전히 같은 마스크 노이즈를 사용했으나 정규화 효과는 거의 얻지 못했다. 즉, 배깅의 관점으로 본 드롭아웃의 가치는 노이즈에 대한 강건성의 관점으로 본 드롭아웃의 가치와는 별개이다. 배깅된 앙상블은 추계적으로 표본을 얻은 앙상블 멤버가 각각에 대해 독립적으로 잘 수행될 수 있도록 학습되었을 때만 정규화 효과를 얻을 수 있다.

드롭아웃은 지수적으로 큰 앙상블이 가중치를 공유하는 경우에 적용되는 다른 추계적 접근법에 많이 영향을 끼쳤다. 드롭아웃의 핵심 통찰력 중 하나는 망을 추계적인 방식으로 학습하고 복수의 추계적 방법을 평균내어 예측을 하는 것은 매개변수 공유를 하는 배깅을 구현하는 것과 같다는 것이다. 드롭아웃에서 앙상블되는 매개변수는 은닉 유닛을 공유하므로, 이는 각 은닉 유닛은 모델에 다른 은닉 유닛이 있는지와 상관없이 잘 동작해야 함을 의미한다. 드롭아웃의 강력함의 많은 부분은 은닉 유닛에 마스킹 노이즈가 적용되었기 때문에 나온다는 것을 명심할 필요가 있다. 또한, 노이즈가 곱적이라는 점도 중요한 점이다.

7.13. Adversarial Training

신경망은 노이즈의 첨가로 인해 사람이 관측할 수 없을 만큼의 차이점을 갖는 적대적 표본에 대해서 완전히 다른 결과를 낼 수도 있다. 이런 적대적 표본을 테스트 집합에 첨가해 적대적 학습을 하는 것으로써 이러한 오차를 줄일 수 있다. 이는 큰 함수족을 공격적 정규화와 같이 사용했을 때 진가를 발휘한다. 진짜 라벨이 아닌 학습된 모델이 제공한 라벨이 붙여진 적대적 표본들을 가상 적대적 표본이라 한다.

7.14. Tangent Distance, Tangent Prop and Manifold Tangent Classifier

차원의 저주를 극복하기 위한 기계 학습 방법은 데이터가 저차원 다양체에 존재한다고 가정하는 것이 있다. 이를 이용한 방법으로는 접선 거리 알고리즘이 있다. 이와 관련된 알고리즘으론 탄젠트 프롭으로 신경망 분류기에 대해 알려진 변화 인자에 대해서는 신경망의 출력이 국소적으로 불변이 되도록 징벌 항을 추가하는 것이다. 이 때 추가되는 징벌항은 \Omega(f) = \sum_{i} ((\nabla_{\mathbf{x}} f(\mathbf{x}))^{T} \mathbf{v}_{i})^{2}이다. 이는 적절한 초매개변수로 조정될 수 있다.

접선 전파는 데이터셋 증강과 밀접한 관계가 있다. 둘 다 알고리즘의 사용자가 망의 출력을 변경해서는 안 되는 변환의 집합을 특정함으로써 사전 지식을 반영시키기 때문이다. 차이점은 데이터셋 증강에 대해서는 망이 데이터셋을 증강시킨 변환을 통해 얻어진 서로 다른 입력을 올바르게 분류하도록 명시적으로 학습되지만 접선 전파에 대해서는 새 입력을 명시적으로 방문하는 것이 요구되지는 않는다는 차이점이 있다. 대신 이는 모델을 해석적으로 정규화한다. 단점도 있는데, 이것이 유도하는 정규화는 모델에 대한 작은 변화만 저항한다. 또한, 이러한 미소한 접근은 정류 선형 유닛 기반 모델에는 좋지 않다. 미소한 접근이라는 점에서, 접선 전파는 이중 역전파와 적대적 학습에도 관련이 있다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중