컴퓨터가 명시적인 프로그램이나 규칙 없이도, 스스로 학습할 수 있도록 하는 연구분야.
즉, 수많은 데이터로부터 기계가 학습할 수 있도록 하는 연구분야
어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때, 경험 E로 인해 성능이 향상됐다면, 이 프로그램은 작업 T와 성능 측정 P에 대한 경험 E로 학습한 것이다.
ex)
T: 필기체를 인식하고 분류하는 것(->해결하고자 하는 문제)
E: 이미지와 라벨을 표시한 데이터셋(->학습에 사용할 충분한 데이터)
P: 필기체를 정확하게 분류한 확률(->문제 해결에 적합한 머신러닝 알고리즘과 성능 평가 방법)
머신러닝 개념 정리
대량의 데이터를 기반으로 머신러닝 알고리즘을 통해 학습시키면 예상치 못한 상관관계나 잘 드러나지 않는 새로운 패턴을 발견할 수도 있는데, 이것이 데이터 마이닝입니다.
머신러닝을 사용하는 이유
But, 세상의 모든 문제를 머신러닝 알고리즘으로 해결할 수는 없습니다.
머신러닝은 학습, 모델의 평가 크게 두 가지로 구분됩니다.
머신러닝은 지도학습, 비지도학습, 강화학습이 있습니다.
<지도학습(Supervised Learning)>
분류 분석(Classification): 예측하고자 하는 값이 범주형 데이터
ex. 문서 분류, 이미지 분류
회귀 분석(Regression): 예측하고자 하는 값이 연속형 데이터
ex. 주식가격 예측, 부동산 가격 예측
(주로 데이터가 연속형인 경우가 더 많습니다)
<비지도학습(Unsupervised Learning)>
군집분석(Clustering): 데이터의 특징, 구조 등을 통해 유사한 특성을 가진 데이터끼리 그룹화하는 과정
ex. 유사 단어 군집화, 유사 이미지 군집화, 고객 분류, 추천시스템
<준지도학습(Semi-Supervised Learning)>
<강화학습(Reinforcement Learning)>
- 문제 정의
- 데이터 수집
- 데이터 전처리
- 특징 추출
- 학습
- 검증
<문제 정의 단계>
<데이터 수집 단계>
데이터를 training, validation, test 용도로 분할해서 사용합니다.
이를 홀드아웃 교차검증(Hold-out Cross Validation)이라 합니다.
Training: 머신러닝 모델의 학습에 사용되는 데이터 셋
Validation: 학습된 머신러닝 모델의 성능을 평가하는데 사용되는 데이터 셋으로 모델 개선의 지표가 됨
Testing: 학습 및 개선된 머신러닝 모델을 최종 평가하는 데이터 셋
Kaggle에서는 다양한 데이터셋을 제공합니다.
<데이터 전처리>
<특징 추출 단계>
Feature란? 모델을 학습시킬 데이터의 특성을 의미하는 용어로, 독립변수들을 지칭함(특성, attribute, 속성 등으로도 불림)
Class란? 모델을 통해 판단 또는 예측하고자 하는 정답 값으로 종속변수를 지칭함(label, target, 정답, 결정 등으로도 불림)
Feature가 많다고 해서 좋은 모델이 아닙니다. 문제를 정확하게 표현하는 feature들만 뽑아야 합니다.
데이터에 대한 도메인 지식을 활용하여 특징(Feature)를 만들어내는 과정으로, Feature Engineering이라고도 불립니다.
Feature Selection(특징 선택)
Feature Extraction(특징 추출)
Feature Learning(특징 학습)
모델의 성능에 미치는 영향이 매우 크고, 전문성, 시간, 비용이 많이 소모됩니다.
<학습과 검증 단계>