머신러닝 | 1주차 강의
✅ 머신러닝이란?
1. 지도 학습(Supervised learning): 정답을 알려주면서 학습시키는 방법
ex) 회귀, 분류
2. 비지도 학습 (Unsupervised learning): 정답을 알려주지 않고 군집화(Clustering)하는 방법
=> 그룹핑 알고리즘(Grouping algorithm)의 성격, 라벨(Label 또는 Class)이 없는 데이터를 가지고 문제를 풀어야 할 때!
3. 강화 학습(Reinforcement learning): 주어진 데이터없이 실행과 오류를 반복하면서 학습하는 방법 (대표적인 예: 알파고)
=> 행동 심리학에서 나온 이론으로 분류할 수 있는 데이터가 존재하지 않거나, 데이터가 있어도 정답이 따로 정해져 있지 않고, 자신이 한 행동에 대해 보상(Reward)를 받으며 학습하는 것
➡️ 머신러닝에서 문제를 풀 때, 해답을 내는 방법을 크게 회귀 (Regression) 또는 분류 (Classification)로 나눌 수 있다!
✅ 선형회귀(Linear Regression)
: 컴퓨터가 풀 수 있는 문제 중에 가장 간단한 것이 바로 두 데이터 간의 직선 관계를 찾아 내서 x값이 주어졌을 때 y값을 예측하는 것
우리가 만든 임의의 직선(가설)과 점(정답)의 거리가 가까워지도록 해야함.(=mean squared error)
가설(Hypothesis) : H(x) = Wx + b
Cost를 손실 함수(Cost or Loss function) :
✔️다중 선형 회귀(Multi-variable linear regression) : 선형회귀와 같지만 입력 변수가 여러개이다.
✅경사 하강법 (Gradient descent method)
- 우리의 목표는 손실 함수를 최소화(Optimize)하는 것
- 손실 함수를 최소화하는 방법은 그래프를 따라 점점 아래로 내려가야함.
- 랜덤으로 한 점으로부터 시작. 좌우로 조금씩 그리고 한번씩 움직이면서 이전 값보다 작아지는지를 관찰.
이때 한칸씩 전진하는 단위 = "Learning Rate"
- 우리의 목표는 이 손실 함수의 최소점인 Global cost minimum을 찾는 것.
그런데 우리가 한 칸씩 움직이는 스텝(Learning rate)을 잘못 설정할 경우 Local cost minimum에 빠질 가능성이 높다.
- Cost가 높다 = 우리가 만든 모델의 정확도가 낮다.
- 최대한 Global minimum을 찾기 위해 좋은 가설과 좋은 손실 함수를 만들어서 기계가 잘 학습할 수 있도록 만들어야함!
✅ 데이터셋 분할
▪️Training set (학습 데이터셋, 트레이닝셋) = 교과서
머신러닝 모델을 학습시키는 용도로 사용. 전체 데이터셋의 약 80% 정도.
▪️Validation set (검증 데이터셋, 밸리데이션셋) = 모의고사
손실 함수, Optimizer 등을 바꾸면서 모델을 검증하는 용도. 전체 데이터셋의 약 20% 정도
머신러닝 모델의 성능을 검증하고 튜닝하는 지표의 용도로 사용
▪️Test set (평가 데이터셋, 테스트셋) = 수능
정답 라벨이 없는 실제 환경에서의 평가 데이터셋
✅ 실습
https://colab.research.google.com/drive/1iaXh0BRvy74lGpVNU31vHnc8vo9PIbJ6
Google Colaboratory Notebook
Run, share, and edit Python notebooks
colab.research.google.com