위 내용은 "핸즈온 머신러닝" 책을 바탕으로 정리한 내용입니다.
퍼셉트론은 가장 간단한 인공 신경망 구조 중 하나이다.
입력과 출력이 (이진 on/off 값이 아닌) 어떤 숫자이고, 각각의 입력 연결은 가중치와 연관되어 있음.
TLU(threshold logic unit) 또는 LTU(linear threshold unit)라고 불림.
TLU는 입력의 가중치 합을 계산()한 뒤 계산된 합에 계단 함수를 적용하여 결과를 출력
TLU : 입력의 가중치 합을 계산한 다음 계단함수를 적용하는 인공 뉴런
하나의 TLU는 간단한 선형 이진 분류 문제에 사용 가능
입력의 선형 조합을 계산해서 그 결과가 임곗값을 넘으면 양성 클래스 출력, 그렇지 않으면 음성 클래스 출력(로지스틱 회귀나 선형 SVM 분류기 처럼)
이 경우 TLU를 훈련한다는 것은 최적의 를 찾는다는 뜻
퍼셉트론은 층이 하나 뿐인 TLU로 구성, 각 TLU는 모든 입력에 연결되어 있음.
*한 층에 있는 모든 뉴런이 이전 층의 모든 뉴런과 연결되어 있을 때 이를 완전 연결층(fully connected layer), 또는 밀집 층(dense layer)이라고 부름
퍼셉트론의 입력은 입력뉴런이라고 불리는 특별한 통과 뉴런에 주입됨.
편향 특성이 더해지는데 이 편향 특성은 항상 1을 출력
)
이전과 마찬가지로 는 입력 특성의 행렬을 나타냄, 이 행렬의 행은 샘플, 열은 특성
가중치 행렬 W는 편향 뉴런을 제외한 모든 연결 가중치를 포함
편향 벡터 b는 편향 뉴런과 인공 뉴런 사이의 모든 연결 가중치를 포함
헤브의 규칙에 따르면 한 번에 한 개의 샘플이 주입되면 각 샘플에 대해 예측을 만들고 잘못된 예측을 하는 모든 출력 뉴런에 대해 입력에 연결된 가중치를 강화
두 뉴런이 동시에 활성화 될 때 마다 이들 사이의 연결 가중치가 증가하는 경향
퍼셉트론은 네트워크가 예측할 때 만드는 오차를 반영하도록 조금 변형된 규칙을 사용하여 훈련됨.
퍼셉트론에 한번에 한 개 샘플이 주입되면 각 샘플에 대해 예측이 만들어짐
퍼셉트론 학습 규칙(가중치 업데이트)
- 는 번째 입력 뉴런과 번째 출력 뉴런 사이를 연결하는 가중치
- 는 현재 훈련 샘플의 번째 뉴런의 입력값
- 는 현재 훈련 샘플의 번째 출력 뉴런의 출력값
- 는 현재 훈련 샘플의 번째 출력 뉴런의 타깃값 는 학습률
사이킷런의 Perceptron 클래스는 매개변수가 loss="perceptron", learning_rate="constant", eta0=1(학습률), penalty=None(규제없음)인 SgdClassifier과 같다.
로지스틱 회귀 분류기와 달리 퍼셉트론은 클래스 확률을 제공하지 않으며 고정된 임곗값을 기준으로 예측을 만듦.
요약
1. 각 훈련 샘플에 대해 역전파 알고리즘이 먼저 예측을 만들고 (정방향 계산) 오차를 측정
2. 역방향으로 각 층을 거치면서 각 연결이 오차에 기여한 정도를 측정 (역방향 계산)
3. 오차가 감소하도록 가중치를 조정 (경사하강법 단계)
역전파 알고리즘은 로지스틱 함수 뿐만 아니라 다른 활성화 함수와도 사용될 수 있음
아하 그렇군요