И был прямо говоря шокирован - на классических проблемах (MNIST, Breast cancer, Iris, SEMEION) падение точности было ничтожным даже если дойти до 2-3 бит! Даже больше, иногда сеть при загрублении весов показывала несколько лучший результат.
Вот пример для Breast cancer. Сеть - перцептрон обученный scaled conjugate gradient, базовая точность 97.57%
Код
Test Accuracy for 11 bit: 97.57%.
Test Accuracy for 10 bit: 97.57%.
Test Accuracy for 9 bit: 97.57%.
Test Accuracy for 8 bit: 97.57%.
Test Accuracy for 7 bit: 97.57%.
Test Accuracy for 6 bit: 97.42%.
Test Accuracy for 5 bit: 97.42%.
Test Accuracy for 4 bit: 98.00%. <---- !!!!
Test Accuracy for 3 bit: 97.85%.
Test Accuracy for 2 bit: 97.71%.
Test Accuracy for 1 bit: 97.57%.
Использовался matlab neural network toolbox.Test Accuracy for 10 bit: 97.57%.
Test Accuracy for 9 bit: 97.57%.
Test Accuracy for 8 bit: 97.57%.
Test Accuracy for 7 bit: 97.57%.
Test Accuracy for 6 bit: 97.42%.
Test Accuracy for 5 bit: 97.42%.
Test Accuracy for 4 bit: 98.00%. <---- !!!!
Test Accuracy for 3 bit: 97.85%.
Test Accuracy for 2 bit: 97.71%.
Test Accuracy for 1 bit: 97.57%.
А вот самая большая из доступных мне сетей: 784х600х600х10 перцептрон с ReLU, обученный с дропаутом. Базовая точность 98.63%
Код
Test Accuracy for 18 bit: 98.62%.
Test Accuracy for 17 bit: 98.62%.
Test Accuracy for 16 bit: 98.62%.
Test Accuracy for 15 bit: 98.62%.
Test Accuracy for 14 bit: 98.62%.
Test Accuracy for 13 bit: 98.62%.
Test Accuracy for 12 bit: 98.62%.
Test Accuracy for 11 bit: 98.61%.
Test Accuracy for 10 bit: 98.63%.
Test Accuracy for 9 bit: 98.63%.
Test Accuracy for 8 bit: 98.60%.
Test Accuracy for 7 bit: 98.64%. <---- !!!!
Test Accuracy for 6 bit: 98.63%.
Test Accuracy for 5 bit: 98.58%.
Test Accuracy for 4 bit: 96.39%.
Test Accuracy for 3 bit: 9.80%.
Test Accuracy for 2 bit: 9.80%.
Test Accuracy for 17 bit: 98.62%.
Test Accuracy for 16 bit: 98.62%.
Test Accuracy for 15 bit: 98.62%.
Test Accuracy for 14 bit: 98.62%.
Test Accuracy for 13 bit: 98.62%.
Test Accuracy for 12 bit: 98.62%.
Test Accuracy for 11 bit: 98.61%.
Test Accuracy for 10 bit: 98.63%.
Test Accuracy for 9 bit: 98.63%.
Test Accuracy for 8 bit: 98.60%.
Test Accuracy for 7 bit: 98.64%. <---- !!!!
Test Accuracy for 6 bit: 98.63%.
Test Accuracy for 5 bit: 98.58%.
Test Accuracy for 4 bit: 96.39%.
Test Accuracy for 3 bit: 9.80%.
Test Accuracy for 2 bit: 9.80%.
Или мне попалось очень неприхотливое подмножество нейронок, или они действительно прекрасно работают с весьма загрубленными весами.
Буду весьма благодарен если кто-то из практикующих ИНС протестирует загрубление на своих сетях. Интересует поведение на распознавании изображений и на обработке сигналов. Если веса можно загрублять это сулит значительное уменьшение используемой памяти.