본 게시물은 Courasera Andrew Ng 교수님의 머신러닝 특화 과정
Supervised Machine Learning : Regression and Classification
3week 을 summary 한 것입니다.
linear regression을 사용하면 예측 결과가 음수이거나 1보다 큰 숫자가 될 수 있다.
그러나 이진 분류 문제에서는 predict가 0 또는 1이어야 한다.
따라서 이진분류에서는 로지스틱 회귀를 사용힌다.
Logistic Regression은 0과 1을 출력 하는 함수로 표현된다.
그림에서와 같이 g(x)는 0과 1 사이의 값을 나타내는 시그모이드 함수로 표현할 수 있다.
따라서 sigmoid 함수는 입력 값 x와 매개변수 w 및 b에 대해 y가 1일 확률을 나타낸다고 할 수 있다.
로지스틱 회귀에서 w와 b의 값을 구하는 방법은 선형회귀에서 사용한 cost function의 format을 사용한다.
그러나 가설함수는 선형함수가 아닌 비선형함수를 사용한다.
따라서 로지스틱 회귀에 대한 cost function은 convex하지 않은 그래프로 나타난다.
문제점이 있다면, 이는 local minimum에 빠질 수 있는 문제가 발생한다.
따라서 손실함수를 위와 같이 변경하는데
Y=1인 경우 로그 함수가 1에 가까울수록 예측이 잘 되므로 비용은 0으로 수렴하게 되고
( label 이 1 인데 예측도 1로 했을 경우 cost 는 0으로 수렴하는 것이 맞다. )
Y=0인 경우 로그 함수가 0에 가까울수록 예측이 잘 되므로 비용은 0으로 수렴하게 된다.
( 반대로 label 이 0 인데 예측도 0로 했을 경우 cost 는 0으로 수렴하는 것이 맞다. )
위 그래프를 보면 이해하기 쉬울 것이다.
따라서 loss function과 cost function은 그림과 같이 나타낼 수 있다.
cost function을 최소화하는 매개변수를 찾기 위해 로지스틱 회귀도 경사하강법을 사용한다.
선형 회귀와 같은 방식으로 알고리즘을 적용할 수 있다.
Overfitting은 세 번째 그래프에서 보듯이, 학습된 가설 함수가 복잡해질수록 train set에 잘 맞지만,
새로운 데이터에 대해서 일반화된 예측을 하지 못하는 경우가 발생한다.
Overfitting 을 피하는 방법은 3가지 정도 있는데
data를 늘리던가
feature selection 을 하던가
정규화를 하는 것이다.
높은 차수의 다항식을 학습하면 데이터가 과적합 되기 쉽다.
따라서 위의 그림과 같이 w3과 w4를 최소화하는 방법을 사용한다.
예를 들어 w3과 w4에 비용 함수의 매우 큰 값을 곱해버리면 cost function 에서 높은 cost 가 발생할 것이고,
모델은 cost를 최소화하기를 원하기 때문에 이는 gradient descent 중 weight 을 update 할 때,
w3과 w4를 더 작게 만들려고 할 것이다.
즉, 정규화는 위와 같은 느낌으로 가설 함수를 단순화하고 매개변수를 줄임으로써 과적합을 줄일 수 있다.
일단 많은 feature 중 어느 것을 줄여야 할지 모르기 때문에 모든 특성에 페널티를 부여하고 람다를 통해 조정할 수 있다.
선형 회귀 역시 비용 함수에 정규화를 추가하고 식을 구성할 수 있다.
또한 로지스틱 회귀도 위와 같은 방식으로 정규화를 사용한 식으로 표현 할 수 있다.
느낀점 🙋♂️
본 강의에선 회귀와 분류의 대해 좀 더 개념과 수식적으로 접근하여 이해하는데 좀 어려웠던 것 같다. AI 의 기본 개념이 되는 수식들은 그냥 본다고 이해가 된다면 좋겠지만, 난 그렇게 머리가 좋지 않다는 것을 느꼈고, 몇번 그려보거나 시간을 들여 이해할 수 있었던 것 같다. 특히 정규화 일반화 이런 단어들이 많이 햇갈리기도 하고 cost function 과 loss function 같은 것들도 햇갈리곤 한다. 이번에 강의를 듣고 개념을 정리하는 시간을 갖어야 겠다는 생각도 든다.
'COURSERA > Supervised Machine Learning' 카테고리의 다른 글
[Courasera] [2week] Regression with multiple input variables : 머신러닝 특화과정 (0) | 2023.02.06 |
---|---|
[Courasera] [1week] Introduction to Machine Learning : 머신러닝 특화과정 (0) | 2022.12.20 |
댓글