티스토리 뷰
2. Neural Networks / L1. Introduction to Neural Networks - Perceptrons Trick
chrisysl 2018. 6. 26. 16:11Perceptrons Trick
- 근데 사실상 이런 퍼셉트론을 우리가 직접 구현해내기는 어렵다.
- 따라서 고안된 아이디어가 바로 우리는 result에 대한 값을 제공해주고, 그들 스스로가 구현해 내는것이다.
- 자 다시 전의 예제로 돌아가보면, 그럼 컴퓨터 스스로가 그 기준을 잡는다고 한다면,
- 어떻게 그 기준선(Positive 와 Negative area를 나누는 경계)을 설정할지???
- 먼저 이와같이 임의의 경계선을 설정해보고, 이 경계가 어느정도 일치된 값을 도출해내는지를 판단한다.
- 일치하는 값이 아닌 일치하지 않는 두 값을 기준으로 기준선에게
- 해당 일치하지 않는 점 방향으로 더 가까이 오라고 알려준다.
- 더 가까이 오라고 기준선(경계선)에게 말을하여 범위를 점차 좁혀간다.
- Perceptron trick이란 다시말해 mis-point에 경계선을 근접시키기 위한 trick같은 알고리즘을 의미한다.
- 3x1 + 4x2 -10 = 0이라는 일차방정식이 경계를 이루고있고, 그 결과가 양이면 Positive, 음이면 Negative area로 구분중이다.
- mis-point가 (4, 5)에 위치하고있으므로, 이를 이용해서 경계선을 해당 mis-point쪽으로 이동시키는 원리이다.
- 현재 경계선의 계수(parameters)들이 3, 4, -10이고,
- 현재 mis-point가 (4, 5)에 위치하고있고, 이 때 계수의 쌍을 맞춰주기위해 bias를 1로 설정하여 4, 5, 1이라는 값을 줄 수 있다.
- 이때 이 둘의 값의 차(subtract)를 구하는 이유는 현재 경계선이 mis-point보다 아래에 위치하기 때문.
- 근데 그냥 이렇게 차를 구해버리면 해당 경계선이 매우 급격하게 이동한다.(물론 mis-point를 포함하는 영역으로 바꿔놓긴 하지만)
- 이렇게 급격하게 움직인다면, 우리는 다른 correct-point도 가지고 있으므로, 그 correct-point를 변경시키지 않는 선에서
- 해당 경계를 움직이고싶기때문에, Learning-Rate의 개념이 도입된다.
- Learning-Rate은 0.1과 같은 작은 숫자를 의미하는데, (4, 5, 1)을 빼주는 것이 아니라,
- 이 Learning-Rate를 곱한값을 빼 준다. 즉, (0.4, 0.5, 0.1)을 빼 주는것이다.
- Learning-Rate를 적용하므로써 급격하게(drastically) 경계선을 움직이지 않고, 조금씩 변화시키며
- mis-point 쪽으로 경계선을 움직이게 되는것이다.
- 그 결과 (2.6, 3.5, -10.1)이라는 값을 얻게되고, 이를 계수로 새로운 경계선을 그리면
- 0.1의 Learning-Rate를 가진 채 경계선이 mis-point 쪽으로 이동하게 된다.
- 마찬가지로 (1, 1)이 mis-point로 존재하는경우 이번엔 그래프가 아래로 내려가야 하므로(y값이 낮아져야하므로)
- 해당 Learning-Rate를 적용시킨 값을 더해줘야된다.
- 이렇게 Learning-Rate를 적용시킨 이 알고리즘이 우리가 퍼셉트론을 구현할 아이디어이다.