[Artificial Intelligence] 퍼셉트론(Perceptiron)
Perceptron Learning Algorithm
- 1960년대 최초의 신경망 학습 모델
- 단순 ,제한적(단층모델)
- 다층모델과 기본 개념은 유사함. 좋은 학습 도구
- 현재도 많이 응용됨
Neural Network
- Nodes(units) connected by links
- Link has a numeric weight
- Input function
- $net_i = \sum_jw_{ij}x_j$
- Activation function
- $g(net_i)$
- Output(activation)
- $out_i = g(net_i)$
Activation Functions
Perceptron Node – Threshold Logic Unit(Step function)
Two Input Case
- $y=hardlim(x)$
- $y=1, x\geqq0$
- $y=0, x<0$
Equivalent perceptiron
- $out=hardlim(\vec{x} \dot \vec{w})$
Two Input case
Desicion boundary (결정 경계)
- $W^TX-\theta = 0$, $W \dot X = \theta$
- 결정경계의 모든 점들은 가중치 벡터와 동일한 내적 ($\theta$)을 가짐
- 따라서 경계의 모든 점은 가중치 벡터에 동일한 투영을 가짐. 가중치 벡터에 수직인 직선에 놓임.
- 가중치 벡터는 결정경계에 직교함
- 가중치 벡터는 1을 출력하는 영역 방향을 가르킴
- 만약 w가 반대방향을 가르키면, 모든 입력벡터와의 내적은 반대부호를 가짐-반대 라벨을 갖는 동일한 분류결과
- 임계치($\theta$)는 경계의 위치를 결정함
- solve for $W^TX-\theta = 0$ to find the decision boundary
- 즉, 기울기는 가중치이고 절편은 결정경계에 의해서 결정
Perceptron Learning Algorithm : Example
- 목적함수가 최대가 되도록 가중치 학습
- 어떤 목적함수를 사용할 것인가?
- 어떤 학습 알고리즘을 사용할 것인가?
First Training Instance
Second Training Instance
Perceptron Learning Rule
- $\Delta{w_i} = c(t – z)x_i$
- $w_i$ 는 입력 $i$ 에서 퍼셉트론 노드로 가중치, $c$는 학습률, $t$는 현재 예의 타겟값, $z$는현재 출력, $x_i$ 는 입력
- Least perturbation principle
- 에러가 있을 때만 가중치 수정
- 현재 패턴을 올바로 분류하기 위한 큰 학습률이 아닌 적은 학습률 $c$를 사용
- $x_i$ 로 스케일
- n 개 입력노드를 갖는 퍼셉트론 생성
- 훈련집합의 각 패턴에 대하여 퍼셉트론 학습규칙을 적용
- 전체 훈련집합에 대한 반복을 한 epoch이라고 함
- 전체 훈련집합 에러가 감소할 때까지 학습을 반복
- 퍼셉트론 수렴정리: 만약 해가 있다면, 유한 시간 내에 해(가중치)를 발견
Augmented Pattern Vectors
- 1 0 1 -> 0
- 1 0 0 -> 1
Augmented Version
- 1 0 1 1 -> 0
- 1 0 1 1 -> 1
- 임계치를 다른 가중치처럼 취급. 출력을 위,아래로 bias를 줌으로 bias로 부르기도 함
Perceptron Rule Example
- 3개 입력과 bias 를 가정(net 가 0보다 크면 출력은 1, 아니면 0)
- 모든 초기 가중치를 0, 학습률을 1 로 가정: $\Delta w_i = c(t – z) x_i$
- Training set
- 0 0 1 -> 0
- 1 1 1 -> 1
- 1 0 1 -> 1
- 0 1 1 -> 0
|Pattern|Target|Weight Vector|Net|Output|$\Delta W_i = c(t-z)x_i$| |—|—|—|—|—|—| |0 0 1 1|0|0 0 0 0|0|0|0 0 0 0| |1 1 1 1|1|0 0 0 0|0|0|1 1 1 1| |1 0 1 1|1|1 1 1 1|3|1|0 0 0 0| |0 1 1 1|0|1 1 1 1|3|1|0 -1 -1 -1| |one epoch|||||| |0 0 1 1|0|1 0 0 0|0|0|0 0 0 0| …
Linear Separability
Limited Functionality of Hyperplane
Perceptron Limitations
- 단층 퍼셉트론은 선형분리가능한 문제만 학습가능
- AND 함수는 선형분리가능, XOR함수는 불가능.
- Perceptrons ( in this context of limitations, they refer to single layer perceptrons) can learn many Boolean functions:
- AND, OR, NAND, NOR, but not XOR
- 구현해보기(시험에 나옴)
Linear Separability
Perceptron Limitations
- Linearly Inseparable Problems
- Multi-layer perceptron can solve these problems
How to Handle Multi-Class Output
- 이진 분류를 위한 학습모델(퍼셉트론, SVM)등의 주제
- 각 출력 클래스에 대해 한 개의 퍼셉트론 생성, 훈련집합에서 모든 다른 클래스들을 음의 예제로 간주
- 모든 퍼셉트론에 대해 입력 데이터를 가하여 1의 출력 값을 갖는 클래스로 결정
- 만약 여러 출력이 동시에 1이면, net 가 최대인 퍼셉트론 선택
- point to class (among all $g_j(x) > 0$) to whose hyperplane the point is most distant. (ref. Alpaydin)
- Cf. softmax with logistic regression
UC Irvine Machine Learning Data Base Iris Data Set
Objective Functions: Accuracy/Error
- 특정 퍼셉트론 모델(즉,특정 가중치를 갖는 퍼셉트론) 의 성능 평가
- 데이터 셋에 대한 모델의 정확도 측정
- Classification accuracy = # Correct/Total instances
- Classification error = # Misclassified/Total instances (= 1 – acc)
- 일반적으로 손실함수(aka 경비,에러)를 최소화함
- 실수값을 갖는 출력과 타켓
- Pattern error = Target – output
- 일반적인 방식 제곱오차 = $\sum(t_i – z_i)^2$ (L2 loss)
-
에러의 상쇄방지: $\sum t_i – z_i $ (L1 loss)
- 전체 제곱오차의 합(SSE) = $\sum \sum (t_i – z_i)^2$
- Pattern error = Target – output
Mean Squared Error
- 평균제곱오차(MSE)- SSE/n : n은 데이터 집합의 예의 개수
- 크기가 다른 데이터집합의 오차를 정규화
- MSE 는 패턴당 평균 제곱오차
- Root Mean Squared Error (RMSE) –MSE 의 제곱근
- 오차의 단위를 원래값으로 복원
- SSE 왜냐하면 SSE 는 오차를 제곱
- RMSE는 출력과 타겟과의 평균거리(오차)
- 오차의 단위를 원래값으로 복원
Gradient Descent Learning: Minimize (Maximize) the Objective Function
Deriving a Gradient Descent Learning Algorithm
- 목표는 전체 오차(혹은 다른 목적함수)를 줄이도록 매 반복마다 가중치 수정
- 전체 제곱오차의 합(가능한 목적함수)
- $E : \sum (t_i – z_i)^2$
- $\frac{fE}{w_{ij}}$ 의 반대방향으로 가중치 수정하는 알고리즘
- 수식이 구해지면 gradient descent learning algorithm(경사하강법) 적용가능
Batch vs Stochastic Update
- 그래디언트를 구하려면 훈련집합 전체에 대하여 에러를 합하고, 각 epoch 의 마지막에서만 가중치를 수정해야 함
- Batch (gradient) vs stochastic (on-line, incremental)
- stochastic algorithm에서는 각 입력 패턴마다 가중치를 수정함(이때는 참 그래디언트를 따른 수정은 아님
- Stochastic 는 대부분 좀더 효율적이며, 사용에 적합Backpropagation 알고리즘에서 다시 다룸
(참고) Linear Models which are Non-Linear in the Input Space
- 현재까지는 를 사용함
- 입력을 비선형방식으로 전처리 한 후 퍼셉트론에 연결
- 퍼셉트론의 학습 알고리즘을 그대로 사용, 입력만 다름 - SVM
- 예를 들면, 두 개의 입력 x,y ( 그리고 bias) 문제에 대해, 입력 x2,y2, x·y 을 추가함
- 퍼셉트론은 5차원 과제로 생각하며, 이 5차원에서 선형문제로간주함
- 이때 원래의 2-d 입력 공간에서의 결정경계면은?
Quadric (2차) Machine
- All quadratic surfaces (2nd order)
- ellipsoid
- parabola
- etc.
- 해결 가능한 문제가 급격히 증가
- 여전히 많은 문제들이 quadrically separable 하지 못함
- 3차원 혹은 고차원 특징들을 사용할 수 있으나, 가능한 특징의 개수는 지수적으로 증가.다층신경망은 입력공간으로부터 고차원 특징을 자동으로 발견하도록 함
Simple Quadric Example
- 퍼셉트론은 f1 만을 이용해 데이터를 분리 할 수 없음.
- 퍼셉트론에 다른 특징을 추가할 수 있는가?
- f_2 = f_1^2
- 퍼셉트론은 f1 만을 이용해 데이터를 분리 할 수 없음.
- 퍼셉트론에 f_2 = f_1^2 특징을 추가
- 단지 특징만을 사용하면서, 데이터를 분리하기 위해 이차원 결정경계면을 구현한 것으로 생각할 수 있음
댓글남기기