https://www.youtube.com/watch?v=BS6O0zOGX4E&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=1 

이번 부터는 Lab을 제외하고 Lec을 우선적으로 정리했다. 

 

Lec 4 Multivariable linear regression

Recap : linear regression을 설계하기 위해 필요한 3가지

1. Hypothesis

W:가중치 b: bais W와b를 학습한다 

 

2. Cost Function : cost(loss)를 어떻게 계산할 것인가 

$y^{(i)}$ : 실제 값 (true)

$H(x^{(i)})$ : 예측 값(prediction)

 

3. Gradient descent algorithm : cost를 최적화 하는 방법 

Gradient를 통해 경사를 따라 움직이고, Gradient가 0인 지점이 cost가 최소

 

input이 하나인 경우 이와 같이 한다. input이 여러개인 경우?

 

Variable이 3개인 경우

1. Hypothesis

2. Cost Function

Multivariable linear regression

Hypothesis

이런식으로 variable이 많은 경우에도 식을 세울 수 있다

그러나 variable이 많을 수록 수식이 길어져서 복잡해질 수 있다 

-> Matrix를 이용한다. 

$X$ : X의 행렬

$W$ : W의 행렬

(bias는 일단 생략한다)

 

시험 점수를 예측하는 예시

regression using three inputs(x1,x2,x3)

데이터 low 하나를 instance라고 한다. 

여러번 반복해서 low를 수식에 대입하고 계산하는 것은 효율성이 떨어진다. 

->matrix이용

instance의 수만큼 x matrix를 늘린다. 

instance값이 많더라도 연산 값을 한번에 구할 수 있다. 

 

W의 크기를 결정하는 방법 

대부분의 경우 X와 H(Y)의 값은 정해진다. 

X [5,3] 5 : instance의 수, 3 : variable의 수

H(X) [5,1] 5: instance의 수, 1: y값  

W의 크기를 결정해야한다. 

-> X [5,3]에서 3을 가져오고, H(x) [5,1]에서 1을 가져와 [3,1]이 된다. 

([5,3]에 어떤 행렬을 곱해서 [5,1]이 되려면 그 행렬은 [3,1]이어야 한다.)

 

인스턴스의 수는 가변적인 요소이므로 n으로 표시하기도 한다. 

실제 tenserflow에선 none으로 표시하기도 한다. 

 

Lec 5 Logistic (regression) classification

Classification 

- Regression은 수치값을 예측하는 것 

- Classification은 어떠한 Category로 분류하는 것 

- 2개의 class로 분류하는 것을 binary classification이라고 한다. 

- 기계적 학습을 위해 0또는 1로 인코딩한다. 

ex) spam email detection : spam(1) or ham(0) 

ex) Facebook feed : show(1) or hide(0)

ex) Credit Card Fradulent Transaction detection: legitimate(0)/fraud(1)

ex) 주식을 살것인가 팔 것인가 

 

Linear regression으로 학습하는 경우의 문제점 

예시 : Pass(1)/Fail(0) base on study hours

1. False Negative / Fase Positive

여기에 새로운 데이터가 추가되어 WX가 변하는 경우를 생각해보자 

새로운 데이터에 의해 기울기가 변하게 된다.

기존과 동일하게 0.5 이상, 이하로 합격, 불합격으로 판단하게 되면,

합격인데도 불합격(false negative)이라고 판단하는 경우가 생기게 된다. 

 

2. Hypothesis

Hypothesis는 값이 0이상 1이하의 값으로 나와야 한다. 

그러나 $H(x) = Wx +b$를 Hypothesis로 그대로 사용하는 경우, 

classification에서는 1보다 큰 값이 나올 수 있다. 

ex ) W = 0.5, b=0 로 학습되었다고 하자. 

만약 x값이 100이라고 한다면 $H(x)=50$ 

-> $H(x)$를 0과 1사이 값으로 만들어주는 함수 $g(z)$를 찾는다. 

sigmoid(logistic function) : $g(z)=\frac{1}{(1+e^{-z})}$

 

 

Logistic Hypothesis

$z=WX$

$H(x)=g(z)$

$g(z)=\frac{1}{(1+e^{-z})}$

 

Cost Function 

Logistic Hypothesis는 이전의 Hypothesis와 달리 극소값이 하나가 아니다 

즉 시작한 위치에 따라 gobal minimun이 아니라 local minimun을 찾을 가능성이 있다. 

따라서 새로운 Cost함수가 필요하다. 

 

이와 같이 Cost를 정의하면 극소값이 1개이기 때문에 gradient decent 알고리즘을 적용할 수 있다. 

 

y가 1일 때와 0일때를 합쳐서 수식으로 나타내면 다음과 같다. 

 

Minimize cost - Gradient decent algorithm 

tensorflow를 사용하는 경우 GradientDecentOptimizer함수를 이용하여 구하면 된다. 

 

 

Lec 6 Softmax Classification Multinomial classification 

logistic regression을 학습한다는 것은 두가지를 구분하는 선(hyper plane)을 찾는 것 

이를 그대로 multinomial classification에 적용할 수 있다.(변수가 여러개인 경우)

예시 : 학점을 예상하기 

binary classification만을 가지고 multinomial classification을 구현할 수 있다. 

-> B인지 아닌지, A인지 아닌지, C인지 아닌지 구분하는  classification 3개를 이용한다. 

서로 독립된 binary classification을 구현하는 경우 행렬을 통한 연산은 다음과 같다. 

그러나 이런식으로 계산하는 것은 구현하기에도 복잡한다 따라서 W의 행을 늘린다.

W를 하나의 벡터로 처리하여 3가지 classification을 구현할 수 있다. 

이때 시그모이드를 어떻게 적용할 것인가? 

-> softmax를 적용한다. 

 

Softmax 

$S(y_i)=\frac{e^{y_i}}{sum_j e^{yi}} $

-결과 값을 0과 1사이의 값으로 만들어준다. 

-결과 값의 합을 1로 만든다. 

-softmax로 나온 결과 값을 확률로 볼 수 있다. 

-이 값을 one-hot encoding 을 이용하여 표현할 수 있다. (tensorflow에서 argmax 이용)

-> 확률이 가장 큰 값만 1로 표현하고 나머지 값은 0으로 표현한다. 

 

Cost Function

- Cross Entropy = $-\sum_i L_i log(s_i)$

- S(y) : 예측 값, L : 실제 값 

- $-\sum_i L_i log(s_i) = \sum_i (L_i) * (-log(s_i)) $

- $s_i$ : softmax를 통한 값이므로 0과 1사이의 값

- $-log(s_i)$ : $s_i$의 값이 0일 때는 값이 무한대이고, 1일 떄는 0이다.

- 그래프로 나타내면 다음과 같다. 

- 2가지 lable이 있다고 가정하자 

- $L=\begin{bmatrix} 0 \\ 1 \end{bmatrix} = B$ : 실제값이 B라고 하자 

- $Y=\begin{bmatrix} 0 \\ 1 \end{bmatrix} = B$ : B라고 예측 함

-> 맞는 예측 

-> cost function에 의한 값이 0이 나온다. 

- $Y=\begin{bmatrix} 1 \\ 0 \end{bmatrix} = A$ : A라고 예측 함

-> 틀린 예측 

-> cost function에 의한 값이 $\infty$가 된다. 

- 따라서 cost function이 잘 작동한다. 

(Logistic cost VS cross entropy 

- 실제로는 Logistic cost와 cross entropy가 같은 것이다. )

-training set이 여러 개인 경우 

 

 

Gradient descent 

이전과 같이 미분하고, 경사를 따라 이동하여 w가 최소인 지점을 찾는다. 

 

'STG 퀸트고 (딥러닝 기초) > 딥러닝 기초 (모두의 딥러닝 시즌1)' 카테고리의 다른 글

Lec10~12  (0) 2022.01.03
Lec 7 ~ 9  (0) 2021.12.27
모두의 딥러닝 Lec00~03  (0) 2021.11.08

+ Recent posts