일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- CH01
- Numerical optimization
- secant
- directed graphical model
- 알고리즘대회
- chapter02
- 선형판별분석
- 개발순서
- 알고리즘
- graphical models
- 선형분류
- falsePosition
- 5397번
- chapter01
- 로지스틱 회귀
- SCPC
- vector미분
- 근구하기
- MySQL
- Fisher discriminant analysis
- 이것이 MySQL이다
- 스터디
- Perceptron Convergence theorem
- undirected graphical model
- 1차예선
- 델타 rule
- bisection
- 2018
- 인공지능
- 자바ORM표준JPA프로그래밍
- Today
- Total
computer_study
[인공지능] Perceptron Convergence theorem 본문
Perceptron Convergence theorem이란?
잘못 분류 된 data들을 찾아서 다시 분류하는 update rule이다.(boundary를 조금씩 바꾸어가면서)
perceptron(퍼셉트론)
초기 형태의 인공신경망으로 다수의 입력으로부터 할당된 웨이트 w를 곱한 다음 하나의 결과를 내보내는 알고리즘이다.
즉. Perceptron convergence theorem이란, 퍼셉트론 알고리즘을 이용해서 값을 수렴시키는 이론이라는 의미이다.
Example
Perceptron Convergence의 특징
d차원에서 hyper plane으로 분류가 완벽하게 되는 경우(Linearly separable한 경우)
다음과 같이, 모든 data가 하나의 구 안에 들어있다고 볼 수 있다. 이때 그 구의 반지름이 R, boundary로 부터 가장 가까운 data까지의 거리를 r이라고 한다. 이때, perceptron convergence theorem을 사용하면, k step안에 완벽한 결과를 찾는 것을 보장하고 그 k는
를 만족한다.
Perceptron Convergence theorem이용한 update
Example1
그림에서 b(bias)는 생략했다.
g1, g2 .. gG별로 b가 존재하기 때문에 gi(x)에는 bi를 사용하였고, g(x)에는 b가 하나 존재하기 때문에 b라고 표기하였다.
(knowable.tistory.com/38 Logistic regression 1번예시 참고)
w11, w12,...,w21...식을 update하기 위해선 L을 wkl로 미분해야된다.(각 weight를 wkl이라고 한다면)
이러한 fully connected layer를 여러겹 쌓아 결과값을 산출해낼 수 있다.
Example2
Example1과 같은 작업을 하지만, Fully connected layer를 여러겹 쌓은 예시를 본다.
Example1의 식이 여러층으로 주어졌을 때 그림을 보면 다음과 같다,
Object function을 loss function으로 두고 l층에서 (l+1)층의 k번째 노드로 가는 j번째 weight(wl,k,j)에 대해 미분을 수행하면
라는 update rule을 얻을 수 있다. 식을 간단하게 표현하기 위해 식 중간을
다음과 같이 둔다면
이를 바탕으로 (l-1)층에서 l층의 k번째 노드로 가는 j번째 weight(wl-1,k,j)에 대해 미분을 수행하면
위 식으로 부터 l+1번째 layer에 있는 delta들과 weight들을 곱한 후 모두 더하면, l번째 delta를 구할 수 있다는 것을 알 수 있다. 이 식은 recursive한 형태를 띄고있다.
이는 '델타 rule' 이라 하는데,
상위 layer에서 나오는 에러값을 아래 layer로 내려가며 w값을 update하고, 최종 에러값을 최대한 줄이기 위한 방법이다. 이때 error 정보를 거꾸로 전달하며 가져오기때문에 back-propagation을 이용해서 학습일 시킨다고 한다.
이 방법을 사용한다면, parameter가 많아지지만, 이를 충분히 학습시킬 수 있다.