Machine Learning Algorithms 이해
Linear regression(classfication), Logistic regression
Machine Learning Tools
Tensorflow and Python
참고자료
https://class.coursera.org/ml-003/lecture (강의영상)
http://www.holehouse.org/mlclass/ (필기노트)
Tensorflow
https://github.com/aymericdamien/TensorFlow-Examples
GitHub - aymericdamien/TensorFlow-Examples: TensorFlow Tutorial and Examples for Beginners (support TF v1 & v2)
TensorFlow Tutorial and Examples for Beginners (support TF v1 & v2) - GitHub - aymericdamien/TensorFlow-Examples: TensorFlow Tutorial and Examples for Beginners (support TF v1 & v2)
github.com
Machine Learning?
일종의 소프트웨어 즉 프로그램이다. 일일이 프로그래밍 하지 않고, 어떤 자료나 현상에서 자동적으로 배우는 것.
프로그램을 개발자가 일일이 하는 것을 정하지 않고, 프로그램 자체가 데이터를 보고 학습해서 어떤 것을 배우는 능력을 갖는 프로그램
ex) Spam filter, Automatic driving
학습 방법에 따라서
Supervised Learning : label이 정해져 있는 데이터를 학습 하는 것 (training set)
ex) image labeling, email spam filter, prdeicting exam score
- Training data set : 이미 값, 특징(label)이 정해져 있는 데이터 셋
- Supervised Learning에서는 Training data set이 꼭 필요하다.
Types of supervised learning ( Regression, Binary Classfication, Multi-label classfication)
Predicting final exam score based on time spent
- regression : Training Data를 통해 만들어진 regression에 주어져 있지 않은 값인 7을 넣어서 해당하는 score를 예측해 낼 수 있다. 따라서 값은 70 ~60 정도로 예측 가능.
- Training Data (hours, score) 10h -> 90score, 9h -> 80score
Pass/non-pass based on time spent
- binary classfication
- Training Data (hours, pass/fail) 10h -> P, 9h -> P , 8h -> F
Letter grade (A, B, C, E and F) based on time spent
- multi-label classfication
- Training Data (hours, grade) 10h -> A, 9h -> B, 3h -> D
Unsupervised Learning : label이 정해져 있지 않은 데이터를 학습 하는 것
ex) Google news grouping, Word clustering
Regression?
Linear regression (선형회귀)
첫 번째,
=> data가 주어지면 그에 잘 맞는 선을 가설을 세워서 가장 데이터에 잘 맞는 선을 찾는 것
=> H(x) = Wx + b 라는 선을 그리는 수식으로 표현 가능
두 번째, Cost Function(Loss Function)
=> 가장 실제 데이터와 맞는 선을 찾기위해서 실제 데이터와 가설의 선의 거리를 계산
=> H(x) - y (좋지 않은 모델)
=> 따라서, { H(x) - y }^2 제곱을 하게되면 음수와 양수와 상관없이 차이를 양수로 표현해주고, 제곱으로 표현해주기 때문에 차이가 작을 때보다 차이가 클 때 패널티를 많이 받는다.
Linear Regression의 학습
cost(W,b)의 값을 가장 작게 하는 W와 b를 구하는 것이다. => minimize cost(W,b)
- 설명을 위한 가설을 간단하게 만들어 b=0으로 함
data set : x = 1, 2, 3 y = 1, 2, 3
W = 1, cost(W) = 1/3(1 * 1 – 1 ) ^2 + (1 * 2 – 2 ) ^2 + (1 * 3 – 3) ^2 = 0
W = 0, cost(W) = 1/3(0 * 1 – 1 ) ^2 + (0 * 2 – 2 ) ^2 + (0 * 3 – 3) ^2 = 4.67
W = 2, cost(W) = 1/3(2 * 1 – 1 ) ^2 + (2 * 2 – 2 ) ^2 + (2 * 3 – 3) ^2 = 4.67
=> cost Function이 0에 수렴할수록 정확도가 높다.
Gradient descent algorithm (경사 감소 알고리즘)
- Minimize cost function
- 머신러닝의 minize problem에 많이 사용된다.
- cost(W, b)에 이 알고리즘을 적용시키면 가장 minimize된 W,b가 나오게 된다.
- w1, w2, w3 같이 많은 값들이 있는 cost function도 minimize하기 좋은 알고리즘이다.
아무 값에서나 시작할 수 있다.
W값을 조금 변경하면 cost(W,b)를 감소시킬 수 있다.
이후 경사도를 계산하여 위의 과정을 반복한다.
어떤 점에서 시작하든 항상 최저점에 도달할 수 있다는 것이 장점인 알고리즘이다.
Formal definition
- 사실 m/1이나 2m/1을 minimize하는 것은 똑같은 의미를 지닌다.
- 수식을 간단하기 위해 2를 붙인다.
- cost(W)를 미분한 것 == 기울기를 구한다.
- 마이너스(-)를 붙이는 이유는 기울기가 –가 되기 때문에 W를 조금 더 큰 값으로 움직이겠다는 표현이다.
W로 미분하는 절차
Derivative Calculator라는 웹사이트에서 미분 자동 계산해줌.
3차원 배열에서 모양이 이런식으로 나온다면 문제가 생김.
다행히도, 우리가 짠 모양이 아래 그림과 같이 나온다.
주의할 점 : cost(W,b)를 설계할 때 모양이 Convex function이 되는 것을 확인해야 한다.
정리 (Linear Regression을 이용하기 위한 것들)
- Hypothesis
- Cost Function
- Gradient descent algorithm
여러 개 일때
H(x1, x2, x3) = w1x1 + w2x2 + w3x3 + b
Cost Function
Multi-variable
값이 많아지면 불편하다. 따라서, Matrix를 이용한다.
Matrix multiplication
- Matrix Multiplication을 Hypothesis에 적용
- H(X) = XW
공부 포스팅 1차 끝
'AI' 카테고리의 다른 글
Gensim 사용법[정리] (0) | 2022.09.04 |
---|---|
Gensim 활용 LDA 모델 학습 (0) | 2022.08.04 |
Yolov5 Window Environment (0) | 2022.08.04 |
Tensorflow 공부 (2차) (0) | 2022.02.22 |
Tensorflow Windows10 환경 설치 (0) | 2022.02.22 |