[이 자료는 Coursera Stranford University Andrew Ng 교수님의 강의 자료를 활용하였습니다.]



* Diagnosing Bias vs Variance


여기서 다뤄볼 두 가지는 다음과 같습니다.

    1. bias 또는 variance 가 성능이 안좋은 예측에 기여를 하고 있는지 구별하고 싶다.
    2. high bias 는 언더피팅이고 high variance 는 오버피팅이다. 이 두 가지 사이에서 적당한 값을 얻고 싶다.
1


위 그림은 High bias 와 High variance 가 어떤 상황인지 보여줍니다.

2


x축은 다항식 차수 d y축은 오차값을 나타내는 그래프가 보입니다. 학습 셋은 차수가 높을수록 오버피팅이 되어 오류값이 계속해서 줄어든다는 것을 알고 있었지만 교차검증 셋은 일정 차수까지는 오류값이 줄어들다가 다시 증가함을 보이고 있습니다. 학습 셋으로만 학습을 시키니 차수가 높아질수록 교차검증 셋의 오류값이 커지는 것은 당연해 보입니다. bias 와 variance 가 언제 발생하고 어떤 특징을 갖는지도 보여줍니다.

* Regularization and Bias/Variance


이번에는 bias / variance 문제에서 정규화 텀이 있을 때를 알아보겠습니다.

3


람다값이 매우 크면 theta 들이 0값에 수렴하기 때문에 언더피팅이 발생하고 람다값이 매우 작으면 정규화 텀이 없는것과 마찬가지기 때문에 오버피팅이 발생합니다.

4


적절한 람다값을 고르기 위해서 여러개의 람다를 직접 테스트 해보겠습니다. 람다가 일정값을 가졌을 때 코스트 함수를 최소화 시켜주는 theta 를 구하고 그 theta 를 교차검증 셋에 적용하여 람다가 어떤 값을 가졌을 때 교차검증 셋의 코스트 함수값이 가장 적게 나오는지 찾아서 그때의 람다값을 고릅니다. 그리고 테스트 셋에서 코스트 함수값을 다시 측정해봅니다.

5


람다가 작을 때 variance 가 발생하고 람다가 클 때 bias 문제가 발생하군요. 이 들 사이의 적절한 값의 람다를 찾는것이 목표입니다.

* Learning Curves


학습 결과나 예측 결과가 좋지 않았을 때 데이터 부족으로 단정짓고 데이터를 모으기위해 시간을 허비하는것은 굉장히 안타까운 일입니다. 그래서 이번에는 데이터의 사이즈를 늘리면 성능 향상의 효과를 기대할 수 있을지 알아보겠습니다.

1


학습 곡선은 데이터 사이즈가 성능 향상에 영향을 미칠 수 있는지 알아보기 좋은 그래프입니다.
가설함수의 차수가 일정할 때 학습 데이터셋이 증가하면 학습 코스트 함수값의 경우는 증가합니다. 가설함수의 그래프모양이 일정한데 학습 셋은 가설함수와 정확히 일치하지 않는것들이 많기 때문입니다. 그래서 증가는 하되 증가하는 보폭이 작고 수렴하는 모양으로 그려집니다.
교차검증 셋의 코스트 함수값은 처음에 크다가 점점 작아지고 수렴하는 모양을 보여줍니다.

2


High bias 일 때는 학습 데이터를 증가시켜도 이미 오류값이 꽤 크고 수렴하는 형태이기 때문에 데이터 증가가 효과가 없다는 것을 확인할 수 있습니다.

3


High variance 일 때는 학습 데이터가 증가하면 오버피팅에 가까운 상태이기 때문에 오류값이 작은폭으로 증가합니다. 데이터 사이즈를 증가시키다가 학습 셋의 코스트 함수값과 교차검증 셋의 코스트 함수값의 차이가 어떤 일정값을 가질 때 그때의 학습 데이터 셋만큼만 가지면 됩니다.
따라서, high variance 일 때는 학습 데이터 증가가 성능 향상에 효과가 있다는 것을 보여줍니다.


* Deciding What to Do Next Revisited


1

학습 알고리즘을 디버깅할 때 갖는 문제점과 해결책을 보여주고 있습니다.

2


뉴럴 네트워크에서는 theta 매개변수가 적을수록 언더피팅될 가능성이 크지만 계산이 빠르다는 장점을 가지고있고 theta 매개변수가 많을수록 오버피팅될 가능성이 크고 계산적으로는 부하가 걸린다는거을 알 수 있습니다.