머신러닝기초 5

SVM 서포트 벡터 머신 알고리즘 개념 정리 (2): 불완전한 분류편

전 장에서 SVM 알고리즘의 특정 예시, 모든 점을 완벽하게 분리할 수 있는 경우를 살펴보았다. 그러나 현실 속에서 데이터는 100% 정확히 분류하기 어려운 경우가 더 많을 것이다. 사과와 수박을 부피 및 무게에 따라 분류하는 것은 상대적으로 쉬울테지만, 사과와 오렌지를 분류한다고 하는 경우는 난이도가 더 높을 것으로 예상되지 않는가? 이번 장에서는 두 데이터를 깔끔하게 분리할 수 없는, 즉 어느정도의 오류가 불가피한 경우의 SVM 알고리즘에 대해 살펴보고자 한다. 그 전에, 간단히 Support Vector Machine 알고리즘의 명칭에 대한 유래를 소개하고자 한다. 지탱하는 Support Vector, 그 사이의 분류기 서포트 벡터의 개념을 이해하기 위해서는 볼록포, 혹은 Convex hull 에 ..

SVM 서포트 벡터 머신 알고리즘 개념 정리 (1): 완벽한 분류편

이번 장에서는 이론적으로 가장 논의가 활발하고, 또한 가장 효과적인 분류 알고리즘으로 평가받는 SVM, 서포트 벡터 머신에 대해 알아보겠습니다. 편의 상 SVM 으로 통칭하겠습니다. 우선 '분류'라는 문제 상황에 대해 좀 더 자세히 알아본 후, 마진에 기반한 SVM 의 이론적 기반을 간단히 제시할 예정입니다. 선형 분류의 문제란? X 가 N개의 차원을 갖는 공간이고, Y = {-1, +1} 그리고 f: X→ Y 라고 정의하자. 쉽게 말해, N차원의 변수 X 를 함수 f 에 대입 하였을 때 +1 또는 -1 을 결과값으로 갖는 관계라는 말이다. 예를 들어, 과일의 무게 및 부피를 입력했을 때 이 과일이 수박인지 (+1), 사과인지 (-1) 를 알려주는 함수를 생각해 볼 수 있다. 우리의 목표는 실제 데이터의..

꼭 알아야 하는 머신러닝 필수 개념 (3): 학습방법 편

학생별로 알맞은 교육법이 모두 다르듯이, 머신러닝 또한 당면한 문제를 효과적으로 해결하기 위해 여러 '학습'방법 중 하나로 데이터를 받아들인다. 즉, 학습 알고리즘 별로 Training/Test 데이터를 활용하는 순서 및 방법에 차이가 있는 것이다. 이번 장에서는 머신러닝의 주요 학습방법들을 소개하고, 간단한 예시를 통해 이해를 돕고자 한다. Supervised Learning: 기출 문제를 열심히 푸는 학생 Supervised learning 또는 지도학습은 레이블이 포함된 학습 데이터를 바탕으로 모델을 구축하여, 알려지지 않은 새로운 값에 대한 예측을 스스로 해 내는 학습 방법이다. 공부법에 비유하자면, 사전에 정답이 주어진 기출문제를 바탕으로 공부를 한 뒤, 시험을 치루는 공부법이다. 따라서 기출문..

꼭 알아야 하는 머신러닝 필수 개념 (2): K-fold CV 교차검증

데이터분석 혹은 머신러닝을 공부하게 되면 꼭 배우는 것이 학습 방법론에 따른 데이터 분류법이다. 데이터 분석을 처음으로 배우는 경우, 모델을 배우고 너무 들뜬 나머지 자신이 가진 데이터 100% 를 전부 활용하여 모델을 학습하고 분석하기 바쁜데 이는 굉장히 큰 오류이다. Train 데이터를 활용하여 학습한 모델은 해당 데이터의 특성을 이미 반영하고 있으므로, 똑같은 데이터로 예측을 하는 것은 당연히 '실제 대비 더 좋은' 결과를 낼 것이기 때문이다. (이러한 경우를 과적합 이라고 한다) 예를 들어, A문제집으로 시험 공부를 한 학생(모델)이 있다고 하자. 이 학생이 '비슷하지만 새로운 유형의 문제'로 구성된 시험을 치루는 경우와, '문제집과 완벽히 동일한 문제'로 구성된 시험을 치루는 경우를 비교 한다면..

딥러닝 필수개념: 텐서 TENSOR 이해하기

​ 안녕하세요 IT 범생이 Finn 입니다~! ​ 오늘은 다차원 데이터 형태 중에서도 악명이 높은 텐서 (Tensor) 데이터에 대해 정리해 보고자 합니다. 사실 텐서는 텐서플로우가 유명해지며 데이터를 공부하는 사람들 사이에서 유명해진 단어인데요. 정작 텐서가 무엇인지 모르면서 텐서플로우를 사용하는 경우가 잦은것 같아, 정리를 위해 포스팅을 하게 되었습니다. 텐서는 물리학에서도 함께 사용되는 만큼 본 포스팅은 데이터의 영역에 국한하여 최대한 쉽게 정리해 보고자 합니다. ​ ​ 텐서란 무엇인가? 컴퓨터 과학에서 배열 (array)는 번호 (index)와 각 번호에 대응하는 값들로 이루어진 데이터 형태를 말합니다. Numpy 혹은 Pandas를 사용해 보신 분들이라면 가장 기본적으로, 또 많이 다루어 보셨을..