이번 포스팅은 김성훈 교수님의 '모두를 위한 딥러닝 강좌 시즌1'의 1~7강을 듣고 정리한 글입니다.
[ML Lec 02] - Linear Regression
- hypothesis (가설)
- $H(x) = wx + b$
- Cost function (loss)
- ($H(x) - y)^2$
어떤 모형이 좋은지를 비교할 때, 실제값과 예측값의 거리(loss)가 작은 모형이 좋은 모형이다.
위의 Cost function은 다음과 같이 표현할 수도 있다.
$Cost(w, b)
- \frac{1}{n} \sum_{i=1}^{n}(H(x)^(i) - y^(i))^2$
모델의 학습 목표는 위의 $Cost(w, b)$를 최소화하는 $w, b$를 구하는 것이다.
머신러닝의 전체 프로세스는 다음과 같다.
1. 데이터 수집
2. 변수와 가설을 정의
3. Loss를 계산하고 최소화한다.
4. $w, b$를 조정한다.
5. 최적의 파라미터 ($w, b$)를 찾는다.
6. 예측한다.
[ML Lec 03] - Linear Regression의 cost 최소화 알고리즘의 원리 설명
Cost function(loss)
- $Cost(w, b) = \frac{1}{n} \sum_{i=1}^{n}(H(x)^(i) - y^(i))^2$
우리의 학습 목표는 loss를 최소화하는 최적의 파라미터 ($w, b$)를 찾는것이다 !
Gradient Descent(경사하강법)을 이용하여 loss를 최소화 하자.
단, Gradient Descent(경사하강법)은 Cost function(loss)가 Convex Function(양의 2차 함수모형)일 때, 사용할 수 있다.
따라서, Cost function(loss)가 Convex Function(양의 2차 함수모형)인지 확인할 필요가 존재한다.
Cost function을 최소화 하는 방법은 다음과 같다.
- 최적의 W를 구하는 방법 (loss를 최소화하는 $w$를 구하면 된다.)
- $w = w - \alpha* \frac{\partial} {\partial w} cost(w)$
- $w = w - \alpha* \frac{1}{n} \sum_{i=1}^{n}(wx_(i) - y_(i))(x_(i))$
[ML Lec 04] - Multi variable linear regression
linear regression이 독립변수를 1개만 가졌다면, Multi variable linear regression은 독립변수를 2개 이상 가지는 선형회귀 함수를 의미한다.
- hypothesis (가설)
- $H(x1, x2, x3) = w_1x_1 + w_2x_2 + w_3x_3 + b$
- $Cost(w, b)
- \frac{1}{n} \sum_{i=1}^{n}(H(x_1^(i), x_2^(i), x_3^(i)) - y^(i))^2$
독립변수의 수가 많아진다면, 모든 변수를 나열하기 힘드므로 Matrix(행렬)을 활용하여 복잡한 수식을 처리할 수 있다.
- $H(X) = XW$
이 함수 역시 우리의 학습 목표는 최적의 파라미터 $(w, b)$를 찾는 것이다 !
[ML Lec 05] - Logistic (regression) classification
- hypothesis (가설)
- $g(z) = \frac {1}{1+e^-z}$
- 위의 함수는 sigmoid function 또는 logistic function이라고 부른다.
- sigmoid는 어떤 입력값에 대한 Y에 포함될 확률로 나타내는 것을 의미한다.
- 0 ~ 1 사이의 값을 갖는다.
- 위의 함수는 sigmoid function 또는 logistic function이라고 부른다.
- $H(X) = \frac {1}{1+e^(-W^TX)}$
- *z = $WX$
- Cost function
- $cost(w) = \frac{1}{n} \sum_{i=1}^{n}c(H(x), y)$
- $-log(H(x)) , y = 1 일 때
- $-log(1-H(x)) , y = 0 일 때
- $c(H(x), y) = -ylog(H(x)) - (1-y)log(1-H(x))$
- cross- entrophy loss 라고도 부른다.
- $cost(w) = -\frac{1}{n} \sum_{i=1}^{n} (-ylog(H(x)) - (1-y)log(1-H(x)))$
- 최적의 W를 구하는 방법 (loss를 최소화하는 $w$를 구하면 된다.)
- $w := w - \alpha \frac {\partial}{\partial w} cost(w)$
[ML Lec 06] - Softmax Regression
- Multinomial Classfication : y값의 범주가 여러개인 경우에 어느 클래스에 속하는지 분류해주는 기법을 의미한다.
- Softmax Regression은 Multinomial Classfication에 해당된다.
- Multinomial Classfication는 Binary를 독립된 n번을 반복해서 표현도 가능하다.
[ML Lec 07-1] - 학습 rate, 정규화, Overfitting, 일반화 (Regularization)
<학습 rate>
- learning_rate (학습률)이 크면, 값이 발산한다.
- learning_rate (학습률)이 매우 작으면, 학습시간이 오래 걸리고 극소적 최소점에 머무를 수 있다.
- Cost 함수를 관찰하면서 적절한 learning rate를 구하는 것이 중요하다.
<정규화>
- X 값들 사이의 차이가 크다면, 정규화 할 필요가 있다. (학습이 잘 되지 않기 때문에)
- Standardization : $\frac {X_i - M_i}{\sigma}$
<Overfitting (과적합)>
- 과적합은 모형이 학습 데이터에만 지나치게 학습된 것을 의미한다.
- 따라서, 새로운 데이터에 대해 예측을 할 경우, 성능이 좋지 않음을 확인할 수 있다.
- 해결책
- Train data set을 늘린다.
- 중복된 feature를 줄인다.
- Regularization (일반화)를 수행한다.
- Regularization은 해당 모형이 너무 큰 weight를 갖지 않도록 규제를 주어 일반화를 시키는 것이다.
- loss = $\frac {1}{N} \sum_{i=1}^{n} D(S(WX_i + b), L_i) + \lambda \sum_{i=1}^{n}W_i^2$
- $\lambda \sum_{i=1}^{n}W_i^2$ <- 이 부분이 정규화의 정도를 나타내는 식이다.
- loss = $\frac {1}{N} \sum_{i=1}^{n} D(S(WX_i + b), L_i) + \lambda \sum_{i=1}^{n}W_i^2$
[ML Lec 07-2] - Training/Testing data set
- Training data set을 활용하여 Model을 학습한다.
- Testing data set을 활용하여 Model을 통해 예측을 진행하고 값을 비교한다.
- Validation data set : Parameter (모수) tuning을 위해 사용하는 데이터 셋이다.
- Validation data set은 Train data set 내에서 Train/Validation을 나눈다.
- Online learning : 대용량의 data를 한번에 학습하기 보다, 분할하여 학습하는 방법을 의미한다.
- 주의할 점은 앞에서 학습한 결과가 Model에 남아있어야 한다.
'Data Science > ML' 카테고리의 다른 글
[ML] - Tensorflow의 기본 Operations (0) | 2021.04.26 |
---|