1. 퍼셉트론 (Perceptron)
ㅇ 1958년 프랭크 로젠블라트(Frank Rosenblatt)에 의해 개발
ㅇ 생물학적 뉴런의 기능을 수학적으로 모델링한 것
- 입력 데이터에 대해 가중치를 적용하고,
- 이 가중치의 합을 계산한 후,
- 활성화 함수를 통해, 최종 출력을 결정
ㅇ 선형 분류기의 일종
ㅇ 층 구분 : 2개의 층을 갖음
- 왼쪽에 입력을 받는 입력층 (input layer)
- 오른쪽에 출력을 보내는 출력층 (output layer)
- (일정 개수의 입력이 활성화되었을 때, 출력을 내보냄)
ㅇ 구성요소 : 입력값, 가중치, 바이어스, 가중치합, 활성화 함수
ㅇ 매개변수 : 가중치(weight), 편향(bias)
- 가중치(weight) : 각각의 입력 신호에 부여되어, 입력 신호와의 계산을 하고,
. 신호 총합이, 정해진 임계값(θ; theta,세타)을,
. 넘으면, 1을 출력 (활성화, activation)
. 넘지 못하면, 0 또는 -1을 출력
- 입력 신호
. 입력 각각에 고유한 가중치가 부여됨
. weight가 클수록, 해당 신호가 중요하다고 봄
- [참고]
. 사실상, 가중치를 만들어내는 것이 학습이며,
. 가중치 값은, 학습 알고리즘에 따라 달라짐
2. 다층 퍼셉트론 (MLP, Multi Layer Perceptron)
ㅇ 퍼셉트론의 한계를 극복하기 위해, 여러 계층(레이어)으로 구성된 신경망
- 은닉층(Hidden Layer)을 도입하여 복잡한 패턴 학습이 가능
ㅇ 비선형 분류기의 일종
ㅇ 층 구분 : 입력 층, 은닉 층 (하나 이상), 출력 층
- 은닉층을 늘려 더 복잡한 패턴을 학습할 수 있음
. 다만, 은닉층이 많아질수록 학습이 어려워지고 계산 비용이 증가
. 특히 역전파 과정에서, 기울기 소실 문제(Vanishing Gradient Problem) 발생 가능
. 은닉 층이 2 이상 있는 경우 : 심층 신경망 (DNN : Deep Neural Network)
- 각 층의 역할 및 구조
. 입출력 : 이전 층의 출력을 입력 받아 연산을 수행하고, 그 결과를 다음 층으로 전달
. 각 층 내 뉴런들의 구조 : 서로 완전히 연결되는 완전 연결층(Fully Connected Layer) 구조
ㅇ 학습 과정 : 역전파 알고리즘을 사용하여 학습
- 순전파 (Feedforward) : 입력을 통해 각 층의 출력을 순차 계산하여 최종 출력층까지 전달
- 오차 계산 (Error Calculation) : 출력층의 출력과 실제 정답 간의 오차를 계산
. 오차는 손실 함수(Loss Function)를 통해 정의됨
- 역전파 (Backpropagation) : 출력층부터 입력층 방향으로 오차를 전달하며 가중치를 조정
. 가중치 갱신(Weight Update)는 경사 하강법에 의해 오차를 최소화하는 방향으로 이루어짐
ㅇ 학습 모델의 형성 : (종단간 학습, end-to-end learning)
- 충분히 학습을 진행하면, 여러 층을 경유하면서,
- 임의 데이터를 입력 받아 이를 점진적으로 변형하며 출력을 내는 모델이 만들어짐
ㅇ 다층 퍼셉트론은, 딥러닝의 기본적인 구성 요소로, CNN, RNN 등의 심층 신경망의 기초가 됨