지난 글에서 신경망의 가장 기초단위가 되는 뉴런(=퍼셉트론)에 대하여 알아보았고, 뉴런, 즉 퍼셉트론으로 구성된 간단한 네트워크 모델인 단층 퍼셉트론에 대하여 언급하였습니다.
이번 글에서는 단층 퍼셉트론에 대하여 알아보도록 하겠습니다.
신경망 모델은 은 크게 단층 퍼셉트론(Single Layer Perceptron)과 다층 퍼셉트론(Multi Layer Perceptron)으로 나누어 집니다.
가장 처음 제안된 모델은 단층 퍼셉트론입니다.
단층 퍼셉트론의 형태는 아래의 그림과 같이 다수의 뉴런 모델이 하나의 층을 이루고 있는 형태입니다.
그림에서 보시는 것처럼 단층 퍼셉트론은 센서 값 등의 다양한 데이터를 각 노드(뉴런모델)의 입력 값으로 전달하고
각 노드는 입력된 데이터를 합산하여 임계 값을 넘는 경우 1(=On), 임계 값을 넘지 않는 경우는 0(=Off) 을 출력으로
내보내고 있습니다.
이 때 각 노드에는 특정 가중치가 적용될 수 있으며 입력 값에 대한 조정을 하게 됩니다.
예를 들어 4개의 노드에서 각각 1, 0, 0, 1 이라는 출력 값을 제출했다면 최종 출력은 1001 이라는 2진수 값이 나오겠죠.
이와 같이 단층 퍼셉트론을 이용하여 입력에 따른 분류 작업 등을 수행할 수 있습니다.
많은 수의 분류가 필요하다면 노드의 수를 확장하면 됩니다.
n 개의 노드를 가지고 있을 때 분류 가능한 수는 2^n(2의 n제곱)개가 됩니다.
그러나 단층 퍼셉트론의 경우 치명적인 결점이 있습니다.
단층 퍼셉트론의 구조 그림을 보시면 아시겠지만 그림 상에서 가중치를 변경할 수 있는 구조가 전혀 보이지 않죠?
단층 퍼셉트론은 한 번 주어진 가중치는 변경되지 않고 프로그램의 종료 시점까지 유지됩니다.
결국 프로그램의 시작 시점에서 가중치를 지정하여 분류 결과를 변경할 수는 있지만 학습이라는 개념과는 전혀 관계가
없는 단순한 분류 알고리즘에 지나지 않습니다.
if-else 구문 만으로도 충분히 구현가능한 형태인거죠.
그런데 가장 큰 문제점은 바로 입력 데이터를 분류할 때 선형분리가 가능한 패턴만 분류할 수 있다는 점입니다.
쉽게 말해서 데이터를 그래프에 표현했을때, 그래프에 직선을 그어서 나눌 수 있는 분류만 가능하다는 것입니다.
아래의 그림을 보시면 쉽게 이해가 될 것입니다.
그래프 (a), (b), (c)의 경우 직선 하나로 검은색 점과 초록색 점을 정확히 구분할 수 있습니다.
(a), (b), (c)는 단층 퍼셉트론으로 충분히 분류 가능한 데이터라는 거죠.
그러나 (d), (e), (f)의 경우 하나의 직선으로 분류하지 못합니다.
(d) 그래프에서 검은색 점 하나가 어떻게 직선을 긋더라도 분류가 되지 않습니다.
(d)와 같은 특성을 가진 데이터셋은 수 없이 많을텐데 분류가 되지 않으니 치명적인 결점이라고 할 수 있죠.
그런데 (e)와 (f) 그래프를 보시면 (d)와 동일한 데이터인데 2개의 직선, 1개의 곡선을 이용하여 제대로 분류할 수 있다는 것을 보여줍니다.
(e)와 (f)를 가능하게 한 것이 바로 다층 퍼셉트론입니다.
하나의 직선으로 안되면 두 개, 세 개.. 그래도 안된다면 무수히 많은 직선, 즉 곡선을 이용하여 각각 분류된 내용들의 교집합을 골라서 분류가 가능하지 않겠는가? 라는 것이 해결 방안이었습니다.
여러 개의 직선을 적용하기 위하여 단층이 아닌 다층의 퍼셉트론을 제안한 것입니다.
다음 글에서는 다층 퍼셉트론에 대하여 이야기하도록 하겠습니다.
'AI 기반 기술' 카테고리의 다른 글
AI와 데이터과학을 공부하려면 어떤 지식들이 필요할까? (0) | 2019.09.04 |
---|---|
다층 퍼셉트론과 Back Propagation 학습 알고리즘 (0) | 2019.09.04 |
데이터 분석은 무엇이고 데이터 과학은 무엇인가? (0) | 2019.09.02 |
신경망 이해부터 시작하자. (0) | 2019.08.23 |
머신러닝이란 어떤 것인가? (0) | 2019.08.23 |