[머신러닝] 머신러닝 입문 올인원 :: 1강 회귀_Validation Data

2024. 5. 31. 14:21메타코드/머신러닝


 

 

1강 회귀 :: Validation Data

 

검증데이터셋

검증데이터와 평가데이터의 가장 큰 차이점 -> 학습시에 볼 수 있느냐

둘 다 모델의 학습에는 참여를 못한다. 

검증데이터셋은 학습 중간중감에 계속해서 평가를 하게 해준다. 오버피팅이슈를 막기 위해.

 

LOOCV

->검증된 데이터셋을 잘 나누어 주고 검증데이터셋을 딱 한번만 돌려서 검증데이터셋에 대해서 가장 좋은 성과를 보이는 모델파라미터를 고정하여 평가데이터셋을 돌리면 결과가 좋을수도 나쁠수도 있다. 왜냐하면 한번만 했기 때문에,

->데이터 한개를 검증데이터셋으로 만들어보자.(모델파라미터를 없애고)

->n번에 대해 평균을 내림(평가데이터와의 차이)

->n번이 만개 3만개가 되고 모델이 5개가 있다면 각 모델은 n번을 계산해야 해서 계산비용이 너무 커짐.

=>k-fold 교차 검증 탄생

 

k-fold 교차 검증 

k개의 파트로 나누어 검증

모델이 5개 있을때 일반적으로는 5*n의 계산이 필요하지만 k-fold로 하면 5*k(<n)만 계산하면 됨

 

k값이 커지면 어떤 것이 바뀔까?

->모델의 최적의 복잡도를 찾기위함. 편향과 분산이라는 개념.

k값이 커진다는 것은 총데이터를 많이 나눈다는 것. 극한으로 커지면 LOOCV랑 같아짐.

학습데이터의 수가 커지고 거의 모든 분포를 보기 때문에 편향값이 작아지고 오차를 n개를 찍어보고 검증데이터셋이 1개이기 때문에 분산값이 들쑥날쑥해서 분산은 커짐.

k=2일때는 학습데이터가 적어짐. bias에러값이 크지만 나중에 볼 데이터에 대한 오차는 분산값이 크지 않을 것.

 

정규화 손실 함수

모델의 복잡도가 커진다 = 모델의 파라미터 수가 많아진다.

->과접할 발생 커짐

->복잡도가 큰 모델을 정의하고 중요한 파라미터만 학습하면?

->필요없는 파라미터 값을 0으로 만들자.

 

릿지 레그레션

MSE 

베타->모델의 파라미터

베타2에대해 잘 학습이 안될술수 있음. 베타2가 10일때 람다*100. 어차피 잘 안되니 그냥 0으로 두자. 0*람다.

제곱을 사용하기 때문에 L2라고 불림.

베타1과 베타2는 민트색의 원안에 있음. 원의 방정식으로 만들어 줄 수 있음. 등고선과 원과 맞닿는 지점.

 

라소 리그레션

불필요한 파라미터를 0으로 보내는 게 목표.

0과의 차이를 봐야함->절대값

최적의 값은 마름모와 만나는 지점->필요없는 파라미터는 베타1이구나 알 수 있음(그림)

 

릿지레그레션(L2)을 일반적으로 사용함

정규화에 대한 하이퍼파라미터값이 커지게 되면 필요없는 파라미터를 더 0으로 보내게 되니까 파라미터의 수가 줄어든다.

파라미터가 더 희소해지는 것은 L1정규화.

0의 값을 가진 파라미터가 더 많아지게하는 방법.

1. 람다의 수를 늘림

2. 지수를 낮춘다.

 

 

이번 강의는 좀 어려웠다. L1, L2 정규화를 사용한다는 건 알았는데 이걸 수학적으로 접근하니까 좀 이해가 잘 안된다. 다시 복습이 필요할 것 같다. 하...수학 다시 공부해야할듯..안본지 10년은 된 거 같은데ㅜㅠ

 

이미지를 눌러 머신러닝 배우러 가기