-
[Week 7] KernelsCourses/Andrew Ng - Machine Learning 2022. 1. 23. 17:38
복잡한 비선형 가설을 위해 커널이라는 알고리즘에 대해 알아보겠습니다.
변수 x 대신 f라는 새로운 변수를 사용합니다. f1은 x1을 대체하고 fm은 xm을 대체합니다. f로 대체하는 이유는 x의 고차 다항식을 사용하면 계산적 부담이 크기 때문입니다.
새로운 변수 f를 정의하는 법을 알아봅니다. 평면에 임의의 랜드마크 3개 l1 l2 l3를 찍습니다. f1은 변수 x와 l1 사이의 유사도입니다. exp(-|x-l1|^2/2*sigma^2) 입니다. 즉 x와 l1 사이가 얼마나 가까운지에 대한 함수입니다. 이 함수를 가우시안 커널이라고 합니다. 임의의 x가 l1과 가깝다고 칩시다. 그러면 x와 l1사이의 거리는 가까워지고 분자는 0에 가까워 집니다. 분자가 0에 가까워 지면 exp(-0)이 되고 이는 1에 가까운 결과값이 됩니다.
지수함수(exp) 그래프 반대로 x와 l1의 거리가 아주 멀다고 가정합시다. 그렇다면 분자는 어떤 큰 수가 될 것이고 커널은 exp(-큰 수) 가 되어 결과값은 0에 가까워 질 것입니다.
x=[3;5] 일 때 sigma^2에 따른 유사도 그래프입니다. sigma^2 가 작아지면 폭이 좁아져서 유사도의 범위도 줄어듭니다. sigma^2가 커지면 폭이 넓어져서 유사도의 범위가 부드럽게 늘어납니다.
이제 실제 가설에 적용해보겠습니다. 파라미터가 위와 같고 x가 l1과 가까이 있다고 친다면 , y=1을 예측합니다. x가 랜드마크에서 모두 떨어져있다면 , y=0을 예측하게 됩니다. 결국 잘 보면 랜드마크 l1과 l2 근처는 y=1, 그 외는 y=0을 예측하게 되므로 이것이 가설의 결정 경계가 됩니다.
그렇다면 랜드마크는 어떻게 선정할까요? x와 정확히 같은 위치에 랜드마크를 결정합니다. 즉 x1 = l1, x2=l2, xm=lm.. 입니다. 그 이후 가우시안 커널을 적용하여 f 벡터를 구합니다.
그 이후 x 대신 f 벡터를 사용하여 가설 함수에 대입하고 서포트 벡터 머신 비용 함수의 최소값을 찾습니다. 학습시키면서 파라미터 theta를 구합니다.
마지막 정규화항은 약간 다르게 사용합니다 thetaT*M*theta 행렬은 커널에 따른 파라미터 theta의 리스케일 버전입니다. 이는 수학적 계산의 효율성을 고려한 구현입니다.
로지스틱 회귀에는 왜 f를 사용하지 않을까요? 그 이유는 너무 느리기 때문입니다. 서포트 벡터 머신과 함께 커널 알고리즘을 사용하는 것은 계산이 빠르지만 로지스틱 회귀와는 속도가 느립니다.
마지막으로 편향과 분산을 고려하여 서포트 벡터 머신의 파라미터를 선택하는 방법입니다. 일반적으로 파라미터 C가 크면 편향이 낮고 분산이 높아집니다. (lambda와 역관계라는 것을 기억하세요) 반대로 C가 작으면 편향이 높고 분산은 낮아집니다.
가우시안 커널의 파라미터 sigma^2의 경우, 값이 크면 높은 편향/ 낮은 분산이고 , 값이 작으면 낮은 편향에 높은 분산입니다.
혼자서 강의를 듣고 정리한 것이니 틀린 점이 있다면 언제든지 지적 부탁드립니다 :)
'Courses > Andrew Ng - Machine Learning' 카테고리의 다른 글
[Week 8] Clustering (0) 2022.01.27 [Week 7] SVMs in Practice (0) 2022.01.23 [Week 7] Support Vector Machine (0) 2022.01.23 [Week 6] Machine Learning System Design (0) 2022.01.18 [Week 6] Bias vs. Variance (0) 2022.01.16