본문 바로가기
Archive/ML & DL

[DL] Multi Layer Perceptron, Back Propagation 감잡기

by 다람이도토리 2021. 6. 22.

(프로그래머스 인공지능 코스 Week 9-2)

다층 퍼셉트론의 핵심 아이디어

- 은닉층의 도입 : 특징 공간의 변환
- 활성함수의 도입 : 시그모이드의 도입으로 출력을 신뢰도로 간주하게 된다.
- 오류 역전파 알고리즘의 도입 : 층별로 gradient 계산 후 가중치를 갱신하기 위함

XOR 문제

XOR 문제는, 하나의 퍼셉트론, 즉 하나의 결정경계로는 구분이 불가능하지만, 2개면 충분하다.

시그모이드 함수의 도입(활성함수)

시그모이드 함수 등의 다른 활성함수는 영역을 영역으로 변환한다. 즉 , 의사 결정에 사용되는 값이 0, 1 식의 딱딱한 형태가 아닌 부드러운 형태이다.

대표적인 예시로는 다음을 들 수 있다.

- 로지스틱 시그모이드

- ReLU 함수(렉티파이어)

 

다층 퍼셉트론의 표현

다층 퍼셉트론의 경우 가중치는 행렬을 통해 표현하게 된다.

하나의 층을 통과할때마다, 활성화 함수를 통과하게 된다. 따라서, 다음과 같이 표현할 수 있다.

 

역전파 알고리즘

퍼셉트론에서는, 내적을 통해 오차를 계산하고 ,   오차를 다시 미분하여 역으로 돌리려고 한다.

풀고자 하는 문제

다음과 같은 X, Y가 주어질 때, (X : 특성, Y : class),   Y = f(X)가 되는 f를 찾는 것이다.

Error 함수(목적함수)

평균 제곱 오차를 기준으로 하면 다음과 같다.

오류 역전파의 목적, 알고리즘의 개요

Loss의 Gradient를 보고, 값을 갱신하려는 과정 역전파 과정이다.

다시 말해, 입력값이 얼마나 바뀌면 error가 얼마나 바뀌는지를 알고 싶은데, 이 변화량을 구하기 위해 chain rule를 사용하여 단계별로 알아내 최적화를 시키는 것이다.

 

예시)

곱셈 문제의 경우 다음과 같다.

반대쪽에 대해서도, 동일하게 계산해줄 수 있다.

이외에도, 덧셈이나 ReLU 혹은 다른 경우에 대해서도 가능하다.

또한, 입력이 여러개로 갈라지는 경우(fan out), Back Prop값을 모두 더하게 된다.

'Archive > ML & DL' 카테고리의 다른 글

[DL] 컨볼루션 신경망, CNN 이해하기  (0) 2021.06.24
[DL] Pytorch로 Layer 만들기  (0) 2021.06.23
[DL] Pytorch Tutorial  (0) 2021.06.21
[DL] Single Layer Perceptron  (0) 2021.06.21
[ML/DL] 경사하강법  (0) 2021.06.09