Как программировать нейронную сеть

Нейронная сеть программирование

Пошаговое руководство по реализации нейронной сети с нуля

Нейронная сеть с тремя скрытыми слоями

В этой статье мы построим нейронную сеть с нуля и используем ее для классификации рукописных цифр.

Почему изобретать велосипед/нейронную сеть, вы спросите? Разве я не могу просто использовать свою любимую библиотеку машинного обучения и быть готовым? Да, есть много готовых фреймворков, которые вы можете использовать для построения нейронной сети (например, Keras, PyTorch и TensorFlow). Проблема с использованием одного из них в том, что они позволяют нам легко относиться к нейронным сетям как к черным ящикам.

Это не всегда плохо. Часто нам нужен такой уровень абстракции, чтобы мы могли приступить к решению проблемы, но мы все же должны стремиться хотя бы иметь базовое понимание того, что происходит внутри, если мы собираемся использовать нейронные сети в нашей работе.

Построение нейронной сети с нуля, по моему мнению, является лучшим способом развить глубокое понимание ее работы.

В конце этой статьи вы узнаете о алгоритмах прямого и обратного распространения, что такое функция активации, в чем разница между эпохой и пакетом, и как обучить нейронную сеть. Мы закончим примером обучения нейронной сети распознавать рукописные цифры.

Весь код, использованный в этой статье, доступен здесь на GitHub [1].

Что такое нейронная сеть?

Нейронные сети, или искусственные нейронные сети, являются типом алгоритма машинного обучения. Они являются основой многих систем глубокого обучения и искусственного интеллекта, таких как компьютерное зрение, прогнозирование и распознавание речи.

Структура искусственных нейронных сетей иногда сравнивается со структурой биологических нейронных сетей в мозге. Я всегда настоятельно рекомендую быть осторожным слишком многое выводить из этого сравнения. Конечно, искусственные нейронные сети выглядят немного похожими на биологические нейронные сети, но это довольно большой шаг начинать сравнивать их с чем-то таким сложным, как человеческий мозг.

Нейронная сеть состоит из нескольких слоев нейронов. Каждый слой нейронов активируется на основе активаций в предыдущем слое, наборе весов, соединяющих предыдущий слой…