컴퓨터 산술
FP16(반정밀도: 부호 1·지수부 5·가수 10비트)으로 신경망을 학습시킬 때 문제가 되기 쉬우며, 손실 값을 몇 배로 확대하여 계산하는 방법(로스 스케일링)으로 대처하는 것은 무엇입니까?
- A가수가 너무 길어 메모리 사용량이 늘어나는 것
- B표현 범위가 좁아 작은 그래디언트가 0이 되어 버리는 것
- C정수로 취급되어 소수를 나타내지 못하는 것
정답과 해설 보기
정답: B. 표현 범위가 좁아 작은 그래디언트가 0이 되어 버리는 것
FP16은 지수부가 5비트밖에 없으므로 표현할 수 있는 양의 값이 대략 6 × 10⁻⁸(비정규화수 포함)에서 65504까지로 범위가 좁습니다. 학습에서 계산되는 그래디언트에는 매우 작은 값이 많아 FP16에서는 언더플로하여 0이 되고 학습이 진행되지 않게 됩니다. 로스 스케일링에서는 손실을 예컨대 1024배 한 뒤 역전파하여 그래디언트를 표현 가능한 범위로 끌어올리고, 가중치를 갱신하기 전에 원래대로 되돌립니다. 가수는 10비트로 FP32보다 짧으며, 소수도 나타낼 수 있습니다.