- 사람이 직접 입력값(문제)과 특징을 전달(규칙)하여 출력값(정답)을 내보내는 알고리즘.
- 다른 특징을 추가하고자 할 때에는 다시 직접 로직을 작성해야 한다.
- 데이터를 기반으로 규칙성(패턴)을 학습하여 결과를 추론하는 알고리즘.
- 현실 세계의 패턴을 분석하여 개발자가 직접 코드를 작성하는 것이 어려웠으나 머신러닝을 이용해 해결할 수 있다.
- 데이터 마이닝(대규모 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 짜임을 분석하여, 가치있는 정보를 빼내는 과정), 음성 인식(언어 구분), 영상 인식(이미지 판별), 자연어 처리(번역, 문맥 찾기)에서 머신러닝이 적용된다.
- 데이터의 패턴을 학습하여 이를 통해 예측을 수행할 수 있다.
- 지도 학습(Supervised Learning)
입력값(문제)과 출력값(정답)을 전달하면 알아서 특징을 직접 추출하는 학습이다.
다른 입력값(문제)과 동일한 출력값(정답)을 전달하면 새로운 특징을 알아서 추출한다.문제(Feature)와 답(target, label)을 주는 것
- 분류(코로나 양성/음성, 사기 번호/일반 번호 등 단일 값 예측)
- 회귀(1년 뒤의 매출액, 내일 주식 가격 등 연속 값 예측)
- 추천 시스템(상품 구매 패턴을 학습하여 최적의 다른 상품을 추천 등)
- 비지도 학습(Unsupervised Learning)
입력값(문제)만 전달하고 정답 없이 특징만 추출하는 학습이다.
추출한 특징에 대해 사람이 출력값(정답)을 부여하여 입력값(문제)은 출력값(정답)이라는 것을 알아낸다.문제(Feature)를 여러 개 주고 답이 없는 것
- 군집화(클러스터링, 비슷한 문제를 분석하여 편을 나누어 각 편으로 모으는 것)
- 차원 축소(문제의 개수를 압축(축소)하여 함축된 의미를 찾아내는 것)
- 데이터에 의존적이고(Garbage In, Garbage Out), 데이터가 안좋으면 결과도 안좋을 수 밖에 없다.
- 학습 데이터로 잘 만들어진 로직을 가진 모델일지라도 실제 데이터 적용 시 정확한 결과가 나오지 않을 수 있다(과적합).
- 머신러닝 학습을 통해 로직이 생기면, 나온 결과가 어떻게 이렇게 나왔는 지에 대한 분석이 쉽지 않다(블랙박스).
- 데이터를 넣으면 원하는 것처럼 좋은 결과를 얻기란 쉽지 않다(개발자가 직접 만든 코드보다 정확하지 않을 수 있고 끈임없이 개선해야 한다).