자료
깃허브에 있는 코드들을 Google Colab을 이용하여 실습할 수 있다.
1.1 머신러닝이란?
머신러닝(Machine Learning)의 정의
[머신러닝]은 명시적인 프로그래밍 없이 컴퓨터가 학습하는 능력을 갖추게 하는 연구 분야다. -아서 새뮤얼, 1959
어떤 작업 T에 대한 컴퓨터 프로그램의 성능을 P로 측정했을 때 경험 E로 인해 성능이 향상됐다면, 이 컴퓨터 프로그램은 작업 T와 성능 측정 P에 대해 경험 E로 학습한 것이다. -톰 미첼, 1997
1.2 왜 머신러닝을 사용하는가?
전통적인 프로그래밍 방식
문제연구 => 규칙작성 -> 평가 -> 론칭!
- 문제연구
- 설계자, 개발자 등이 문제를 연구하여 해결책을 찾는다.
- 규칙작성
- 프로그래머가 위에서 결정된 문제를 소프트웨어로 만든다. (프로그래머가 주로 참여하는 단계)
- 평가단계
- 테스트한다.
- 테스트해서 결과가 좋으면 런칭단계로 간다.
- 결과가 좋지 않으념 오차 분석단계를 거쳐 문제연구 단계로 돌아간다.
머신러닝 방식
- 문제연구
- 머신러닝 알고리즘 훈련
- 사용자가 스팸메일로 분류한 메일을 본 후, 그것을 학습하여, 자동으로 스팸메일을 분류한다.
- 알고리즘이 데이터로부터 훈련하여 스스로 스팸메일의 기준을 찾는 것이다.
- 데이터로부터 알고리즘을 새로 훈련하는것.
- 솔루션 평가
- 분류를 명시적으로 고치는 것이 아닌, 머신러닝을 어떻게 무슨 모델을 사용할 것인지, 평가하고 적용하는 것이다.
머신러닝 작업 흐름
머신러닝은 매번 새로운 스팸메일을 보며 알고리즘을 주기적으로 자동으로 훈련하여 자동으로 런칭할 수 있다
- 이러한 전 과정을 머신러닝 파이프라인이라고 한다.
- 또한, Devops와 비교하여 MLops라고 부르기도 한다.
대표적인 머신러닝 애플리케이션
- 제품 이미지를 보고 자동으로 분류하기
- 자동으로 뉴스기사를 분류하기
- 텍스트분류 -> 자연어처리 (NLP) : 순환신경망 (RNN), CNN, 트랜스포머
- 내년도 회사의 수익을 예측하기
- 음성을 듣고 이해하는 앱을 만들기
- 순차적으로 처리해야하는 시퀀스 데이터
- RNN, CNN, 트랜스 포머 등 뉴스기사 NLP와 비슷하다.
- 구매 이력을 기반으로 고객을 나누기
1.4 머신러닝 시스템의 종류
머신러닝의 종류
- 훈련 감동 방법 : 지도 학습, 비지도 학습, 준지도 학습, 강화 학습
- 훈련 시점 : 온라인 학습, 배치학습
- 모델 생성 : 사례기반 학습과 모델기반 학습
지도학습 VS 비지도 학습 VS 준지도 학습 VS 강화 학습
- 지도 학습 : 정답이 있는 경우
-> 회귀 : 선형 그래프로 예측하는 것
-> 분류 : 어떠한 기준으로 분류하는것
- 선형 회귀
- 로지스틱 회귀
- 서포트 벡터 머신 (SVM)
- 결정 트리와 앙상블
- 신경망
- 비지도 학습 : 정답이 없는 경우
-> 군집화 : 데이터를 몇개의 그룹으로 나누는 것
-> 시각화 : 여러 특성을 가진 데이터 셋을 2차원 평면에 구분해서 표현하는 것
- K-평균
- DBSCAN
- PCA
- 가우시안 혼합
- 오토인코더