카테고리 없음

MLP(multi-layer perceptron)

왕눈임 2024. 10. 15. 18:25

 

우선 단층 인공 뉴런에 대해서 먼저 살펴봅시다

 

간단한 선형 관계식을 생각해 봅시다.

 

(일반적인 class 분류에 활용되는 분류 직선)

 

 

 

주어진 식에서 x입력 데이터를 뜻하며 

w는 예측직선에 사용되는 회귀계수로 

 

기계학습에서 추정해야 할 대상이었다.

 

 

이러한 관계식을 아래처럼 표현할 수 있음.

 

 

어렵지 않다 데이터 x에 w를 곱해 모두 더한다.

이후 "활성화" 함수에 집어넣어 어떤 output을 출력하게 하는 것 .

 

활성화 함수의 종류들은 아래와 같다.

 

이러한 선형식"여러 개"를 써서 아래와 같이 multi class 분류기를 만들 수 있다.

(참고)

2024.09.05 - [다중 클래스 분류] - 다중 분류(multiclass-classification)

 

다중 분류(multiclass-classification)

단순한 이진 분류아닌 class가 여러개인 분류를 다중분류라고 한다. 이때 class 개수와 경계 직선의 개수는 같아야 한다. 가령 분류영역이 3개면 각 꼭지점이 만나는 채로 직선이 3개 있어야한다..

tmddn0512.tistory.com

 

 

 

앞서봤던 선형 분류기(선형 관계식)이 여러 개 존재하는 형태.

 

 

이게 가장 기본적인 인공 뉴런 perceptron 구조

 


 

 

 

이러한 층을 여러 개 쌓게 되면 그것이 multi-layer-perceptron 구조가 되는것.

 

이러한 구조가 왜 필요한가요

 

class 분류 문제를 예시로 계속 활용한다.

 

 

 

다음과 같은 가장 간단한 분포가 존재한다고 합시다.. 

 

이 class 분류 문제를 풀 때 어떠한 직선으로도 두 개의 class를 정확하게 분리해 낼 수 없습니다.

 

이 문제를 풀기 위해 논리 연산자 개념을 도입하자

 

각각의 4개의 점을 0과 1로 표현하여 

이렇게 표현했다 합시다.

 

 

가령 x1축에 올라가있는 점은 

이런식으로 표현하자는 것.

 

 

 

이때 AND 연산을 수행한다고 합시다. 

 

 

이처럼 두 개 모두 1일 때만 1을 반환하고

 

나머지 경우에서는 0을 반환하는 연산이다.

 

이런 식의 논리연산자들이 아래와 같이 존재하는데..

 

 

 

 

다음과 같은 방법으로 4개의 점을 분류해 낼 수 있습니다. 

예시를 들어 살펴보면,

 

 x1, x2모두 0인 경우
nand 연산 결과로 1을
or 연산 결과 0을 반환합니다.

이러한 output 1과 0을 and 연산하면 0이 나오죠

이런 식의 연산을 하면 비선형 분포였던 데이터가 분류가 가능해집니다.

이처럼 기존의 ouput을 다른 layer의 input으로 계산한다면
분류 불가능한 data를 분류 가능하게 풀 수 있게 된다.

그래서 multi-layer을 사용합니다.

 

이처럼 전 단계에서의 ouput을 다음 단계의 input으로 사용하는 구조를 사용합니다.

 

 

 그래서 MLP는 무엇인가.

아래 예시를 통해서 구체적으로 살펴보자.

 

 

784개의 입력 데이터가중치 w를 가진 100개의 선형식에 입력하면

100개의 출력이 생성되어 데이터를 압축하는 과정을 거치게 된다.

이 출력은 활성화 함수에 입력되어 다시 변환되고,

출력층의 선형식input으로 작용하여 

마지막 출력층에서 최종 결과가 도출됩니다.

 

이때 중요한 점은,

마지막 출력층 전까지는 비선형 데이터를 풀어내는 과정을 수행하고,

마지막 층에서는 풀어낸 선형 데이터

선형 분류기로 분류하는 과정이 이루어진다는 것이다.

(적어도 분류문제에서는 그렇다.)

즉, 마지막 층에서 수행되는 일은 다중 클래스 분류 문제와 동일하므로

 

MLP 구조의 학습 방식은 로지스틱 회귀(분류 문제)와 유사합니다.

 

 

구체적으로, MLP 구조의 학습은

 

로지스틱 회귀와 동일하게 활성화 함수를 통해 매핑된 확률을 계산하여,

가능도를 최대화하는 MLE(최대우도추정) 방식을 사용한다.

 

이 과정은 목적함수로 교차 엔트로피(CE)를 사용하여,

이를 최소화하는 방향으로 학습하는 것과 동일했었다.

(아래참조)

2024.09.04 - [선형 분류] - 로지스틱 회귀(logistic regression)

 

로지스틱 회귀(logistic regression)

로지스틱 회귀는 이진 "분류"를 위한 모델로 분류를 위한 경계선인 선형 분류기를 학습하는 것을 목표로 한다.   이진 분류에서 분류 선인 선형 분류기를 학습하기 위해서는 단순히 정답 값

tmddn0512.tistory.com

 

 

 

그래서 목적 함수인 CE를 최소화하는 방식은

Gradient Descent(경사 하강법)을 사용하며

가중치 w를 업데이트하기 위해 해당 목적함수를 w에 대해 미분하는 과정이 필요한데

 

마지막 층이 아닌 다른 층의 가중치를 업데이트하려면 문제가 복잡해집니다.

 

 

어떤 가중치 w는 다른 가중치에 의해 정의되어 있어서

단순하게 특정 가중치의 업데이트를 구할 수 없습니다.

 

이러한 다층 구조에서 경사 하강법을 적용하기 위한 방법이 바로 역전파(backpropagation)입니다.