-
퍼셉트론Deep Learning/밑딥1 2021. 5. 4. 00:20728x90
인간은 어떻게 생각하나?

뉴런의 구조 Dendrite : 이웃 뉴런에서 전기 신호를 받는다.
Synapse : 다른 뉴런과 Dendrite의 연결 부위에 있다. 전기 신호의 세기를 재조정한다.
Cell body(Soma) : Dendrite로부터 받은 여러 전기신호들을 모두 합친다.
Axon : Soma의 전위가 일정 이상이 되면 이웃 뉴런으로 전기 신호를 보낸다.
퍼셉트론
Frank Rosenblatt가 1957년에고안한 알고리즘
신경망(딥러닝)의 기원이 되는 알고리즘
퍼셉트론이란?
다수의 신호를 입력으로 받아 하나의 신호를 출력한다.

입력이 2개인 퍼셉트론 x : 입력
w : 가중치 (각 신호가 결과에 주는 영향력을 조정하는 요소)
y : 출력
원은 노드 또는 뉴런이라고 부른다.
뉴런에서 보내온 신호의 총합이 정해진 한계를 넘어설 때만 1을 출력
이 한계를 임계값, θ (theta)이라 한다.
$$y= \begin{cases} 0 & \mbox(w_1x_1 + w_2x_2 \leq\theta) \\ 1 & \mbox(w_1x_1 + w_2x_2 \ge\theta) \end{cases}$$
임계값, θ (theta) 는 잘 쓰지않는다.
b = -θ 로 치환한다.

Heaviside 함수 그래프로 그려보자.
>>> import matplotlib.pylab as plt >>> import numpy as np >>> x = np.arange(-5, 5, 0.1) >>> y = x>0 >>> plt.plot(x, y) >>> plt.show()
Heaviside 함수
퍼셉트론으로 논리게이트 표현
AND 게이트
def AND(x1, x2): x = np.array([x1, x2]) w = np.array([0.5, 0.5]) b = -0.7 tmp = np.sum(w*x) + b if tmp <= 0: return 0 else: return 1OR 게이트
def OR(x1, x2): x = np.array([x1, x2]) w = np.array([0.5, 0.5]) b = -0.2 tmp = np.sum(w*x) + b if tmp <= 0: return 0 else: return 1XOR 게이트
def XOR(x1, x2): s1 = NAND(x1, x2) s2 = OR(x1, x2) y = AND(s1, s2) return yxor게이트는 단순 퍼셉트론으로 표현할수 없다.
AND, NAND, OR 게이트를 사용하여 다중 퍼셉트론으로 표현한다.
정리
퍼셉트론은 인간이 생각하는 방식대로 표현한 알고리즘
퍼셉트론에서는 '가중치'와 '편향'을 매개변수로 설정한다.
AND, OR 게이트 표현가능
XOR 게이트는 다층 퍼셉트론으로 표현가능
728x90'Deep Learning > 밑딥1' 카테고리의 다른 글
합성곱 신경망 | 합성곱 (0) 2021.07.05 학습 관련 기술 : 가중치 초기값 (0) 2021.06.25 오차 역전파법 -1 (0) 2021.05.15 엔트로피 (0) 2021.05.07 인공 신경망 (0) 2021.05.05