1. 퍼셉트론(Perceptron)
- 다수의 신호를 입력으로 받아 하나의 신호를 출력
- 인공신경망의 한 종류로 코넬 항공 연구소의 프랑크 로젠블라트에 의해 만들어짐
- 퍼셉트론은 우리가 생물시간에 배웠던 뉴런의 구조와 같다고 보면 된다.
- 입력(x1, x2)은 뉴런 또는 노드라 부름 // 이 입력들을 입력층(Input Layer)라고도 부름
- 출력(y)는 출력층(Output Layer)
- w1,w2는 각각의 고유한 가중치 -> 각 신호가 결과에 주는 영향력 조절하는 요소로 작용
- 가중치가 클 경우 해당 입력 노드가 중요하다는 것을 뜻함
- 정해진 임계값을 넘을 경우 1을 출력(y)
- 아래의 식은 대부분 활성함수를 의미함.(Activation Function)
- x1*w1 + x2*w2 <=임계값 -> 0 출력
- x1*w1 + x2*w2 > 임계값 -> 1 출력
2. 퍼셉트론 파이썬 코드
- AND 회로를 통한 파이썬 코드
def AND(x1, x2):
w1, w2, theta = 0.5, 0.5, 0.7
sum = x1*w1 + x2*w2
if sum > theta:
return 1
elif sum <= theta:
return 0
3. 결과
4. 퍼셉트론(Perceptron)의 한계
- 퍼셉트론으로 AND회로, NAND, OR 회로를 구현할 수 있음
- 하지만, XOR 회로는 구현하지 못함 -> 이 경우, 다층 퍼셉트론(Multi-layer perceptron)을 사용하여 구현 가능
5. 다층 퍼셉트론(Multi-layer Perceptron)
- XOR 회로는 NAND 회로 + OR 회로 + AND회로를 이용하여 구현할 수 있음
- 단층 퍼셉트론으로 구현하지 못하는 것을 층을 하나 늘려 구현 가능
- 코드
'AI > Deep Learning from Scratch' 카테고리의 다른 글
Deep Learning from Scratch CNN(합성곱 신경망) 파이썬 (0) | 2019.11.30 |
---|
최근댓글