Regularization 등장배경
너무 training data에 fitting된 경우 = 일반화가 안됨
⇒ 새로운 data에 대한 결과가 좋지 않음
why? data 수에 비해 feature수가 많을 때
🔍 Overfitting 확인법 = Visualization?
🤔 BUT, feature수가 많다 = 고차원 = 시각화하기 힘들다
⇒ 시각화가 항상 답은 아님
원인→ hypothesis가 너무 간단
feature 개수 줄이기
Regularization 적용
→ 모든 feature를 가지고 있되, feature에 곱해지는 parameter 크기 줄이기
== Penalize : 영향력이 큰 feature의 parameter를 줄여, 영향력을 줄이자
🤔 어떤 feature의 영향력이 큰지 어떻게 알 수 있나? → 알기 힘들다...
⇒ 그렇다면 모든 parameter를 줄이자. (단, bias 만 빼고)
Regularization이 적용된 Cost Function은 두 개의 term으로 이루어져있다.
이때 = regularization parameter
첫번째 term = 일반적인 cost 함수로, training data에 맞추기 위한 부분이다.
두번째 term = parameter에 penalty를 부여하는 부분이다.
두 개의 term에 균형을 맞추는것이 바로 regularization parameter, 인 것이다.
⇒ 이렇게 되면 두개 term의 균형이 맞으면서, 훨씬 부드러운 커브를 갖게 된다.
만약 가 매우 크면 → 2번째 term의 역할이 커짐 → 1의 역할 축소 → underfitting
따라서 를 잘 선택해야 한다!
새로생긴 이 부분의 의미**는 무엇일까?
== 1보다 작으면서 1에 가까운 값**
이를 에 곱했다는 것은, 크기를 좀 줄인 다음 → 뒤 term에서 gradient descent 적용했다는 뜻
logistic regression도 마찬가지이나 가설함수가 다르다는것만 알아두면 됨
linear regression의 학습 알고리즘으로 지금까지 gradient descent를 배웠다.
이를 대체할 수 있는 알고리즘인 Normal Equation을 잠깐 보고 넘어가자!
에서, 와 는 다른 차원이기 때문에, 값을 바로 구할 수는 없다.
그렇다면 값을 어떻게 구할까? → by 선형대수학
이 식의 양변에 의 trans인 를 곱하면
가 되며, 는 정방행렬로, 역행렬이 존재한다.
따라서 양변에 의 역행렬인 를 곱해주게 된다면
가 되어, 우변에 만 남게 된다!
→ 이런 연산과정은 의 시간복잡도를 가진다는 단점이 있다.
Gradient Descent | Normal Equation |
---|---|
⁍ 를 선택해야 함 | ⁍ 선택할 필요 없음 |
반복 연산 | 반복 연산 없음 |
n이 클 때 잘 작동함 | n이 크면 느림 |
그럼 Normal Equation에서의 정규화는 어떻게 이루어질까?
cost function에 을 더해주면 된다.
이 때 : n+1 identity matrix
L2 Regularization
:
L1 Regularization
: 절댓값 사용
Dropout
Early Stopping
: overfitting 전 학습을 멈춤
Batch Normalization
요즘 Machine Learning의 추세 == data 수 << parameter 수 ⇒ overfitting 문제 발생
따라서 regularization 적용이 거의 필수적,,