Capstones · 3
신경망이 경계를 배우는 걸 지켜보기
분류기가 하는 일은 결국 입력 공간을 클래스별 영역으로 가르는 것이다. 평면 위 점이라면 그 가르기를 볼 수 있다: 모든 점을 신경망이 줄 클래스로 색칠하면, 색 사이의 경계가 바로 결정경계다. 선형 모델은 직선밖에 못 긋지만, 은닉층을 가진 신경망은 그것을 휠 수 있다. 여기서 작은 MLP 가 얽힌 두 반달을 가른다 — 경계를 학습 전(무작위)과 후(맞게 휜)로 그린다.
경계, 전과 후
각각 한 클래스인 두 반달, 어떤 직선도 못 가르는. 아래 격자는 평면의 모든 점에서 신경망의 결정을 읽어 히트맵으로 그린다: 두 색조가 두 클래스이고, 그 사이 이음매가 경계다. Run 을 눌러라 — 첫 히트맵은 학습 안 된 망의 무작위 가르기, 둘째는 140 스텝 학습이 휘게 만든 것, 그리고 곡선은 내려가는 손실이다.
기억할 것
- 분류기는 입력 공간을 나눈다; 2차원 데이터라면 그 나눔을 격자 위 히트맵으로 그릴 수 있다 — 이음매가 결정경계다.
- 선형 모델은 직선 경계를 긋는다. 비선형(
ReLU)을 낀 은닉층이 그것을 휘게 해, 어떤 직선도 못 가르는 클래스를 가른다. - 모델을 촘촘한 격자에서 읽어 그리는 건, 작은 모델이 무엇을 배웠는지 보는 일반적 기법이다.
nn.Sequential·CrossEntropyLoss·Adam 으로 만들었다 — 여기 모든 학습 모델과 같은 루프, 볼 수 있게 2차원으로.
위 블록이 에러를 내면, 그것도 알 가치가 있다. 이 페이지의 모든 예제는
테스트가 돌리는 것과 같은 라이브러리에서 돈다 — 여기 어떤 것도 스크린샷이 아니다. Reset 을
누르면 원래 코드로 돌아온다.