Skip to content

Commit d468aa2

Browse files
authored
Merge pull request #115 from causyj/blog
누락된 포스팅 정보 추가했습니다
2 parents d218d38 + a97f73e commit d468aa2

File tree

1 file changed

+23
-16
lines changed

1 file changed

+23
-16
lines changed

content/articles/ai_ml-study-ch5.md

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
1+
---
2+
title: 서포트 벡터(SVM)으로 최적의 결정 경계를 찾아보기
3+
description: 서포트 벡터 머신(SVM)의 개념과 어떻게 작동하여 최적의 선형 결정 경계를 찾는지 알 수 있습니다.
4+
slug: ai_ml-study-ch5
5+
category: Data-Science
6+
author: YuJin Son
7+
---
18
# CH5. Support Vector Machines
29

310
===================================================
@@ -12,7 +19,7 @@
1219

1320
[https://kdeon.tistory.com/29](https://kdeon.tistory.com/29)
1421

15-
# <span style='background-color: #ff5b1'> 00.SVM ( Suppor Vector Machine)</span>
22+
# <span style='background-color: #fff5b1'> 00.SVM ( Suppor Vector Machine)</span>
1623

1724
- **매우 강력하고 변하기 쉬운 ML모델임**
1825
- ********************************************************************************************************************************************************선형(linear)이나 비선형(nonlinear) 분류(classification)/회귀(regression)/이상치 탐색(outlier detection)이 가능하다.********************************************************************************************************************************************************
@@ -22,7 +29,7 @@
2229

2330
# **CHAPTER 5) Support Vector Machine**
2431

25-
# <span style='background-color: #ff5b1'> 01. 선형 SVM 분류 </span>
32+
# <span style='background-color: #fff5b1'> 01. 선형 SVM 분류 </span>
2633

2734
![01](/ai_ml-study-ch5/01.png)
2835

@@ -66,7 +73,7 @@
6673

6774
→ 오른쪽 그래프 : 특성의 스케일을 조정하면 결정 경계가 훨씬 좋아짐.
6875

69-
# <span style='background-color: #ff5b1'>
76+
# <span style='background-color: #fff5b1'>
7077
02. 소프트 마진 분류(Soft Margin Classification) </span>
7178

7279
![03](/ai_ml-study-ch5/03.png)
@@ -140,7 +147,7 @@ array([1.])
140147

141148
Using **LinearSVC class (with C=1) & hinge loss function**
142149

143-
# <span style='background-color: #ff5b1'>03. 비선형 SVM 분류(Nonlinear SVM Classification) </span>
150+
# <span style='background-color: #fff5b1'>03. 비선형 SVM 분류(Nonlinear SVM Classification) </span>
144151

145152
- **비선형적인 데이터셋을 다루는 방법 : <span style='background-color: #F7DDBE'>다항특성(4장)과 같은 특성을 더 추가하는 것 </span>**
146153

@@ -177,7 +184,7 @@ Using **LinearSVC class (with C=1) & hinge loss function**
177184

178185
<다항 특성을 사용한 선형 SVM분류기>
179186

180-
# <span style='background-color: #ff5b1'>04. 다항식 커널(Polynomial Kernel) </span>
187+
# <span style='background-color: #fff5b1'>04. 다항식 커널(Polynomial Kernel) </span>
181188

182189
- 다항식 특성을 추가하는 것은 구현하기 쉽고 SVMs뿐만아니라 모든 머신러닝 알고리즘에서 잘 작동한다.
183190

@@ -229,7 +236,7 @@ poly_kernel_svm_clf.fit(X, y)
229236

230237
**⇒ 하이퍼파라미터 coef0는 모델이 높은 차수와 낮은 차수에 얼마나 영향을 받을지 조절함.**
231238

232-
# <span style='background-color: #ff5b1'>05. 비슷한 특성 추가하기(Adding Similarity Features) </span>
239+
# <span style='background-color: #fff5b1'>05. 비슷한 특성 추가하기(Adding Similarity Features) </span>
233240

234241
- **비선형 특성을 다루는 또 다른 기술** : **<span style='background-color: #F7DDBE'>각 샘플이 특정 landmark와 얼마나 닮았는지를 측정하는 유사도 함수(similarity function)로 계산한 특성을 추가하는 것 </span>**
235242
- 예)
@@ -269,7 +276,7 @@ poly_kernel_svm_clf.fit(X, y)
269276
👎 m개의 샘플과 n개의특성을 가지고 있는 훈련셋이 m개의 샘플과 m개의 특성을 가지는 훈련셋으로 변환된다.(원래의 것을 잃어버릴수도 있다.) / 훈련 세트가 매우 크면, 똑같이 많은 특성이 생긴다
270277
```
271278

272-
# <span style='background-color: #ff5b1'>06. 가우시안 RBF 커널 (GaussianRBF Kernel) </span>
279+
# <span style='background-color: #fff5b1'>06. 가우시안 RBF 커널 (GaussianRBF Kernel) </span>
273280

274281
- **다항식 특성의 방법처럼, 유사도 특성방식**도 어떠한 머신러닝 알고리즘에 유용하지만, 모든 추가적인 특성을 모두 계산하려고 하면 **연산비용이 비싸진다**. 훈련셋이 클수록 더 그러하다.
275282

@@ -309,7 +316,7 @@ poly_kernel_svm_clf.fit(X, y)
309316

310317
: 여분의 시간과 컴퓨팅 성능이 있다면, 교차검증과 그리드탐색을 이용해 다른 커널들을 시도해볼 수도 있다.
311318

312-
# <span style='background-color: #ff5b1'>07. 계산 복잡도(Computational Complexity) </span>
319+
# <span style='background-color: #fff5b1'>07. 계산 복잡도(Computational Complexity) </span>
313320

314321
- **LinearSVS 클래스는 linear SVMs를 위해 최적화된 알고리즘을 구현하는 liblinear 라이브러리를 기반으로 한다.**
315322

@@ -331,7 +338,7 @@ poly_kernel_svm_clf.fit(X, y)
331338

332339
<SVM분류를 위한 Scikiti-Learn’s 클래스들의 비교>
333340

334-
# <span style='background-color: #ff5b1'>07. SVM 회귀(SVM Regression) </span>
341+
# <span style='background-color: #fff5b1'>07. SVM 회귀(SVM Regression) </span>
335342

336343
- **<span style='background-color: #F7DDBE'>SVM알고리즘은 다목적으로 쓰인다 </span>**.
337344

@@ -384,7 +391,7 @@ svm_reg.fit(X, y)
384391

385392
: **왼쪽 그림** : 규제가 덜하다.(C값이 크다) / **오른쪽 그림** : 규제가 많다.(C값이 작다.)
386393

387-
# <span style='background-color: #ff5b1'> 08. Under the hood </span>
394+
# <span style='background-color: #fff5b1'> 08. Under the hood </span>
388395

389396
- 이 챕터에서는 SVMs를 다룰 때 더 편하고 흔한 다른 관습을 사용할 것이다.
390397

@@ -394,7 +401,7 @@ svm_reg.fit(X, y)
394401

395402
: 입려 특성 벡터에 어떠한 편향 벡터도 추가되지 않는다.
396403

397-
# <span style='background-color: #ff5b1'> 09. 결정함수와 예측 (Decision Function and Predictions) </span>
404+
# <span style='background-color: #fff5b1'> 09. 결정함수와 예측 (Decision Function and Predictions) </span>
398405

399406
- **<span style='background-color: #F7DDBE'선형 SVM분류기 모델은 결정 함수 w^Tx + b = w1x1 +⋯ + wnxn + b를 계산하여 새로운 샘플 x를 예측한다.</span>**
400407

@@ -416,7 +423,7 @@ svm_reg.fit(X, y)
416423

417424
**<span style='background-color: #F7DDBE'linear SVM분류기를 훈련하는 것 == </span>** 마진 오류을 발생기키지 않거나(하드 마진) 제한하면서(소프트 마진**)가능한 마진을 넓게 만드는 w과 b의 값을 찾는 것**
418425

419-
# <span style='background-color: #ff5b1'>
426+
# <span style='background-color: #fff5b1'>
420427
10. 목적 함수(Training Objective) </span>
421428

422429
- **<span style='background-color: #F7DDBE'결정함수의 기울기 == 가중치 벡터 ||w||의 norm</span>**
@@ -465,7 +472,7 @@ svm_reg.fit(X, y)
465472
⇒ 여기에 하이퍼파라미터C가 두 목표 사이의 trade-off를 정의한다.**
466473
```
467474

468-
# <span style='background-color: #ff5b1'>11. 2차 계획법(QuadraticProgramming)</span>
475+
# <span style='background-color: #fff5b1'>11. 2차 계획법(QuadraticProgramming)</span>
469476

470477
## **<span style='background-color: #F7DDBE'><2차 계획법(Quadratic Programming)></span>**
471478

@@ -498,7 +505,7 @@ svm_reg.fit(X, y)
498505

499506
- 커널트릭을 사용하려면 제약이 있는 최적화문제를 다른 시각으로 봐야한다.
500507

501-
# <span style='background-color: #ff5b1'>12. 이중 문제(The Dual Problem) </span>
508+
# <span style='background-color: #fff5b1'>12. 이중 문제(The Dual Problem) </span>
502509

503510
- **근본적인 문제<span style='background-color: #F7DDBE'>)primial problem)</span>로 알려진 제약이 있는 최적화문제가 주어지면, <span style='background-color: #F7DDBE'>이중문제(dual problem)</span>이라고 불리는 문제와 가깝게 관련된 다른 문제로 표현이 가능하다.**
504511
- 이중문제의 해결책 : 일반적으로 근본적인 문제의 해결책에 대한 하한 값을 제공하지만, 어떤 조건 아래하에 근본적인 문제와 똑같은 해결책을 가질 수도 있다.
@@ -513,7 +520,7 @@ svm_reg.fit(X, y)
513520
- 이중 문제는 훈련 샘플들이 특성 수보다 작을 때 근본 문제보다 더 빨리 해결할 수 있다.
514521
- 더 중요하게, 근본문제에서는 안되는 커널 트릭을 해결할 수 있게 한다.
515522

516-
# <span style='background-color: #ff5b1'> 13. 커널된 SVM (Kernelized SVM)</span>
523+
# <span style='background-color: #fff5b1'> 13. 커널된 SVM (Kernelized SVM)</span>
517524

518525
- 2차원 훈련 셋에 2차 다항식 변환을 적용하고 싶어한다고 가정해보자 → 그 다음, 변형된 훈련 셋에 선형 SVM 분류기를 훈련시킨다.
519526

@@ -546,7 +553,7 @@ svm_reg.fit(X, y)
546553

547554
: 머신러닝에서 커널은 변환 ϕ을 계산하지 않아도 원래 벡터 a와 b에만 근거하여 점 곱 ϕ(a)^T ϕ(b)를 계산할 수 있는 함수다.
548555

549-
# <span style='background-color: #ff5b1'>14. 온라인 SVMs(Online SVMs)</span>
556+
# <span style='background-color: #fff5b1'>14. 온라인 SVMs(Online SVMs)</span>
550557

551558
- 선형 SVM 분류기에서, 아래의 비용함수를 최소화하는 한가지 방법은 근본 문제에서 유도된 경사하강법을 사용하는 것이다.
552559

0 commit comments

Comments
 (0)