다층 신경망은 은닉층, Hidden layer를 가지는 딥러닝 모델로 단층 신경망보다 정교하며 방대한 양의 데이터를 학습할 수 있다고 말씀드렸습니다.
하지만, 이전에 보았던 예시는 활성화 함수가 적용되지 않은 다층 신경망이었기 때문에 사실은 단층 신경망이라고 생각하는 것이 맞습니다. 다시 말하자면, 활성화 함수가 있어야 다층 신경망입니다.
위 그림은 은닉층을 가지는 다층 신경망입니다. 위 도식 표대로 결과 값을 도출해보도록 하겠습니다.
결과 값 = (은닉층 1 x ω5) + (은닉층 2 x ω6) 이므로 이 식에 다음 두 식을 대입합니다.
은닉층 1 = (1월 x ω1) + (2월 x ω3)
은닉층 2 = (1월 x ω2) + (2월 x ω4)
두 식을 대입하여 정리하면
결과 값 = 1월(ω1ω5 + ω3ω6) + 2월(ω2ω5 + ω4ω6)으로 나타내어집니다.
이때, 밑줄 친 수식을 각각 ω7와 ω8이라고 하면 1월과 2월의 값에 각각의 가중치를 곱한 뒤 더한 가중합이 결과 값이 되는 단층 신경망과 같아집니다.
우리가 은닉층을 활용해 다층 신경망으로써 좋은 결과를 도출해내기를 바랐던 신경망이 사실은 단층 신경망이어서 노력에도 불구하고 같은 결과를 얻게 되는 것입니다.
이 문제를 해결하기 위한 방법이 바로 활성화 함수, Activation function입니다.
활성화 함수, Activation function
활성화 함수는 은닉층, Hidden layer에서 입력 값을 그대로 받아들이는 것이 아니라, 활성화 함수를 통해 변환한 값으로 받아들이도록 만듭니다.
즉, 은닉층에 저장되는 데이터 값이 h1, h2로 그대로 저장되는 것이 아니라, 활성화 함수에 대입한 후에 변환된 값인 h`1과 h`2로 저장되는 것입니다.
활성화 함수로 사용되는 대표적인 함수가 바로 시그모이드, Sigmoid 함수입니다.
시그모이드 함수
시그모이드 함수는 S자형 곡선을 가지는 식으로 항상 0보다 크고 1보다 작다는 특징이 있습니다. 특히 신경망 분야에서 자주 사용되는 활성화 함수이니 반드시 알아두시기를 추천하겠습니다.
이제부터 시그모이드 함수의 기호를 φ로 정의하도록 하겠습니다.
앞서 말한 대로, 시그모이드 함수를 활성화 함수로 적용할 경우, 은닉층에 원래 입력 값인 h1와 h2를 시그모이드 함수 식에 대입하여 나온 값을 은닉층에 저장합니다.
φ(h1)과 φ(h2)가 각각 은닉층 1과 은닉층 2에 저장되는 것입니다.
여기까지만 들어서는 활성화 함수를 사용하는 이유에 대해서 이해가 가지 않을 것입니다. 다음 예를 보도록 하겠습니다.
활성화 함수 사용 이유
앞서 보았던 A의 게임시간 예측에 관한 머신러닝 단층 신경망 모델을 생각해보도록 하겠습니다. 결국 그 결과 값은 1월 게임시간과 가중치 ω의 곱, 2월 게임시간과 가중치 ω의 곱으로 나타났습니다.
즉, 선형적인 예측 모델이라는 얘기입니다. 하지만 선형적인 예측 모델은 엄청난 결함을 가지고 있습니다.
위 그래프에서 점 찍힌 것이 데이터, 직선이 단층 신경망이 구한 선형 예측 모델입니다. 이 직선은 데이터를 이용하여 최적의 선형 모델을 찾기는 했지만, 과연 이 모델이 적합하다고 할 수 있을까요?
해당 데이터들은 한쪽으로 치우쳐있는 경우가 많아 단층 신경망이 구한 선형 모델만으로는 최적의 예측 모델을 구하기에는 무리가 있습니다.
하지만, 활성화 함수를 적용한 다층 신경망의 경우, 데이터가 활성화 함수를 통해 변환되기 때문에 비선형 예측 모델을 만들 수 있고, 이는 보다 적합한 예측 모델을 찾을 수 있게 합니다.
'공대 공부 > 딥러닝 신경망' 카테고리의 다른 글
신경망 학습 델타 규칙 (0) | 2022.03.31 |
---|---|
쉽게 이해하는 다층 신경망 딥러닝 (0) | 2022.03.31 |
쉽게 이해하는 단층 신경망 (0) | 2022.03.31 |
Comment