hwijin97 2021. 11. 1. 16:29

 

 

1. 수백만개의 특성을 가진 훈련세트에 적합한 선형 회귀 알고리즘

수백만개의 특성에서는 특성수에 민감하지 않은 배치 경사 하강법 또는 확률적 경사 하강법을 사용한다.

 

2. 특성들의 스케일이 전부 재각각일 때 잘 작동하지 않는 알고리즘과 해결방법

특성의 스케일이 다를 경우 경사하강법의 경우 비용함수가 타원형이 되어 기울기가 너무 작은상태로 머물러 수렴하는데 오랜시간이 걸리게된다.

훈련전에 모델의 특성 스케일을 정규화함으로 해결한다.

또한 규제를 가진 모델에서 특성의 스케일이 다르면 지역 최솟값에 수렴할 가능성이 있다.

 

3. 경사하강법으로 로지스틱 회귀모델을 훈련할 때 지역 최솟값에 갇힐 가능성 여부

로지스틱 회귀모델은 비용함수가 볼록함수로 갇힐 가능성이 없다.

 

4. 충분히 오랫동안 실행하면 모든 경사하강법 알고리즘이 같은 모델을 만드는지 여부

배치 경사하강법으로 로지스틱 회귀나, 선형 모델과 같이 볼록함수이고 전역 최솟값을 뛰어넘지 않을정도로 학습률 이 작다면 동일한 모델을 만들지만, 확률적 경사하강법이나, 미니배치 경사하강법의 경우 학습률을 점차 줄여나가지 않으면 전역 최솟값에 수렴하지 못하고 주변을 맴돌아 조금은 다른 모델을 만들 것이다.

 

5. 배치 경사 하강법을 사용하고 에폭마다 검증 오차가 일정하게 증가한다면 어떤 상황이고 어떻게 해결할 수 있는지

훈련오차와 검증오차 둘다 증가하는 경향이라면, 모델이 발산하는 방향으로 가는 것이고,

훈련오차는 줄어드는데 검증오차가 증가하는 경향이면 모델이 데이터에 과대적합 되는 상황이다.

전자의 경우 학습률을 줄여 최솟값을 찾도록 유도하고, 후자의 경우 검증오차가 증가하기 이전의 상태로 훈련을 종료한다.

 

6. 미니배치 경사 하강법에서 검증오차가 상승할 경우 훈련을 종료해야 하는지

미니배치는 전체 훈련세트를 확률적으로 대표하기 때문에, 미니배치의 검증오차가 상승하더라도 전체 훈련세트의 검증오차가 상승한다는 보장이 없다. 따라서 여러번의 반복에 걸쳐서 검증오차가 증가할 경우 이제껏 가장 좋았던 모델로 훈련을 종료하는 것이 이상적이다. (SGD도 마찬가지)

 

7. 경사 하강법 알고리즘 중 가장 빠르게 최적 솔루션 주변에 도달하는 것과 수렴하는 것

확률적 경사 하강법은 한번에 하나의 훈련 샘플만 사용해서 가장 빠르게 최적에 도달하고,

미니배치가 그다음,

배치 경사 하강법이 그다음 순서이고,

알맞은 학습률을 지정하지 않으면 셋다 수렴하지 않는다.

 

8. 다항 회귀 훈련중 훈련 오차와 검증 오차의 간격이 크다면 해결방법 3가지

훈련 오차와 검증오차의 간격이 커지는 것은 모델이 데이터에 과대적합 되어가고 있다는 뜻이다.

- 차수를 낮춰서 복잡도를 줄인다.

- 모델을 규제한다. 릿지, 라쏘 규제항을 추가한다.

- 훈련 세트를 추가해서 과대적합을 없앤다.

 

9. 릿지 회귀를 사용했을 때 훈련 오차와 검증오차가 거의 비슷하고 매우 높을 경우 문제 상황과 해결책

훈련 오차와 검증오차가 거의 비슷하고 매우 높다면 모델이 과소적합된, 높은 편향을 가진 모델이다.

따라서 릿지 회귀의 alpha 파라미터를 감소시켜서 규제를 완화한다.

 

10. 평범한 선형 회귀 대신, 릿지 회귀 / 릿지 회귀 대신 라쏘 회귀 / 라쏘 회귀 대신 엘라스틱 넷 회귀 를 사용해야 하는 상황

보통의 상황에서 규제가 있는 모델의 성능이 더 좋다.

라쏘 회귀는 가중치를 0으로 만드는 l1 규제를 사용하기 때문에, 몇개의 특성이 주요하다고 의심 되는 경우에 사용하면 좋다.

라쏘 회귀는 연관된 특성 혹은 특성의 수가 샘플수 보다 많을경우에 불규칙하게 행동하므로 엘라스틱넷이 더 선호된다.

 

 

11. 사진을 낮과밤, 실내와 실외로 구분하기위해서 두개의 분류기를 만들기 혹은 하나의 소프트맥스 분류기 만들기

소프트맥스 분류기를 만들려면 낮 + 실내, 낮 +실외, ... 이렇게 분류해야 하는데 난이도가 더 높아서

두개의 분류기를 만드는게 더 좋아 보인다.

 

12. 조기 종료를 사용한 배치 경사 하강법으로 소프트 맥스 회귀 구현하기

 

https://github.com/kimhwijin/HandsOnMachineLearing/blob/main/HOML_Exercise_4.ipynb