신경망 알고리즘 원리 - 퍼셉트론
태그 :
- 개념
- 헵규칙, 퍼셉트론, 퍼셉트론의 한계, 다층 퍼셉트론, 아달라인 단층 퍼셉트론(Single Layer Perceptron)의 정의 - 1958년 로센블래트(Rosenblatt)가 제안, n개의 input에 각각 weight를 적용하여 가중치의 합을 구하는 형태(선형 결합), 입력과 출력으로 구성 다층 퍼셉트론(Multi Layer Perceptron)의 정의 - 입력층과 출력층 사이에 하나 이상의 은닉층을 가지는 전방향 신경회로망 - 단층 퍼셉트론의 한계를 개선한, 여러 개의 퍼셉트론을 층 구조로 구성한 신경망 모델
## Ⅰ. 학습 가능한 신경망 모델, 퍼셉트론(Perceptron)의 개요
### 가. 단층 퍼셉트론(Single Layer Perceptron)의 정의
- 1958년 로센블래트(Rosenblatt)가 제안, n개의 input에 각각 weight를 적용하여 가중치의 합을 구하는 형태(선형 결합), 입력과 출력으로 구성
### 나. 다층 퍼셉트론(Multi Layer Perceptron)의 정의
- 입력층과 출력층 사이에 하나 이상의 은닉층을 가지는 전방향 신경회로망
- 단층 퍼셉트론의 한계를 개선한, 여러 개의 퍼셉트론을 층 구조로 구성한 신경망 모델

## Ⅱ. 퍼셉트론(Perceptron)의 구조
### 가. 단층 퍼셉트론(Single Layer Perceptron)구조

- 단층 퍼셉트론에서는 활성 함수가 순입력 함수의 리턴값을 임계값을 기준으로 1 또는 -1로 리턴한 값과, 실제 결과값을 임계값을 기준으로 1 또는 -1로 리턴한 값을 비교하여 가중치를 업데이트 하도록 하거나 결과를 출력
- 아달리안 (windorow-hoff rule) :1960년 Benard windorow, Tedd hoff에 의해 Perceptron의 성능 개선

- 아달리안에서는 순입력 함수의 리턴값과 실제 결과값을 비교하여 이 오차가 최소가 되도록 가중치를 업데이트 하는 기능을 활성 함수가 수행하게 됨. 이를 위해 비용함수(cost function)를 정의하고, 비용함수가 최소가 되도록 가중치를 업데이트 하는 것이 핵심임
### 나. 다층 퍼셉트론(Multi Layer Perceptron)의 구조
- Hidden Layer의 역할 : 앞 단계에서 받은 데이터(신호)를 필터링해서 좀 더 구체화 한 후 다음 단계층으로 전달(각 은닉층 마다 몇 개의 노드가 최적인지는 문제에 따라 다름)
| 항목 | 설명 |
| -------- | -------- |
| 입력층(Input Layer) | - 입력 데이터를 받아 들인다
- 입력 데이터의 노드(뉴런)수는 입력 데이터 특성개수와 일치한다 | | 은닉층(Hidden Layer) | - 은닉층의 뉴런수와 은닉층의 개수는 신경망 설계자의 직관과 경험에 의존
- 은닉층의 뉴런수가 너무 많으면, overfitting이 발생, 너무 적으면 충분히 표현하지 못함 | | 출력층(Output Layer)| - 해결하고자 하는 문제의 성격(예를 들어, 필기체 숫자를 인식 한다면 0~9까지 10개 노드로 선정) | ### 다. 다층 퍼셉트론(Multi Layer Perceptron)의 구조도  - 은닉층 뉴런 #1은 AND연산, 은닉층 뉴런 #2는 OR연산, 출력층은 XOR연산 - **다층 퍼셉트론과 달리, 단층 퍼셉트론에서는 Exlusive-OR(XOR)연산을 학습할 수 없음**   ## Ⅲ. 단층 퍼셉트론(Single Layer Perceptron)으로는 Exclusive-OR(XOR) 연산을 학습 할 수 없는 이유 - XOR연산의 경우, 비선형 분리 불가능 문제가 존재 | 항목 |진리표 | 설명 |
| -------- | -------- | -------- |
| AND |  |  |
| OR |  |  |
| XOR |  | 
-선형으로 분리 불가능(XOR문제) | - **은닉층(hidden layer)라는 하나의 층을 더 만들면 신경망이 그리는 모양이 직선이 아니라 다양한 모양으로 변할 수 있음(다층 퍼셉트론)** - 단층퍼셉트론 만으로는 XOR 게이트를 설명할 수가 없음. 그렇기에 층을 하나 더 쌓은 다층 퍼셉트론으로 이를 구현 할 수 있는데 이는 간단히 AND, NAND, OR 게이트를 조합함으로써 만들 수 있음
- 입력 데이터의 노드(뉴런)수는 입력 데이터 특성개수와 일치한다 | | 은닉층(Hidden Layer) | - 은닉층의 뉴런수와 은닉층의 개수는 신경망 설계자의 직관과 경험에 의존
- 은닉층의 뉴런수가 너무 많으면, overfitting이 발생, 너무 적으면 충분히 표현하지 못함 | | 출력층(Output Layer)| - 해결하고자 하는 문제의 성격(예를 들어, 필기체 숫자를 인식 한다면 0~9까지 10개 노드로 선정) | ### 다. 다층 퍼셉트론(Multi Layer Perceptron)의 구조도  - 은닉층 뉴런 #1은 AND연산, 은닉층 뉴런 #2는 OR연산, 출력층은 XOR연산 - **다층 퍼셉트론과 달리, 단층 퍼셉트론에서는 Exlusive-OR(XOR)연산을 학습할 수 없음**   ## Ⅲ. 단층 퍼셉트론(Single Layer Perceptron)으로는 Exclusive-OR(XOR) 연산을 학습 할 수 없는 이유 - XOR연산의 경우, 비선형 분리 불가능 문제가 존재 | 항목 |
-선형으로 분리 불가능(XOR문제) | - **은닉층(hidden layer)라는 하나의 층을 더 만들면 신경망이 그리는 모양이 직선이 아니라 다양한 모양으로 변할 수 있음(다층 퍼셉트론)** - 단층퍼셉트론 만으로는 XOR 게이트를 설명할 수가 없음. 그렇기에 층을 하나 더 쌓은 다층 퍼셉트론으로 이를 구현 할 수 있는데 이는 간단히 AND, NAND, OR 게이트를 조합함으로써 만들 수 있음