2024. 1. 9. 13:54ㆍ인공지능/머신러닝 이론
퍼셉트론이란
퍼셉트론이란 프랑크 로젠블랫이 MCP 뉴런(맥컬록-피츠 뉴런)을 기반으로 고안된 학습 규칙, 알고리즘으로써 일종의 인공 신경망(Artificial Neural Network, ANN)이다. 퍼셉트론은 여러 층으로 이루어져 있고, 각 층은 노드들의 묶음이며, 노드는 수학적으로 뉴런을 모방한 것이다. 층들은 입력층, 은닉층, 출력층으로 이루어져 있다. 이때, 입력층과 출력층으로만 이루어져 있는 구조를 단층 퍼셉트론이라 한다. 반대로 은닉층이 2개 이상인 경우에는 심층 신경망(Deep Neural Network, DNN)이라 한다.
이 글에서 다루는 퍼셉트론은 로젠블랫이 고안한 초창기 단층 퍼셉트론이다.
인공 뉴런의 수학적 정의
인공 뉴런 아이디어는 0과 1 두 개의 클래스가 있는 이진 분류 작업으로 볼 수 있다. 이는 다수의 입력값과 가중치(weight)의 조합으로 결정 함수 σ(z)를 정의한다(σ(ㆍ)는 단위 계단 함수의 변형임).
가중치(w)와 특정 샘플 x(i)는 m x 1 크기의 행렬인 '벡터'이다.
두 벡터 w와 x를 곱하여 최종 입력인 z를 구한다.
위 수식 2에서 보면 알 수 있듯, 결정 함수는 단위 계단 함수(Unit step function)의 변형이다. 샘플 중 i번째 샘플을 x(i)라 할 때, 이것의 최종 입력이 임계 값 θ보다 크면 클래스 1로 예측하고, 그렇지 않으면 클래스 0으로 예측한다.
앞서 보았던 수식 3의 결정 함수를 조금만 변형한다면 위의 수식 4와 같이 나타낼 수 있다. 여기서 b는 편향(bias)이라 부른다. 이러한 변형 과정을 통하여 최종 입력은 아래와 같이 정리된다.
학습 규칙
초창기 퍼셉트론의 학습 규칙은 매우 간단하다. 이는 2가지 과정으로 구성되어 있다.
1. 가중치를 0 또는 랜덤한 작은 값으로 초기화
2. 각 훈련 샘플 x(i)에서 다음 작업을 수행
2-a. 출력 값 ^y를 계산
2-b. 가중치와 절편을 업데이트
여기서 2-b의 가중치와 절편 업데이트를 수식으로 쓰면, 다음과 같이 나타낼 수 있다.
여기서 η은 학습률(learning late)을 의미한다. 이는 일반적으로 0.0에서 1.0 사이의 실수이다. y(i)는 i번째 샘플의 진짜 클래스 레이블(true class label)이며, ^y(i)는 퍼셉트론이 구한 예측 클래스 레이블(predicted class label)이다. 업데이트 과정에서 모든 가중치와, 편향은 동시에 업데이트된다.
퍼셉트론은 두 클래스가 선형적으로 구분 가능할 때, 다시 말해 두 클래스가 선형 결정 경계로 완벽하게 나뉠 경우에만 수렴이 보장된다. 위 그림 2의 오른쪽과 같은 경우에는 선형 결정 경계로 두 클래스를 구분할 수 없다. 이런 경우 퍼셉트론이 가중치 업데이트를 끊임없이 반복하게 되므로, 이를 방지하기 위해 훈련 데이터셋을 반복할 최대 횟수(epoch)를 지정할 수 있다.
'인공지능 > 머신러닝 이론' 카테고리의 다른 글
머신러닝 - 6. 데이터 스케일링 (Data Scaling) (0) | 2024.01.10 |
---|---|
머신러닝 - 5. 적응형 선형 뉴런(ADALINE) (1) | 2024.01.10 |
머신러닝 - 4. 평균 제곱 오차(Mean Squared Error, MSE) (0) | 2024.01.10 |
머신러닝 - 3. 경사하강법(Gradient Descent) (0) | 2024.01.09 |
머신러닝 - 1. 머신러닝이란, 머신러닝의 종류 (0) | 2024.01.08 |