В науке мало пользы от моделей, которые рабски подчиняются всем нашим желаниям. Мы хотим иметь модели, которые дерзят нам, модели, которые имеют свой собственный ум. Мы хотим получить из наших моделей больше, чем мы в них вложили. Т.Тоффоли, Н.Маролус, " Машины клеточных автоматов"
Хватит. Пора наконец рассказать правду про моего друга ЭПИКАКа. Тем более, что он обошелся налогоплательщикам в 776 434 927 долларов 54 цента. Раз они выложили такие денежки, то имеют полное право узнать чистую правду. К.Воннегут, "ЭПИКАК"
В прошлой лекции появление нейрокомпьютеров представлено как закономерный этап развития вычислительной техники. В результате, у читателя может сложиться впечатление, что и сама идея нейрокомпьютинга - недавнее изобретение. Это, однако, не так. Пути Эволюции редко бывают прямыми. Идеи нейрокомпьютинга появились практически одновременно с зарождением последовательных ЭВМ.
Однако, должны были пройти многие десятилетия, прежде чем радикальное удешевление аппаратуры позволило им заявить о себе в полный
голос. Дело в том, что на ранних стадиях развития вычислительной техники, последовательная архитектура обладает весьма ценным преимуществом перед параллельной. А именно, она позволяет получать полезные результаты уже при минимальном количестве аппаратуры. В
следующей лекции мы покажем, что обучение нейросетей требует больших вычислительных затрат (сложность обучения растет как третья степень
размерности задачи). Поэтому нейрокомпьютинг предъявляет достаточно жесткие требования к вычислительной мощности аппаратуры. Только
совсем недавно, когда рядовому пользователю
Интерес широкой научной общественности к нейросетям пробудился в начале 80-х годов после теоретических работ физика Джона Хопфилда (Hopfield, 1982, 1984). Он и его многочисленные последователи обогатили теорию параллельных вычислений многими идеями из арсенала физики, такими как коллективные взаимодействия нейронов, энергия сети, температура обучения и т.д.
Однако, настоящий бум практических применений нейросетей начался после публикации Румельхартом с соавторами метода обучения
многослойного персептрона, названного ими
Далее в этой лекции мы вкратце опишем современное (правда чрезвычайно быстро меняющееся) состояние нейрокомпьютинга: нейросетевые продукты (как специализированное hardware, так и более доступное software), их сегодняшние применения, а также основные принципы нейровычислений.
Практически все действующие нейрокомпьютеры используют традиционную элементную базу: микроэлектронные СБИС. Сотни миллиардов долларов, уже вложенные в развитие этой технологии, дают ей решающее преимущество перед другими альтернативами, такими, как оптические вычисления.
Современная электроника опирается, в основном, на цифровую обработку сигналов, устойчивую к помехам и технологическим
отклонениям в параметрах базовых злементов. Цифровая схемотехника предоставляет нейро-конструкторам наиболее богатый инструментарий.
Поэтому неудивительно, что наибольшее распространение получили именно цифровые нейрокомпьютеры. Это по существу - специализированные
матричные ускорители, использующие матричный, послойный характер обработки сигналов в нейросетях. Широко используются стандартные
процессоры обработки сигналов (DSP -
Однако, сама природа нейросетевой обработки информации - аналоговая, и дополнительного выигрыша в скорости вычислений
(по некоторым оценкам ~103-104) и плотности
Системы промышленной автоматизации, построенные на
VME , обретут нейроморфный мозг, способность видеть и слышать, ощущать электрические и магнитные поля, воспринимать ультразвуки и радиацию. Они смогут анализировать обстановку и принимать решения. Это будет прививкой разума системам промышленной автоматизации. Широков, 1998
Преимущества обоих подходов пытаются совместить гибридные микросхемы, имеющие цифровой интерфейс с остальной аппаратурой, но исполняющие наиболее массовые операции аналоговым способом.
Приведенные ниже таблицы (таблица 2.1 и Таблица 2.2 ) дают некоторое представление о сильных и слабых сторонах различных элементных баз и достигнутых результатах.
| Тип элементной базы | Преимущества | Недостатки |
|---|---|---|
| Аналоговая оптическая | Допускает массовые межсоединения | Нет замкнутой технологии оптических вычислений |
| Аналоговая электрическая | Концептуальная простота схемотехники, выигрыш в емкости схем и скорости вычислений | Жесткие технологические требования, чувствительность к дефектам и внешним воздействиям, малая точность вычислений, трудность реализации массовых соединений |
| Цифровая электрическая | Развитая замкнутая технология, точность вычислений, устойчивость к технологическим вариациям | Сложность схемных решений, многотактовое выполнение базовых операций, трудность реализации массовых соединений |
| Гибридная (аналого-цифровая схемотехника, оптоэлектроника) | Аналоговое ускорение базовых операций при цифровом интерфейсе с внешними устройствами, возможности оптической коммутации | Требует дополнительных технологических разработок |
| Название нейросхемы (фирма-производитель) | Тип элементной базы | Емкость (кол-во нейронов / кол-во синапсов) | Производительность (кол-во умножений с сумированием в сек) |
|---|---|---|---|
| Silicon Retina ( |
Аналоговая | $$48*48$$ | ? |
| Аналоговая | $$64/10^4$$ | $$2*10^9$$ | |
| N64000 (Inova) | Цифровая | $$64/10^5$$ | $$9*10^8$$ |
| MA-16 (Siemens) | Цифровая | $$16/256$$ | $$4*10^8$$ |
| RN-200 (Ricoh) | Гибридная | $$16/256$$ | $$3*10^9$$ |
| NeuroClassifier (Mesa Research Institute) | Гибридная | $$7/426$$ | $$2*10^10$$ |
Преимущества нейрокомпьютинга состоит в возможности организовать массовые параллельные вычисления. Поэтому базовые процессорные элементы обычно соединяют в вычислительные комплексы: как можно больше - на одном чипе, а что не поместилось - в мультипроцессорные платы.
Эти платы затем либо вставляют в персональные компьютеры и рабочие станции в качестве нейро-ускорителей, либо собирают в полномасштабные нейрокомпьютеры. В последнем случае избегают задержек в относительно медленных системных шинах PC, правда ценой удорожания аппаратуры.
| Название нейросхемы, фирма-производитель | Тип | Количество процессорных элементов | Производительность (кол-во умножений с суммированием в сек) | $$\$$$ |
|---|---|---|---|---|
| PC-ускоритель | 2 |
$$2,5*10^9$$ | $$~10^4$$ | |
| Нейрокомпьютер | 8 |
$$10^10$$ | $$~10^5$$ | |
| Нейрокомпьютер | 8 MA-16 процессоров (512 нейронов) | $$3*10^9$$ | $$~10^5$$ |
Из приведенных в предыдущих таблицах данных следует, что возможности современных нейрокомпьютеров пока довольно
скромны, особенно в сравнении с биологическими нейросистемами (см. рисунок 2.1).
Они едва-едва достигли уровня мухи и еще не дотягивают до таракана.
(рис 2.1) Сравнение современных нейрокомпьютеров с естественными нейросистемами
Вспомним, однако, искусство маневра, характерное для полета мухи, и возможности современных нейрокомпьютеров уже не покажутся такими уж скромными.
Производительность современных персональных компьютеров составляет примерно 107 операций с плавающей точкой в секунду (при тактовой частоте системной шины 66 МГц, положив в среднем 6 тактов на одну операцию). Итак, при стоимости всего на порядок больше обычных PC, нейроускоритель в несколько сот раз превосходит их в быстродействии. Таким образом, удельная стоимость современных нейровычислений примерно на порядок ниже, чем у традиционных компьютеров. Это всего лишь следствие специализации матричных процессоров (DSP), имеющих ту же элементную базу, что и универсальные микропроцессоры.
Однако, выигрыш на один порядок в стоимости вычислений редко когда способен стать решающим аргументом для использования специализированной аппаратуры, сопряженным с дополнительными затратами, в том числе на обучение персонала. Поэтому реально нейрокомпьютеры используются в специализированных системах, когда требуется обучать и постоянно переобучать сотни нейросетей, объединенных в единые информационные комплексы, или в системах реального времени, где скорость обработки данных критична.
Большинство же прикладных систем нейросетевой обработки данных использует эмуляцию нейросетей на обычных компьютерах, в частности на PC. Такие программы называются нейро-эмуляторами.
Доступность и возросшие вычислительные возможности современных компьютеров привели к широкому распространению программ, использующих принципы нейросетевой обработки данных, о которых мы поговорим подробнее в следующих разделах, но исполняемых на последовательных компьютерах. Этот подход не использует преимуществ присущего нейро-вычислениям параллелизма, ориентируясь исключительно на способность нейросетей решать неформализуемые задачи .
Преимущества таких "виртуальных" нейрокомпьютеров для относительно небольших задач очевидны:
В общем, если речь идет не о
Это законченные независимые программные продукты, предназначенные для широкого класса задач, в основном - для предсказаний и статистической обработки данных. Большинство из имеющихся на рынке нейропакетов имеет дружественный интерфейс пользователя, не требующий знакомства с языками программирования.
Такие пакеты нацелены на решение информационных задач в диалоговом режиме - при непосредственном участии пользователя. Они не применимы в условиях потоковой обработки данных. Кроме того, они не приспособлены для разработки сложных систем обработки данных, состоящих из многих блоков, содержащих, скажем, сотни нейросетей, адаптивно настраивающихся и дообучающихся на вновь поступающих данных. Разработка таких "серьезных" систем требует специального инструментария.
Главное, что отличает этот класс программного обеспечения - способность генерировать "отчуждаемые" нейросетевые продукты, т.е. генерировать программный код, использующий обученные нейросети для обработки данных. Такой код может быть встроен в качестве подсистемы в любые сколь угодно сложные информационные комплексы.
Подобные средства разработки используются фирмами, в частности, для создания основанных на нейросетевой обработке данных готовых решений в различных областях.
Это - конечный результат. Здесь нейросети спрятаны от пользователя в недрах готовых автоматизированных комплексов, предназначенных для решения конкретных производственных задач. Например, уже упоминавшийся продукт Falcon встраивается в банковскую автоматизированную систему обслуживания платежей по пластиковым карточкам. В другом случае это будет автоматизированная система управления заводом или реактором. Конечного пользователя, как правило, не интересует способ достижения результата, ему важно лишь качество продукта. Поскольку многие такие готовые решения обладают уникальными возможностями (пока специалисты по нейрокомпьютингу еще в дефиците) и обеспечивают реальные конкурентные преимущества, их цена может быть довольно высока - порядка $106 - гораздо выше, чем стоимость нейро-hardware.
Описание рынка нейро-продуктов будет не полным без упоминания о нейро-консалтинге. Вместо того, чтобы продавать готовые программы либо инструменты для их разработки, можно торговать и услугами. Например, до изобретения радио большим спросом пользовались барометры, как инструменты предсказания погоды. Теперь же мы просто узнаем погоду по радио или TV, а не предсказываем ее кустарными методами. Некоторые задачи, например такие, как предсказание рыночных временных рядов, являются настолько сложными, что доступны лишь настоящим профессионалам. Не каждая компания может позволить себе издержки, ассоциируемые с передовыми научными разработками (например, постоянное участие в международных конференциях). Поэтому приобретают популярность фирмы, единственной продукцией которых являются предсказания рынков. При большом числе клиентов цена таких предсказаний может быть весьма умеренной.
| Сегмент рынка нейро-продуктов | Преимущества продукции | Недостатки продукции |
|---|---|---|
| Нейро-пакеты общего назначения | Не требуют самостоятельного программирования, легко осваиваются, инструмент быстрого и дешевого решения прикладных задач | Не способны к расширению, не способны генерировать отчуждаемые приложения, не могут использоваться для разработки сложных систем или их подсистем |
| Системы разработки нейроприложений | Могут использоваться для создания сложных систем обработки данных в реальном времени (или их подсистем) | Требуют навыков программирования, более глубокого знания нейросетей |
| Готовые решения на основе нейросетей | Не предполагают знакомства пользователя с нейросетями, предоставляют комплексное решение проблемы | Как правило - дорогое удовольствие |
| Нейро-консалтинг | Не предполагает участия пользователя в получении прогнозов, потенциальная дешевизна услуг | Нет возможности дополнить предсказания своим know how. Доступность конфиденциальной информации |
Объем рынка нейропродукции, структуру которого мы попытались выше очертить, растет стремительными темпами: по разным оценкам - от 30% до 50% в год, перевалив недавно за миллиард долларов (рисунок 2.2).
(рис 2.2) Рост объемов продаж нейропродукцииНейрокомпьютеры и их программные эмуляторы, естественно, интересны не сами по себе, а как инструмент решения практических задач. Только в этом случае нейропродукция будет обладать потребительской стоимостью и иметь соответствующий объем рынка. Где же и как используется нейросетевая продукция сегодня?
Нейросети наиболее приспособлены к решению широкого круга задач, так или иначе связанных с обработкой образов. Вот список типичных постановок задач для нейросетей:
Этот список можно было бы продолжить и дальше. Заметим, однако, что между всеми этими внешне различными постановками задач существует глубокое родство. За ними просматривается некий единый прототип, позволяющий при известной доле воображения сводить их друг к другу.
Возьмем, например,
Многие представители разных наук, занимающихся перечисленными выше задачами и уже накопившими изрядный опыт их решения, видят
в нейросетях лишь перепев уже известных им мотивов. Каждый полагает, что перевод его методов на новый язык нейросетевых схем ничего
принципиально нового не дает. Статистики говорят, что нейросети - это всего лишь частный способ статистической обработки данных,
специалисты по оптимизации - что методы обучения нейросетей давно известны в их области, теория аппроксимации функций рассматривает
нейросети наряду с другими методами многомерной аппроксимации. Нам же представляется, что именно синтез различных методов и идей в
едином нейросетевом подходе и является неоценимым достоинством нейрокомпьютинга. Нейрокомпьютинг предоставляет единую методологию
решения очень широкого круга практически интересных задач. Это, как правило, ускоряет и удешевляет разработку приложений. Причем,
что обычно забывают за неразвитостью соответствующего hardware, но что, видимо, в конце концов сыграет решающую роль,
Наверное, в каждой предметной области при ближайшем рассмотрении можно найти постановки нейросетевых задач. Список областей, где решение такого рода задач имеет практическое значение уже сейчас, приведенный ниже, ограничен лишь опасением утомить читателя. По этой же причине мы ограничились единственным примером конкретного применения в каждой из этих областей.
После полного цикла обучения качество диагностирования неисправностей сетью достигло уровня наших лучших экспертов, и значительно превосходило их в скорости. Marko K, et. al. , Ford Motors Company, Automative
Control Systems Diagnostics, IJCNN 1989
Обилие приведенных выше применений нейросетей - не рекламный трюк. Просто нейросети - это не что иное, как новый инструмент анализа
данных. И лучше других им может воспользоваться именно специалист в своей предметной области. Основные трудности на пути еще более
широкого распространения
Парадигмы нейрокомпьютинга - это родовые черты, объединяющие принципы работы и обучения всех нейрокомпьютеров. Главное, что их объединяет - нацеленность на обработку образов. Эта их особенность, аналогичная способу функционирования мозга, уже обсуждалась ранее во вводной лекции. Теперь же мы сформулируем эти парадигмы в концентрированном виде безотносительно к биологическим прототипам, как способы обработки данных. Эти общие сведения послужат фундаментом для более подробного разбора отдельных нейро-архитектур в последующих лекциях.
Отличительной чертой нейросетей является
(рис 2.3) Глобальность связей в искуственных нейросетяхТипичный формальный нейрон производит простейшую операцию - взвешивает значения своих входов со своими же локально хранимыми весами и производит над их суммой нелинейное преобразование:
$$y=f(u), u=w_0+\sum_i w_i x_i$$
(рис 2.4) Нейрон производит нелинейную операцию над линейной комбинацией входовНелинейность выходной функции активации $$f()$$ принципиальна. Если бы нейроны были линейными элементами, то любая последовательность нейронов также производила бы линейное преобразование, и вся нейросеть была бы эквивалентна одному нейрону (или одному слою нейронов - в случае нескольких выходов). Нелинейность разрушает линейную суперпозицию и приводит к тому, что возможности нейросети существенно выше возможностей отдельных нейронов.
Массовый параллелизм нейро-вычислений, необходимый для эффективной обработки образов, обеспечивается локальностью обработки
информации в нейросетях. Каждый нейрон реагирует лишь на локальную информацию, поступающую к нему в данный момент от связанных с
ним таких же нейронов, без апелляции к общему плану вычислений, обычной для универсальных ЭВМ. Таким образом,
Отсутствие глобального плана вычислений в нейросетях предполагает и особый характер их программирования. Оно также носит локальный характер: каждый нейрон изменяет свои "подгоночные параметры" - синаптические веса - в соответствии с поступающей к нему локальной информацией об эффективности работы всей сети как целого. Режим распространения такой информации по сети и соответствующей ей адаптации нейронов носит характер обучения. Такой способ программирования позволяет эффективно учесть специфику требуемого от сети способа обработки данных, ибо алгоритм не задается заранее, а порождается самими данными - примерами, на которых сеть обучается. Именно таким образом в процессе самообучения биологические нейросети выработали столь эффективные алгоритмы обработки сенсорной информации.
Характерной особенностью нейросетей является их способность к обобщению, позволяющая обучать сеть на ничтожной доле всех возможных ситуаций, с которыми ей, может быть, придется столкнуться в процессе функционирования. В этом их разительное отличие от обычных ЭВМ, программа которых должна заранее предусматривать их поведение во всех возможных ситуациях. Эта же их способность позволяет кардинально удешевить процесс разработки приложений.
Привлекательной чертой нейрокомпьютинга является единый принцип обучения нейросетей - минимизация эмпирической ошибки. Функция ошибки, оценивающая данную конфигурацию сети, задается извне - в зависимости от того, какую цель преследует обучение. Но далее сеть начинает постепенно модифицировать свою конфигурацию - состояние всех своих синаптических весов - таким образом, чтобы минимизировать эту ошибку. В итоге, в процессе обучения сеть все лучше справляется с возложенной на нее задачей.
Не вдаваясь в математические тонкости, образно этот процесс можно представить себе как поиск минимума функции ошибки $$E(w)$$, зависящей от набора всех синаптических весов сети w (см. рисунок 2.5).
(рис 2.5) Обучение сети как задача оптимизацииБазовой идеей всех алгоритмов обучения является учет локального градиента в пространстве конфигураций для выбора траектории
быстрейшего
спуска по функции ошибки. Функция ошибки, однако, может иметь множество локальных минимумов, представляющих суб-оптимальные решения.
Поэтому
В дальнейшем нам встретится множество конкретных методов обучения сетей с разными конфигурациями межнейронных связей. Чтобы не потерять за деревьями леса, полезно заранее ознакомиться с базовыми нейро-архитектурами. В следующем разделе мы приведем такого рода классификацию, основанную на способах кодирования информации в сетях (обучения) и декодирования (обработки) информации нейросетями.
Ошибка сети зависит, как уже говорилось, от конфигурации сети - совокупности всех ее синаптических весов. Но эта зависимость не
прямая, а опосредованная. Ведь непосредственные значения весов скрыты от
Здесь $$\{x^\alpha,y^\alpha\}$$ - набор примеров (т.е. пар входов-выходов), на которых обучается нейросеть, а $$\{y(x^\alpha,w)\}$$ - реальные значения выходов нейросети, зависящие от конкретных значений ее синаптических весов. Такой способ обучения, когда действительный выход нейросети сравнивают с эталонным, называют обучением с учителем.
Иногда выходная информация известна не полностью. Например, вместо эталонных ответов известно лишь хуже или лучше данная конфигурация сети справляется с задачей (вспомним детскую игру "холоднее-горячее" или лабораторную мышь в лабиринте с лакомствами и электрошоком). Этот тип обучения называют обучением с подкреплением (reinforcement learning).
Вообще говоря, возможен и такой
Такой
| Вид обучения: | С "учителем" | С "подкреплением" | Без "учителя" |
|---|---|---|---|
| Что подается в качестве обучающих примеров | Набор пар входов-выходов $$\{x^\alpha,y^\alpha\}$$ | Оценка выходов сети $$\{x^\alpha,y(x^\alpha)\}$$ | Только набор входных значений $$\{x^\alpha\}$$ |
| Что требуется от сети | Найти функцию, обобщающую примеры, в случае дискретных $$y^\alpha$$ - классифицировать входы. В целом - научиться реагировать схожим образом в схожих ситуациях. | Научиться заданной "правильной" линии поведения. | Найти закономерности в массиве данных, отыскать порождающую данные функцию распределения, найти более компактное описание данных. |
С практической точки зрения, "помеченные" данные $$\{x^\alpha,y(x^\alpha)\}$$ зачастую дороги и не столь многочисленны, как "непомеченные" $$\{x^\alpha\}$$, например, в случае, когда "учителем" является человек - эксперт. В силу этого обстоятельства на таких данных можно обучить лишь относительно простые и компактные нейросети. Напротив, нейросети, обучаемые без учителя часто используют для переработки больших массивов "сырых" данных - в качестве предобрабатывающих фильтров. Указанное различие, однако, исчезает, когда данные естественным образом распадаются на входы-выходы, например при предсказании временных рядов, где следующее значение ряда является выходом, а предыдущие несколько значений - соответствующими входами обучаемой нейросети.
На способ обработки информации решающим образом сказывается наличие или отсутствие в сети петель обратных связей. Если обратные связи между нейронами отсутствуют (т.е. сеть имеет структуру последовательных слоев, где каждый нейрон получает информацию только с предыдущих слоев), обработка информации в сети однонаправленна. Входной сигнал обрабатывается последовательностью слоев и ответ гарантированно получается через число тактов равное числу слоев.
Наличие же обратных связей может сделать динамику нейросети (называемой в этом случае рекуррентной) непредсказуемой. В принципе, сеть может "зациклиться" и не выдать ответа никогда. Причем, согласно Тьюрингу, не существует алгоритма, позволяющего для произвольной сети определить придут ли когда-либо ее элементы в состояние равновесия (т.н. проблема останова).
Вообще говоря, то, что нейроны в
| Сравнение сетей: | Без обратных связей (многослойные) | С обратными связями |
|---|---|---|
| Преимущества | Простота реализации. Гарантированное получение ответа после прохождения данных по слоям. | Минимизация размеров сети - нейроны многократно участвуют в обработке данных. Меньший объем сети облегчает процесс обучения. |
| Недостатки | Требуется большее число нейронов для алгоритмов одного и того же уровня сложности. Следствие - большая сложность обучения. | Требуются специальные условия, гарантирующие сходимость вычислений. |
Ограничившись лишь двумя описанными выше факторами, разделяющими сети по типу обучения (программирования) и функционирования, получим следующую полезную классификацию базовых нейро-архитектур, впервые предложенную, по-видимому, Бартом Коско (Таблица 2.7).
| Тип обучения (Coding) $$\rightarrow$$ Тип связей (Decoding) $$\downarrow$$ | С "учителем" | Без "учителя" |
|---|---|---|
| Без обратных связей | Многослойные персептроны (аппроксимация функций, классификация) | Соревновательные сети, карты Кохонена (сжатие данных, выделение признаков) |
| С обратными связями | Рекуррентные аппроксиматоры (предсказание временных рядов, обучение в режиме on-line) | Сеть Хопфилда (ассоциативная память, кластеризация данных, оптимизация) |
В этой таблице различные архитектуры сетей, которые встретятся нам далее в этой книге, распределены по ячейкам в зависимости от способа обработки ими информации и способа их обучения. В скобках указаны основные типы задач, обычно решаемых данным классом нейросетей.
В следующих лекциях, после более близкого знакомства с перечисленными выше основными нейро-архитектурами, мы рассмотрим конкретные примеры задач из области финансов и бизнеса, интересные с практической точки зрения.
В науке мало пользы от моделей, которые рабски подчиняются всем нашим желаниям. Мы хотим иметь модели, которые дерзят нам, модели, которые имеют свой собственный ум. Мы хотим получить из наших моделей больше, чем мы в них вложили. Т.Тоффоли, Н.Маролус, " Машины клеточных автоматов"
Хватит. Пора наконец рассказать правду про моего друга ЭПИКАКа. Тем более, что он обошелся налогоплательщикам в 776 434 927 долларов 54 цента. Раз они выложили такие денежки, то имеют полное право узнать чистую правду. К.Воннегут, "ЭПИКАК"
В прошлой лекции появление нейрокомпьютеров представлено как закономерный этап развития вычислительной техники. В результате, у читателя может сложиться впечатление, что и сама идея нейрокомпьютинга - недавнее изобретение. Это, однако, не так. Пути Эволюции редко бывают прямыми. Идеи нейрокомпьютинга появились практически одновременно с зарождением последовательных ЭВМ.
Однако, должны были пройти многие десятилетия, прежде чем радикальное удешевление аппаратуры позволило им заявить о себе в полный
голос. Дело в том, что на ранних стадиях развития вычислительной техники, последовательная архитектура обладает весьма ценным преимуществом перед параллельной. А именно, она позволяет получать полезные результаты уже при минимальном количестве аппаратуры. В
следующей лекции мы покажем, что обучение нейросетей требует больших вычислительных затрат (сложность обучения растет как третья степень
размерности задачи). Поэтому нейрокомпьютинг предъявляет достаточно жесткие требования к вычислительной мощности аппаратуры. Только
совсем недавно, когда рядовому пользователю
Интерес широкой научной общественности к нейросетям пробудился в начале 80-х годов после теоретических работ физика Джона Хопфилда (Hopfield, 1982, 1984). Он и его многочисленные последователи обогатили теорию параллельных вычислений многими идеями из арсенала физики, такими как коллективные взаимодействия нейронов, энергия сети, температура обучения и т.д.
Однако, настоящий бум практических применений нейросетей начался после публикации Румельхартом с соавторами метода обучения
многослойного персептрона, названного ими
Далее в этой лекции мы вкратце опишем современное (правда чрезвычайно быстро меняющееся) состояние нейрокомпьютинга: нейросетевые продукты (как специализированное hardware, так и более доступное software), их сегодняшние применения, а также основные принципы нейровычислений.
Практически все действующие нейрокомпьютеры используют традиционную элементную базу: микроэлектронные СБИС. Сотни миллиардов долларов, уже вложенные в развитие этой технологии, дают ей решающее преимущество перед другими альтернативами, такими, как оптические вычисления.
Современная электроника опирается, в основном, на цифровую обработку сигналов, устойчивую к помехам и технологическим
отклонениям в параметрах базовых злементов. Цифровая схемотехника предоставляет нейро-конструкторам наиболее богатый инструментарий.
Поэтому неудивительно, что наибольшее распространение получили именно цифровые нейрокомпьютеры. Это по существу - специализированные
матричные ускорители, использующие матричный, послойный характер обработки сигналов в нейросетях. Широко используются стандартные
процессоры обработки сигналов (DSP -
Однако, сама природа нейросетевой обработки информации - аналоговая, и дополнительного выигрыша в скорости вычислений
(по некоторым оценкам ~103-104) и плотности
Системы промышленной автоматизации, построенные на
VME , обретут нейроморфный мозг, способность видеть и слышать, ощущать электрические и магнитные поля, воспринимать ультразвуки и радиацию. Они смогут анализировать обстановку и принимать решения. Это будет прививкой разума системам промышленной автоматизации. Широков, 1998
Преимущества обоих подходов пытаются совместить гибридные микросхемы, имеющие цифровой интерфейс с остальной аппаратурой, но исполняющие наиболее массовые операции аналоговым способом.
Приведенные ниже таблицы (таблица 2.1 и Таблица 2.2 ) дают некоторое представление о сильных и слабых сторонах различных элементных баз и достигнутых результатах.
| Тип элементной базы | Преимущества | Недостатки |
|---|---|---|
| Аналоговая оптическая | Допускает массовые межсоединения | Нет замкнутой технологии оптических вычислений |
| Аналоговая электрическая | Концептуальная простота схемотехники, выигрыш в емкости схем и скорости вычислений | Жесткие технологические требования, чувствительность к дефектам и внешним воздействиям, малая точность вычислений, трудность реализации массовых соединений |
| Цифровая электрическая | Развитая замкнутая технология, точность вычислений, устойчивость к технологическим вариациям | Сложность схемных решений, многотактовое выполнение базовых операций, трудность реализации массовых соединений |
| Гибридная (аналого-цифровая схемотехника, оптоэлектроника) | Аналоговое ускорение базовых операций при цифровом интерфейсе с внешними устройствами, возможности оптической коммутации | Требует дополнительных технологических разработок |
| Название нейросхемы (фирма-производитель) | Тип элементной базы | Емкость (кол-во нейронов / кол-во синапсов) | Производительность (кол-во умножений с сумированием в сек) |
|---|---|---|---|
| Silicon Retina ( |
Аналоговая | $$48*48$$ | ? |
| Аналоговая | $$64/10^4$$ | $$2*10^9$$ | |
| N64000 (Inova) | Цифровая | $$64/10^5$$ | $$9*10^8$$ |
| MA-16 (Siemens) | Цифровая | $$16/256$$ | $$4*10^8$$ |
| RN-200 (Ricoh) | Гибридная | $$16/256$$ | $$3*10^9$$ |
| NeuroClassifier (Mesa Research Institute) | Гибридная | $$7/426$$ | $$2*10^10$$ |
Преимущества нейрокомпьютинга состоит в возможности организовать массовые параллельные вычисления. Поэтому базовые процессорные элементы обычно соединяют в вычислительные комплексы: как можно больше - на одном чипе, а что не поместилось - в мультипроцессорные платы.
Эти платы затем либо вставляют в персональные компьютеры и рабочие станции в качестве нейро-ускорителей, либо собирают в полномасштабные нейрокомпьютеры. В последнем случае избегают задержек в относительно медленных системных шинах PC, правда ценой удорожания аппаратуры.
| Название нейросхемы, фирма-производитель | Тип | Количество процессорных элементов | Производительность (кол-во умножений с суммированием в сек) | $$\$$$ |
|---|---|---|---|---|
| PC-ускоритель | 2 |
$$2,5*10^9$$ | $$~10^4$$ | |
| Нейрокомпьютер | 8 |
$$10^10$$ | $$~10^5$$ | |
| Нейрокомпьютер | 8 MA-16 процессоров (512 нейронов) | $$3*10^9$$ | $$~10^5$$ |
Из приведенных в предыдущих таблицах данных следует, что возможности современных нейрокомпьютеров пока довольно
скромны, особенно в сравнении с биологическими нейросистемами (см. рисунок 2.1).
Они едва-едва достигли уровня мухи и еще не дотягивают до таракана.
(рис 2.1) Сравнение современных нейрокомпьютеров с естественными нейросистемами
Вспомним, однако, искусство маневра, характерное для полета мухи, и возможности современных нейрокомпьютеров уже не покажутся такими уж скромными.
Производительность современных персональных компьютеров составляет примерно 107 операций с плавающей точкой в секунду (при тактовой частоте системной шины 66 МГц, положив в среднем 6 тактов на одну операцию). Итак, при стоимости всего на порядок больше обычных PC, нейроускоритель в несколько сот раз превосходит их в быстродействии. Таким образом, удельная стоимость современных нейровычислений примерно на порядок ниже, чем у традиционных компьютеров. Это всего лишь следствие специализации матричных процессоров (DSP), имеющих ту же элементную базу, что и универсальные микропроцессоры.
Однако, выигрыш на один порядок в стоимости вычислений редко когда способен стать решающим аргументом для использования специализированной аппаратуры, сопряженным с дополнительными затратами, в том числе на обучение персонала. Поэтому реально нейрокомпьютеры используются в специализированных системах, когда требуется обучать и постоянно переобучать сотни нейросетей, объединенных в единые информационные комплексы, или в системах реального времени, где скорость обработки данных критична.
Большинство же прикладных систем нейросетевой обработки данных использует эмуляцию нейросетей на обычных компьютерах, в частности на PC. Такие программы называются нейро-эмуляторами.
Доступность и возросшие вычислительные возможности современных компьютеров привели к широкому распространению программ, использующих принципы нейросетевой обработки данных, о которых мы поговорим подробнее в следующих разделах, но исполняемых на последовательных компьютерах. Этот подход не использует преимуществ присущего нейро-вычислениям параллелизма, ориентируясь исключительно на способность нейросетей решать неформализуемые задачи .
Преимущества таких "виртуальных" нейрокомпьютеров для относительно небольших задач очевидны:
В общем, если речь идет не о
Это законченные независимые программные продукты, предназначенные для широкого класса задач, в основном - для предсказаний и статистической обработки данных. Большинство из имеющихся на рынке нейропакетов имеет дружественный интерфейс пользователя, не требующий знакомства с языками программирования.
Такие пакеты нацелены на решение информационных задач в диалоговом режиме - при непосредственном участии пользователя. Они не применимы в условиях потоковой обработки данных. Кроме того, они не приспособлены для разработки сложных систем обработки данных, состоящих из многих блоков, содержащих, скажем, сотни нейросетей, адаптивно настраивающихся и дообучающихся на вновь поступающих данных. Разработка таких "серьезных" систем требует специального инструментария.
Главное, что отличает этот класс программного обеспечения - способность генерировать "отчуждаемые" нейросетевые продукты, т.е. генерировать программный код, использующий обученные нейросети для обработки данных. Такой код может быть встроен в качестве подсистемы в любые сколь угодно сложные информационные комплексы.
Подобные средства разработки используются фирмами, в частности, для создания основанных на нейросетевой обработке данных готовых решений в различных областях.
Это - конечный результат. Здесь нейросети спрятаны от пользователя в недрах готовых автоматизированных комплексов, предназначенных для решения конкретных производственных задач. Например, уже упоминавшийся продукт Falcon встраивается в банковскую автоматизированную систему обслуживания платежей по пластиковым карточкам. В другом случае это будет автоматизированная система управления заводом или реактором. Конечного пользователя, как правило, не интересует способ достижения результата, ему важно лишь качество продукта. Поскольку многие такие готовые решения обладают уникальными возможностями (пока специалисты по нейрокомпьютингу еще в дефиците) и обеспечивают реальные конкурентные преимущества, их цена может быть довольно высока - порядка $106 - гораздо выше, чем стоимость нейро-hardware.
Описание рынка нейро-продуктов будет не полным без упоминания о нейро-консалтинге. Вместо того, чтобы продавать готовые программы либо инструменты для их разработки, можно торговать и услугами. Например, до изобретения радио большим спросом пользовались барометры, как инструменты предсказания погоды. Теперь же мы просто узнаем погоду по радио или TV, а не предсказываем ее кустарными методами. Некоторые задачи, например такие, как предсказание рыночных временных рядов, являются настолько сложными, что доступны лишь настоящим профессионалам. Не каждая компания может позволить себе издержки, ассоциируемые с передовыми научными разработками (например, постоянное участие в международных конференциях). Поэтому приобретают популярность фирмы, единственной продукцией которых являются предсказания рынков. При большом числе клиентов цена таких предсказаний может быть весьма умеренной.
| Сегмент рынка нейро-продуктов | Преимущества продукции | Недостатки продукции |
|---|---|---|
| Нейро-пакеты общего назначения | Не требуют самостоятельного программирования, легко осваиваются, инструмент быстрого и дешевого решения прикладных задач | Не способны к расширению, не способны генерировать отчуждаемые приложения, не могут использоваться для разработки сложных систем или их подсистем |
| Системы разработки нейроприложений | Могут использоваться для создания сложных систем обработки данных в реальном времени (или их подсистем) | Требуют навыков программирования, более глубокого знания нейросетей |
| Готовые решения на основе нейросетей | Не предполагают знакомства пользователя с нейросетями, предоставляют комплексное решение проблемы | Как правило - дорогое удовольствие |
| Нейро-консалтинг | Не предполагает участия пользователя в получении прогнозов, потенциальная дешевизна услуг | Нет возможности дополнить предсказания своим know how. Доступность конфиденциальной информации |
Объем рынка нейропродукции, структуру которого мы попытались выше очертить, растет стремительными темпами: по разным оценкам - от 30% до 50% в год, перевалив недавно за миллиард долларов (рисунок 2.2).
(рис 2.2) Рост объемов продаж нейропродукцииНейрокомпьютеры и их программные эмуляторы, естественно, интересны не сами по себе, а как инструмент решения практических задач. Только в этом случае нейропродукция будет обладать потребительской стоимостью и иметь соответствующий объем рынка. Где же и как используется нейросетевая продукция сегодня?
Нейросети наиболее приспособлены к решению широкого круга задач, так или иначе связанных с обработкой образов. Вот список типичных постановок задач для нейросетей:
Этот список можно было бы продолжить и дальше. Заметим, однако, что между всеми этими внешне различными постановками задач существует глубокое родство. За ними просматривается некий единый прототип, позволяющий при известной доле воображения сводить их друг к другу.
Возьмем, например,
Многие представители разных наук, занимающихся перечисленными выше задачами и уже накопившими изрядный опыт их решения, видят
в нейросетях лишь перепев уже известных им мотивов. Каждый полагает, что перевод его методов на новый язык нейросетевых схем ничего
принципиально нового не дает. Статистики говорят, что нейросети - это всего лишь частный способ статистической обработки данных,
специалисты по оптимизации - что методы обучения нейросетей давно известны в их области, теория аппроксимации функций рассматривает
нейросети наряду с другими методами многомерной аппроксимации. Нам же представляется, что именно синтез различных методов и идей в
едином нейросетевом подходе и является неоценимым достоинством нейрокомпьютинга. Нейрокомпьютинг предоставляет единую методологию
решения очень широкого круга практически интересных задач. Это, как правило, ускоряет и удешевляет разработку приложений. Причем,
что обычно забывают за неразвитостью соответствующего hardware, но что, видимо, в конце концов сыграет решающую роль,
Наверное, в каждой предметной области при ближайшем рассмотрении можно найти постановки нейросетевых задач. Список областей, где решение такого рода задач имеет практическое значение уже сейчас, приведенный ниже, ограничен лишь опасением утомить читателя. По этой же причине мы ограничились единственным примером конкретного применения в каждой из этих областей.
После полного цикла обучения качество диагностирования неисправностей сетью достигло уровня наших лучших экспертов, и значительно превосходило их в скорости. Marko K, et. al. , Ford Motors Company, Automative
Control Systems Diagnostics, IJCNN 1989
Обилие приведенных выше применений нейросетей - не рекламный трюк. Просто нейросети - это не что иное, как новый инструмент анализа
данных. И лучше других им может воспользоваться именно специалист в своей предметной области. Основные трудности на пути еще более
широкого распространения
Парадигмы нейрокомпьютинга - это родовые черты, объединяющие принципы работы и обучения всех нейрокомпьютеров. Главное, что их объединяет - нацеленность на обработку образов. Эта их особенность, аналогичная способу функционирования мозга, уже обсуждалась ранее во вводной лекции. Теперь же мы сформулируем эти парадигмы в концентрированном виде безотносительно к биологическим прототипам, как способы обработки данных. Эти общие сведения послужат фундаментом для более подробного разбора отдельных нейро-архитектур в последующих лекциях.
Отличительной чертой нейросетей является
(рис 2.3) Глобальность связей в искуственных нейросетяхТипичный формальный нейрон производит простейшую операцию - взвешивает значения своих входов со своими же локально хранимыми весами и производит над их суммой нелинейное преобразование:
$$y=f(u), u=w_0+\sum_i w_i x_i$$
(рис 2.4) Нейрон производит нелинейную операцию над линейной комбинацией входовНелинейность выходной функции активации $$f()$$ принципиальна. Если бы нейроны были линейными элементами, то любая последовательность нейронов также производила бы линейное преобразование, и вся нейросеть была бы эквивалентна одному нейрону (или одному слою нейронов - в случае нескольких выходов). Нелинейность разрушает линейную суперпозицию и приводит к тому, что возможности нейросети существенно выше возможностей отдельных нейронов.
Массовый параллелизм нейро-вычислений, необходимый для эффективной обработки образов, обеспечивается локальностью обработки
информации в нейросетях. Каждый нейрон реагирует лишь на локальную информацию, поступающую к нему в данный момент от связанных с
ним таких же нейронов, без апелляции к общему плану вычислений, обычной для универсальных ЭВМ. Таким образом,
Отсутствие глобального плана вычислений в нейросетях предполагает и особый характер их программирования. Оно также носит локальный характер: каждый нейрон изменяет свои "подгоночные параметры" - синаптические веса - в соответствии с поступающей к нему локальной информацией об эффективности работы всей сети как целого. Режим распространения такой информации по сети и соответствующей ей адаптации нейронов носит характер обучения. Такой способ программирования позволяет эффективно учесть специфику требуемого от сети способа обработки данных, ибо алгоритм не задается заранее, а порождается самими данными - примерами, на которых сеть обучается. Именно таким образом в процессе самообучения биологические нейросети выработали столь эффективные алгоритмы обработки сенсорной информации.
Характерной особенностью нейросетей является их способность к обобщению, позволяющая обучать сеть на ничтожной доле всех возможных ситуаций, с которыми ей, может быть, придется столкнуться в процессе функционирования. В этом их разительное отличие от обычных ЭВМ, программа которых должна заранее предусматривать их поведение во всех возможных ситуациях. Эта же их способность позволяет кардинально удешевить процесс разработки приложений.
Привлекательной чертой нейрокомпьютинга является единый принцип обучения нейросетей - минимизация эмпирической ошибки. Функция ошибки, оценивающая данную конфигурацию сети, задается извне - в зависимости от того, какую цель преследует обучение. Но далее сеть начинает постепенно модифицировать свою конфигурацию - состояние всех своих синаптических весов - таким образом, чтобы минимизировать эту ошибку. В итоге, в процессе обучения сеть все лучше справляется с возложенной на нее задачей.
Не вдаваясь в математические тонкости, образно этот процесс можно представить себе как поиск минимума функции ошибки $$E(w)$$, зависящей от набора всех синаптических весов сети w (см. рисунок 2.5).
(рис 2.5) Обучение сети как задача оптимизацииБазовой идеей всех алгоритмов обучения является учет локального градиента в пространстве конфигураций для выбора траектории
быстрейшего
спуска по функции ошибки. Функция ошибки, однако, может иметь множество локальных минимумов, представляющих суб-оптимальные решения.
Поэтому
В дальнейшем нам встретится множество конкретных методов обучения сетей с разными конфигурациями межнейронных связей. Чтобы не потерять за деревьями леса, полезно заранее ознакомиться с базовыми нейро-архитектурами. В следующем разделе мы приведем такого рода классификацию, основанную на способах кодирования информации в сетях (обучения) и декодирования (обработки) информации нейросетями.
Ошибка сети зависит, как уже говорилось, от конфигурации сети - совокупности всех ее синаптических весов. Но эта зависимость не
прямая, а опосредованная. Ведь непосредственные значения весов скрыты от
Здесь $$\{x^\alpha,y^\alpha\}$$ - набор примеров (т.е. пар входов-выходов), на которых обучается нейросеть, а $$\{y(x^\alpha,w)\}$$ - реальные значения выходов нейросети, зависящие от конкретных значений ее синаптических весов. Такой способ обучения, когда действительный выход нейросети сравнивают с эталонным, называют обучением с учителем.
Иногда выходная информация известна не полностью. Например, вместо эталонных ответов известно лишь хуже или лучше данная конфигурация сети справляется с задачей (вспомним детскую игру "холоднее-горячее" или лабораторную мышь в лабиринте с лакомствами и электрошоком). Этот тип обучения называют обучением с подкреплением (reinforcement learning).
Вообще говоря, возможен и такой
Такой
| Вид обучения: | С "учителем" | С "подкреплением" | Без "учителя" |
|---|---|---|---|
| Что подается в качестве обучающих примеров | Набор пар входов-выходов $$\{x^\alpha,y^\alpha\}$$ | Оценка выходов сети $$\{x^\alpha,y(x^\alpha)\}$$ | Только набор входных значений $$\{x^\alpha\}$$ |
| Что требуется от сети | Найти функцию, обобщающую примеры, в случае дискретных $$y^\alpha$$ - классифицировать входы. В целом - научиться реагировать схожим образом в схожих ситуациях. | Научиться заданной "правильной" линии поведения. | Найти закономерности в массиве данных, отыскать порождающую данные функцию распределения, найти более компактное описание данных. |
С практической точки зрения, "помеченные" данные $$\{x^\alpha,y(x^\alpha)\}$$ зачастую дороги и не столь многочисленны, как "непомеченные" $$\{x^\alpha\}$$, например, в случае, когда "учителем" является человек - эксперт. В силу этого обстоятельства на таких данных можно обучить лишь относительно простые и компактные нейросети. Напротив, нейросети, обучаемые без учителя часто используют для переработки больших массивов "сырых" данных - в качестве предобрабатывающих фильтров. Указанное различие, однако, исчезает, когда данные естественным образом распадаются на входы-выходы, например при предсказании временных рядов, где следующее значение ряда является выходом, а предыдущие несколько значений - соответствующими входами обучаемой нейросети.
На способ обработки информации решающим образом сказывается наличие или отсутствие в сети петель обратных связей. Если обратные связи между нейронами отсутствуют (т.е. сеть имеет структуру последовательных слоев, где каждый нейрон получает информацию только с предыдущих слоев), обработка информации в сети однонаправленна. Входной сигнал обрабатывается последовательностью слоев и ответ гарантированно получается через число тактов равное числу слоев.
Наличие же обратных связей может сделать динамику нейросети (называемой в этом случае рекуррентной) непредсказуемой. В принципе, сеть может "зациклиться" и не выдать ответа никогда. Причем, согласно Тьюрингу, не существует алгоритма, позволяющего для произвольной сети определить придут ли когда-либо ее элементы в состояние равновесия (т.н. проблема останова).
Вообще говоря, то, что нейроны в
| Сравнение сетей: | Без обратных связей (многослойные) | С обратными связями |
|---|---|---|
| Преимущества | Простота реализации. Гарантированное получение ответа после прохождения данных по слоям. | Минимизация размеров сети - нейроны многократно участвуют в обработке данных. Меньший объем сети облегчает процесс обучения. |
| Недостатки | Требуется большее число нейронов для алгоритмов одного и того же уровня сложности. Следствие - большая сложность обучения. | Требуются специальные условия, гарантирующие сходимость вычислений. |
Ограничившись лишь двумя описанными выше факторами, разделяющими сети по типу обучения (программирования) и функционирования, получим следующую полезную классификацию базовых нейро-архитектур, впервые предложенную, по-видимому, Бартом Коско (Таблица 2.7).
| Тип обучения (Coding) $$\rightarrow$$ Тип связей (Decoding) $$\downarrow$$ | С "учителем" | Без "учителя" |
|---|---|---|
| Без обратных связей | Многослойные персептроны (аппроксимация функций, классификация) | Соревновательные сети, карты Кохонена (сжатие данных, выделение признаков) |
| С обратными связями | Рекуррентные аппроксиматоры (предсказание временных рядов, обучение в режиме on-line) | Сеть Хопфилда (ассоциативная память, кластеризация данных, оптимизация) |
В этой таблице различные архитектуры сетей, которые встретятся нам далее в этой книге, распределены по ячейкам в зависимости от способа обработки ими информации и способа их обучения. В скобках указаны основные типы задач, обычно решаемых данным классом нейросетей.
В следующих лекциях, после более близкого знакомства с перечисленными выше основными нейро-архитектурами, мы рассмотрим конкретные примеры задач из области финансов и бизнеса, интересные с практической точки зрения.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.