Capstones · 2
무엇으로 측정했는지 말하라
모델이 정확도 0.92 를 보고하면 사실처럼 느껴진다. 아직 사실이 아니다. 숫자는 거의 늘
빠뜨리는 두 가지를 함께 지닐 때에만 측정값이 된다: 무엇으로 측정했는가 — 모델이
배운 이미지인가, 한 번도 보지 못한 이미지인가 — 그리고 얼마나 넓은가. 마흔 장으로
읽은 숫자는 진실에서 열 점 떨어져 있을 수 있으니까. torch.workbench 는 이 탭에서
모델을 학습시키고 둘 다 간직한다. 여기서 그것이 거짓말하게 만든 다음, 진실을 말하게 한다.
모든 정확도에는 폭이 있다
모델에 앞서 산술부터. n 개의 held-out 예제로 측정한 정확도는 표준오차를 지닌다.
95% 신뢰에서 그것은 숫자를 둘러싼 띠이고, 두 모델을 구분하려면 그보다 더 넓은 간격이
필요하다 — 각자 자기 띠를 가진 두 추정치이므로. 이 코드는 GPU 없이 어디서나 돈다. 실제
학습에 대해 workbench.interval 과 workbench.resolution 이 계산하는 바로 그것이다.
torch.workbench 는 Python 표면의 도구다 — 모델을 학습시키므로, borch.ts 가 아니라
autograd 가 있는 곳에 산다. 어댑터가 없는 기기에서는 아래 블록이 traceback 대신 한 문장으로
그 사실을 말한다. 위의 산술은 어디서나 돈다.
거짓말하게 만든 다음, 진실을 말하게 하라
데이터셋 하나, 모델 하나를 두 번 학습시킨다 — 바뀌는 건 val, 채점을 위해
떼어 두는 이미지 비율뿐이다. val=0 이면 정확도는 모델이 학습한 바로 그 이미지에서
읽고, val=0.3 이면 한 번도 보지 못한 이미지에서 읽는다. 여기 세트는 아무 의미
없는 라벨이 붙은 순수 노이즈라, 배울 것이 없다 — 그래서 두 숫자 사이의 간격이 이 레슨의
전부가 된다.
첫 학습은 암기한 이미지에서 높은 점수를 낸다. 둘째는 한 번도 보지 못한 이미지에서 대략
셋 중 하나로 떨어진다 — 세 클래스에서의 우연이고, 그것이 정직한 보고다: 신호가 없었고,
held-out 분할이 그 사실을 말해 준다. 옆에 measured_on 이 없는 숫자는 바로 이
차이를 숨긴다.
그렇다면 정직한 숫자는 얼마나 넓은가?
held-out 정확도 자체도 표본으로 측정한 것이라 폭을 가진다. 분할이 작으면 폭은 넓어진다 — 아래 학습은, 어느 행이 분할에 들어왔는지의 운을 넘어서려면 두 모델이 얼마나 벌어져야 하는지를 보고한다.
기억할 것
measured_on없는 정확도는 측정값이 아니다 — held-out 과 학습 이미지는 서로 다른 주장이고, 일반화하는 건 하나뿐이다.- 모델이 학습한 이미지에서 절대 채점하지 말 것;
val로 일부를 떼어 두고 거기서 채점한다. - 모든 held-out 숫자는 몇 행으로 측정했는지가 정하는 폭을 가진다; 작은 분할은 가까운 모델들을 구분하지 못한다.
torch.workbench는 탭에서 학습하며 두 사실을 모두 간직한다 —measured_on과resolution— 그래서 숫자가 스스로를 정직하게 보고한다.