Я пытаюсь обучить полностью подключенную нейронную сеть для классификации рукописных чисел с использованием наборов данных MNIST. Нейронная сеть реализована мной в C ++. Это часть моего курсового проекта. Тем не менее, я считаю, что обучение как-то странно. Я не знаю, что происходит не так.
Мой преподаватель курса просит нас использовать Sigmoid в качестве функции активации и MSE в качестве функции потерь, даже для выходного слоя. У меня есть некоторые сомнения в правильности выбора. Но я все еще следую тому, что он сказал.
Моя структура сети:
28*28 (input layer) value: 0-1
|
|
500 (hidden layer) activation: sigmoid
|
|
10 (output layer) activation: sigmoid
|
|
loss: MSE
Скорость обучения составляет 0,4. Размер партии равен 100. Потеря быстро падает до 0,5, но больше не будет уменьшаться. Точность тестирования возрастает до 60% и больше не будет увеличиваться.
Мне интересно, правильно ли я реализовал нейронную сеть или мне не следует использовать Sigmoid и MSE. Спасибо!