일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 쿠버네티스 #도커 #MSA #Istio #Service Mesh
- 1*1
- NFA #DFA #컴파일러 #Lexical
- dadtamining
- k8s
- embedded rest proxy
- 인공지능 #AI #ML #기계학습 #Lasso #Ridge #Regularization #Linear Regression
- Linear Regression #AI #기계학습 #인공지능 #Lasso #Ridge
- Data # datamining #datascience #AI #ML
- xff
- TLS
- c
- k9s
- ML
- https
- rest proxy
- dadtascience
- Linear Regression #AI #ML #기계학습 #인공지능 #선형회귀
- Kubernetes
- 알고리즘
- rolebinding
- Datamining
- 기계학습#인공지능#AI#ML
- AI #ML #Data #datascience #data mining
- linux
- CKA
- OS
- datascience
- 컴파일러
- Ai
- Today
- Total
solve-my-curiosity
Linear Regression - 3 본문
이번 포스팅은 Ridge와 Lasso의 심화버전이다.
Lasso는 덜 중요한 feature를 버리는 효과가 있다.! (왜 그런지 차차 알아가보자)
만약 B1x1+B2x2+ --- 이렇게 있는데 "결과적으로 봤을 떄" x1, x2가 결과에 큰 영향을 미치는 텀들이 아닐때 B1, B2를 거의 0으로 만드는 효과가 있다는 말이다. (
Ridge 또한 그런 효과가 있지만 Lasso만큼은 아니다. )
먼저 Ridge를 그래프로 표현하면 어떻게 되는지 알아보자.
먼저 y햇 = B1x1+B2x2의 모델이 있다고 해보면 모델 파라미터에 대한 평면을 그린다면 2차원 평면이 B1과 B2를 축으로 하는 그래프가 나올 것이다.
LSE부터 먼저 생각해보자면 LSE는 에러의 값이라고 생각하면 된다. 타원의 가장 정중앙에 있는 값은 에러가 0인 지점이고(즉, 완전 최적화 된 지점) 그다음 지점은 E=1인 B1, B2를 모은 점들, 그다음 타원은 E=4인 B1, B2를 모은 지점들의 집합 이런 느낌이다. 왜 LSE가 타원꼴이 나오냐면...
MSE는 잘 나타내면 시그마 안에 제곱이 있는 꼴이고, 그 수식을 잘 풀어헤치면 B1^2 + B1B2 + B2^2 + B1 + B2 + 상수 이렇게 나올 것이다. 그리고 B^2-4AC 를 하면 무조건 작기 떄문에 타원꼴이라고 알 수 있다. (0보다 작으면 타원, 0보다 크면 쌍곡선, 0이라면 포물선)
(LSE와 MSE를 섞어 쓰지만, 그냥 거의 똑같다. n으로 나누면 MSE 안나누면 LSE)
아무튼 MSE를 잘 나타내면 저렇게 타원꼴이 나오고 에러의 크기만큼 타원의 개형도 바뀌게 된다.
그럼 이제 Ridge를 알아보면 람다*시그마(차이)^2를 R이라고 한다면 R의 크기만큼 원이 커지게 된다.
그래서 만약 람다가 매우 크다면 R은 역으로 작아야 하기 떄문에 B1, B2도 작게 되고, 람다가 작다면 R은 커지기 떄문에 B1, B2는 커진다는 걸로 이해를 하자.
결론은! E와 R을 동시에 에러값을 만족하는 B1, B2를 찾기 위해서는 서로 타협을 하면서 키워가다가 서로 만나는 최소점이 모델이 학습하게 되는 parameter 값이다.
교점에서 조금 더 우상향쪽으로 모델 파라미터값이 움직인다면 오버피팅의 가능성이 있는 것이다. 정규화 값을 무시하면서 에러를 더 낮추려고 가는 것이기 때문이다.
그리고 만약 교점에서 조금 더 좌하향쪽으로 모델 파라미터값이 움직인다면 정규화텀을 더 중요시하면서 에러를 더 키우는 쪽으로 가는 것이기 때문이다.
Lasso는 대부분 접점을 찾다보면 축에서 만나는 경향이 있다. 그래서 B1이나, B2에 대해 하나를 완전히 우선시하고, 하나를 완전히 무시하는 경향이 생긴다.
아까 Ridge는 완전 축은 아니고 축 근처에서 만나기 때문에 하나를 조금 우선시하는 경향이 있었지만 이건 하나를 완전 우선하고 하나를 완전 무시한다.
이 그래프에서 x축은 람다값(근데 실제로 곱해지는 건 1/람다 이다)
그리고 y축은 계수 B
그래서 람다값이 매우 작다면 곱해지는 건 매우 크기 때문에 계수들은 거의 0에 수렴하고
람다값이 커지기 시작하면 곱해지는 건 작아지기 때문에 계수들은 자기 자리를 찾아가서 어느 값들은 잘 안쓰이고 어느 값들은 엄청 우선시되게 학습된다.
이게 두 그래프의 공통적인 내용이고,
Ridge는 처음부터 초반엔 모든 feature가 골고루 고려된다. 하지만 Lasso는 초반에 람다가 매우 작아서 곱하는 값이 매우 클 때는 하나의 feature만 등장하고 서서히 람다값이 커져서 곱하는 값이 작아지면 서서히 feature의 갯수가 늘어간다.
Elastic Net이라는 Ridge와 Lasso를 동시에 보는 모델도 있다.
'기계학습' 카테고리의 다른 글
Gradient-Descent - 2 (3) | 2023.10.25 |
---|---|
Gradient Descent - 1 (0) | 2023.10.21 |
Linear Regression - 2 (2) | 2023.10.21 |
Linear Regression - 1 (1) | 2023.10.21 |
Machine Learning Background (2) | 2023.10.20 |