Не математическое описание нейронных сетей

Я не математик. Мне нравится хорошая математическая головоломка, но я полностью признаю свои слабости. Тем не менее, я всегда интересовался Neural Networks, и, хотя я понимаю их достаточно, чтобы реализовать их с нуля, я ударил стену, когда мне нужно понять любую концепцию, в которой я могу найти только математические доказательства. Где руководство программиста к нейронным сетям, используя код вместо формулы, чтобы объяснить практические рассуждения?

5 ответов

Другой альтернативой является не математическое объяснение, не связанное с программированием. Книга Blondie24: Игра на краю AI содержит действительно отличное объяснение нейронных сетей. Это про игровую игру, разработанную автором. Это не полностью без ссылок на программы, но он отлично справляется с объяснением того, как работают алгоритмы, не попадая в код решения.


К сожалению, я не знаю, есть ли хороший сингл "источник программистов", который даст вам все концепции. Мне понравилось Нейронные и адаптивные системы: основы с помощью симуляций.

Лучший способ иметь "программистское понимание" нейронных сетей - это не столько изучение кода, сколько проблема и правильные результаты. Итак, если вы не хотите смотреть на математику, я рекомендую вам взглянуть на заданную проблему. Например, рассмотрите проблему XOR как пример того, почему вам нужны функции нелинейной активации, посмотрите на количество переменных и их возможные значения, чтобы понять, почему нейронная сеть должна быть определенного размера, а тология - эффективной, и разделяйте данные в режиме поездов/испытаний и проводите исследования, чтобы понять, почему чрезмерная перегрузка опасна. Изучите код с данными.

Я также рекомендую не слишком зависеть, но читаю дальше. Определенные практики в сетях прямой связи становятся более понятными после того, как вы видите их обобщение в повторяющихся и конструктивных нейронных сетях. Я также рекомендую шире: байесовские сети, нечеткие когнитивные карты, SOM, машины Больцмана, имитированный отжиг и обучение усилению имеют интуицию.

Это касается ответа на ваш вопрос?


Вам нужно немного понять в Pascal или Delphi, но этот обзор от ThinkQuest весьма полезен с точки зрения программирования. Это также объясняет некоторые трудности и почему математика выглядит немного пугающей. (Я тоже не математик.)

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

Надеюсь, что это поможет немного по крайней мере.


Я лично использовал:

Практические рецепты нейронной сети на С++

http://www.amazon.com/Practical-Neural-Network-Recipes-C/dp/0124790402/ref=pd_bxgy_b_img_b/179-4083507 -8029219

Автор, на мой взгляд, не в полной мере использует более мощные функции С++, во многих случаях он читает больше как традиционный C с классами. Книга также немного датирована к настоящему времени.

ОДНАКО - если вам понадобятся объяснения алгоритмов и методов, используемых в нейронных сетях, объясненные таким образом, что разумный непрофессионал мог бы понять, чтобы вы могли уйти и попробовать эти вещи для себя, я бы, конечно, дал эту книгу попробуйте. Здесь не так много пупов, что мне нравится.

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


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

http://www.heatonresearch.com/content/non-mathematical-introduction-using-neural-networks

licensed under cc by-sa 3.0 with attribution.