[DL] Regression and Classification

Kyeongmin·2023년 11월 12일
0

인공지능

목록 보기
2/9

이 글은 다층 퍼셉트론에 대해서 알고 있다는 전제 하에 쓰여진 글입니다.
다층 퍼셉트론, 즉 인공신경망(Neural Networks)이 어떻게 회귀 문제와 분류 문제에 사용될 수 있는지 정리해보고자 합니다.

개요 - 다층 퍼셉트론의 구성

먼저 다층 퍼셉트론은 어떠한 구조를 가지고 있을지 살펴보겠습니다.

다층 퍼셉트론은 입력층, 은닉층, 출력층 3가지로 구성되어있고,
출력층의 노드에는 활성화 함수(Activation Function)가 적용됩니다.

또한 노드 간 가중치는 손실 함수(Loss Function) 값에 따라 업데이트 됩니다.

그렇다면, 활성화 함수와 손실 함수는 무엇을 사용해야 할까요?
이는 우리가 어떠한 문제를 풀 것이냐(어떠한 값을 예측할 것이냐)에 따라 정할 수 있습니다.

회귀 (Regression)

인공지능에서 회귀 문제는, 연속형 변수의 값을 예측해 내는 것입니다.

만약 출력층의 활성화 함수로 0~1 사이의 값을 반환하는 Sigmoid가 사용된다면 원하는 값을 예측 할 수 없을 것입니다.
그렇기 때문에 회귀 문제에서 출력층의 활성화 함수는 사용하지 않고, 이전에 더해진 값을 그대로 출력하게 됩니다.

또한 손실 함수는 MSE(Mean Squared Error, 평균 제곱 오차)를 주로 사용합니다.

※ MSE
MSE 수식 ...

이진 분류 (Binary-Class Classification)

이진 분류 문제에서는 일반적으로 예측하고자 하는 범주형 데이터를 0, 1 으로 치환합니다.

따라서 Sigmoid를 사용하더라도 0~1 사이의 값을 통해 어떠한 범주에 속할 확률을 알 수 있으니,
출력층의 활성화 함수에는 주로 Sigmoid를 사용합니다.

다만 분류 문제에서의 손실 함수는 MSE가 아닌 Cross Entropy를 주로 사용합니다.

※ Cross Entropy
Cross Entropy 수식 ...

다중 분류 (Multi-Class Classification)

다중 분류 문제는 예측하고자 하는 범주형 데이터를 One-Hot Encoding을 통해 여러개의 열을 가진 0, 1 으로 치환하게 됩니다.
따라서 인공신경망을 통해 다중 분류 문제를 해결할 때는 출력층의 노드 개수를 범주형 데이터의 고유값과 일치하게끔 만들어 주어야 합니다.

출력층의 활성화 함수에 Sigmoid를 사용하여 각 노드의 확률 값 중 가장 큰 값을 선택할 수 있지만
그렇게 된다면 전체 노드 확률의 합이 100% 이상이기 때문에 해석에 모호한 부분이 발생하게 됩니다.

이를 해결하기 위해 아래와 같이 Softmax Layer를 통해 전체 노드의 확률 값 중

※ Softmax Layer

요약

문제활성화 함수(출력층)손실 함수
회귀LinearMSE
이진 분류SigmoidCross Entropy
다중 분류Softmax layerCross Entropy
profile
개발자가 되고 싶은 공장장이🛠

0개의 댓글