퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망
으로 다수의 입력으로부터 하나의 결과
를 내보내는 알고리즘
퍼셉트론은 실제 뇌를 구성하는 신경 세포 뉴런의 동작과 유사한데 뉴런은 가지돌기에서 신호를 받아
들이고 신호가 임계값을 넘어서는 전류가 생기면 가지면 축삭돌기를 통해서 신호를 전달
함
= 입력값
= 가중치(weight)
= 출력값
실제 신경 세포 뉴런에서의 신호를 전달하는 축삭돌기의 역할
을 퍼셉트론에서는 가중치
가 대신한다.
각각의 인공 뉴런에서 보내진 입력값 는 각각의 가중치 와 함께 종착지인 인공 뉴런에 전달된다.
각 입력값에는 가중치가 존재하는데 가중치가 클수록 입력값이 중요하다는 것을 의미
한다.
입력값에 가중치가 곱해져 인공 뉴런으로 보내지고, 각 입력값과 그에 해당되는 가중치의 곱의 전체 합이 임계치를 넘으면
종착지의 인공 뉴런은 출력신호로써 1을 내보내고, 그렇지 않은 경우엔 0을 출력
한다.
다음과 같은 함수를 계단 함수(Step function)이라고 한다.
= 임계값
위의 식에서 임계값을 좌변으로 넘기고 편향(bias)로 표현할수도 있다.
편향 또한 퍼셉트론의 입력으로 사용되고 보통 그림으로 표현할 때는 입력값이 1로 고정되고 편향 가 곱해지는 변수로 표현된다.
뉴런에서 출력값을 변경시키는 함수
를 활성화 함수(Activation Function)
라고 한다.
신경망에서 각 노드는 활성화 함수를 가지고 있는데 일반적으로 각 층에는 같은 종류의 활성화 함수를 가지고 있다. 실제 뉴런 세포에서 신호를 전달할지 안 할지를 결정하는 기능을 말하는데 인공신경망에서 활성화 함수는 다음 층으로 신호를 얼마나 전달할지를 결정
한다.
활성화 함수가 사용된 이유는 인공신경망의 한계를 맞게된 첫번째 과제인 XOR 문제에서 시작되었다.
AND와 OR 문제는 해결할 수 있었지만 선형 분류기라는 한계에 의해서 XOR와 같은 비선형 문제는 해결할 수 없었다.
XOR와 같은 비선형 문제의 해결책으로 제시된 것이 활성화 함수이다.
이외에도 다양한 종류의 활성화 함수가 존재한다.
신경망은 여러층으로 구성되는데 기본적으로 입력층(input layers), 은닉층(hidden layers), 출력층(output layers)로 나뉜다.
입력층 (input layers)
입력층은 데이터셋으로부터 입력을 받는다. 입력변수의 수와 노드의 수는 같다.
입력층은 어떤 계산도 수행하지 않고 값들을 전달하기만 하는 특징을 가지고 있다.
그래서 신경망의 층수(깊이)를 셀 때 입력층은 포함하지 않는다.
결국 위의 신경망은 2층 신경망
이라고 할 수 있다.
은닉층 (hidden layers)
계산이 일어나는 층이 둘 이상인 신경망을 다층신경망 이라고 부르는데 입력층과 출력층 사이에 있는 층들을 은닉층
이라고 한다.
계산의 결과를 사용자가 볼 수 없기 때문에 은닉층이라는 이름이 붙었다.
딥러닝
은 두개 이상의 은닉층을 가진 신경망 (두개 이상일 경우 부터 깊다(deep)하다 라고 한다) 입력층을 제외하고 시작하여 3개 이상의 Layer를 갖는 신경망을 의미
한다.
출력층 (output layers)
신경망의 가장 오른쪽 마지막 층이 출력층
이다. 출력층에는 대부분 활성화함수(activation function)
이 존재하는데 활성화함수는 풀고자 하는 문제에 따라 다른 종류를 사용
한다.
회귀문제에서 예측할 목표값이 실수값인 경우 활성화 함수는 필요하지 않으며
출력노드의 수는 출력변수의 갯수와 같다.
이진분류 문제의 경우 시그모이드(sigmoid) 함수를 사용해서 출력을 확률 값으로 변환
하여 예측하고자 하는 타겟을 결정하도록 한다.
다중분류 문제의 경우 출력층의 노드가 예측하고자 하는 타겟의 갯수 만큼 존재하며 소프트맥스(softmax) 함수를 활성화 함수로 사용
한다.