Software Engineering

[딥러닝] 비선형 함수

Chr0n 2024. 4. 14. 15:02
반응형

 

 

 

 

신경망은 복잡한 데이터 패턴을 학습할 수 있는 강력한 도구입니다. 선형 모델을 사용하여 입력 데이터를 변환하고, 활성화 함수를 통해 이를 비선형적으로 처리함으로써 다양한 문제에 적용할 수 있습니다. 이런 구조 덕분에 신경망은 이미지 인식, 음성 처리, 자연어 처리 등 다양한 분야에서 효과적으로 사용됩니다.

 

신경망(Neural Network)은 선형모델과 비선형함수를 결합하여 비선형모델을 생성하는 구조입니다. 이를 이해하기 위해서는 먼저 선형모델의 기본적인 구성을 파악할 필요가 있습니다. 선형모델은 입력 데이터 X와 가중치 행렬 W, 절편 b를 사용하여 출력 O를 생성합니다. 여기서 행렬 O는 데이터 X와 가중치 W의 행렬곱에 절편 b를 더한 값으로 표현됩니다.

X(n * d)는 전체 데이터의 집합으로 각 행이 하나의 데이터를 나타내며, W는 이 데이터들을 다른 차원의 공간으로 매핑하는 역할을 합니다. 결과적으로, X와 W의 곱은 n * p 크기의 결과 행렬 O를 생성하며, 여기에 b가 더해져 최종적인 출력이 완성됩니다.

 

 

 

 

 



선형모델의 출력을 비선형 변환하는 과정에서 활성화 함수가 사용됩니다. 예를 들어, softmax 함수는 출력 벡터 O를 확률 벡터로 변환하여 각 클래스에 속할 확률을 제공합니다. softmax는 출력값을 지수함수로 변환하여 모든 출력값의 합이 1이 되도록 만듭니다. 이는 다음과 같이 정의됩니다:

 

 

def softmax(vec):
    denumerator = np.exp(vec - np.max(vec, axis=-1, keepdims=True))
    numerator = np.sum(denumerator, axis=-1, keepdims=True)
    val = denumerator / numerator
    return val

 

이 함수는 벡터의 각 요소를 지수함수로 변환 후 정규화하여, 출력값을 확률로 해석할 수 있게 해줍니다. 예를 들어 벡터 [1, 2, 0]는 softmax를 통해 [0.24, 0.67, 0.09]로 변환될 수 있습니다.

신경망에서는 또한 활성화 함수(Activation Function)가 중요한 역할을 합니다. 활성화 함수는 각 뉴런의 출력 신호를 결정하는 데 사용되며, 이는 주로 비선형 함수가 사용됩니다. 활성화 함수가 없다면 신경망은 단순한 선형 회귀와 다르지 않게 됩니다. 다양한 활성화 함수 중 하나인 softmax와 달리, 대부분의 활성화 함수는 각 요소에 독립적으로 적용되며 출력 전체를 고려하지 않습니다.


 

반응형