Нейрокомпьютеры

После книги Тима Джонса, про которую я недавно писал, захотелось почитать что-то подобное про алгоритмы. Кроме того меня давно уже подбивало почитать поподробнее про нейронные сети. Где их я смогу применить для своих задач пока не знаю, но интересуют они меня давно.

И вот неожиданно попалась книга Л.Г. Комарцовой и А.В. Максимова «Нейрокомпьютеры», изданная в МГТУ им. Баумана. Сначала, когда я взял в руки эту книжку в магазине, то не думал, что она меня заинтересует, предполагая по названию, что это будет что-то про реализацию персептронов в железе. Да и то, что книга предназначена для студентов сначала смутило, есть у меня одно предубеждение на счет институтских книжек, очень уж часто они оказываются слишком обобщенными и слишком теоретическими. После них остается какое-то странное ощущение, что вроде бы прочитал про описываемый предмет целую книгу, но как применить то, что там написано, непонятно.

К счастью, эта книжка оказалась приятным исключением. Все вопросы, которых касаются авторы, описаны очень доходчиво и подробно, приводятся много примеров. Готовых программ в этой книге нет, но зато каждый алгоритм описывается на псевдокоде. И я даже не ожидал, что эта книга будет во многих местах пересекаться с книгой Тима Джонса.

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

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

После этого начинаются главы, посвященные уже более привычным для нейронных сетей задач — распознавания и классификации объектов, а заодно и аппроксимации функции. Начинается все с нейронных сетей без обратных связей, приводятся некоторые теоремы, касающиеся нейронных сетей и описываются алгоритмы обучения с учителем (а по сути методы оптимизации функции со многими переменными) — алгоритм обратного распространения ошибки, несколько градиентных методов обучения и кратко затрагивают неградиентные алгоритмы — метод Нелдера-Мида и метод случайного поиска. Здесь же приводятся некоторые соотношения, с помощью которых можно примерно выбрать количество нейронов в каждом слое, описывается проблема переобучения сети (до этого я даже не знал, что такая проблема существует) и рассказывается про алгоритмы, которые позволяют во время обучения изменять количество нейронов в каждом слое.

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

Затем идет описание нейронных сетей с обратными связями. Начинается описание с однослойной сети Хопфилда с обратными связями, рассказывают про вероятностную сеть Больцмана, сеть Хемминга и некоторые другие. Приводятся примеры апроксимации двумерной функции при разной степени обучения.

Следующая глава посвящена сетям, предназначенным для разделения множества входных данных на классы и обучению сети без учителя. Здесь рассказывается про теорию адаптивного резонанса и алгоритм ART-1 — еще одно пересечение с Тимом Джонсом -, интересно было почитать про то, как тот же алгоритм используется для той же задачи, но реализуется в виде нейронной сети. Потом описываются еще некоторые типы нейронных сетей.

Отдельная глава посвящена нечеткой логике. Нечеткая логика опять же была и у Тима Джонса, но здесь уже она описывается с математической строгостью, вводятся все используемые операторы, их возможные реализации и грав\фичечкое представление. Тоже очень полезная глава. Затем описываются нейронные сети, которые используют нечеткую логику, и приводится алгоритм обучения нечеткого персептрона.

В отдельной главе описываются программы для эмуляции нейронных сетей. Эта глава, на мой взгляд, получилась самая неудачная из-за того, что описываются какие-то древние программы, в основном разработанные в самом МГТУ. Все-таки странно сейчас читать про то, что программа может работать с «большими многомерными массивами», размер которых может быть до 64 КБ, а потом видеть скриншоты окон из Win 3.1x. Или при описании другой программы читать, что достаточно 486-й процессора, но лучше все-таки взять Pentium. Но в качестве примера того как можно организовать интерфейс или как организовать ввод и описание сетей, глава вполне сойдет, скриншотов там много.

А последняя глава посвящена элементной базе для построения нейронных сетей в железе. Здесь рассказывается про существующие микросхемы, особенно подробно про нашу Л1879ВМ1 (он же NeuroMatrix NM6403).

Итого, книжка на твердую 5 с минусом. Минус за главу с программами. Все-таки интересно было бы почитать, какие программы есть сейчас.Особенно хорошо эта книга читается после Тима Джонса про программирование искусственного интеллекта, потому что там он все алгоритмы описывает буквально на пальцах, а здесь они же описываются более строго и часто более подробно, с сбольшим количеством вариантов реализации.В общем, книга понравилась, не знаю буду ли я когда-нибудь использовать нейронные сети, но почитал про них с удовольствием.

PS. Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.

Пожалуйста, оцените запись

УжасноПлохоТак себеХорошоОтлично (Количество голосов: 3, средняя оценка: 4,33)
Загрузка...

комментария 2

  1. sergey:

    согласен!!!толково!!

  2. Jenyay’s blog » Blog Archive » Книжные социальные сети:

    […] для обзор, то стандартным тестом у меня был поиск книг “Нейрокомпьютеры” и “Программирование искусственного интеллекта в […]

Leave a comment

Subscribe without commenting