본문 바로가기
ML&DATA/핸즈온 머신러닝

4 - 정리, 연습문제

by sun__ 2020. 9. 18.

1. 수백만 개의 특성을 가진 훈련 세트에서는 어떤 선형 회귀 알고리즘을 사용하는지?

 

정규방정식의 역행렬을 유사역행렬로 사용한 것(SVD) : 훈련 세트가 많은 것은 상관 없으나 특성의 수 n이면 $O(n^{2})$걸림. 부적절

 

확률적경사하강법(SGD)나 미니배치 경사하강법이 적절하다.


2. 훈련 세트의 특성들이 서로 아주 다른 스케일을 가지고 있다. 이런 데이터에 작동하지 않는 알고리즘은 무엇이고 이유와 해결 방안은?

 

훈련 세트에 있는 특성의 스케일이 매우 다르면 비용함수는 길쭉한 타원 모양의 형태가 되어 경사하강 알고리즘이 수렴하는 데 오래 걸린다. 훈련 전에 스케일링을 하면 된다.

맨 우측 그림이 이 경우에 해당함

정규 방정식이나 SVD방법은 스케일 조정 없이도 잘 작동한다.

 


3. 경사하강법으로 로지스틱 회귀 모델을 훈련시킬 때 지역 최솟값에 갇힐 가능성이 있는지?

 

로지스틱 회귀 모델의 비용함수는 이진 교차 엔트로피(binary cross entropy)의 평균인 로그손실이다. 이는 볼록함수이므로 지역 최솟값이 없다.

 


4. 충분히 오랫동안 실행하면 모든 경사 하강 알고리즘이 같은 모델을 만들어 낼까?

 

비슷하지만 조금씩 다른 모델을 만들게 된다.

 

SGD와 GD는 학습률을 점진적으로 감소시켜야 최적점에 도달할 수 있다.

 


 

5. 배치 경사 하강법을 사용하고 에포크마다 검증 오차를 그래프로 나타냈다고 하자. 검증 오차가 일정하게 상승되고 있다면 무슨 이유이고 해결법은 무엇인가?

 

훈련 에러가 같이 높아진다면 학습률이 너무 높아 최적점 부근에서 최적점에 도달하지 못하고 발산하려고 하기 때문이다. 학습률을 점진적으로 감소시켜야 한다.

 

훈련 에러는 높아지지 않는다면 훈련 세트에 과대적합 되어 있는 것이다. 훈련을 멈추어야 한다. (조기종료)

공짜 점심에 비유한 조기종료 테크닉. best model 지점 즉, 평가셋의 에러가 연속하여 개선되지 않는 다면 조기종료해줘야 한다.


 

6. 검증 오차가 상승하면 미니배치 경사 하강법을 즉시 중단하는 것이 좋은가?

 

즉시 중단보단, 몇단계 지켜보는 것이 좋다.

 

성능이 개선될 때마다 모델을 저장하고 오랫동안 성능 개선이 없으면 중단하는 것이 좋다.

 


 

7. 어떤 경사하강법 알고리즘이 가장 빠르게 최적 솔루션 주변에 도달하는지? 실제로 수렴하는 것은 어떤 것인지? 다른 방법들로도 수렴하게 만들 수 있는지?

 

확률적 경사하강법 SGD은 한 번에 하나의 훈련 샘플만 사용하기 때문에 훈련 반복이 가장 빠르다. 따라서 최적 주변부에 가장 먼저 도착한다. (그 다음으론 작은 배치크기를 갖는 미니배치 GD이다)

 

실제로 최적점에 수렴하는 것은 배치 경사 하강법이다.

 

SGD와 미니배치GD는 학습률을 점차 줄여서 수렴하게 만들 수 있다.

 


 

8. 다항 회귀를 사용했을 때 학습 곡선을 보니 훈련 오차와 검증 오차 사이에 간격이 크다. 이유와 해결책은?

 

훈련세트에 과대적합 됐기 때문

 

  • 다항 차수 낮추기(자유도를 줄이면 과대적합이 줄어들 것)
  • 규제를 가함. (비용함수에 릿지, 라쏘, 엘라스틱넷 패널티 추가)
  • 조기종료
  • 훈련 세트의 크기를 증가시키기

 

9. 릿지 회귀를 사용했을 때 훈련 오차와 검증 오차가 거의 비슷하고 둘 다 높았다. 높은 편향이 문제인지 높은 분산이 문제인지? 규제 하이퍼파라미터 $\alpha$를 증가시켜야 할지 줄여야 할지?

 

훈련 오차/검증 오차가 비슷하고 높다면 과소적합 됐다고 볼 수 있다.

 

과소적합은 높은 편향 문제이다.

 

규제 하이퍼 파라미터를 감소시켜서 자유도를 늘려 분산을 키워야 한다.

 


 

10. 평범한 선형 회귀(규제 없는 모델) 대신 릿지 회귀를 사용하는 이유는?

 

규제가 있는 모델이 일반적으로 규제가 없는 모델보다 성능이 좋다. 평범한 선형 회귀보다 릿지 회귀가 선호됨.

 

 

11. 릿지 회귀 대신 라쏘 회귀를 사용하는 경우는?

 

라쏘 회귀는 $l_1$ 패너리를 사용해서 가중치를 완전히 0으로 만드는 경향이 있다. 이는 가장 중요한 가중치를 제외하곤 모두 0이 되는 희소한 모델을 만든다. 

 

라쏘 회귀는 자동으로 특성 선택의 효과를 가지므로 단지 몇 개의 특성만 실제 유용할 것이라고 의심될 때 사용하면 좋다. 확신이 없다면 릿지 회귀를 사용해야 한다.

 

 

12. 라쏘 회귀 대신 엘라스틱넷을 사용하는 이유는?

 

라쏘가 어떤 경우(몇 개의 특성이 강한 상관관계가 있거나 훈련 샘플보다 특성이 더 많을 때)에는 불규칙하게 행동하므로 엘라스틱넷이 라쏘보다 일반적으로 선호된다. 그러나 추가적인 하이퍼파라미터가 생긴다.

 

라쏘를 원한다면 차라리 엘라스틱 넷에 $l1_ratio$를 1에 가깝게 설정해서 사용하는 편이 좋다.

 

 

 

'ML&DATA > 핸즈온 머신러닝' 카테고리의 다른 글

5. SVM - 비선형 분류  (0) 2020.09.28
5. SVM - 선형분류  (0) 2020.09.28
4 - 로지스틱 회귀, 소프트맥스 회귀  (0) 2020.09.15
4 - 다항회귀, 규제  (2) 2020.09.09
4 - 선형회귀 (경사하강법)  (0) 2020.09.04