-
모두를 위한 딥러닝 - 정리 (1~6)공부/머신러닝 2021. 3. 13. 03:39
모두를 위한 딥러닝 : www.youtube.com/watch?v=BS6O0zOGX4E&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=2
lecture만 정리
ML lec 01 - 기본적인 Machine Learning의 용어와 개념 설명
Machine Learning
프로그램 자체가 데이터를 학습하는 것
- Supervised learning : 레이블된 데이터(training set)를 가지고 학습을 하는 것
- Types of supervised learning : regression, binary classification, multi-label classification
- 들인 시간에 따른 시험 성적 예측 : regression
- 들인 시간에 따른 Pass/non-pass 여부 : binary classification
- 들인 시간에 따른 알파벳 : multi-label classification
- Unsupervised learning : 레이블되어있지 않은 데이터를 가지고 학습을 하는 것
ML lec 02 - Linear Regression의 Hypothesis와 cost 설명
Regression model을 학습하기 위해서는 하나의 가설을 세울 필요 있음
- (Linear) Hypothesis : 어떤 데이터에 맞는 linear한 선을 찾는다.
- -> 선을 찾는 과정 : "학습"
- $H(x) = Wx+b$
- H는 가설, W와 b에 따라 선의 모양이 변함
- 어떤 선이 데이터에 가장 적합할까?
- W와 b를 찾기
- Cost function : 실제 데이터와 가설이 나타내는 직선 상의 점들과의 거리를 계산
- $cost(W,b) = {1\over m} \sum_{i=1}^m(H(x^{(i)})-y^{(i)})^2$
- 가장 작은 값을 가지는 W,b를 찾기
ML lec 03 - Linear Regression의 cost 최소화 알고리즘의 원리 설명
Gradient descent algorithm (경사하강법)
- Minimize cost function
- 여러 minimization 문제에 사용됨
- cost를 최소화 하기 위한 W, b를 찾음
동작 원리
- W와 b를 변화시키며 cost(W,b)를 줄여감
- 어떤 지점에서 시작하든지 최저점에 도달할 수 있음
- 경사는 미분으로 구함
cost function 이해하기 쉽게 변환
$cost(W) = {1\over 2m} \sum_{i=1}^m(Wx^{(i)})-y^{(i)})^2 $
$W := W - \alpha {\partial\over{\partial W}}cost(W) $
미분 완료한 최종 식
$W:=W - \alpha {1\over m} {\sum_{i=1}^m (Wx^{(i)}-y^{(i)})x^{(i)}}$
해당 식을 반복하여 W를 변화시키며 cost를 minimize하는 값을 찾음
※cost function의 모양이 Convex function인지를 확인하고 gradient descent algorithm을 사용해야 함
ML lec 04 - multi-variable linear regression
regression using multi-variable
$H(x_1, x_2, x_3, ..., x_n) = w_1x_1 + w_2x_2 + w_3x_3 + ... + w_nx_n + b$
$cost(W,b) = {1\over m} \sum_{i=1}^m(H(x_1^{(i)}, x_2^{(i)}, x_3^{(i)}, ... x_n^{(i)})-y^{(i)})^2 $
=> matrix multipliction 사용
Hypothesis using matrix
$\begin{pmatrix} x_1 & x_2 & x_3\end{pmatrix} \cdot \begin{pmatrix} w_1 \\ w_2 \\ w_3 \end{pmatrix} = (x_1w_1 + x_2w_2 + x_3w_3)$
$H(X) = XW$
=> 인스턴스가 더 많아져도 동일한 방식으로 적용 가능
X matrix의 크기 : [instance 개수, variable 개수]
H(X) matrix의 크기 : [instance 개수, output 개수 n]
=> W의 크기를 결정해야 함 : [variable 개수, output 개수 n]
- Lecture (theory) : $H(x) = Wx+b$
- Implementation (TensorFlow) : $H(X) = XW$
ML lec 05 - Logistic Regression
Logistic (regression) classification
Classification : 분류 (binary classification(0,1 encoding))
Logistic Hypothesis
$H_L(X) = WX$
$z = H_L(X) , g(z)$
$g(z) = {1 \over {1+e^{-z}}}$
$H_R(x) = g(H_L(x))$
sigmoid : 0과 1 사이의 값을 가짐
$H(X) = {1 \over {1+e^{-W^TX}}}$
New cost function for logistic
$cost(W, b) = {1 \over m} \sum_{i = 1}^m (H(x^{(i)}) - y^{(i)})^2$
=> 그래프의 모양이 달라서 어느 지점에 시작하느냐에 따라 최저점이 다름 (global minimum이 아니라 local minimum을 찾게됨) => 해당 cost function 사용 불가
New cost function
$cost(W) = {1 \over m}\sum c(H(x), y)$
$c(H(x), y) = \begin{cases} -log(H(x)), & \mbox{: }\mbox{ y = 1} \\ -log(1-H(x)), & \mbox{: }\mbox{ y = 0} \end{cases}$
위의 식을 한 줄로 편하게 변환
$C(H(x), y) = -ylog(H(x)) - (1-y)log(1-H(x))$
Minimize cost - Gradient decent algorithm
$cost(W) = -{1 \over m}\sum ylog(H(x)) + (1-y)log(1-H(x))$
$W := W - \alpha {\partial \over {\partial W}}cost(W)$
ML lec 06 - Softmax classification
Y : real data, $\bar{Y}$ : 예측값 ($\bar{Y} = H(X)$)
Multinomial classification
2개가 아닌 n개로 분류하는 경우 -> binary classification을 통해 구분하는 n개의 선을 찾아야 함
n번 독립적으로 계산하기보다 한 번으로 합치는 것이 나음 (matrix multiplication 사용)
각각의 $\bar{Y}$ 에 sigmoid를 적용해야 할까?
softmax
Logistic classifier(WX=Y)의 결과인 $\bar{y}$ 들은 각각 값을 가지고 있을 것 -> softmax 사용하여
- 0~1사이의 값
- 전체의 합이 1 (확률)
이 되도록 함
그 중 하나만 골라야 할 때 -> One-hot encoding
- 제일 큰 값을 1로, 나머지는 0으로
Cross-entropy cost function
cost function : 예측이 맞았을 땐 0, 예측이 틀렸을 때는 매우 큰 값을 주어야 함
$\bar{Y}$와 $Y$의 차이가 최소가 되어야 함
$S(Y) = \bar{Y}$ softmax를 통과한 값, $L = Y$
$D(S,L) = - \sum_i L_{i}log(S_i)$
※ Logistic cost와 cross entropy는 사실상 같다고 볼 수 있음
Cost function
$L = {1 \over N} \sum_i {D(S(WX_{i}+b,L_i)}$
Gradient descent
cost를 최소화하는 값 W 찾기 -> Cost function을 미분하는 Gradient descent algorithm 사용
'공부 > 머신러닝' 카테고리의 다른 글
Kaggle - House Price (0) 2021.04.05 Kaggle - Titanic (0) 2021.03.30 모두를 위한 딥러닝 - 정리 (7~12) (0) 2021.03.22 - Supervised learning : 레이블된 데이터(training set)를 가지고 학습을 하는 것