머신 러닝
일반 프로그램 | 머신 러닝 프로그램 |
---|
프로그래머가 모든 규칙을 프로그램에 넣어줘야한다. | 프로그램이 학습하며 직접 규칙을 찾는다. (기계가 특정 작업을 하는 데 있어서 경험을 통해 성능을 향상 시키는 것) |
- 인터넷의 발달로 학습 가능한 데이터의 증가
- 컴퓨터 성능의 향상으로 많은 양의 데이터를 처리하는 것이 가능
- 위 두가지 요인으로 인해 머신 러닝이 수월해졌고, 머신 러닝의 활용성이 증명되었다.
-> 머신 러닝이 핫해진 이유
예시: 스팸 메일 분류 프로그램
- 작업: 스팸 메일 분류
- 경험(데이터): 새로운 이메일을 인식하여 분류
- 성능: 스팸 분류의 정확도
- 경험의 증가가 성능의 향상으로 이어지면 머신 러닝 프로그램이라고 할 수 있다.
관련 분야 정리
- 빅 데이터: 엄청난 양의 데이터를 다루는 분야
- 인공지능(AI): 프로그램이 인간처럼 생각/행동하게 하는 분야(학문)
- 딥 러닝(머신 러닝에 포함된 개념)
복잡한 구조로 학습함
러닝 과정 중에 층이 있는데 이러한 층이 깊어지기 때문에 딥 러닝이라고 함
딥 러닝 ⊂ 머신 러닝 ⊂ 인공지능

학습의 유형
머신 러닝
- 지도 학습: 답이 존재하여 답을 맞추는 것이 학습의 목적
- 학습 데이터에 대한 답을 주어야 한다.
- 분류: 답이 한정적이고 불연속적(예: 꽃의 종류)
- 회귀: 답이 무수히 많고 연속적(예: 물건 가격 예측)
- 비지도 학습: 답이 없고 답을 맞추는 것이 학습의 목적
- 예: kMeans 등의 clustering 등
k-최근접 이웃 알고리즘(kNN, k-Nearest Neighbors Alogrithm)
어떤 데이터를 판단할 때 해당 데이터 주변의 k개의 최근접 이웃(데이터)로 해당 데이터를 예측하는 알고리즘
예: 타이타닉 승객 데이터에서 어떤 데이터를 예측할 때 k개의 데이터 중
- 과반수가 생존했으면 해당 데이터(승객)은 생존한 것으로 판단
- 과반수가 사망했으면 해당 승객이 사망한 것으로 판단
-> kNN 알고리즘도 데이터가 많으면 성능(정확도)이 향상되므로 머신 러닝 알고리즘에 해당
머신 러닝의 수학
머신 러닝 = 컴퓨터과학 + 수학(선형대수, 미적분, 통계, 확률)
이론적인 부분(수학 등)을 몰라도 머신 러닝을 하는데에는 크게 지장이 없지만, 상황에 맞는 알고리즘 선택과 최적화를 위해서 알아두는 것이 좋다.
- 선형 대수학: 행렬(많은 데이터를 하나로 묶을 수 있고, 행렬 하나를 통째로 계산할 수 있음)
- 미적분학: 머신 러닝의 최적화를 위해 사용(예: 에러의 최소지점 탐색)
- 통계: 데이터의 특정, 흐름 파악 -> 결과 예측
- 확률: 확률을 통해 결과 예측
머신러닝에서 사용되는 수학의 각 분야의 특징
선형 대수학 미적분학 | 확률 통계 |
---|
부분적인 개념 | 광범위한 개념 |
이 글은 코드잇 강의를 수강하며 정리한 글입니다. 더 자세한 설명은 코드잇을 참고하세요
코드잇 머신 러닝