프랑크 로젠블라트가 제안(1957)
TLU(threshold logic unit) 나 LTU(linear threshold unit)로 불린다.
퍼셉트론은 다수의 신호를 입력받아 하나의 신호를 출력하는 알고리즘
I) TLU
입력의 가중치 합 계산
계단함수 적용하여 출력
*계단함수
*부호함수
선형 이진 분류 문제에 사용
양성 클래스 출력(1): 결과값 > 임계값
음성 클래스 출력(-1): 출력값 <= 임계값
EX) 로지스틱 회귀, 선형 SVM 분류기
Training of TLU : 최적의 가중치를 찾는 것
모든 입력에 연결됨.
한 층의 뉴런 - 이전 층 뉴런 [Fully connected layer or dense layer]
층이 하나뿐인 TLU로 구성이 되고 모든 입력에 연결됨. 그러므로 하나의 TLU를 가진 작은 네트워크로도 불림
퍼셉트론의 입력은 입력 뉴런(어떤 입력값이던 출력으로 통과시킴).
입력층은 모두 입력 뉴런(기본) + 편향 뉴런(항상 1을 출력)
다중 레이블 분류기: 세 개의 다른 이진 클래스를 동시 분류
입출력이 숫자 형태
*다층퍼셉트론이 가능함
정의: 한 층에 속한 각각의 뉴런이 이전 층의 모든 뉴런과 연결이 되어있을 때
완전 연결층으로 구성된 다층 퍼셉트론 모델의 일반적인 형태로 부분 계산이 가능하다.
:
- 입력값 : 데이터의 특징값이다.
- 가중치 : 문제 해결을 위한 선형 경계를 찾고, 입력 값을 변화시켜 선형 경계의 방향성 및 형태 나타남.
- 바이어스 : 선형 경계의 절편을 나타내는 값이다
- 활성화함수 : 값을 출력할 것인지 판단하는 함수이다.(1: 값>임계값, 0: 그렇지 않음)
- 출력값: 문제에 대한 정답의미.
가중치 조절을 통해서 오차를 감소시켜 뉴런 사이의 관계를 강화시킴
하나의 샘플이 입력될 때마다 매번 예측한 -> 오차 계산 -> 오차가 줄어드는 방향으로 가중치 조절.
--> 훈련 샘플이 선형적 구분 -> 알고리즘이 정답에 수렴된다.
[
출력 뉴런에 활성화 함수 사용하지 않고 어떤 범위의 값도 출력.
항상 양수여야 한다며 출력층 - ReLU함수
softplus활성화 함수 사용하여 z가 음수일 때 0에 가까워지고 큰 양수일 수록 z에 가까워짐.
로지스틱 함수나 하이퍼볼릭 탄젠트함수 사용-> 어떤 범위의 한의 값을 예측 및 레이블의 스케일을 적절한 범위로 조정
MSE (훈련에 사용하는 손실함수)
훈련 세트에 이상치 많다면, MAE사용(OR 둘을 조합한 Huber손실 사용)
*전형적인 구조
<하이퍼파라미터> <일반적인 값>
입력 뉴런 수 : 특성마다 하나
은닉층 수 : 문제에 따라 다름, 일반적으로 1에서 5 사이
은닉층의 뉴런 수 : 문제에 따라 다름, 일반적으로 10에서 100사이
출력 뉴런 수 : 예측 차원마다 하나
은닉층의 활성화 함수 : ReLU(또는 SELU)
출력층의 활성화 함수 : 없음, 또는 (출력이 양수일 때) ReLU/softplus 나 (출력을 특정 범위로 제한할 때) logistic/tanh 사용
손실 함수 : MSE나 (이상치가 있다면) MAE/Huber
로지스틱 활성화 함수를 가진 출력 뉴런 하나 필요
출력은 0~1사이의 실수로 이를 양성 클래스에 대한 예측 확률로 해석
로지스틱 활성화 함수를 가진 출력 뉴런 여러 개로 다중 레이블 분류가 가능
각 샘플 3개 이상의 클래스 중 한 클래스만 속하여야 한다면 출력층-SVM
모든 예측 확률은 0~1사이에 만들고 더했을 때 1이 되도록 한다.(다중 분류)
손실함수로는 크로스 엔트로피 손실 또는 로그 손실 선택
입력층과 은닉층 회귀와 동일 회귀와 동일 회귀와 동일
출력 뉴런 수 1개 레이블마다 1개 클래스마다 1개
출력층의 활성화 함수 로지스틱 함수 로지스틱 함수 소프트맥스 함수
손실함수 크로스 엔트로피 크로스 엔트로피 크로스 엔트로피
활성화 함수 대체 필요성
1) 선형성을 벗어나기 위해.
- 선형 변환 여러 개 연결해도 선형이됨
2) 비선형 활성화 함수를 충분히 많은 층에서 사용하면 강력
종류
일반적으로 평균제곱오차(MSE)활용
이상치가 많을 경우: 평균절댓값오차(MAE) 사용 가능
후버(Huber)손실 사용 가능 : MSE와 MAE의 조합
정의: 오차를 감소 시키기 위해 각 연결 가중치와 편향값이 어떻게 바뀌어야하는지 안다.
경사하강법.
*훈련 알고리즘
1) 정방향: 각 훈련 샘플에 대한 예측 만든 후 오차 조정
- 미니배치: 네트워크의 입력층 -> 은닉층
- 모든 뉴런의 출력 계산
- 결과 층의 출력 계산하고 다음 층으로 전달
2) 역방향: 출력값~ 입력값까지의 각 층을 거치면서 각 연결이 오차에 기여한 정도 측정
3) 오차가 감소하도록 모든 가중치 조정.(경사하강법 단계)
4) Epoch:여러번 반복 횟수 지정