Лекция 1. Нейрокомпьютинг

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

Преимущества нейро-эмуляторов

Преимущества таких "виртуальных" нейрокомпьютеров для относительно небольших задач очевидны:

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

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

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

Таблица 1. Секторы рынка нейросетевых программных продуктов

Сегмент рынка нейро-продуктов

Преимущества продукции

Недостатки продукции

Нейро-пакеты общего назначения

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

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

Системы разработки нейроприложений

Могут использоваться для создания сложных систем обработки данных в реальном времени (или их подсистем)

Требуют навыков программирования, более глубокого знания нейросетей

Готовые решения на основе нейросетей

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

Как правило - дорогое удовольствие

Нейро-консалтинг

Не предполагает участия пользователя в получении прогнозов, потенциальная дешевизна услуг

Нет возможности дополнить предсказания своим know how. Доступность конфиде-нциальной информации

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

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

Приложения нейрокомпьютинга

Какие задачи решают нейросети

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

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

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

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

нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск.   Сжатие информации

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

нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск.   Ассоциативная память

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

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

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

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

Где применяются нейросети

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

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

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

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

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

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

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

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

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

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

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

 

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

Парадигмы нейрокомпьютинга

Что такое парадигмы

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

Коннекционизм

Отличительной чертой нейросетей является глобальность связей. Базовые элементы искусственных нейросетей - формальные нейроны - изначально нацелены на работу с широкополосной информацией. Каждый нейрон нейросети, как правило, связан со всеми нейронами предыдущего слоя обработки данных (см. Рисунок 1, иллюстрирующий наиболее широко распространенную в современных приложениях архитектуру многослойного персептрона). В этом основное отличие формальных нейронов от базовых элементов последовательных ЭВМ - логических вентилей, имеющих лишь два входа. В итоге, универсальные процессоры имеют сложную архитектуру, основанную на иерархии модулей, каждый из которых выполняет строго определенную функцию. Напротив, архитектура нейросетей проста и универсальна. Специализация связей возникает на этапе их обучения под влиянием конкретных данных.

нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск.

Рисунок 1. Глобальность связей в искуственных нейросетях

 

Типичный формальный нейрон производит простейшую операцию - взвешивает значения своих входов со своими же локально хранимыми весами и производит над их суммой нелинейное преобразование:

нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск.

нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск.

Рисунок 2. Нейрон производит нелинейную операцию над линейной комбинацией входов

 

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

Локальность и параллелизм вычислений

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

Программирование: обучение, основанное на данных

Отсутствие глобального плана вычислений в нейросетях предполагает и особый характер их программирования. Оно также носит локальный характер: каждый нейрон изменяет свои "подгоночные параметры" - синаптические веса - в соответствии с поступающей к нему локальной информацией об эффективности работы всей сети как целого. Режим распространения такой информации по сети и соответствующей ей адаптации нейронов носит характер обучения. Такой способ программирования позволяет эффективно учесть специфику требуемого от сети способа обработки данных, ибо алгоритм не задается заранее, а порождается самими данными - примерами, на которых сеть обучается. Именно таким образом в процессе самообучения биологические нейросети выработали столь эффективные алгоритмы обработки сенсорной информации.

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

Универсальность обучающих алгоритмов

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

Не вдаваясь в математические тонкости, образно этот процесс можно представить себе как поиск минимума функции ошибки E(w), зависящей от набора всех синаптических весов сети w (см. Рисунок 3).

нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск.

Рисунок 3. Обучение сети как задача оптимизации

 

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

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

Классификация базовых нейроархитектур

Типы обучения нейросети

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

нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск. .

Здесь нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск. - набор примеров (т.е. пар входов-выходов), на которых обучается нейросеть, а нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск. - реальные значения выходов нейросети, зависящие от конкретных значений ее синаптических весов. Такой способ обучения, когда действительный выход нейросети сравнивают с эталонным, называют обучением с учителем.

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

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

нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск. .

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

Вид обучения:

С "учителем"

С "подкреплением"

Без "учителя"

Что подается в качестве обучающих примеров

Набор пар входов-выходов нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск.

Оценка выходов сети нейро сети нейро компьютинг в областях : финансы, недвижимость, биржи, риск.

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

Что требуется от сети

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

Научиться заданной "правильной" линии поведения.

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

Таблица 1. Сравнение режимов обучения нейросетей

 

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

Архитектура связей

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

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

Вообще говоря, то, что нейроны в рекуррентных сетях по многу раз принимают участие в обработке информации позволяет таким сетям производить более разнообразную и глубокую обработку информации. Но в этом случае следует принимать специальные меры к тому, чтобы сеть не зацикливалась (например, использовать симметричные связи, как в сети Хопфилда, или принудительно ограничивать число итераций, как это делается в эмуляторе MultiNeuron группы НейроКомп).

Таблица 2. Сравнение архитектур связей нейросетей

Сравнение сетей:

Без обратных связей (многослойные)

С обратными связями

Преимущества

Простота реализации. Гарантированное получение ответа после прохождения данных по слоям.

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

Недостатки

Требуется большее число нейронов для алгоритмов одного и того же уровня сложности. Следствие - большая сложность обучения.

Требуются специальные условия, гарантирующие сходимость вычислений.

 

Классификация по типу связей и типу обучения (Encoding-Decoding)

Тиб обучения (Coding) e

Тип связей (Decoding) e

С "учителем"

Без "учителя"

Без обратных связей

Многослойные персептроны (аппроксимация функций, классификация)

Соревновательные сети, карты Кохонена (сжатие данных, выделение признаков)

С обратными связями

Рекуррентные аппроксиматоры (предсказание временных рядов, обучение в режиме on-line)

Сеть Хопфилда (ассоциативная память, кластеризация данных, оптимизация)

Таблица 3. Классификация нейросетей

Ограничившись лишь двумя описанными выше факторами, разделяющими сети по типу обучения (программирования) и функционирования, получим следующую полезную классификацию базовых нейро-архитектур, впервые предложенную, по-видимому, Бартом Коско (Таблица 3).

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

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