Я не математик. Мне нравится хорошая математическая головоломка, но я полностью признаю свои слабости. Тем не менее, я всегда интересовался Neural Networks, и, хотя я понимаю их достаточно, чтобы реализовать их с нуля, я ударил стену, когда мне нужно понять любую концепцию, в которой я могу найти только математические доказательства. Где руководство программиста к нейронным сетям, используя код вместо формулы, чтобы объяснить практические рассуждения?
Не математическое описание нейронных сетей
Ответ 1
Другой альтернативой является не математическое объяснение, не связанное с программированием. Книга Blondie24: Игра на краю AI содержит действительно отличное объяснение нейронных сетей. Это про игровую игру, разработанную автором. Это не полностью без ссылок на программы, но он отлично справляется с объяснением того, как работают алгоритмы, не попадая в код решения.
Ответ 2
К сожалению, я не знаю, есть ли хороший сингл "источник программистов", который даст вам все концепции. Мне понравилось Нейронные и адаптивные системы: основы с помощью симуляций.
Лучший способ иметь "программистское понимание" нейронных сетей - это не столько изучение кода, сколько проблема и правильные результаты. Итак, если вы не хотите смотреть на математику, я рекомендую вам взглянуть на заданную проблему. Например, рассмотрите проблему XOR как пример того, почему вам нужны функции нелинейной активации, посмотрите на количество переменных и их возможные значения, чтобы понять, почему нейронная сеть должна быть определенного размера, а тология - эффективной, и разделяйте данные в режиме поездов/испытаний и проводите исследования, чтобы понять, почему чрезмерная перегрузка опасна. Изучите код с данными.
Я также рекомендую не слишком зависеть, но читаю дальше. Определенные практики в сетях прямой связи становятся более понятными после того, как вы видите их обобщение в повторяющихся и конструктивных нейронных сетях. Я также рекомендую шире: байесовские сети, нечеткие когнитивные карты, SOM, машины Больцмана, имитированный отжиг и обучение усилению имеют интуицию.
Это касается ответа на ваш вопрос?
Ответ 3
Вам нужно немного понять в Pascal или Delphi, но этот обзор от ThinkQuest весьма полезен с точки зрения программирования. Это также объясняет некоторые трудности и почему математика выглядит немного пугающей. (Я тоже не математик.)
Я был довольно заинтересован в подобных вещах некоторое время назад (по-прежнему по большей части) и в поисках каких-то проходов, которые я могу выполнить довольно быстро.
Надеюсь, что это поможет немного по крайней мере.
Ответ 4
Я лично использовал:
Практические рецепты нейронной сети на С++
Автор, на мой взгляд, не в полной мере использует более мощные функции С++, во многих случаях он читает больше как традиционный C с классами. Книга также немного датирована к настоящему времени.
ОДНАКО - если вам понадобятся объяснения алгоритмов и методов, используемых в нейронных сетях, объясненные таким образом, что разумный непрофессионал мог бы понять, чтобы вы могли уйти и попробовать эти вещи для себя, я бы, конечно, дал эту книгу попробуйте. Здесь не так много пупов, что мне нравится.
Здесь вам нужно пройти все основные функции, необходимые для программирования нейронной сети - как сравнить фактический вывод с желаемым, чтобы получить сигнал ошибки, а затем использовать этот сигнал ошибки в сочетании с алгоритмами обратного распространения, чтобы изменить силовые связи сетевого соединения, делая это итеративно, чтобы постепенно нейронная сеть "изучала" задачу.
Ответ 5
Я сделал статью с почти таким же названием. В статье описывается, как данные представлены нейронной сети, а также другие методы машинного обучения, такие как машины поддержки векторов.
http://www.heatonresearch.com/content/non-mathematical-introduction-using-neural-networks