📘
Lif31up's Blog
  • Welcome! I'm Myeonghwan
  • How to Read the Pages
  • Fundamental Machine Learning
    • Foundational Work of ML: Linear/Logistic Regression
    • Early-stage of AI: Perceptron and ADALINE
    • What is Deep Learning?: Artificial Neural Network to Deep Neural Network
    • Challenges in Training Deep Neural Network and the Latest Solutions
  • Modern AI Systems: An In-depth Guide to Cutting-edge Technologies and Applications
  • Few Shot Learning
    • Overview on Meta Learning
    • Prototypical Networks for Few-shot Learning
    • Model-Agnostic Meta-Learning for Fast Adaptation of Deep Networks
  • Natural Language Process
    • Tokenization and Stemming, Lemmatization, Stop-word Removal: Foundational Works of NLP
    • Attention Mechanism: The Core of Modern AI
  • Front-end Development
    • Overview on Front-end Development
    • Learning React Basic
      • React Component: How They are Rendered and Behave in Browser
      • State and Context: A Key Function to Operate the React Application
      • Design Pattern for Higher React Programming
  • Songwriting
    • A Comprehensive Guide to Creating Memorable Melodies through Motif and Phrasing
  • Sound Engineering
    • How to Install and Load Virtual Studio Instruments
    • A Guide to Audio Signal Chains and Gain Staging
    • Equalizer and Audible Frequency: How to Adjust Tone of the Signal
    • Dynamic Range: the Right Way to Compress your Sample
    • Acoustic Space Perception and Digital Reverberation: A Comprehensive Analysis of Sound Field Simulat
  • Musical Artistry
    • What is Artistry: in Perspective of Modern Pop/Indie Artists
    • Visualizing as Musical Context: Choose Your Aesthetic
    • Analysis on Modern Personal Myth and How to Create Your Own
    • Instagram Management: Business Approach to Your Social Account
  • Art Historiography
    • Importance of Art Historiography: Ugly and Beauty Across Time and Space
    • Post-internet Art, New Aesthetic and Post-Digital Art
    • Brutalism and Brutalist Architecture
Powered by GitBook
On this page
  • Vanishing/Exploding Gradient Problem
  • Various Optimization Techniques: Further Understanding on Gradient Descent Rule
  • Momentum-based Methods
  1. Fundamental Machine Learning

Challenges in Training Deep Neural Network and the Latest Solutions

신경망 훈련에는 여러 가지 도전 과제가 있습니다. 이러한 문제들은 모델의 성능과 학습 효율성에 큰 영향을 미칠 수 있습니다. 주요 도전 과제들은 다음과 같습니다:

  • 그라디언트 손실 (vanishing gradient): 깊은 신경망에서 역전파 과정 중 그라디언트가 점점 작아져 초기 층의 가중치가 제대로 업데이트되지 않는 문제입니다.

  • 그라디언트 폭주 (exploding gradient): 그라디언트가 급격히 증가하여 학습이 불안정해지는 현상으로, 특히 순환 신경망에서 자주 발생합니다.

  • 가중치 초기화 (weight initialization): 적절한 가중치 초기화는 학습의 시작점을 결정하며, 모델의 수렴 속도와 성능에 큰 영향을 미칩니다.

  • 활성화 함수 선택 (choosing activation function): 각 층에 적합한 활성화 함수를 선택하는 것은 모델의 비선형성과 학습 능력을 결정짓는 중요한 요소입니다.

  • 과적합 (overfitting): 모델이 훈련 데이터에 지나치게 최적화되어 새로운 데이터에 대한 일반화 능력이 떨어지는 문제입니다.

이러한 도전 과제들을 해결하기 위해 다양한 기법과 아키텍처가 개발되었으며, 이는 신경망의 성능을 크게 향상시키는 데 기여하고 있습니다.


Vanishing/Exploding Gradient Problem

그라디언트 손실(vanishing gradient)은 역전파 과정에서 손실에 대한 편미분이 000에 수렴하거나 극히 작아지는 현상입니다. 역전파 과정에서 초기 층으로 갈수록 그라디언트가 급격히 000에 수렴하면, 해당 층의 가중치가 더 이상 업데이트되지 않아 학습이 멈추게 됩니다. 이는 역전파의 연쇄 법칙과 특정 활성화 함수의 고유한 특성으로 인해 발생합니다.

ΔLΔW(l)=ΔLΔa(L)⋅∏k=1L−1Δa(k+1)Δa(k)\frac{\Delta\mathcal{L}}{\Delta W^{(l)}}=\frac{\Delta \mathcal{L}}{\Delta_a^{(L)}}\cdot\prod^{L-1}_{k=1}\frac{\Delta_a^{(k+1)}}{\Delta _a^{(k)}}ΔW(l)ΔL​=Δa(L)​ΔL​⋅k=1∏L−1​Δa(k)​Δa(k+1)​​

위의 표현 중 ∏k=1L−1δ(k+1)δa(k)\prod^{L-1}_{k=1}\frac{\delta{(k+1)}}{\delta{a^{(k)}}}∏k=1L−1​δa(k)δ(k+1)​은 다수의 그라디언트 곱셈을 포함합니다. 그라디언트 값이 111보다 작을 경우, 이 곱의 결과는 신경망의 깊이가 깊어질수록 급격히 감소하게 됩니다.

  • 활성화 함수의 미분 값 범위도 그라디언트 손실에 큰 영향을 미칩니다.

    • 시그모이드 함수의 도함수는 최대값이 σ′(x)=σ(x)(1−σ(x))≤0.25\sigma'{(x)} = \sigma(x)(1 - \sigma(x)) \leq 0.25σ′(x)=σ(x)(1−σ(x))≤0.25

    • 탄젠트 함수의 도함수는 최대값이 tanh⁡′(x)=1−tanh⁡2(x)≤1\tanh'{(x)} = 1 - \tanh^2(x) \leq 1tanh′(x)=1−tanh2(x)≤1

  • 가중치가 초기에 지나치게 작게 설정되면 모델이 제대로 학습되기도 전에 그라디언트 손실이 발생할 수 있습니다.

반대로 그라디언트 값이 111보다 클 경우, 이 곱의 결과는 신경망의 깊이가 깊어질수록 급격히 증가하게 됩니다.

  • 활성화 함수의 미분 값 범위도 그라디언트 손실에 큰 영향을 미칩니다.

  • 가중치가 초기에 지나치게 작게 설정되면 모델이 제대로 학습되기도 전에 그라디언트 폭주가 발생할 수 있습니다.

  • 그외에도 지나치게 불안정한 손실 지형도 영향을 줄 수 있습니다.

현대의 딥러닝은 그라디언트 손실 문제를 해결하기 위해 주로 Leaky ReLU나 Swish와 같은 개선된 활성화 함수를 채택합니다. 이러한 함수들은 기존의 ReLU의 장점을 유지하면서도, 음수 입력에 대해서도 작은 기울기를 가지거나 더 부드러운 곡선을 제공하여 학습 성능을 향상시킵니다.

그라디언트 손실 식별하기

그라디언트 손실 문제는 신경망 학습 과정에서 발생할 수 있는 중요한 이슈입니다. 이를 효과적으로 식별하고 대응하기 위해서는 학습 과정 중 다음과 같은 징후들을 주의 깊게 관찰해야 합니다:

  • 학습의 수렴 속도가 현저히 느려집니다. 모델이 최적점에 도달하는 데 예상보다 훨씬 긴 시간이 소요됩니다.

  • 신경망의 초기 층에서 가중치와 편향의 변화량이 극히 미미합니다. 이는 그라디언트가 역전파 과정에서 소실되어 초기 층에 충분한 학습 신호가 전달되지 않음을 의미합니다.

  • 손실 함수의 값이 특정 수준에서 정체되어 더 이상 감소하지 않습니다. 이는 모델의 학습이 효과적으로 이루어지지 않고 있음을 나타냅니다.

  • 깊은 층의 신경망에서 특히 두드러지게 나타나며, 모델의 성능이 기대에 미치지 못하는 결과를 초래합니다.

  • 검증 세트에서의 성능이 훈련 세트에 비해 현저히 낮은 경우, 이는 그라디언트 손실로 인해 모델이 충분히 학습되지 않았음을 시사할 수 있습니다.

Solution to the Vanishing Gradient Problem

그라디언트 손실 문제를 해결하기 위해 다음과 같은 다양한 방법들이 고려될 수 있습니다. 각 방법은 특정 상황에서 효과적일 수 있으며, 때로는 여러 방법을 조합하여 사용하는 것이 최적의 결과를 가져올 수 있습니다.

  • 활성화 함수로 ReLU(Rectified Linear Unit)와 같이 최대 미분값이 높은 함수를 사용합니다. ReLU는 양수 입력에 대해서는 선형적 출력을 제공하고, 음수 입력에 대해서는 000을 출력합니다. 이러한 특성 덕분에 111보다 큰 값의 그라디언트가 111로 유지되므로, 깊은 신경망에서도 그라디언트가 소실되지 않고 효과적으로 전파됩니다.

  • 회분 평균화(batch normalization)를 사용합니다. 이 기법은 각 층에 들어가는 입력을 정규화하는 과정을 거칩니다. 구체적으로, 미니배치 단위로 입력 데이터의 평균과 분산을 계산하여 정규화를 수행합니다. 이를 통해 내부 공변량 이동(internal covariate shift)을 줄이고, 각 층의 입력 분포를 안정화시켜 학습 속도를 향상시키고 그라디언트 흐름을 개선합니다.

    • 이는 하위 문서에 나올 회분 경사 하강법(batch gradient descent)과는 구별되는 개념입니다. 회분 경사 하강법은 최적화 알고리즘의 한 종류인 반면, 회분 평균화는 신경망의 각 층에 적용되는 정규화 기법입니다.

  • 그라디언트 손실 문제를 해결하기 위해 특별히 고안된 가중치 초기화 방법을 사용합니다. 대표적인 방법으로는 He 초기화(He initialization)와 사비어 초기화(Xavier initialization) 등이 있습니다. 이러한 초기화 방법들은 신경망의 깊이와 각 층의 뉴런 수를 고려하여 초기 가중치를 설정합니다. He 초기화는 주로 ReLU 활성화 함수와 함께 사용되며, 사비어 초기화는 시그모이드나 탄젠트 하이퍼볼릭 함수와 함께 사용됩니다. 이들 방법은 초기 가중치를 적절하게 설정함으로써 훈련 초기에 발생할 수 있는 그라디언트 손실을 방지하고, 신경망이 효과적으로 학습을 시작할 수 있도록 돕습니다.

  • 잔차 연결(residual connections) 또는 스킵 연결(skip connections)을 사용합니다. 이 방법은 특히 매우 깊은 신경망에서 효과적입니다. 잔차 연결은 입력을 몇 개의 층을 건너뛰어 직접 후속 층에 연결함으로써, 그라디언트가 네트워크를 통해 더 쉽게 흐를 수 있게 합니다. 이는 그라디언트 경로를 단축시켜 그라디언트 손실 문제를 완화하고, 매우 깊은 네트워크의 학습을 가능하게 합니다.

Solution to the Exploding Gradient Problem

그라디언트 폭주(exploding gradient problem)는 역전파 과정에서 손실에 대한 편미분이 급수적으로 커지는 현상입니다. 앞 단락의 그라디언트 손실과 비슷한 개념입니다—해당 현상에선 후기 층에 가까울수록 급수적으로 증가합니다.

  • 앞서 본 가중치 초기화, 회분 평균화, 잔차 연결 등을 사용할 수 있습니다. 그 외에도 학습률을 낮게 주는 방법도 있습니다.

  • 그라디언트 클리핑(gradient clipping)은 편미분 값에 대해 최대를 임계합니다—이를 통해 값의 폭주를 막습니다.

    • grad=grad⋅min⁡(1,threshold∣∣grad∣∣)\text{grad} = \text{grad} \cdot \min{(1, \frac{\text{threshold}}{|| \text{grad} ||})}grad=grad⋅min(1,∣∣grad∣∣threshold​)

  • L2 규제(L2 regularization)와 같은 무게 규제(weight regularization)는 가중치의 변이 값을 임계합니다—이를 통해 가중치가 지나치게 커지는 걸 막습니다.

  • LSTM, GRU 등의 구조를 사용합니다—이들은 이 문제를 해결하기 위해 특수하게 고려된 구조로 순환 신경망에 주로 적용됩니다.

그라디언트 폭주 식별하기

그라디언트 폭주 문제는 신경망 학습 과정에서 발생할 수 있는 중요한 이슈입니다. 이를 효과적으로 식별하고 대응하기 위해서는 학습 과정 중 다음과 같은 징후들을 주의 깊게 관찰해야 합니다:

  • 손실이 너무 갑자기 증가하거나 NaN이 됩니다.

  • 손실의 변화량이 너무 크고 일관되지 않습니다.

  • 수렴이 이루어지지 않아 결국 학습 시간이 증가합니다.


Various Optimization Techniques: Further Understanding on Gradient Descent Rule

인공 신경망 학습에 대한 최적화 기술(optimization techniques)은 손실 함수를 최소화 하기 위한 방법으로 현대의 인공지능 구현에서 주요합니다.

경사 하강법의 수학적 위치

경사 하강(gradient descent) 또는 경사 하강법(gradient descent rule)은 수학적 최적화에서 한 방법으로; 미분 가능한 다변수 함수의 값을 최소화 하기 위한 제 1 순서의 반복형 알고리즘(first-order iterative algorithm)입니다.

  • 제 1 순서(first-order)란 선형적 지역 오류에 대한 주제를 가지는 수학적 방법들을 묶는범주입니다.

Stochastic Gradient Descent

추계 경사 하강(stochastic gradient descent)이란 매개변수 갱신을 위한 자료에 대해 회분(batch)으로 생각합니다. 비용 함수의 편미분 계산을 위한 자료로 전체를 사용하지 않고 여러 구간들로 접근합니다.

J(θ)=1n∑i=1nL(θ;x(i),y(i))where is n(<N) is batch size and N is dataset length.J(\theta) = \frac{1}{\text{n}}\sum^{n}_{i = 1}{L(\theta;x^{(i)}, y^{(i)})} \newline \text{where is }n ( < N)\text{ is }\bold{batch \space size} \text{ and }N \text{ is dataset length.}J(θ)=n1​i=1∑n​L(θ;x(i),y(i))where is n(<N) is batch size and N is dataset length.
  • 학습이 더 빠르고 간단하다는 점 때문에 딥러닝에선 경사 하강보단추계 경사 하강을 더 자주 사용합니다.

  • 회분의 개념 없이 자료 전체를 사용하는 경우엔 경사 하강 또는 배치 경사 하강(batch gradient descent)이로 구분합니다. 미니 배치 경사 하강(mini-batch gradient descent)은 임의로 선택된 소집합을 사용합니다.

Momentum-based Methods

가속 기반 방법(momentum-based methods)은 최적화 기술의 한 계급으로 겨사 하강 알고리즘의 수렴을 가속하기 위해 사용됩니다. 지역 최소, 안장점, 평지 등의 복잡한 최적화 환경을 가진 경우에 유용하다 평가됩니다.

모멘텀의 수학적 정의

모멘텀(momentum)은 결국 기존의 편미분을 기억해 최적화 과정에 사용하는 생각입니다. 이는 현 갱신에 전 갱신에 대한 빼기로 반영함으로써 성취됩니다—수학적 정의는 다음과 같습니다.

vt=γvt−1+η⋅∇L(θt−1)θt=θt−1−vtv_t = \gamma v_{t-1} + \eta \cdot \nabla L(\theta_{t-1}) \newline \theta_t = \theta_{t - 1} - v_tvt​=γvt−1​+η⋅∇L(θt−1​)θt​=θt−1​−vt​

  • vtv_tvt​는 반복 ttt에 대한 속도입니다—이는 곧 갱신에 대한 방향과 속도를 대표합니다.

  • θt\theta_tθt​는 반복 ttt에 대한 매개변수입니다.

  • γ\gammaγ는 가속에 대한 계수입니다.

  • η\etaη는 학습율입니다.

  • ∇L(θt−1)\nabla L(\theta_{t - 1})∇L(θt−1​)는 반복 t−1t-1t−1에 대한 손실함수에 대한 편미분입니다.

  • θt\theta_tθt​는 새롭게 갱신된 매개변수입니다.

알맞은 방향으로의 가속과 감쇠 주파화(damping oscilation)는 가속에서 주요한 개념입니다—감쇠 주파수는 갱신의 방향과 정도를 평균화해 수렴 과정이 안정되게 합니다.

Nestrov Accelerated Gradient

NAG(Nestrov Accelerated Gradient)는 현 시점의 매개변수에서 계산이 이루어지지 않고 앞서 이루어집니다—이런 학습법은 수학적으로 다음과 같이 표현할 수 있습니다.

vt=γvt−1+η∇L(θt−1−γvt−1)v_t = \gamma v_{t-1} + \eta\nabla L(\theta_{t-1} - \gamma v_{t-1})vt​=γvt−1​+η∇L(θt−1​−γvt−1​)

손실함수의 편미분 계산에 사용되는 매개변수가 γvt−1\gamma v_{t-1}γvt−1​을 반영하고 있다는 점에서 고전적인 모멘텀 학습법과 차이를 가집니다.

Adaptive Moment Estimation/Adaptive Momentum Gradient

아담(adam)은 가장 많이 채택되는 학습법 최적화로 고전적인 가속 기반 방법과 RMSprop(Root Mean Square propagation)의 결합이라 생각됩니다. 대체로복잡한 환경에도 강건하고 효율적인 결과를 만드는 최적화 방법이라 평가 받습니다. 이들은 크게 두 가지 추정을 통해 모멘텀을 부하하며 이 학습법의 과정과 수식은 다음과 같습니다:

  1. 매개변수와 모멘텀을 초기화하고 학습에 필요한 상수를결정합니다.

    1. 학습률 η\etaη, 제 1 모멘텀의 감소율 β1\beta_1β1​와 제 2 모멘텀의 감소율 β2\beta_2β2​를 설정합니다—보조 계수 ϵ\epsilonϵ도 정합니다.

    2. θ0\theta_0θ0​은 초기화에 따라 정해집니다.

    3. 제 1 모멘텀 m0m_0m0​은 000이 주어집니다.

    4. 제2 모멘텀 v0v_0v0​도 000이 주어집니다.

  2. 편미분을 계산합니다.

    1. gt=∇L(θt−1)g_t = \nabla L(\theta_{t-1})gt​=∇L(θt−1​)

  3. 제 1 모멘텀 mtm_tmt​와 제 2 모멘텀 vtv_tvt​을 갱신합니다.

    1. mt=β1mt−1+(1−β1)gtif t=0,mt=0m_t = \beta_1 m_{t-1} + (1 - \beta_1)g_t \quad\text{if }t = 0, m_t = 0mt​=β1​mt−1​+(1−β1​)gt​if t=0,mt​=0

    2. vt=β2vt−1+(1−β2)gt2v_t = \beta_2 v_{t - 1} + (1 - \beta_2)g^2_tvt​=β2​vt−1​+(1−β2​)gt2​

  4. 계산된 모멘텀을 교정합니다.

    1. mt^=mt1−β1t\hat{m_t} = \frac{m_t}{1 - \beta_1^t}mt​^​=1−β1t​mt​​

    2. vt^=vt1−β2t\hat{v_t} = \frac{v_t}{1 - \beta_2^t}vt​^​=1−β2t​vt​​

  5. 교정한 모멘텀을 매개변수에 반영합니다.

    1. θt=θt−1−η⋅mt^vt^+ϵ\theta_t = \theta_{t- 1} - \eta \cdot \frac{ \hat{m_t} }{ \sqrt{ \hat{v_t} } + \epsilon }θt​=θt−1​−η⋅vt​^​​+ϵmt​^​​

각 모멘텀 추정은 각각 정의된 감소율(decay rate)을 가지며 다음과 같은 아이디어로 표현될 수 있습니다.

  • 제 1 모멘텀 추정(first moment estimate)은 그 편미분 값에 대한 평균으로 생각할 수 있습니다.

  • 제 2 모멘텀 추정(second moment estimate)은 이차 편미분에 대한 일반으로 생각할 수 있습니다.

PreviousWhat is Deep Learning?: Artificial Neural Network to Deep Neural NetworkNextModern AI Systems: An In-depth Guide to Cutting-edge Technologies and Applications

Last updated 2 days ago