1) Classification and Representation
0 or 1 하나의 값을 가지는 변수 y를 예측
0 : '음성 분류' / 1 : '양성 분류' + multi classification도 있음
cf) 우선 강의에서는 이진 분류 위주로 진행
선형 회귀를 분류문제에 적용하기에는
예시1 ) 데이터에 적용했을 때 임계값 0.5에 대해 잘못된 결과
예시2 ) 가설의 결과값이 0과 1 사이여야 하는 데 그밖의 값을 가질 수 있음
=> 이러한 어려움이 있기 때문에 로지스틱 회귀 알고리즘 사용
cf) 로지스틱 회귀에서 회귀는 역사적으로 붙여진 이름이지 선형회귀와 헷갈리지 말것!
가설 표현 모델 : 분류 문제에서 가설 표현 시 사용
ex)
will give us the probability that our output is 1. For example, gives us a probability of 70% that our output is 1. Our probability that our prediction is 0 is just the complement of our probability that it is 1 (e.g. if probability that it is 1 is 70%, then the probability that it is 0 is 30%).
hθ(x) = P(y=1|x;θ) = 1−P(y=0|x;θ) P(y=0|x;θ)+P(y=1|x;θ)=1 |
cf) 조건부 확률. 만약 잘 이해가 되지 않으면 여기에서는 단순히 P(y=1)/P(y=0)으로 봐도 무방
0과 1 분류에서 가설의 결과를 다음과 같이 이해할 수 있다.
hθ(x) ≥ 0.5 → y = 1 hθ(x) < 0.5 → y = 0 |
위에서처럼 로지스틱 회귀 모델에서는 가설을 이렇게 해석할 수 있다.
g(z) ≥ 0.5 when z≥0 → hθ(x) = g(θTx) ≥ 0.5 when θTx≥0 → θTx ≥ 0 ⇒ y = 1 / θTx < 0 ⇒ y = 0 |
Decision Boundary : y = 0 / y = 1이 구분되는 시점. 선이 아니더라도 원 등 다양한 모형으로 나타낼 수 있다.
2) Logistic Regression Model - theta parameter값 설정
Non-convex vs Convex
Cost function for logistic regression
Cost(hθ(x),y) = 0 if hθ(x) = y Cost(hθ(x),y) → ∞ if y=0 and hθ(x)→1 Cost(hθ(x),y) → ∞ if y=1 and hθ(x)→0 |
=> 이제 Convex한 형태로 비용 함수 그릴 수 있음
* 분류문제에서 항상 y는 0 or 1이라는 걸 기억할 것!
따라서 이와 같은 간단화된 비용함수 식을 얻을 수 있음.
A vectorized implementation is:
Gradient Descent : 선형회귀에서 사용하던 것과 동일. 여전히 동시다발적으로 값 업데이트 !
A vectorized implementation is:
최적화 알고리즘 : Gradient descent, Conjugate gradient, BFGS, L-BFGS
+ alpha 값을 자동으로 설정해줌, Gradient descent보다 빠름
- 하지만 더 복잡하고 어려움
Octave로 구현하기
function [jVal, gradient] = costFunction(theta)
jVal = (theta(1)-5)^2 + ... (theta(2)-5)^2; % how compute cost function
gradient = zeros(2,1);
gradient(1) = 2*(theta(1)-5);
gradient(2) = 2*(theta(2)-5);
options = optimset('GradObj', 'on', 'MaxIter', '100');
% 옵션을 주기 위한 데이터 구조
% GradObj : Gradient Object / on : Gradient 값 줄 거다 / MaxIter : 반복 최대값 설정 '100'
initialTheta = zeros(2,1);
[optTheta, functionVal, exitFlag] = fminunc(@costFunction, initalTheta, options);
how convergence 함수 minimization unconstrained in Octave
3) Multiclass Classification
one-vs-all (one-vs-rest) 분류 - 기존에 앞에서 다뤘던 이진분류와 달리 여러개로 분류해야하는 경우
각각이 클래스 i에 대해 y=i일 확률을 예측한 후, 새로운 입력값 x가 주어진다면 그냥 세 개의 h를 새로운 x에 대해 전부 돌려 보고 최대값이 나온 클래스 i를 고르면 된다.
4) Solving the Problem of Overfitting
Underfitting / High bias / Preconception : 모델이 데이터에 제대로 맞지 않을 때, 주로 직선에 데이터를 맞치는 경우 나타남
Overfitting / High variance(높은 분산) : 적어도 훈련용 데이터에서는 좋은 성능을 볼 수 있지만, 과한 변동성으로 인해 일반화가 어려워 새로운 입력 데이터에 대한 예측이 어려울 수 있음
Overfittting 문제를 어떻게 다룰 것인가?
1) # of feature 줄이기 : 수동적으로 선택 / 모델 선택 알고리즘 사용
2) Regularization : feature들은 모두 유지하되 값이나 강도를 조절
Regularzation에서 사용되는 cost function
만약, 람다 값이 너무 크면 모든 theta값을 0으로 수렴하게 만들기에, underfitting의 문제가 발생함
Regularized Linear Regression
- Gradient Descent
- Normal Equation
Recall that if m < n, then X^TX is non-invertible. However, when we add the term λ⋅L, then X^TX + λ⋅L becomes invertible.
Regularized Logisitic Regression
- Cost Function
* Gradient descent이 선형회귀와 유사해도 다른 알고리즘임. 가설이 다르기 때문
- Assignment
'Dev > Coursera - Machine Learning' 카테고리의 다른 글
[Coursera ML][5주차] Neural Network : Learning (0) | 2020.03.03 |
---|---|
[Coursera ML][4주차] Neural Networks : Representation (0) | 2020.03.01 |
[Coursera ML] [2주차 복습] Octave Tutorial (0) | 2020.02.10 |
댓글