따릉이
[머신러닝] Linear Regression, Logistic Classification, Softmax Regression 본문
[머신러닝] Linear Regression, Logistic Classification, Softmax Regression
ObserverPoa 2021. 1. 20. 08:38<Linear Regression>
Linear Hypothesis: 어떤 데이터가 선형적인 분포를 보일 것이라는 가설 (H(x) = W(x) + b)
가설이 얼마나 잘 맞는지(실제 데이터와 얼마나 일치하는지) cost function을 이용해 확인한다.
cost function값을 최소화시키는 W, b를 구한다.
<Gradient descent algorithm>
cost를 최소화하는 W와 b를 찾는 알고리즘
ex) H(x)=Wx 의 경우, 임의의 W값에서 최적(cost 최소화)의 W를 찾기 위해서는
위와같은 cost function의 값을 최소화시키는 방향으로 W값을 조정해야 한다.
위와같이 변수가 1개인 함수의 임의의 점에서 기울기를 구했을 때,
기울기가 양수이면 W값을 조금씩 줄이고, 기울기가 음수이면 W값을 조금씩 증가시켜가면,
함수값이 최소화되는 W를 찾을 수 있다.
위와같이 기울기에 알파(learning rate)를 곱해서 cost가 적어지는 방향으로 적절한 양 만큼 이동한다.
<Convex function>
cost function이 아래와 같을 경우, 어느 점에서 minimize를 시작하느냐에 따라
global minimum이 아닌 local minimum으로 수렴할 수 있다는 문제가 있다.
반면 Convex function은 local minimum이 1개이기 때문에 문제가 발생하지 않는다.
<multi-variable linear regression>
<Regression vs Classification>
Regression algorithm: 입력 변수에 대해 출력 변수가 연속적인 값으로 나타나질 때, 이에 대한 매핑 함수를 찾는 알고리즘
ex) x시간만큼 공부했을 때 시험에서 y점을 획득
Classification algorithm: 입력 변수에 대해 출력 변수가 불연속적인 값으로 나타나질 때, 이에 대한 매핑 함수를 찾는 알고리즘
ex) 스팸 메일인지 아닌지 판단(binary classification), x시간만큼 공부했을 때 학점 A or B or C를 획득 (multinomial classification)
<Logistic Classification>
위와같은 binary classification문제에 아래와 같이 Linear regression을 사용할 경우,
실제 Y값은 0또는 1임에 비해서
Hypothesis(Wx+b)가 0보다 너무 작거나 1보다 너무 큰 값이 될 수 있다는 문제가 있다.
그래서, Hypothesis: H(x)=Wx+b 에 Sigmoid함수(logistic 함수)를 적용시켜 0~1 사이의 값을 갖도록 만든다.
Logistic Hypothesis는 다음과 같다. (sigmoid 함수의 x에 WX를 대입.)
이 logistic hypothesis의 cost function은 linear hypothesis의 cost function과 다른 것을 사용해야 하는데,
linear hypothesis의 cost function을 그대로 사용할 경우, 다음과 같이 convex function이 되지 않아서 local minimum 문제가 발생한다.
logistic hypothesis의 cost function은 다음과 같다.
또한 다음과 같이 실제 Y값과 hypothesis가 서로 다르면 cost가 높고, 같으면 cost가 낮다는 것을 확인할 수 있다.
또한, local minimum문제도 해결되었다.
그리고 이 cost function을 다음과 같이 한 줄로 표현할 수 있다.
이제 이 함수를 이용해 gradient decent algorithm을 통해 학습시키면 된다.
<Softmax classification>
Multinomial classification의 경우, 위와같이 여러개의 binary classification의 조합으로 접근한다.
모두를 위한 딥러닝 - 기본적인 머신러닝과 딥러닝 강좌 - 인프런
더 많은 분들이 머신 러닝과 딥러닝에 대해 더 이해하고 본인들의 문제를 이 멋진 도구를 이용해서 풀수 있게 하기위해 비디오 강의를 준비하였습니다. 더 나아가 이론에만 그치지 않고 최근 구
www.inflearn.com
모두를 위한 머신러닝/딥러닝 강의
hunkim.github.io
'머신러닝' 카테고리의 다른 글
[머신러닝] Pandas 기초 (0) | 2021.01.22 |
---|---|
[머신러닝]신경망 시각화 영상 (개요) (0) | 2021.01.20 |
[팬더스] 6. map , applymap , unique , value_counts 함수 활용 (0) | 2021.01.19 |
[팬더스] 5. NaN 값 변경 , apply 함수 활용 (0) | 2021.01.19 |
[팬더스] 4. 데이터그룹 만들기 , 중복 데이터 삭제 (0) | 2021.01.19 |