꿈이 너무 많은 한 대학생의 공간

4. 멀티 레이어 퍼셉트론 소개 및 XOR 풀이 본문

인공지능/딥러닝 이론 및 파이썬 실습

4. 멀티 레이어 퍼셉트론 소개 및 XOR 풀이

청울울청 2020. 7. 5. 16:59

본 포스팅은 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 을 참고하여 작성된 요약본입니다. 비전문가가 작성하였으므로 참고만 해주시길 부탁드립니다.

 

1. 멀티 레이어 퍼셉트론이란?

 

멀티 레이어 퍼셉트론은 실제 인간의 뇌에서 비롯되었다. 인간의 뇌는 수많은 뉴런으로 이루어져 있다. 가지 돌기를 통해 신경 세포체, 축삭 돌기를 거쳐 또 다른 가지 돌기로 들어가 수없이 많은 과정을 거쳐 뇌가 작동하는 것이다. 우리는 각 뉴런을 레이어(Layer)라고 지칭하고, 현재 처리가 이루어지고 있는 레이어를 현 레이어라고 지칭한다. 

 

2. XOR 연산

 

XOR 연산은 둘 중 하나만 1일때 참이 되는 연산이다. 즉, (0, 0)이 참이 될 수 없고, (1, 1) 또한 참이 될 수 없다.

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

간단히 말하자면 좌표평면에서 진리표를 작성하였을 때 하나의 퍼셉트론은 하나의 선(위 이미지의 노란색 선)밖에 긋지 못한다.

 

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

다음과 같이 하나의 선으로 참과 거짓 값을 구별할 수 있지만, XOR 연산은 두 가지의 선으로 구분되기에 

결국 싱글 인풋 퍼셉트론은 XOR 연산을 수행할 수 없다고 할 수 있다.

 

이를 해결하기 위해 나온 것이 멀티 레이어 퍼셉트론(Multi Layer Perceptron)이다.

 

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

위 그림은 하나의 레이어에서의 멀티 인풋 퍼셉트론이다. 두 가지 값을 받고 참과 거짓의 연산을 출력하는 퍼셉트론이다.

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

위 그림은 멀티 레이어 퍼셉트론의 예제이다. p1, p2 값을 받고 각각 가중치를 곱해 활성 함수에 들어간 뒤 나온 값들을 다시 한번 활성 함수에 돌려 최종 연산 값을 출력하는 예제이다. 

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

강의에서 사용한 가중치 예제이다. 첫번째 레이어(빨간색 부분)에서 들어갈 때 가중치 값을 모두 1로 두고, 두번째 레이어(파란색 부분)의 가중치는 각각 1, -2, 1 로 두었다. 편향은 모두 0으로 가정한다. 또한 활성 함수의 임계값(임계값을 넘거나 같으면 1, 넘지 않으면 0으로 가정)도 설정하였다.

지금부터 XOR 연산을 수행할 것이다.

 

먼저, p1, p2가 (0, 0) 일때의 XOR 연산을 수행해 보자.

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

p1이 0이고, 편향이며, 첫번째 활성 함수 임계값이 1이므로 0 * 0 + 0 < 1, 즉 첫번째 활성 함수는 0을 반환한다.

두번째 활성 함수 역시 받는 값은 0, 임계값보다 작으므로 0을 리턴, 세번째 함수도 동일하다.

그 후 나온 세 가지의 값에 가중치를 모두 곱하고 편향을 더한 뒤 마지막 활성 함수에 대입한다. 

활성 함수의 모든 값이 0으로 나왔고 편향 또한 0이므로 활성 함수의 임계값을 넘지 못해 결국 0이 반환, XOR 연산에서는 거짓이 된다.

 

다음으로, p1과 p2가 (0, 1) 일때의 XOR 연산을 수행해 보자.

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

p1은 0, p2는 1이다. 첫번째 활성 함수에서는 0 * 1 + 1 * 1 + 0 >= 1 이므로 임계값과 동일하니 활성 함수에서는 1을 반환한다. 두 번째 활성함수에서는 1 * 0 + 1 * 1 + 0 < 2 이므로 0을 반환한다. 세 번째 활성함수에서는 1 * 0 + 1 * 1 + 0 >= 1 이므로 활성함수에서는 1을 리턴한다. 마지막 활성함수에서는 1 + 1 + 1 + 1 + 0 * -2 > 1 이므로 활성 함수에서는 1을 리턴하고, XOR 연산 또한 참이 된다.

(반대의 경우인 (1, 0) 또한 마찬가지이다.)

 

마지막으로, p1과 p2가 (1, 1) 일때의 XOR 연산을 수행해 보자.

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

첫 번째 활성함수에서는 1 * 1 + 1 * 1 > 1 이므로 1을 리턴한다. 두 번째 활성함수 또한 1 * 1 + 1 * 1 >= 2 이므로 1을 리턴하고, 세 번째 활성함수 또한 1 * 1 + 1 * 1 > 1 이므로 세 번째 활성함수도 1을 리턴한다. 다만 마지막 활성함수에서 1 * 1 + 1 * -2 + 1 * 1 = 0 < 1 이므로 마지막 활성함수의 임계값을 넘지 못한다. 즉, 최종적으로 0을 반환하고 XOR 연산 또한 거짓이 되는 것이다.

 

결국 이를 통해 싱글 퍼셉트론으로는 해결하지 못했던 XOR 문제풀이를 멀티 레이어 퍼셉트론(Multi Layer Perceptron, MLP)를 통해 해결할 수 있었다.

 

3. 멀티 레이어 퍼셉트론의 구조

 

이미지 출처 : 구름EDU 딥러닝 이론 및 파이썬 실습 (허민석) 

멀티 레이어 퍼셉트론의 구조는 크게 세 가지로 이루어져 있다. 

빨간색 부분, 입력값을 받는 입력 레이어(Input Layer), 파란색 부분, 연산이 처리되는 히든 레이어(Hidden Layer), 최종적으로 값이 출력되는 출력 레이어(Output Layer)로 구성되어 있다.

 

위와 같은 구조를 가진 퍼셉트론을 멀티 레이어 퍼셉트론(Multi Layer Perceptron, MLP), 또는 Feed Forward Neural Network(FFNN)으로 부르기도 한다.

'인공지능 > 딥러닝 이론 및 파이썬 실습' 카테고리의 다른 글

6. 선형과 비선형의 차이  (0) 2020.07.06
5. 텐서란 무엇인가요?  (0) 2020.07.05
3. 멀티 인풋 뉴런  (0) 2020.07.05
2. 싱글 인풋 뉴런  (0) 2020.07.04
1. 딥러닝 이론 소개  (0) 2020.07.04
Comments