Вчера задали вопрос: "нейронные сети выдают крутой результат, но как вообще эта штука работает?". Есть очень наглядный пример работы обученнной нейронной сети, на котором видно что сеть получает на входе и что отдает на выходе: https://rawgit.com/TigranGalstyan/mnistconvnetdemo/master/index.html
Автор обучил нейронную сеть на распознавание рукописных цифр
Можно увидеть, что в итоге, нейронная сеть - это обычная функция, которой на вход подается много параметров, а на выходе ожидается массив вероятностей для каждого из заложенного в нее ответов (в случае с цифрами 10 значений). Конкретно в этом примере на вход функция (сеть) принимает массив пикселей (например, если пиксель черного цвета, то будем считать, что пиксель имеет значение 1, если пиксель белого цвета, то 0). Т.к. изображение двумерно, то пиксели выстраиваются в один ряд, чтобы массив был одномерным. Получается, функция (сеть) примет на вход длинный массив с нулями и единицами
Потом происходит магия нейронной сети (по сути решение уравнений), в результате которой сеть сообщает вероятности всех ответов, заложенных в нее (массив вероятностей ответов). Как видно из примеров с распознаванием рукописных цифр, сеть выдает для каждой цифры вероятность того, что вы изобразили именно ее. Попробуйте начать рисовать цифру 6, а потом плавно перейти к 8, и вы увидите, как сеть поменяет свое решение (опустит вероятность 6 и поднимет вероятность 8)
Post #21
1.65K