이 글은 다층 퍼셉트론에 대해서 알고 있다는 전제 하에 쓰여진 글입니다.
다층 퍼셉트론, 즉 인공신경망(Neural Networks)이 어떻게 회귀 문제와 분류 문제에 사용될 수 있는지 정리해보고자 합니다.
먼저 다층 퍼셉트론은 어떠한 구조를 가지고 있을지 살펴보겠습니다.
다층 퍼셉트론은 입력층, 은닉층, 출력층 3가지로 구성되어있고,
출력층의 노드에는 활성화 함수(Activation Function)가 적용됩니다.
또한 노드 간 가중치는 손실 함수(Loss Function) 값에 따라 업데이트 됩니다.
그렇다면, 활성화 함수와 손실 함수는 무엇을 사용해야 할까요?
이는 우리가 어떠한 문제를 풀 것이냐(어떠한 값을 예측할 것이냐)에 따라 정할 수 있습니다.
인공지능에서 회귀 문제는, 연속형 변수의 값을 예측해 내는 것입니다.
만약 출력층의 활성화 함수로 0~1 사이의 값을 반환하는 Sigmoid가 사용된다면 원하는 값을 예측 할 수 없을 것입니다.
그렇기 때문에 회귀 문제에서 출력층의 활성화 함수는 사용하지 않고, 이전에 더해진 값을 그대로 출력하게 됩니다.
또한 손실 함수는 MSE(Mean Squared Error, 평균 제곱 오차)를 주로 사용합니다.
※ MSE
MSE 수식 ...
이진 분류 문제에서는 일반적으로 예측하고자 하는 범주형 데이터를 0, 1 으로 치환합니다.
따라서 Sigmoid를 사용하더라도 0~1 사이의 값을 통해 어떠한 범주에 속할 확률을 알 수 있으니,
출력층의 활성화 함수에는 주로 Sigmoid를 사용합니다.
다만 분류 문제에서의 손실 함수는 MSE가 아닌 Cross Entropy를 주로 사용합니다.
※ Cross Entropy
Cross Entropy 수식 ...
다중 분류 문제는 예측하고자 하는 범주형 데이터를 One-Hot Encoding을 통해 여러개의 열을 가진 0, 1 으로 치환하게 됩니다.
따라서 인공신경망을 통해 다중 분류 문제를 해결할 때는 출력층의 노드 개수를 범주형 데이터의 고유값과 일치하게끔 만들어 주어야 합니다.
출력층의 활성화 함수에 Sigmoid를 사용하여 각 노드의 확률 값 중 가장 큰 값을 선택할 수 있지만
그렇게 된다면 전체 노드 확률의 합이 100% 이상이기 때문에 해석에 모호한 부분이 발생하게 됩니다.
이를 해결하기 위해 아래와 같이 Softmax Layer를 통해 전체 노드의 확률 값 중
※ Softmax Layer
문제 | 활성화 함수(출력층) | 손실 함수 |
---|---|---|
회귀 | Linear | MSE |
이진 분류 | Sigmoid | Cross Entropy |
다중 분류 | Softmax layer | Cross Entropy |