머신러닝이란?
머신러닝(machine learning) 개요
- 머신러닝이란 인공지능 연구 과제 중 하나
- 인간의 뇌가 학습하는 것처럼 학습의 능력을 컴퓨터로 구현하는 방법
- 샘플 데이터 입력 => 분석 => 특징과 규칙 발견 => 데이터 분류 또는 예측
어떻게 특징과 규칙을 찾을까?
- 특징량을 기반으로 구분선 그리기
- 머신러닝 계산을 통해 구분선을 찾아 내는 것
- 대개 거리가 가까우면 비슷한 데이터라고 판정
특징 추출
- Raw Data (원본 데이터) => 데이터가 어떤 특징을 가지고 있는 지 확인 => 벡터(vector)화
- 벡터란 공간에서 크기와 방향을 가지는 것을 의미 (벡터의 거리를 계산)
- 어떤 특징을 추출할지가 포인트 = featuring
회귀 분석 regression analysis
- Y가 연속된 값일 때 Y = f(x) 모델로 나타내는 것
- Y = aX + b 인 경우를 선형 회귀
- Y : 종복변수(목표변수) / X : (독립변수,설명변수)
- X가 1차원 : 단순회귀 / 2차원 이상 : 다중 회귀
머신러닝의 종류
지도학습(교사학습) Supervised learning
- 데이터와 함께 답도 입력
- 다른 데이터의 답 예측
- 답을 특별히 레이블(lable) 이라고 함
- 글자를 나타내는 이미지와 답을 학습 => 새로운 이미지의 글자 예측
비지도학습(비교사학습) Unsupervised learning
- 데이터만 입력
- 데이터에서 규칙성을 찾음
- 일반적으로 사람도 알 수 없는 본질적인 구조 찾기 등에 사용
- 클러스트 분석(Cluster analysis), 주성분 분석(Pricipal component analysis) 등
강화학습 Reinforcement learning
- 부분 적인 답 입력
- 데이터를 기반으로 최적의 답 찾기
- 행동의 주체 <==> 환경(상황, 상태)
- 행동의 주체는 환경을 관찰 => 의사결정(행동) => 보상
- 더 많은 보상을 얻을 수 있는 방향으로 행동을 학습
- ex) 알파고
머신러닝의 흐름
- 데이터 수집 => 가공 => 학습 => 모델 평가 => 정밀도 확인 => 성공
- 학습 => 학습 방법 선택 => 매개변수 조정 => 모델 학습
- 정밀도가 낮으면 매개변수 조정 => 모델 학습 = > 모델 평가 => 정밀도 확인 반복
데이터 수집
- 가장 어려운 부분
- 충분한 양의 데이터 확보 필요
데이터 가공
- 프로그램이 다루기 쉬운 형태로 가공
- 머신러닝의 어떤 특징을 활용 및 그에 따른 데이터 가공 방법 고민
학습
- 알고리즘 선택 : SVM, 랜덤포레스트, k-means 등
- 데이터와 알고리즘에 맞게 매개변수 지정
평가
- 테스트 데이터를 활용해 정밀도 확인
머신러닝 응용 분야
클래스 분류(Classification)
- 특정 데이터에 레이블을 붙여 분류
- 스팸 메일 분류, 필기 인식, 증권 사기 등에 사용
클러스터링 - 그룹 나누기(Clustering)
- 값의 유사성을 기반으로 데이터를 여러 그룹으로 나누기
- 사용자 취향별 타겟 광고 제공
추천(Recomendation)
- 특정 데이터를 기반으로 다른 데이터를 추천하는 것
- 사용자가 인터넷 서점에서 구매한 책을 기반으로 다른 책 추천
회귀(Regression)
- 과거의 데이터를 기반으로 미래의 데이터를 예측 하는 것
- 판매 예측, 주가 변동 등 예측
차원 축소(Dimensionality Reduction)
- 데이터의 특성을 유지하면서 데이터의 양을 줄이는 것
- 양을 줄인다는 것 보다는 고차원을 저차원 데이터로 변환 하는 것
- 데이터를 시각화 하거나 구조를 추출해서 용량을 줄여 계산을 빠르게 하거나 메모리 절약에 사용
- 사람은 얼굴 이미지는 용량이 큰 고차원 데이터 => 이미지에서 눈의 크기, 굴곡, 코의 위치, 입의 위치 등을 분석해 숫자로 추출
초과 학습(초과 적합) Overfitting
- 훈련 전용 데이터가 학습돼 있지만 학습되지 않은 데이터에 대해 제대로 된 예측을 못하는 상태
- 데이터가 너무 적은 경우
- 모델에 비해 문제가 너무 복잡한 경우
머신러닝 프레임워크 scikit-learn
- 다양한 분류기 지원
- 머신러닝 결과 검증 기능
- 분류, 회귀, 클러스터링, 차원 축소 등의 다양한 알고리즘 지원
- 머신러닝 테스트용 샘플 데이터 제공
amueller/odscon-2015
Slides and material for open data science. Contribute to amueller/odscon-2015 development by creating an account on GitHub.
github.com
'Python > 머신러닝' 카테고리의 다른 글
[머신러닝] 랜덤 포레스트 (Random Forest) 개념 및 예제 실습 / 독버섯 예제 (0) | 2020.07.24 |
---|---|
[머신러닝] 서포트 벡터 머신(SVM) 예제 실습 / BMI 예제 / LinearSVC (0) | 2020.07.24 |
[머신러닝] 서포트 벡터 머신 (SVM) 개념 (0) | 2020.07.24 |
[머신러닝] 데이터 전처리 / 레이블인코딩 / 원-핫 인코딩 / LabelEncoder / 피처 스케일링 / 붓꽃 데이터 (0) | 2020.07.23 |
[머신러닝] XOR연산 / 붓꽃 품종 분류 / 손글씨 숫자 인식 / 언어 판별 / Web 인터페이스(cgi program) (0) | 2020.07.23 |
댓글