chapter 4 분류자 학습시키기
우리는 선형 분류자를 학습(train)시켜서 애벌레와 무당벌레를 잘 분류할 수 있게 만들고자 한다. 2개의 그룹을 분류시키기 위해선 직선의 기울기를 어떻게 하느냐에따라 달라진다. 일단 우리에게는 예제 데이터가 필요하다. 단순하게 예제 데이터를 만들었다.
예제 |
폭 |
길이 |
곤충 |
1 |
3.0 |
1.0 |
무당벌레 |
2 |
1.0 |
3.0 |
애벌레 |
이렇게 우리에게는 2가지의 데이터가 있다. 이처럼 예측자 또는 분류자에게 실제 값을 알려주는 역할을 수행하는 예제 데이터를 학습 데이터(training data)라고 한다. 이 두가지 예제를 그래프에 시각화한다.
앞장에서 선형함를 이용한 바 가 있었다. 이번에도 분할선이 직선이므로 동일하게 하면 될 것 같다. 사실 제대로 된 직선의 방정식은 y = Ax+b의 꼴로 표현된다는 것을 알고 있다. 이 예제는 최대한 단순하게 하기위해 b를 생략했다. 즉 b = 0인 직선으로 원점을 지나가게 된다는 점을 알고 있어야한다. 일단 매개변수 A의 기울기를 결정한다. A가 크면 기울기도 커진다. 우선 A = 0.25로 해보았다.
언뜻 보기에도 y = 0.25x는 좋은 분류자가 될 수 없는 것을 알수있다. 따라서 우리는 기울기를 좀더 크게 해야한다는 것을 알수 있다. 일단 첫번째 학습데이터인 폭 3.0 길이1.0 의 무당벌레이다. 이 학습데이터를 y = 0.25x에 적용해보았다.
y = 0.25 * 3.0 = 0.75
A = 0.25로 가정하면 이 함수에 의해 폭은 3.0 길이는 0.75 로 예측된다. 하지만 실제 데이터는 1.0 이기때문에 A가 작은 수라는 것을 알수있다. 다시말해 오차(Error)가 발생했다는것이다. 그러므로 A값을 조정해 나가야된다. 그 다음으로 넘어 가기 전에 y의 값이 어떤 값인지를 생각해보자. x가 3.0 y가 1.0 이라면 그 직선은 무당벌레가 위치한 지점(3.0,1.0)을 지나가게 된다. 하지만 우리가 원하는 것은 이것이 아니다.
바로 그아래로 지나가 무당벌레와 애벌레를 분류 시켜주는 것이 우리가 원하는 것이기때문이다. 그리고 현재 직선처럼 무당벌레의 폭이 주어졌을 때 무당벌레의 길이(0.75는 거의 1.0 이다.)를 예측하는 직선이어서는 안된다.
그럼 y의 목푯값을 1.1로 해보았을때 오차 E는 이렇다.
E = 1.1 - 0.75 =0.35
이제 E값을 이용해 A의 값을 정규화 하면 된다. 하지만 A의 초기 값을 임의로 정해지면 우리는 잘못된 y의값을 얻게 된다. 그래서 목표 값을 t라고 할 것 이다. t를 얻기 위해 우리는 A를 조금씩 조정해 나가야 한다. 수학자들은 이를'작은변화'를 나타 낼때 △(델타)라는 기호를 사용한다.
t = (A+△A)x
'머신러닝 > 신경망 첫걸음' 카테고리의 다른 글
1-2 간단한 예측자,1-3 분류는 예측과 다르지 않다. (0) | 2018.11.11 |
---|