AI 어떻게 배워야 좋을까요? 🤔
#인공지능 

딥러닝, 표현력 최대로! – 비선형 활성화 함수

활성화 함수에 비선형 특성을 더하면, 딥러닝 모델이 훨씬 고차원의 복잡한 특성을 학습할 수 있습니다. 인공 신경망의 구조를 통해 데이터가 선형, 비선형 적으로 변환되는 과정을 관찰해봅니다. 딥러닝이 비정형적인 데이터에서도 특징을 추출하여 학습할 수 있는 이유에 대해 이해할 수 있습니다.

2024-05-08 | 나융

딥러닝 과 비선형 표현

실제 세계의 많은 문제들은 변수 간의 복잡한 상호작용과 비선형 관계를 포함하고 있습니다. 예를 들어, 이미지 인식 문제에서 픽셀 간의 관계는 단순한 선형 조합으로 표현하기 어렵습니다. 또한, 자연어 처리에서 단어 간의 의미와 문맥은 비선형적인 특성을 가지고 있습니다.

선형 함수는 입력 변수의 선형 조합으로 출력을 계산하기 때문에, 이러한 비선형적인 관계를 표현하는 데 한계가 있습니다. 반면, 비선형 활성화 함수는 입력 값에 따라 출력이 비선형적으로 변화하므로, 신경망이 복잡한 비선형 패턴을 학습할 수 있도록 도와줍니다.

예를 들어, 시그모이드 함수는 입력 값을 0과 1 사이의 값으로 압축하며, 큰 음수 입력에 대해서는 0에 가까운 값을, 큰 양수 입력에 대해서는 1에 가까운 값을 출력합니다. 이러한 비선형적인 변환을 통해 신경망은 데이터의 복잡한 특징을 포착할 수 있게 됩니다.

 

선형 함수의 한계

 


y = h2 * W3 + b3 
  = (h1 * W2 + b2) * W3 + b3
  = h1 * W2 * W3 + b2 * W3 + b3 
  = (x * W1 + b1) * W2 * W3 + b2 * W3 + b3 
  = x * W1 * W2 * W3 + b1 * W2 * W3 + b2 * W3 + b3 
  = x * W' + b'

인공 신경망에서 각 층은 이전 층의 출력을 입력으로 받아 새로운 표현을 학습합니다. 만약 모든 층에서 선형 함수만 사용한다면, 신경망 전체를 하나의 선형 변환으로 나타낼 수 있습니다. 수학적으로 표현하면 다음과 같습니다:

 

\mathrm{y = f(W_n \cdot \cdot \cdot f(W_2 ∙ f(W_1 ∙ x)))}

 

여기서 f는 선형 함수, W_i는 i번째 층의 가중치 행렬, x는 입력 벡터입니다.

그러나 선형 함수의 조합은 여전히 선형 함수이므로, 위의 식은 아래와 같이 단순화될 수 있습니다:

 

\mathrm{y = W ∙ x}

 

여기서 W는 모든 층의 가중치 행렬을 조합한 하나의행렬입니다.

이러한 특성은 심층 신경망을 사용하는 이점을 상쇄시킵니다. 비선형 활성화 함수를 도입함으로써, 각 층은 이전 층의 출력에 비선형 변환을 적용하여 새로운 표현을 학습할 수 있습니다. 이를 통해 신경망은 층이 깊어질수록 점진적으로 추상화된 특징을 학습할 수 있으며, 이는 복잡한 문제를 해결하는 데 필수적입니다.

따라서 비선형 활성화 함수는 인공 신경망에서 층 간의 효과적인 정보 전달을 가능하게 하여, 신경망의 표현력을 극대화하는 데 중요한 역할을 합니다.

 

https://youtu.be/CfAL_cL3SGQ?si=v7mRWyjkJkMsUR0T

 

벡터 공간의 변환

비선형 활성화 함수를 사용하면 인공 신경망이 표현할 수 있는 벡터 공간(Vector space)이 크게 확장됩니다. 이를 이해하기 위해, 먼저 선형 함수만을 사용하는 경우를 생각해 보겠습니다.

https://youtu.be/CfAL_cL3SGQ?si=v7mRWyjkJkMsUR0T

 

선형 함수만으로 구성된 신경망은 어파인 변환(Affine Transformation)을 수행합니다. 어파인 변환은 입력 벡터에 행렬을 곱하고 bias를 더하는 연산으로, 기하학적으로는 입력 공간에 대한 회전, 스케일링, 이동을 의미합니다. 이는 입력 공간의 선형 부분 공간으로의 투영으로 해석할 수 있습니다. 그러나 선형 변환만으로는 입력 공간을 비선형적으로 왜곡하거나 분할하는 것이 불가능합니다.

 

고차원 공간으로의 사상(mapping)

이제 비선형 활성화 함수를 도입하면, 신경망은 입력 공간을 비선형적으로 변형할 수 있게 됩니다. 각 층의 비선형 활성화 함수는 이전 층의 어파인 변환 결과에 적용되어, 데이터를 비선형적으로 왜곡합니다. 이는 마치 입력 공간을 구부리거나 접는 것과 같은 효과를 가집니다.

 

https://youtu.be/CfAL_cL3SGQ?si=v7mRWyjkJkMsUR0T

 

예를 들어, 2차원 입력 공간을 생각해 봅시다. 선형 변환만으로는 이 공간을 회전하거나 스케일링할 수 있지만, 비선형적으로 구부리는 것은 불가능합니다. 하지만 비선형 활성화 함수를 사용하면, 2차원 평면을 3차원 이상의 공간으로 변형할 수 있습니다. 이는 데이터를 고차원 공간으로 사상하여, 선형적으로 분리 불가능한 데이터를 선형적으로 분리 가능하게 만드는 것과 같습니다.

 

복잡한 특징 공간과 딥러닝 학습

https://youtu.be/CfAL_cL3SGQ?si=v7mRWyjkJkMsUR0T

이러한 비선형 변환을 여러 층에 걸쳐 반복하면, 신경망은 매우 복잡하고 추상적인 특징 공간을 학습할 수 있게 됩니다. 각 층은 이전 층의 비선형 변환 결과를 입력으로 받아, 점진적으로 더 높은 수준의 특징을 추출합니다. 이는 데이터의 내재된 비선형 구조를 포착하고, 복잡한 의사 결정 경계(Decision Boundary)를 형성하는 데 도움을 줍니다.

 

https://youtu.be/CfAL_cL3SGQ?si=v7mRWyjkJkMsUR0T

 

따라서 비선형 활성화 함수는 인공 신경망이 표현할 수 있는 선형 대수적 공간을 고차원의 비선형 공간으로 확장시킵니다. 이를 통해 신경망은 데이터의 복잡한 패턴과 추상적인 특징을 학습할 수 있게 되며, 이는 딥러닝의 핵심 원동력이라고 할 수 있습니다.

 

마무리하며

오늘은 인공지능 신경망이 선형-비선형 함수를 어떻게 활용하고 있는 지 알아보았습니다. 선형 대수는 인공 신경망 구조를 더 입체적으로 이해하는데 큰 도움을 줄 수 있습니다. 어려운 수식들을 먼저 보기 전에 링크의 예제를 통해 선형 변환이 어떤 느낌인지 살펴보는건 어떨까요?

 

Reference