8. Optimization for Training Deep Models

심층 학습 알고리즘은 여러 부분에서 최적화를 수반한다. 이 장에서는 특히 신경망의 비용 함수를 크게 줄이는 매개변수를 찾는 최적화를 알아본다.

8.1. How Learning Differs from Pure Optimization

심층 모델을 학습하는 데 쓰는 최적화 알고리즘은 전통적인 최적화 알고리즘과 여러 부분에서 다르다. 기계 학습의 관점에서는 성능 측정 지표를 간접적으로만 최적화할 수만 있고 직접적으로 최적화할 수 있는 건 비용 함수뿐이다.

8.1.1. Empirical Risk Minimization

기계 학습 알고리즘의 목표는 기대 일반화 오차인 리스크를 줄이는 것이다. 평균 학습 오차를 최소화하는 학습 방식은 실측 리스크 최소화라 한다. 이 경우 기계 학습이 일반적 최적화와 가까워지지만 과적합의 위험이 있다.

8.1.2. Surrogate Loss Functions and Early Stopping

계산 불가능한 손실 함수에 대안으로 매끈한 대안적 손실 함수를 쓸 수 있다. 일반적인 최적화와 학습 알고리즘의 최적화의 중요한 차이점은 학습 알고리즘은 대개 국소적 최적해에서 멈추지 않는다는 것이다. 그 대신 기계 학습 알고리즘은 수렴 기준이 만족되었을 때 멈춘다.

8.1.3. Batch and Minibatch Algorithms

기계 학습 알고리즘이 일반적 최적화 알고리즘과 다른 점 하나는 목적 함수가 학습 표본에서의 합으로 분해된다는 것이다. 데이터 전체에 대해서는 표준편차를 계산하는 것이 어렵고 데이터에 중복이 많을 수도 있기 때문에 다른 대안이 필요하다. 전체 학습 집합을 쓰는 최적화 알고리즘은 배치 또는 결정론적 경사법이라 하고 한 번에 하나의 표본만 사용하는 알고리즘은 추계적 또는 온라인 방법이라 한다. 대다수의 알고리즘은 이 사이의 미니배치 또는 미니배치 추계적 방법이라고도 한다. 요즈음은 이를 추계적 방법으로 부르는 것이 보편화되었다. 미니배치 크기는 여러 인자에 의해 유도된다. 서로 다른 알고리즘은 미니배치로부터 서로 다른 정보를 사용한다. 미니배치는 무작위로 선택되어야 한다는 점을 명심해야 할 필요가 있다. 미니배치의 크기는 충분히 작으므로 이 업데이트들은 병렬화될 수 있다. 미니배치 추계적 경사 하강법에 대한 흥미로운 발상은 표본이 반복되지 않는다면 참 일반화 오차의 경사를 따른다는 것이다. 추계적 경사 하강법이 일반화 오차를 최소화시킨다는 것은 데이터가 스트림으로 제공되는 온라인 학습에서 잘 드러난다. 데이터 수가 급증하면 기계 학습 애플리케이션이 각 학습 표본을 한 번만 사용하거나 아니면 완전한 에포크를 수행하지 않을 수도 있다.

8.2. Challenges in Neural Network Optimization

신경망 최적화의 여러 난점을 알아보자.

8.2.1. Ill-Conditioning

심지어 볼록 함수를 최적화할 때에도 난점이 있을 수 있다. 이는 적절한 학습률을 채택하지 못했을 때 주로 일어난다.

8.2.2. Local Minima

볼록 최적화 문제의 가장 두드러진 특징은 국소적 최소값을 찾아도 된다는 것이다. 신경망 등 비볼록 함수에 대해서는 가중치 공간 대칭성 등으로 인한 모델 식별가능성 문제로 인해 많은 국소적 최소값이 존재할 수 있다. 하지만 이런 형태들의 국소적 최소값들은 비용함수 값에 대해 동치기 때문에 문제가 되지는 않는다. 문제가 될 때는 국소적 최소값이 전역 최소값보다 훨씬 클 때이다. 그러나 이런 경우도 최근에는 크게 문제가 되지는 않고 있다. 고차원 공간에서는 사실 이것이 얼마나 큰 문제인지 가늠하기도 어렵다.

8.2.3. Plateaus, Saddle Points and Other Flat Regions

많은 고차원 비볼록 함수에 대해서는 국소적 최적화 말고도 고원, 말안장점 등 경사가 0인 더 많은 지점이 있다. 고차원으로 갈수록 말안장점이 더 많아진다. 많은 무작위 함수들의 특성은 헤시안의 고유값은 적은 비용함수 영역에 들어갈 수록 더 작아진다는 점이다. 경사 하강법은 많은 경우에 말안장점을 빠져나올 수 있다. 뉴턴법을 쓰면 말안장점은 문제가 된다. 그래서 말안장점에서 자유로운 뉴턴법을 쓴다. 말안장점과 극소값들 말고도 많은 경사가 0인 점들이 존재한다. 또한 비용 함수가 상수값인 넓은 영역도 문제가 된다.

8.2.4. Cliffs and Exploding Gradients

여러 층이 있는 신경망은 절벽으로 일컬어지는 급경사 지역이 존재한다. 절벽과 경사 폭발 등의 문제는 경사 클리핑을 통해 방지한다.

8.2.5. Long-Term Dependencies

신경망 최적화 알고리즘이 극복해야 하는 또 다른 난점은 계산 그래프가 매우 깊어질 때 생긴다. 예를 들면 경사값이 가중치의 고유값만큼 곱해짐으로써 생기는 경사 사라짐/경사 폭발 문제가 있다. 재귀적 망은 제곱법 알고리즘과 비슷하게 같은 가중치 행렬을 계속해 곱하지만 피드포워드 망은 그렇지 않으므로 깊은 피드포워드 네트워크도 이런 문제를 잘 피할 수 있다.

8.2.6. Inexact Gradients

구한 헤시안 행렬에 노이즈가 있어 최적화 알고리즘이 올바르지 않을 수도 있다. 이 경우에는 경사를 근사는 것만 가능하다.

8.2.7. Poor Correspondence between Local and Global Structure

지금까지 본 문제들은 손실 함수의 한 점에서의 특성으로 인해 발생했다. 이 문제들을 다 극복하더라도 손실 함수의 국소적 구조가 전역적 구조와는 큰 차이를 보인다면 문제가 생길 수 있다. 학습의 수행 시간 대부분은 해까지 도달하기 위해 걸리는 경로의 길이로 인해 발생한다. 많은 경우 신경망은 임계점에 도달하지도 않는다. 이를 위해서는 적절한 시작점을 잡는 것이 중요하다. 이러한 난점들은 최적값과 경로연결된 지역에서 시작점을 선택한다면 극복해낼 수 있다.

8.2.8. Theoretical Limits of Optimization

최적화 이론 자체로 인한 한계도 존재한다. 어떤 최적화 기법은 신경망의 출력이 이산적인 값을 가질 때만 적용된다. 어떤 기법은 반대이다. 그래서 상황에 맞는 최적화 기법을 사용해야 한다.

8.3. Basic Algorithms

기본적 최적화 알고리즘을 알아보자.

8.3.1. Stochastic Gradient Descent

가장 널리 쓰이는 추계적 경사 하강법은 한 번에 표본 하나씩을 사용한다. 핵심 매개변수는 학습율인데 실제로는 이를 점진적으로 감소하도록 조정해야 한다. 학습율은 여러 시도를 통해 학습 곡선을 주시하면서 정해져야 한다. 추계적 경사 하강법이나 연관된 미니배치/온라인 경사 하강법의 가장 중요한 점은 업데이트에 걸리는 시간이 학습 표본의 수에 비례해 증가하지 않는다는 점이다. 최적화 알고리즘의 수렴율을 연구하기 위해서는 초과 오차 J(\mathbf{\theta}) - \min_{\mathbf{\theta}} J(\mathbf{\theta})이 쓰인다.

추계적 경사 하강법은 다음과 같다.

Require: Learning rate ε_k
Require: Initial parameter θ
while stopping criterion not met do
    Sample a minibatch of m examples from the training set {x_(1), ..., x_(m)} with corresponding targets y_(i)
    Compute gradient estimate: g' = (1/m) ∇_θ ∑_i L(f(x_(i); θ), y_(i)).
    Apply update: θ = θ - εg'
end while

8.3.2. Momentum

추계적 경사 하강법으로 학습하는 것은 느릴 수 있다. 그래서 모멘텀 변수를 도입해 이를 보완한다. 방법은 다음과 같다.

Require: Learning rate ε_k
, momentum parameter α
Require: Initial parameter θ
, initial velocity v
while stopping criterion not met do
    Sample a minibatch of m examples from the training set {x_(1), ..., x_(m)} with corresponding targets y_(i)
    Compute gradient estimate: g = (1/m) ∇_θ ∑_i L(f(x_(i); θ), y_(i)).
    Compute velocity update: v = αv - εg
    
Apply update: θ = θ + v
end while

이전에는 계단의 크기가 경사의 크기에 학습율을 곱한 것이었지만, 이제는 연속된 경사의 크기들에 의존하게 된다. 자주 쓰이는 모멘텀 값은 0.5, 0.9, 0.99 등이 있다. 이 모멘텀 알고리즘은 연속 시간 뉴턴 동역학으로 볼 수 있다. 여기서는 두 힘이 작용하는데 손실 함수의 음의 경사고 다른 힘은 속도에 의존하는 항이다. 이는 의미상으로도 맞고 계산하기도 쉽다.

8.3.3. Nesterov Momentum

네스테로프 모멘텀이라는 개선 방법도 있는데 이는 다음과 같다.

Require: Learning rate ε_, momentum parameter α
Require: Initial parameter θ
, initial velocity v
while stopping criterion not met do
    Sample a minibatch of m examples from the training set {x_(1), ..., x_(m)} with corresponding targets y_(i)
    Apply interim update: θ' = θ + αv
    Compute gradient estimate (at interim point): g = (1/m) ∇_θ' ∑_i L(f(x_(i); θ'), y_(i)).
    Compute velocity update: v = αv - εg
    
Apply update: θ = θ + v
end while

볼록 배치 경사의 경우에는 네스테로프 모멘텀은 수렴율을 증가시킨다. 추계적 경사의 경우에는 개선이 없다.

8.4. Parameter Initialization Strategies

심층 학습 모델을 학습시키는 것은 어려운 일인데 많은 알고리즘이 초기화 값에 큰 영향을 받기 때문이다. 현대적인 최적화 방법은 간단하고 휴리스틱한데, 이론적으로 밝혀진 것이 별로 없기 때문이다. 알려져 있는 것은 다른 유닛간 대칭성을 깨도록 초기화 값을 정해야 한다는 것뿐이다. 대개 각 유닛에 대한 편향은 휴리스틱하게 선택된 상수로 잡고 가중치만을 무작위로 초기화시킨다. 이 값들은 대개 가우시안이나 균등 분포로부터 선택된다. 더 큰 초기 가중치 값은 대칭성을 깨는 더 강한 효과가 있으므로 불필요한 유닛들을 피할 수 있게 한다. 하지만 너무 크면 값의 폭발이 생기기도 한다. 재귀적 망에서는 큰 가중치들은 혼란(작은 입력값 변화가 큰 출력값 변화를 낳는 것)이 생기기도 한다. 정규화와 최적화의 관점은 망을 어떻게 초기화 해야 할지에 대해 매우 다른 시각을 낳는다. 가중치의 값의 스케일을 선택하는 것에는 여러 휴리스틱이 가능하다. 이는 표준화된 초기화를 쓸 수도 있고 직교행렬에 이득 인자를 곱할 수도 있다. 이득 인자를 증가시키게 되면 망에 전방 계산을 수행했을 때 활성 함수들이 증가하고 후방 계산을 수행했을 때 경사값이 증가한다. 초기 가중치에 대한 최적의 기준값이 꼭 최적의 성능을 낳는 것은 아니다. 기준이 틀렸을 수도 있고, 초기화 시의 특성이 학습 동안 유지되지 않을 수도 있고, 초기화 기준이 일반화 오차를 증가시킬 수도 있기 때문이다. 초기 가중치들이 너무 작은 값이 되는 것을 막기 위해 희박 초기화를 사용하기도 한다. 계산 자원만 풍부하다면, 가중치의 초기 스케일을 초매개변수로 간주하는 것이 좋다.

가중치 외에 다른 매개변수를 초기화하는 것은 상대적으로 쉽다. 편향치는 대개는 0으로 초기화하나, 출력 유닛에 대한 편향치는 0이 아닌 값으로 초기화하는 것이 좋다. 초기화 시 포화를 막기 위한 경우에도 0이 아닌 값으로 초기화할 수 있다. 어떤 유닛이 다른 유닛의 함수에서의 참여를 결정하는 경우에도 0이 아닌 값으로 초기화하는 것이 좋다. 다른 매개변수로는 분산 또는 정밀도가 있다. 대개는 1로 초기화한다. 모델 매개 변수들 또한 기계 학습으로 초기화하는 것이 가능하다.

8.5. Algorithms with Adaptive Learning Rates

학습률은 모델 성능에 큰 영향을 주므로 세팅하기 가장 어려운 초매개변수 중 하나이다. 이를 세팅하는 휴리스틱으로 델타-바-델타 알고리즘이 있으며 다른 여러 점진적 알고리즘도 있다.

8.5.1. AdaGrad

AdaGrad 알고리즘은 학습률을 가중치의 제곱값의 누적합의 제곱근에 반비례하도록 스케일링한다. 일부 심층 학습 모델에서는 잘 동작하지만 나머지는 그렇지 않다. 이는 다음과 같다.

Require: Global learning rate ε
Require: Initial parameter θ
Require: Small constant δ, perhaps 10^-7, for numerical stability
Initialize gradient accumulation variable r = 0
while stopping criterion not met do 
    Sample a minibatch of m examples from the training set {x_(1), ..., x_(m)} with corresponding targets y_(i)
    Compute gradient: g = (1/m) ∇_θ ∑_i L(f(x_(i); θ), y_(i)).
    Accumulate squared gradient: r = r + g * g
    Compute update: Δθ = -ε/(δ+√r) * g (Division and square root applied element-wise)
    
Apply update: θ = θ + Δθ
end while

8.5.2. RMSProp

RMSProp 알고리즘은 AdaGrad를 변형시키는데, 경사 누적을 이동지수가중치로 변경함으로써 비볼록 세팅에 더 잘 동작하도록 한다. 이는 다음과 같다.

Require: Global learning rate ε
, decay rate ρ
Require: Initial parameter θ
Require: Small constant δ, usually 10^-6, used to stabilize division by small numbers
Initialize gradient accumulation variable r = 0
while stopping criterion not met do 
    Sample a minibatch of m examples from the training set {x_(1), ..., x_(m)} with corresponding targets y_(i)
    Compute gradient: g = (1/m) ∇_θ ∑_i L(f(x_(i); θ), y_(i)).
    Accumulate squared gradient: r = ρr + (1 - ρ) g * g
    Compute update: Δθ = -ε/(δ+√r) * g (Division and square root applied element-wise)
    
Apply update: θ = θ + Δθ
end while

네스테로프 모멘텀을 쓸 수도 있다.

Require: Global learning rate ε
, decay rate ρ
, momentum coefficient α
Require: Initial parameter θ
Initialize gradient accumulation variable r = 0
while stopping criterion not met do 
    Sample a minibatch of m examples from the training set {x_(1), ..., x_(m)} with corresponding targets y_(i)
    Compute interim update: θ' = θ + αv
    Compute gradient: g = (1/m) ∇_θ' ∑_i L(f(x_(i); θ'), y_(i)).
    Accumulate squared gradient: r = ρr + (1 - ρ) g * g
    Compute velocity update: v = αv -ε/(√r) * g (Division and square root applied element-wise)
    
Apply update: θ = θ + v
end while

실측적으로 RMSProp은 효율적이고 실용적인 최적화 알고리즘이다.

8.5.3. Adam

Adam은 또 다른 적응적 학습률 최적화 알고리즘이다. 다음과 같다.

Require: Step size ε (Suggested default: 0.001)
Require: Exponential decay rates for moment estimates: ρ_1 and ρ_2 in [0, 1) (Suggested details: 0.9 and 0.999 respectively)
Require: Small constant δ used for numerical stabilization (Suggested default: 10^-8)
Require: Initial parameters θ
Initialize 1st and 2nd moment variables s = 0, r = 0
Initialize time step t = 0
while stopping criterion not met do
    Sample a minibatch of m examples from the training set {x_(1), ..., x_(m)} with corresponding targets y_(i)
    Compute gradient: g = (1/m) ∇_θ ∑_i L(f(x_(i); θ), y_(i)).
    t = t + 1
    Update biased first moment estimate: s = ρ_1s + (1 - ρ_1)g
    Update biased second moment estimate: r = ρ_2r + (1 - ρ_2)g * g
    Correct bias in first moment: s' = s / (1 - ρ_1^T)
    Correct bias in second moment: r' = r / (1 - ρ_2^T)
    Compute velocity update: Δθ = -εs'/(√r' + δ) (Operations applied element-wise)
    Apply update: θ = θ + Δθ
end while

8.5.4. Choosing the Right Optimization Algorithms

여러 최적화 알고리즘 중 어떤 것을 선택해야 하는지는 정답이 없다. 여러 개를 써 보고 성능이 좋은 것을 쓰면 된다.

8.6. Approximate Second-Order Methods

이차 항을 최적화하는 방법들을 알아보자.

8.6.1. Newton’s Method

가장 널리 쓰이는 이차 방법은 뉴턴법이다. 이는 손실 함수를 특정 점 근처에서 이차 테일러 급수 전개한 결과를 이용한다. 이차가 아닌 평면에 대해서도 헤시안이 양의 정칙이면 뉴턴법은 반복적으로 쓰일 수 있다. 다음과 같다.

Require: Initial parameter θ_0
Require: Training set of m examples
while stopping criterion not met do
    Compute gradient: g = (1/m) ∇_θ ∑_i L(f(x_(i); θ), y_(i))
    Compute gradient: H = (1/m) ∇_θ^2 ∑_i L(f(x_(i); θ), y_(i))
    Compute Hessian inverse: H^-1
    Compute update: Δθ = -H^-1g
    Apply update: θ = θ+Δθ 
end while

뉴턴법은 헤시안이 양의 정칙일 때만 효과가 있는데 이를 위해 헤시안에 정규화 항을 붙여 준다. 뉴턴법은 헤시안의 역행렬을 구해야 하므로 계산량이 커지는 단점이 있다.

8.6.2. Conjugate Gradients

켤레 경사는 반복적으로 경사를 켤레 방향으로 하강시켜 역헤시안을 구할 필요를 없앤다. 이를 적용하면 경사가 지그재그적으로 움직이게 된다. 이 때 현 경사에 대한 켤레 경사의 방향은 선 탐색으로 구한다. 본래는 헤시안의 고유벡터를 구해야 하지만 이를 쓰지 않고 구하는 방법들이 존재한다. 목적 함수가 이차함수가 아닐 때에는 비선형 켤레 경사를 쓰면 된다. 알고리즘은 다음과 같다. 이는 실제로 좋은 성능을 낸다.

Require: Initial parameter θ_0
Require: Training set of m examples
Initialize ρ_0 = 0
Initialize g_0 = 0
Initialize t = 1
while stopping criterion not met do
    Initialize the gradient g_t = 0
    Compute gradient: g_t = (1/m) ∇_θ ∑_i L(f(x_(i); θ), y_(i))
    Compute β_t = (g_t - g_(t-1))^t g_t / (g_(t-1)^T g_(t-1)) (Polak-Ribiere)
    (Nonlinear conjugate gradient: optionally reset β_t to zero, for example if t is a multiple of constant k, such as k = 5)
    Compute search direction: ρ_t = -g_t + β_t ρ_(t-1)
    Perform line search to find: ε^* = argmin_ε (1/m) ∇_θ ∑_i L(f(x_(i); θ_t + ερ_t), y_(i))
    (On a truly quadratic cost function, analytically solve for ε^* rather than explicitly searching for it)
    Apply update: θ_(t+1) = θ_t + ε^* + ρ_t
end while

8.6.3. BFGS

브로이든-플레처-골드파브-샤노(BFGS) 알고리즘은 많은 계산량 없이도 뉴턴법의 이득을 취한다. 이는 헤시안을 근사한 뒤 하강 방향을 선 탐색으로 판정한다. 선 탐색을 반복한다는 것은 켤레 경사법과 비슷하지만 선 탐색 자체에 크게 의존하지는 않는다는 차이점이 있다. 메모리 소모는 O(n^{2})이지만 이를 절약시켜 O(n)만 소모하는 것도 가능하다.

8.7. Optimization Strategies and Meta-Algorithms

최적화 전략들과 메타 알고리즘을 알아보자.

8.7.1. Batch Normalization

배치 표준화는 심층 신경망 최적화에 있어 가장 흥미로운 최근의 혁신일 것이다. 심층 모델은 매개변수의 매개화 방식에 따라 적절한 학습률을 선택하는 난이도가 큰 차이를 겪는다. 배치 표준화는 거의 모든 심층 망에 대한 세련된 재매개화 방식을 제공한다. 이는 활성 유닛들을 배치의 평균을 뺀 뒤 표준편차로 나눈다. 학습 시점에서 이 평균과 표준편차를 구할 때는 역전파를 수행한다. 테스트 시점에는 평균과 표준편차는 지금까지 모인 연속된 평균값들을 구한다. 이런 유닛 표준화를 통해 모델의 재매개화로 인해 생기는 난점은 대부분 해결이 가능하다. 망의 마지막 층은 선형 변환을 학습할 수 있으므로, 층 내 유닛간 선형 관계를 제거하고 싶을 수 있고 배치 표준화와 아이디어가 비슷하지만, 계산량이 많이 든다는 단점이 있다. 유닛의 평균과 표준편차를 표준화하는 것은 그 유닛을 포함한 신경망의 표현력을 줄일 수 있다. 배치 표준화는 \mathbf{X}보단 \mathbf{X}\mathbf{W} + \mathbf{b}에 적용하는 것이 낫다.

8.7.2. Coordinate Descent

최적화 문제를 좌표축별로 쪼개는 것을 좌표 하강법이라 한다. 이 때 좌표축 하나마다 쪼개는 것이 아니라 좌표축 여럿마다 쪼개는 것을 블록 좌표 하강법이라 한다. 이는 변수들이 서로 연관 없는 그룹들로 그룹화해 분리될 수 있을 경우 효율이 좋다. 이 때 손실 함수는 볼록하지 않지만 입력을 사전 매개변수와 코드 표현식으로 분리해 둘 중 하나를 볼록하게 만들어 해결할 수 있다. 한 변수가 다른 변수의 최적값에 영향을 줄 경우 좌표 하강법은 좋은 선택이 아니다.

8.7.3. Polyak Averaging

폴야크 평균법은 최적화 알고리즘에서 방문한 매개변수 공간 내의 궤적에서 여러 점들을 택해 평균을 취한다. 비볼록 문제에서는 이 경로가 매우 복잡하고 여러 다른 영역을 반복할 수 있으므로 별로 좋은 선택이 아니다.

8.7.4. Supervised Pretraining

모델이 복잡하고 최적화하기 힘들면 모델을 직접 학습하기 전에 더 간단한 모델을 미리 학습하고 이를 더 복잡하게 만드는 방법이 있다. 이를 사전 학습이라 한다. 탐욕적 알고리즘은 문제를 많은 부분으로 분해하고 각 부분의 최적 버전을 푼다. 탐욕적 알고리즘으로 모델을 부분별로 분해해 각각을 학습한 뒤에 미세 조정을 거칠 수 있다. 이런 탐욕적 지도 사전학습은 심층 학습에서 널리 쓰인다. 탐욕적 지도 사전학습은 초기 버전에서 여러 개선을 거쳤다. 이는 심층 계층의 중간 층에 가이드를 주기 때문에 최적화와 일반화 면에서 도움이 된다. 지도 사전학습은에 대한 접근법을 확장시켜 전송 학습의 아이디어도 생각할 수 있다.

또 다른 연관된 작업은 FitNet으로 얕은 망을 우선 학습시키고 이 망이 다음 학생 망의 선생 역할을 한다. 학생 망은 훨씬 깊고 얇으며 일반적으로는 SGD로 학습하기 어렵다.

8.7.5. Designing Models to Aid Optimization

최적화를 개선하기 위해서는 최적화 알고리즘을 개선하는 것보다는 모델을 최적화하기 쉽게 만드는 방법도 유용하다. 이론저긍론 활성화 함수를 들쭉날쭉한 단조적인 패턴을 갖게 하는 것이 좋으나 실제로는 최적화하기 더 쉬운 함수를 고르는 것이 훨씬 낫다. 특히, 현대 신경망은 층간 선형 변환을 어떻게 쓸지와 거의 대부분 지역에서 미분 가능한 활성 함수를 어떻게 선택할지를 결정하는 것이 중요하다. 스킵 커넥션 등 다른 모델 설계 전략들 또한 최적화를 도운다.

8.7.6. Continuation Methods and Curriculum Learning

손실 함수의 국소적 구조가 전역적 구조와는 큰 차이를 보인다면 문제가 생길 수 있기 때문에 최적값과 경로연결된 지역에서 시작점을 선택하는 것이 중요하다. 연속화 방법은 초기 점을 잘 잡아 국소적 최적화가 좋은 특성을 가진 영역에서 대부분의 시간을 보내도록 해서 최적화를 쉽게 하는 전략이다. 전통적인 방법은 목적 함수를 매끄럽게 하는 것에 기반하며, 대개는 국소적 극소값의 난점을 해결하기 위해 설계되었다. 이제는 국소적 극소값이 주된 문제점은 아니지만, 그래도 도움이 된다. 여기서 발상을 얻은 방법은 커리큘럼 학습 또는 형체 형성이 있다. 재귀적 신경망이 장기적 의존성을 학습하게 하기 위한 아이디어가 근래의 커리큘럼 학습 이론의 발전에 큰 영향을 끼쳤다.

답글 남기기

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

WordPress.com 로고

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

Google photo

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

Twitter 사진

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

Facebook 사진

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

%s에 연결하는 중