수식이 보이지 않을 때는 페이지를 새로고침해주세요🫡 본 포스팅은 '밑바닥부터 시작하는 딥러닝' 교재를 참고했습니다.
◾퍼셉트론이란?
🔻퍼셉트론의 정의
🔸정의 : Frank Rosenblan 이란 분이 고안한 알고리즘으로, 다수의 신호를 입력받아 하나의 신호를 출력하는 것이다.
- 신호 : 전류처럼 '흐름'이 있는 신호를 의미한다.
🔻퍼셉트론의 구조
🔸도식 및 구조
- \(x_i\) : 입력 신호(=뉴런, 노드, 독립 변수)
- \(w_i\) : 가중치
→ 의미 : 입력 신호가 출력 신호를 활성화시키는 데 기여하는 역할을 한다. \(x_i\) 입력신호의 가중치인 \(w_i\)값이 크다면, 해당 입력신호는 출력신호에 더 큰 영향을 줄 것이다. 즉, 가중치는 입력 신호의 '중요도'와 비례한다.
- y : 출력 신호(=종속 변수)
- \(\theta\) : 임계값
→ 의미 : 임계값이란 출력 노드의 활성화 여부를 결정하는 한계이다. 출력 신호가 임계값보다 크면 해당 출력 노드가 '활성화'되고, 입계값 이하이면 활성화되지 않는다.
🔻논리회로로 알아보는 단층 퍼셉트론
🔸논리회로
🔸단층 퍼셉트론을 활용한 AND 게이트 구현 예제
- AND게이트에 대한 직접 구현 코드는 다음과 같다.
def and_gate(x1,x2):
w1 = 0.4
w2 = 0.4
theta = 0.5
y = w1*x1 + w2*x2
if y > theta: return 1;
else: return 0;
- 위의 함수에 [0,0], [0,1], [1,0], [1,1]을 대입해보자.
함수를 정의하고 위와 같이 진리표에 맞게 입력신호를 전달해보면 True And True일 때만 True가 잘 출력되는 것을 확인할 수 있다.
이 때, 가중치인 w1과 w2값의 경우의 수는 무수히 많다.
🔸단층 퍼셉트론의 시각화
- 위의 논리회로를 만족하는 퍼셉트론을 시각화해보면 다음과 같다.
False를 빈 동그라미, True를 색칠된 동그라미라고 하자.
\(y = w_1 \times x_1 + w_2 \times x_2\) 알고리즘을 초록색 실선으로 간주할 수 있다.
AND, OR, NAND, NOR 논리 게이트는 단층 퍼셉트론으로도 잘 구현할 수 있음을 시각적으로 확인할 수 있다.
- 여기서 알 수 있는 단층 퍼셉트론의 특징은 "선형"이라는 점이다.
그리고 단층 퍼셉트론이 선형적이라는 특성때문에 가지는 한계는 비선형적 특징을 갖는 알고리즘을 구현하지 못한다는 점이다.
🔻다층 퍼셉트론 (MLP : Multi-Layer Perceptron)
🔸단층 퍼셉트론의 한계와 XOR 게이트
- 단층 퍼셉트론으로 표현하지 못하는 대표적인 예시가 XOR 게이트이다.
🔸다층 퍼셉트론(MLP)
- 정의 : 2개 이상의 '층(layer)'으로 구성된 퍼셉트론이다.
- 층(layer)의 의미 : 일반적으로 퍼셉트론 또는 신경망을 도식으로 그릴 때, 같은 열(수직 방향)에 위치한 노드들을 묶어 하나의 층으로 표현한다.
위 그림과 같이 x1, x2를 하나의 층으로, s1과 s2 노드를 하나의 층으로 본다.
일반적으로는 s1, s2, y처럼 가중치를 갖는 노드의 층을 유의미하게 보기 때문에 입력계층은 layer의 개수를 셀 때 잘 세지 않는다.
🔸다층 퍼셉트론을 활용한 XOR 게이트 해결
- 3개의 논리게이트를 활용하여 XOR 게이트를 구현할 수 있다.
- XOR 게이트 논리회로
- XOR 게이트 논리회로를 다층 퍼셉트론으로 도식화
◾정리
- 퍼셉트론은 "입출력"을 갖춘 알고리즘이다.
이 때, 입력 신호는 '가중치'와 '편향'이라는 매개변수에 의해 변형되어 출력된다.(편향은 이후 포스트를 통해 차차 알아보자.)
- 단층 퍼셉트론은 선형적인 표현만 가능하다.
- 다층 퍼셉트론은 비선형적인 표현도 가능하다. 따라서 이론상으론 MLP 만으로도 컴퓨터를 구현할 수 있다.
'데이터 > ML & DL' 카테고리의 다른 글
[강화학습] Markov Chain (Markov Decision Process) (0) | 2024.03.18 |
---|---|
[DL기본] Neural Network #2 (1) | 2024.01.23 |
[DL기본] Neural Network #1 (2) | 2024.01.16 |
[패스트캠퍼스] 파이썬을 활용한 데이터 전처리 Level UP #1 Python (1) | 2023.12.20 |
[머신러닝] 앙상블 Stacking 학습 완벽하게 이해하기 (0) | 2023.09.29 |