Я работаю над вопросом из онлайн-книги:
http://neuralnetworksanddeeplearning.com/chap1.html
Я могу понять, что если дополнительный выходной слой состоит из 5 выходных нейронов, я мог бы, вероятно, установить смещение в 0,5 и вес 0,5 для каждого предыдущего слоя. Но теперь возникает вопрос о новом слое из четырех выходных нейронов - этого более чем достаточно, чтобы представить 10 возможных выходов при .
Может ли кто-нибудь провести меня через шаги, связанные с пониманием и решением этой проблемы?
Вопрос об упражнении:
Существует способ определения побитового представления цифры путем добавления дополнительного уровня в трехслойную сеть выше. Дополнительный уровень преобразует выходные данные предыдущего уровня в двоичное представление, как показано на рисунке ниже. Найдите набор весов и смещений для нового выходного слоя. Предположим, что первые 3 слоя нейронов таковы, что правильный выход в третьем слое (т. Е. Старый выходной слой) имеет активацию не менее 0,99, а неправильные выходы имеют активацию менее 0,01.
источник
sigmoid((0 * 10) * 1)
что 0,5. Выбирая достаточно большие числа, вы гарантируете либо очень высокий, либо низкий выход до сигмоида, который затем будет выводить очень близко к 0 или 1. Это более надежный IMO, чем линейный вывод, предполагаемый в ответе FullStack, но игнорируя это, по сути, наш два ответа одинаковы.Код ниже от SaturnAPI отвечает на этот вопрос. Посмотрите и запустите код по адресу https://saturnapi.com/artitw/neural-network-decimal-digits-to-binary-bitwise-conversion
источник
eye(10,10)
?Pythonic доказательство для вышеупомянутого упражнения:
источник
Небольшая модификация ответа FullStack относительно комментариев Нила Слейтера с использованием Octave:
источник