Научно-технический прогресс и целеполагание (вместо заключения)
Нобелевская речь американского физиолога, лауреата нобелевской премии 70-х годов Роджера Сперри меня потрясла тем, что речь в ней шла о... научном коммунизме. Я тогда тоже пришел к этой идее, самостоятельно рассуждая о кошмаре нашего тогдашнего социалистического общества в отблесках пожара, пылавшего на развалинах "Пражской весны социализма с человеческим лицом". Мой товарищ Сергей Адамович Ковалев тогда если не сидел уже в тюрьме, то во всяком случае на всех порах двигался в том направлении. Мне же казалось, что в эпоху глобальных неустойчивостей, порожденных научно-техническим прогрессом, серьезное изменение политической системы нереально. Поэтому было естественно попытаться найти умозрительный хотя бы выход из тупика социализма. Работая младшим научным сотрудником, я, естественно, искал научного выхода. Ну и, конечно, серьезный толчок в этом направлении давали самиздатские "Мысли..." Андрея Дмитриевича Сахарова.
Основная идея моего (совпавшего с мыслями Р.Сперри) научного коммунизма состояла в том, чтобы науку, т.е. добывание новых знаний, поставить в качестве цели существования общества. Естественно, что общество, объединенное некоторой единой целью, является коммунистическим. Оттуда и появилось сочетание "научный коммунизм". Чтобы отличить эту идею от ненавистного марксизма-ленинизма, я употреблял термин "естественно-научный коммунизм" (ЕНК). В упомянутой статье Р.Сперри тоже очень боялся, что его сочтут за сторонника марксизма, и весьма энергично от этого защищался.
Общим местом в наших со Сперри (шутка, конечно) теориях было то, что к целеполаганию общества мы шли со стороны попыток понять устройство мозга. Современный бурный прогресс науки и техники в этом месте, вместе с растущей неустойчивостью глобальных мировых социальных и экологических процессов вводит, мне кажется, идею ЕНК по крайней мере в число идей, достойных общественного внимания.
В ноябре 1993 г. за чашкой чая в небольшой интернациональной компании, состоящей из стажеров университета Хоккайдо, мне довелось провести бурные дебаты "о смысле жизни" с монахом-иезуитом, настоятелем католического храма в префектуре Саппоро гражданином Германии О.Манфредом.
Похоже, что мне удалось убедить католического священника в конкурентоспособности естественно-научного целеполагания, по сравнению с религиозным.
Помимо сказанного выше, дискуссия коснулась еще одного вопроса, традиционно решаемого церковью, - проблемы жизни и смерти. В этой проблеме уже давно заметно влияние естественно-научного фактора. С одной стороны - это известные методики замораживания смертельно больных раком и другими неизлечимыми заболеваниями с надеждой на оживление в отдаленном будущем, "когда позволят достижения науки". С другой стороны - здесь известные теоретические представления о том, что информационная основа любой конкретной личности может быть "считана" в компьютерные системы и обрести как бы небиологическую телесную оболочку. Звучит, во всяком случае пока, - несколько фантастично. Тем не менее конкретные технологические задачи, которые здесь вырисовываются, бесспорно относятся к области нейрокибернетики и нейроинформатики, а для их решения должны потребоваться нейрокомпьютеры.
Похоже, что мне удалось убедить католического священника в конкурентоспособности естественно-научного целеполагания, по сравнению с религиозным.
Помимо сказанного выше, дискуссия коснулась еще одного вопроса, традиционно решаемого церковью, - проблемы жизни и смерти. В этой проблеме уже давно заметно влияние естественно-научного фактора. С одной стороны - это известные методики замораживания смертельно больных раком и другими неизлечимыми заболеваниями с надеждой на оживление в отдаленном будущем, "когда позволят достижения науки". С другой стороны - здесь известные теоретические представления о том, что информационная основа любой конкретной личности может быть "считана" в компьютерные системы и обрести как бы небиологическую телесную оболочку. Звучит, во всяком случае пока, - несколько фантастично. Тем не менее конкретные технологические задачи, которые здесь вырисовываются, бесспорно относятся к области нейрокибернетики и нейроинформатики, а для их решения должны потребоваться нейрокомпьютеры.
В настоящее время президент Российской ассоциации нейроинформатики и нерокомпьютинга В.Л.Дунин-Барковский работает в Институте проблем передачи информации РАН, Москва.
© 2003-2007 INTUIT.ru. Все права защищены. |
Нейроинформатика
Та часть работ, которая связана с разработкой устройств переработки информации на основе принципов работы естественных нейронных систем относится к области нейроинформатики или нейровычислений (нейрокомпьютинга). Термины эти появились недавно - в середине 80-х годов. В то же время сравнение электронного и биологического мозга ведется постоянно на протяжении всей истории существования вычислительной техники. Знаменитая книга Н.Винера "Кибернетика", ознаменовавшая рождение этой науки в 1948 г., имеет подзаголовок "Управление в живых системах, технике и обществе".
Новый мощный импульс идея нейро-бионики, т.е. создание технических средств на нейро-принципах, получила в 1982-1984 гг. В это время размеры элементарных деталей вычислительных устройств сравнялось с размерами элементарных "преобразователей информации" в нервной системе. Быстродействие электронных элементов в миллионы раз больше, а эффективность решения задач , особенно связанных с ориентировкой и принятием решений в сложной естественной среде, у биологических систем выше.
Возникло подозрение, что живые организмы выигрывают за счет своих механизмов процессов переработки информации. Резко активировались фундаментальные и прикладные исследования в этой области. Сейчас нейроинформатика как наука уже обладает собственным аппаратом и предметом исследований.
Суть всех подходов нейроинформатики: разработка методов создания (синтеза) нейронных схем, решающих те или иные задачи. Нейрон при этом выглядит как устройство очень простое: нечто вроде усилителя с большим числом входов и одним выходом. Различие между подходами и методами - в деталях представлений о работе нейрона, и, конечно, в представлениях о работе связей. Собственно, как уже отмечалось выше, устройства нейроинформатики представляют собой связевые системы. В отличие от цифровых микропроцессорных систем, представляющих собой сложные комбинации процессорных и запоминающих блоков, нейропроцессоры содержат память, распределенную в связях между очень простыми процессорами.
Тем самым основная нагрузка на выполнение конкретных функций процессорами ложится на архитектуру системы, детали которой в свою очередь определяются межнейронными связями.
Значительную роль в общем подъеме интереса к нейропроблемам сыграла теория, предложенная Джоном Хопфилдом в 1982 г. Она буквально заворожила на продолжительное время физиков-теоретиков. И хотя с точки зрения нейро- теоретиков и технологов эта теория мало что дала, возбужденные ей аналогии и каскады головокружительных теоретических вычислений доставили немало эстетических радостей адептам науки. Кроме того, теория эта представляет хорошее поле для освоения понятий и упражнений, помогающих образовывать и развивать аналитические и моделирующие способности студентов.
Не углубляясь в технические детали, скажу, что благодаря работам Хопфилда возникло мнение, что наряду с ферромагнетиками и антиферромагнетиками возможны нейромагнетики, т.е. теоретические конструкции того же класса, что и первые два, но разительно от них отличающиеся и описывающие только запоминание дискретных образов (или так называемых паттернов информации) в нейронных сетях.
Другой важный класс нейронных систем введен в рассмотрение финном Тейво Кохоненом. У этого класса красивое название: самоорганизующиеся отображения состояний, сохраняющие топологию сенсорного пространства. теория Кохонена активно использует теорию адаптивных систем, развивавшуюся на протяжении многих лет академиком РАН Я.З.Цыпкиным.
Весьма популярна сейчас во всем мире оценка возможностей обучающихся систем, в частности, нейронных сетей (теория размерности Вапника-Червоненкиса). Ее основа была создана еще в 1966 г. советскими исследователями А.Я.Червонекисом и В.Н.Вапником.
Еще один класс нейроподобных моделей представляют сети с обратным распространением ошибок. Метод уходит корнями в довольно отдаленное прошлое. В развитии его современных модификаций ведущую роль сыграли французский исследователь ле Кун и проф. А.Н.Горбань из Красноярска.
Нейроинформатика стала внедряться в окружающую нас действительность в виде нейропроцессоров и нейрокомпьютеров.Перейдем к ним.
Нейрокибернетика
На протяжении трех последних десятилетий, раз в 2-4 года со всего Советского Союза съезжались в Ростов-на-Дону специалисты на всесоюзные с международным участием конференции по нейрокибернетике. Бессменным организатором этих конференций был профессор Александр Борисович Коган (1912-1989). В 1992 г. прошла десятая конференция этого цикла. Она была посвящена памяти А.Б.Когана, человека, проявившего выдающиеся научные и организаторские способности, позволившие ему не только создать единственный в стране Институт нейрокибернетики (с 1992 г. институт носит имя своего основателя), но и организовать и скоординировать усилия исследователей "тайн мозга" во всесоюзном масштабе.
Собственно нейрокибернетика представляет собой широкое поле наук и технологий, связанных с пониманием устройства нейронных систем и применением полученных знаний в технике и медицине.
В частности, в Институте нейрокибернетики имеются научно-исследовательские отделы (в скобках указаны руководители подразделений):
внутриклеточной организации нейрона, включающий лабораторию электронной микроскопии (к.б.н. В.Н.Гусатинский, к.б.н. Г.М.Федоренко); организации нейронных сетей, включающий лабораторию самообучающихся нейронных систем (к.б.н. А.Г.Сухов, к.б.н. В.Н.Ефимов); организации информационных и управляющих систем мозга (д.б.н. А.А.Буриков); организации высших функций мозга человека, включающий лабораторию нейрофизиологических механизмов психической деятельности (к.б.н. А.Э.Тамбиев, д.б.н. В.Н.Кирой); моделирования нервных механизмов и робототехники (А.И.Самарин); автоматизации медицинских исследований (д.б.н. Г.А.Кураев); лаборатории: улучшения и восстановления функций сенсорных систем (д.б.н. Е.Б.Компанеец); физмологии и биохимиии нейропепетидов (д.б.н. А.М.Менджерицкий); методов и средств моделирования нейробионических систем и нейрокомпьютеров (Б.А.Финкельштейн); нейроинформатики сенсорных и моторных систем (к.б.н. Л.Н.Подладчикова); механизмов организации нервных процессов и управления поведением (к.б.н. Е.В.Вербицкий); методов анализа экспериментальных данных (д.б.н. Б.М.Владимирский); а также - группа компьютерной графики (к.б.н. В.Д.Цукерман).
Среди задач, в решении которых в последнее время в Институте нейрокибернетики были существенные достижения: алгоритмы и детали механизмов распознавания полутоновых изображений человеком и животными, системы технического зрения, устройства и методы анализа электрического поля мозга человека, метод и устройство электрической стимуляции кожи человека, излечивающие ряд заболеваний, связанных с частичной атрофией сетчатки и зрительного нерва, программные и аппаратные модели нейронных сетей и процессов обучения в них, выявление отдельных деталей нейронных механизмов памяти и анализа сенсорных сигналов, анализ механизмов и функций сна и гипнотических состояний, межполушарной ассиметрии, разработка методов и приборов психофизиологического тестирования и диагностики оптимальных профессиональных склонностей.
Нейрокомпьютеры: необходима осторожность
Прежде, чем рассказать что-то по существу о современных нейрокомпьютерных устройствах, упомяну еще об одной опасности, "профессионально" связанной с нейрокомпьютингом. Я бы назвал ее сверх-угрозой халтуры, пожалуй, внутренне присущей этому роду занятий.
На высокую степень опасности этой угрозы для нашей профессиональной области указывает хотя бы тот факт, что в непосредственной близости от нее процветает область, полностью основанная на - сознательном или бессознательном - жульничестве. Я имею в виду все оттенки парапсихологиии и "космической биоэнергетики". Это, конечно, крайность, но ее следует иметь в виду и постоянно опасаться к ней скатиться.
Время от времени в СМИ (Средства Массовой Информации) появляются подвалы и многополосья о необыкновенных способностях и возможностях нейрокомпьютинга, который можно сделать нашей отечественной сохой за кратчайший срок и разом вырваться на мировой уровень вперед, далеко опередив мощью своего интеллекта недалеких, в общем-то, американцев и, тем более, японцев.
Такие психологические атаки бывают успешными не только в СМИ, но и в кабинетах ЛПР (Лиц Принимающих Решения). В последнем случае появляются решения, отправляющие в песок очередную огромную порцию общественных средств.
Таков негатив. Что же в позитиве?
В мире имеется несколько десятков специализированных фирм, выпускающих продукцию в области нейроинформатики и, кроме того, многие гиганты индустрии (IBM, Siemence, Mitsubishi и др.) ведут исследования и разработки в этой области. То есть намерения здесь в настоящее время серьезные. Каковы же достигнутые результаты?
Что такое нейрокомпьютер? На самом деле сейчас между понятиями компьютер и нейрокомпьютер примерно такое же соотношение как между понятиями государь и милостивый государь. То есть сейчас любой нейрокомпьютер не претендует на звание компьютера, но создается для решения какого-то фиксированного круга задач. Похоже, что широкие приложения получат устройства, основанные на комбинированных технологиях, включающие по мере необходимости те или иные нейропроцессорные устройства.
Некоторую рекламу и, соответственно, некоторые средства в Японии получили приборы бытовой техники: пылесосы, кондиционеры, электропечки и стиральные машины, использующие нейропроцессоры в устройствах управления.
Некоторое время назад появилась мода на применения искусственных нейронных сетей в финансово-экономических приложениях. Причиной появления моды стали успехи нейросетевых систем в области предсказания будущего. В этой и других задачах такого рода речь идет о том, чтобы по имеющемуся числовому и событийному ряду предсказать следующие его члены. Нейросетевые конструкции порой решают эту задачу лучше, чем изощренные статистические методики. В чем здесь дело, пока непонятно, но финансистам это не важно.
На основании таких же методов А.Н.Горбань со своим американским аспирантом Ваксманом еще летом 1992 г. предсказал победу Биллу Клинтону на выборах в США. Более того, они могли также дать совет Бушу, какие действия предпринять, чтобы не потерять власть, но Буш их не услышал.
Традиционной областью применения нейропроцессоров остаются задачи узнавания изображений, речи, радарных сигналов.
Одно из новых, но впечатляющих приложений - физика высоких энергий (элементарных частиц). В задачах этой науки необходимо в огромном потоке данных от многочисленных датчиков сигналов от элементарных частиц в детекторах ускорителей разного рода, найти комбинации данных, означающих наличие определенных известных или предполагаемых событий. Предварительная обработка информации в этих случаях может быть выполнена нейропроцессорами, "натренированными" методами численного моделирования соответствующих процессов на поиск заданных событий.
И все же основной областью применения нейропроцессоров, скорее всего, станет использование в системах управления и поведения роботами. Глава фирмы, занимающей бесспорно первое место в мире по приложениям нейросетевых систем, автор термина NEUROCOMPUTER , американский профессор из калифорнийского города Сан-Диего Роберт Хехт-Нильсен полагает, что основной продукцией, производимой промышленными фирмами через 10 лет, станут "нейровычислительные роботы" (НВР).В частности, появятся разнообразные работы для выполнения домашней работы (няньки, прачки, кухарки...). Производство НВР быстро превзойдет по объему производство автомобилей и перейдет во все подавляющее производство роботов, производящих роботов...
Представляет такого рода виток спирали опасность человечеству или нет, я сейчас судить не берусь. Но реальные события этой предполагаемой совершенно новой промышленной революции начнутся лет через пять, т.е. года с 1999 (см. раздел 1 данной статьи).
Отступление 2: нейронная бомба и психотронное оружие
Когда в журнале "Успехи физических наук" стали появляться статьи в стиле теории Хопфилда, т.е. связанные с фазовыми переходами в нейронных системах корректоры упорно исправляли в этих статьях слово нейрон на слово нейтрон. Аналогичным образом - по аллитерации нейрон-нейтрон возникло сочетание "нейронная бомба". Однако связь здесь оказалась в действительности более глубокой. Во всем мире военные проявляют огромный интерес к нейровычислительным системам. В частности, нейросетевые исследования и разработки финансируются в рамках исследовательских программ всех родов войск США: во многих научных журналах опубликованы условия конкурсов на финансирование, проводимых этими ведомствами. Российские военные также проявляют интерес к научным конференциям и выставкам по нейросетевой тематике, проводимым в России. Не исключено, что на вооружении каких-то стран уже имеются нейронные снаряды-комикадзе, чей нейросетевой "интеллект" направлен на уничтожение каких-то конкретных целей. Таким образом нейронные технологии таят в себе определенные потенциальные опасности и должны постоянно находиться в сфере общественного внимания.
Чисто "по смежности" проблематики упомяну и проблему "психотронного оружия". Речь идет о том, что какими-то незаметными электромагнитными или просто слабыми воздействиями можно "зомбировать" большие массы людей. На мой взгляд такая возможность нереальна. Она время от времени муссируется средствами массовой информации и возможно даже и вызывает какую-то реакцию у потенциальных "заказчиков" - разработчиков оружия или противооружия. Но, к счастью, сейчас сколько-нибудь серьезной опасности отсюда не исходит. Если же, - не дай бог, - у серьезных специалистов возникнут опасения, что мечты о психотронном оружии становятся реальностью, то, разумеется, нужны глобальные (на уровне ООН) скоординированные действия мирового сообщества, видимо, такого же масштаба, как действия по защите от ядерной радиации или действия по борьбе с наркотиками.
Отступление I: Российская физиология и прогресс мировой науки
Великий Иван Петрович Павлов обнаружил простейший существенный фундаментальный элементарный блок, на использовании которого строится, в основном, работа мозга. Это - элементарный (или, скорее - атомарный) условный рефлекс. Сейчас это бесспорно и признается всей мировой наукой. Но, разумеется, как прогресс в современной физике зиждется на достижениях Ньютона, но отнюдь к ним не сводится, так и прогресс в науке о мозге в существенной степени базируясь на новом понимании достижений Павлова, весьма многосторонен и многопланов.
Не удержусь и помяну недоброй памяти годы, когда - о, ирония судьбы, - в нашей стране утверждалось, что все, кроме условных рефлексов - буржуазное мракобесие (Павловская сессия Академии медицинских наук СССР, 1950 г.). Этот пример показывает, что даже в основе своей верные предпосылки могут отнюдь не вести к храму знаний. Для тех, кто не застал те годы, напомню: в 30-е - 50-е годы "советская физиологическая наука" догматизировала результаты нескольких отечественных столпов науки (условные рефлексы Павлова, диалектику торможения через возбуждение (парабиоз, доминанта и т.д.) Сеченова, Введенского и Ухтомского, фазовую концепцию нервного возбуждения Насонова и Александрова), а все остальное, включая кибернетику, предавала анафеме как "механицизм и метафизику".
Итак, достаточно давно стало ясно, что интеллектуальные процессы идут в коре больших полушарий. Павлов указал на условный рефлекс, как на один из основных "атомов" этих процессов в коре. В российской науке поколение чуть постарше нас (лет на 10-15 ) в силу только что упомянутых причин разделилось на адептов и сокрушителей идеологии "коры больших полушарий". Эта кора очень сложна и, как казалось "диссидентам", слишком сложна для того чтобы всерьез надеяться понять детали происходящих в ней нервных процессов. Гораздо больше шансов было разобраться с механизмами работы более просто устроенных структур: спинного мозга, мозжечка, гиппокампа.
Я сформировался как специалист по устройству и работе мозжечка.
Надо сказать, что придя студентом МФТИ в 1962 г. в теоретический отдел Института биофизики АН СССР, возглавлявшийся уже тогда великим математиком и ныне здравствующим академиком И.М. Гельфандом, я был всерьез обижен тем, что мне вместо мышления предложили заниматься управлением движениями, а вместо большого мозга (т.е. коры больших полушарий) - мозжечком. Молодость, молодость..., это только в самое последнее время стало понятно, что распространенное (к сожалению) высказывание о футболистах, мол, ноги есть - ума не надо, глубоко неверно. Современные системы искусственного интеллекта прекрасно играют в шахматы, а вот в футбол - научатся нескоро. Словом, интеллектуальная сфера есть только малая надводная часть айсберга мыслительной деятельности. Я не говорю о подсознательном в традиционном фрейдистском понимании (это - отдельный предмет), а о массе процессов переработки огромных объемов поступающей в мозг первичной информации, соотнесении ее с тем, что хранится в мозге, и синтезе сигналов управления огромным числом степеней свободы организма.
Эти информационные процессы, особенно их периферическая часть, связанная непосредственно с сенсорами и преобразователями внешних воздействий в энергию нервных импульсов, а также первичная обработка потоков этих импульсов, - требуют огромных вычислительных ресурсов, имеющихся в нервной системе, и плохо получающихся в технических системах.
Сказанное зафиксировано в названиях и идеологии всемирных современных научно-технических суперпроектов (программ) века.
В предшествующее десятилетие развитие средств вычислительной техники во всем мире испытало сильное влияние со стороны инициированной Японией программы "Пятое поколение компьютеров". Основным лозунгом этой программы было развитие систем искусственного интеллекта на основе алгоритмических языков. В 1992 г. программа "Пятое поколение" была завершена и ей на смену пришла программа "Вычисления в Реальном мире".
Надо сказать, что придя студентом МФТИ в 1962 г. в теоретический отдел Института биофизики АН СССР, возглавлявшийся уже тогда великим математиком и ныне здравствующим академиком И.М. Гельфандом, я был всерьез обижен тем, что мне вместо мышления предложили заниматься управлением движениями, а вместо большого мозга (т.е. коры больших полушарий) - мозжечком. Молодость, молодость..., это только в самое последнее время стало понятно, что распространенное (к сожалению) высказывание о футболистах, мол, ноги есть - ума не надо, глубоко неверно. Современные системы искусственного интеллекта прекрасно играют в шахматы, а вот в футбол - научатся нескоро. Словом, интеллектуальная сфера есть только малая надводная часть айсберга мыслительной деятельности. Я не говорю о подсознательном в традиционном фрейдистском понимании (это - отдельный предмет), а о массе процессов переработки огромных объемов поступающей в мозг первичной информации, соотнесении ее с тем, что хранится в мозге, и синтезе сигналов управления огромным числом степеней свободы организма.
Эти информационные процессы, особенно их периферическая часть, связанная непосредственно с сенсорами и преобразователями внешних воздействий в энергию нервных импульсов, а также первичная обработка потоков этих импульсов, - требуют огромных вычислительных ресурсов, имеющихся в нервной системе, и плохо получающихся в технических системах.
Сказанное зафиксировано в названиях и идеологии всемирных современных научно-технических суперпроектов (программ) века.
В предшествующее десятилетие развитие средств вычислительной техники во всем мире испытало сильное влияние со стороны инициированной Японией программы "Пятое поколение компьютеров". Основным лозунгом этой программы было развитие систем искусственного интеллекта на основе алгоритмических языков. В 1992 г. программа "Пятое поколение" была завершена и ей на смену пришла программа "Вычисления в Реальном мире".
Информатика стремительно меняет свое лицо
Информатика стремительно меняет свое лицо - только успевай приспосабливаться. Развивается все: и возможности компьютеров растут, и новые программные продукты открывают целый мир ранее недоступных интеллектуальных услуг, и меняются стили программирования - объектный подход, визуальное программирование и прочая, и прочая, и прочая...
Нейроинформатика - один из новых ликов информатики. Это область науки и интеллектуальной практики, переживающая период экспоненциального роста: растет число вовлеченных людей и публикаций, журналов и лабораторий, вложений и изобретений.
Чем это кончится? Поживем - увидим. А пока будем работать сами и изучать чужие результаты, чтобы не отстать, не остаться на перроне, глядя вслед уходящему поезду научно-технического прогресса.
Вот уже четыре года подряд в Красноярске в первую пятницу октября собираются десятки специалистов из разных городов на Всероссийский семинар "Нейроинформатика и ее приложения". Интерес к семинару растет, все чаще научные руководители приезжают на него с аспирантами и молодыми сотрудниками. Одновременно с семинаром уже дважды проводились Всероссийские школы.
В предлагаемой книге собрано несколько основных лекций Всероссийской школы "Нейроинформатика-96" и докладов 4 Всероссийского семинара. Яркая вводная лекция Президента Российской ассоциации нейроинформатики профессора Виталия Львовича Дунина-Барковского, три фундаментальных лекции автора ряда книг и классических результатов профессора Александра Николаевича Горбаня. Эти известные ученые и сопредседатели Оргкомитета открывают книгу. Авторы двух других лекций - молодые, но очень заметные в российской нейроинформатике ученые - С. А. Терехов и Д. А. Россиев. Они оба лидеры: зав. лабораторией знаменитого ВНИИТФ (под Челябинском) Сергей Александрович Терехов многое сделал в разработке технических приложений нейронных сетей, а тридцатилетний доктор медицинских наук, зав. сектором медицинской нейроинформатики Красноярской медицинской академии Дмитрий Анатольевич Россиев - безусловный лидер в области медицинской нейроинформатики.
Их лекции, посвященные, соответственно, техническим и медицинским приложениям нейр онных сетей, служат хорошим введением в проблему.
Остальные лекции более специальны. Их авторы, в основном, молоды - как и сама нейроинформатика. Оригинальные алгоритмы оценки погрешностей в нейронных сетях, анализ проблемы скрытых параметров и новый подход к восстановлению неизвестных данных (и даже целая таблица предсказаний отсутствующих в справочниках потенциалов ионизации), описание различных обобщений сетей Хопфилда, предназначенных для создания ассоциативной памяти - все это важно для понимания нейроинформатики.
Особое место занимает последняя лекция. Ее автор - создатель многих известных в России нейропрограмм Е.М. Миркес - описывает методы производства знаний из данных с помощью нейронных сетей. Это - одна из самых старых проблем науки, старше, чем компьютеры, чем информатика, и, тем более, чем нейроинформатика. Оказывается, что обучаемые нейронные сети даже на персональном компьютере могут производить (с помощью пользователя) нетривиальные теоретические построения. Модельный пример простой, но важной политологической теории, построенный на основе данных о президентских выборах в США, убеждает хотя бы в том, что работать с такими средствами интересно!
Несколько слов о том, как лучше пользоваться предлагаемой книгой. Она рассчитана на две категории читателей. Если Вы математик или физик-теоретик, либо просто имеете вкус к теоретическому мышлению, то Вы получите много удовольствия, прорабатывая первые три лекции - шаг за шагом, страницу за страницей. После этого можно ознакомиться с прекрасным изложением различных аспектов приложений нейронных сетей ( лекции 4 и 5), не особенно входя в детали, уделить повышенное внимание шестой лекции, где изложен красивый алгоритм оценки погрешностей в работе нейронных сетей, и поискать интересующие Вас вопросы в остальных лекциях.
Если же Вас больше интересуют приложения нейронных сетей, то надо (не особенно углубляясь) познакомиться с первыми тремя лекциями (1, 2 и 3), разбирая в первую очередь определения, примеры, формулировки теорем и алгоритмов.Доказательства можно (а при первом чтении - нужно) пропускать. Вам адресованы четвертая и пятая лекции - читайте их, по мере необходимости обращаясь к первым трем. И опять же, пробегите остальные лекции в поисках интересного для Вас материала.
Ежегодный семинар поддерживается Красноярским краевым фондом науки. Это издание также подготовлено с его помощью.
Ответственный редактор,
доктор физ.-мат. наук, профессор Е.А. Новиков
Real World Computing (RWC)
Я привожу исходное название этой международной программы. Оно возникло и провозглашено в весьма патриотичной и отнюдь не англоязычной Японии, именно в той форме, как здесь написано, и без перевода понятно научной аудитории любой национальности.
Итак, программа "Вычисления в Реальном мире". Речь идет прежде всего о том, чтобы дать вычислительным и управляющим системам возможность самостоятельно, без помощи "переводчика"-человека воспринимать воздействия внешнего мира и действовать в нем. Авторы программы огромную роль - до 30-40% ее содержания отводят исследованию естественных и созданию искусственных нейросетевых систем.
Искусственные нейронные сети, они же коннекционистские или связевые системы представляют собой устройства, использующие огромное число элементарных условных рефлексов, называемых по имени недавно умершего канадского физиолога синапсами Хебба. Такой синапс, как основу возможных механизмов памяти и поведения, Д.Хебб описал теоретически в 1949 году, т.е. в первые годы после рождения кибернетики. Уже сейчас искусственные нейронные сети применяются для решения очень многих задач обработки изображений, управления роботами и непрерывными производствами, для понимания и синтеза речи, для диагностики заболеваний людей и технических неполадок в машинах и приборах, для предсказания курсов валют и результатов скачек. Я ограничусь перечислением, поскольку подробности займут слишком много места.
Таков один из "слонов", на котором сейчас стоит платформа современного научно-технического прогресса и одно из важнейших его направлений - программа RWC, провозглашенная Японией, как лидером современного научно-технического прогресса (во всяком случае - в отношении производства предметов и товаров в невоенных целях).
Темп прогресса в науке
В настоящее время все окружающее изменяется необычайно быстро. Разумеется, так было всегда. Единственное различие между прошлым и настоящим состоит в изменении субъекта быстрых изменений. Сами же изменения и быстрый, порой мгновенный рост подчиняются широко известному закону экспоненциального роста в ограниченном объеме. Я напомню читателям в двух словах, в чем состоит этот закон. Он прекрасно иллюстрируется задачей о банке с микробами.
Итак: отдельные особи микробов вида M делятся каждую секунду (одна на две) и находятся в стеклянной (трехлитровой) банке. По условию задачи, если в начальный момент времени в банке находится один микроб, то ровно через одни сутки банка наполнится до краев.
Вопрос задачи: "За какое время банка наполнится наполовину?" Ответ - за одни сутки без одной секунды.
Не укладывается в воображении то, что за одни сутки без 20 секунд банка заполнена лишь на одну миллионную часть. Решение этой задачи можно проиллюстрировать графиком - переход с 0 на 1 происходит в течение 10 секунд, т.е. практически за одну десятитысячную часть суток и на графике выглядит как резкая ступенька.
Знания о механизмах мозга представляют типичный пример экспоненциального роста в ограниченном объеме. Специалисты уже сейчас могут констатировать: нам известно уже очень много: 1/10 , 1/1000 или 1/1000000 часть всех механизмов мозга. Время удвоения знаний - год (или 5 лет, что в общем-то не очень существенно). В любом случае мы находимся вблизи той точки во времени, когда практически все о работе мозга нам станет известно. Таково мое восприятие "десятилетия мозга", провозглашенного Дж. Бушем в 1990 г. То есть сейчас исследователи мозга, выражаясь языком Колумба, "видят берег". Постараюсь дать читателям хотя бы некоторое представление об очертаниях этого берега.
НЕЙРОКИБЕРНЕТИКА, НЕЙРОИНФОРМАТИКА, НЕЙРОКОМПЬЮТЕРЫ
В.Л. Дунин-Барковский
НИИ нейрокибернетики им. А.Б. Когана1)
Ростовского Госуниверситета, Ростов-на-Дону
Архитектура нейронных сетей
Перейдем теперь к вопросу: как можно составлять эти сети? Строго говоря, как угодно, лишь бы входы получали какие-нибудь сигналы. Но такой произвол слишком необозрим, поэтому используют несколько стандартных архитектур, из которых путем вырезания лишнего или (реже) добавления строят большинство используемых сетей.
Сначала следует договориться о том, как будет согласована работа различных нейронов во времени. Как только в системе возникает более одного элемента, встает вопрос о синхронности функционирования. Для привычных нам всем программных имитаторов нейронных сетей на цифровых ЭВМ такого вопроса нет только из-за свойств основного компьютера, на котором реализуются нейронные сети. Для других способов реализации такой вопрос весьма важен. Все же здесь и далее рассматриваются только нейронные сети, синхронно функционирующие в дискретные моменты времени: все нейроны срабатывают "разом".
В зоопарке нейронных сетей можно выделить две базовых архитектуры - слоистые и полносвязные сети.
Рис. 1.7. Слоистая сеть
Слоистые сети: нейроны расположены в несколько слоев (рис. 1.7). Нейроны первого слоя получают входные сигналы, преобразуют их и через точки ветвления передают нейронам второго слоя. Далее срабатывает второй слой и т.д. до k-го слоя, который выдает выходные сигналы для интерпретатора и пользователя. Если не оговорено противное, то каждый выходной сигнал i-го слоя подается на вход всех нейронов i+1-го. Число нейронов в каждом слое может быть любым и никак заранее не связано с количеством нейронов в других слоях. Стандартный способ подачи входных сигналов: все нейроны первого слоя получают каждый входной сигнал. Особое распространение получили трехслойные сети, в которых каждый слой имеет свое наименование: первый - входной, второй - скрытый, третий - выходной.
Полносвязные сети: каждый нейрон передает свой выходной сигнал остальным нейронам, включая самого себя. Выходными сигналами сети могут быть все или некоторые выходные сигналы нейронов после нескольких тактов функционирования сети.
Все входные сигналы подаются всем нейронам.
Элементы слоистых и полносвязных сетей могут выбираться по-разному. Существует, впрочем, стандартный выбор - нейрон с адаптивным неоднородным линейным сумматором на входе (рис. 1.5).
Для полносвязной сети входной сумматор нейрона фактически распадается на два: первый вычисляет линейную функцию от входных сигналов сети, второй - линейную функцию от выходных сигналов других нейронов, полученных на предыдущем шаге.
Функция активации нейронов (характеристическая функция)
Составление сети из нейронов стандартного вида (рис. 1.5) не является обязательным. Слоистая или полносвязная архитектуры не налагают существенных ограничений на участвующие в них элементы. Единственное жесткое требование, предъявляемое архитектурой к элементам сети, это соответствие размерности вектора входных сигналов элемента (она определяется архитектурой) числу его входов.
Если полносвязная сеть функционирует до получения ответа заданное число тактов k, то ее можно представить как частный случай k-слойной сети, все слои которой одинаковы и каждый из них соответствует такту функционирования полносвязной сети.
Существенное различие между полносвязной и слоистой сетями возникает тогда, когда число тактов функционирования заранее не ограничено - слоистая сеть так работать не может.
Элементы нейронных сетей
Для описания алгоритмов и устройств в нейроинформатике выработана специальная "схемотехника", в которой элементарные устройства - сумматоры, синапсы, нейроны и т.п. объединяются в сети, предназначенные для решения задач.
Интересен статус этой схемотехники - для многих начинающих кажется неожиданным, что ни в аппаратной реализации нейронных сетей, ни в профессиональном программном обеспечении все эти элементы вовсе не обязательно реализуются как отдельные части или блоки. Используемая в нейроинформатике идеальная схемотехника представляет собой особый язык для представления нейронных сетей и их обсуждения. При программной и аппаратной реализации выполненные на этом языке описания переводятся на языки другого уровня, более пригодные для реализации.
Самый заслуженный и, вероятно, наиболее важный элемент нейросистем - это адаптивный сумматор . Адаптивный сумматор вычисляет скалярное произведение вектора входного сигнала x на вектор параметров
. На схемах будем обозначать его так, как показано на рис. 1.1. Адаптивным называем его из-за наличия вектора настраиваемых параметров . Для многих задач полезно иметь линейную неоднородную функцию выходных сигналов. Ее вычисление также можно представить с помощью адаптивного сумматора, имеющего n+1 вход и получающего на 0-й вход постоянный единичный сигнал (рис. 1.2).Рис. 1.1. Адаптивный сумматор.
Рис. 1.2. Неоднородный адаптивный сумматор
Рис. 1.3. Нелинейный преобразова-тель сигнала.
Рис. 1.4. Точка ветвления
Рис. 1.5. Формальный нейрон
Нелинейный преобразователь сигнала изображен на рис. 1.3. Он получает скалярный входной сигнал x и переводит его в
.Точка ветвления служит для рассылки одного сигнала по нескольким адресам (рис. 1.4). Она получает скалярный входной сигнал x и передает его всем своим выходам. Стандартный формальный нейрон составлен из входного сумматора, нелинейного преобразователя и точки ветвления на выходе (рис. 1.5).
Линейная связь - синапс - отдельно от сумматоров не встречается, однако для некоторых рассуждений бывает удобно выделить этот элемент (рис. 1.6). Он умножает входной сигнал x на "вес синапса"
.Рис. 1.6. Синапс
Также бывает полезно "присоединить" связи не ко входному сумматору, а к точке ветвления. В результате получаем элемент, двойственный адаптивному сумматору и называемый "выходная звезда". Его выходные связи производят умножение сигнала на свои веса.
Итак, дано описание основных элементов, из которых составляются нейронные сети.
Нейробум: поэзия и проза нейронных сетей
Вычислительный центр СО РАН в г. КрасноярскеА.Н.Горбань
В словах "искусственные нейронные сети" слышатся отзвуки фантазий об андроидах и бунте роботов, о машинах, заменяющих и имитирующих человека. Эти фантазии интенсивно поддерживаются многими разработчиками нейросистем: рисуется не очень отдаленное будущее, в котором роботы осваивают различные виды работ, просто наблюдая за человеком, а в более отдаленной перспективе - человеческое сознание и личность перегружаются в искусственную нейронную сеть - появляются шансы на вечную жизнь.
Поэтическая игра воображения вовлекает в работу молодежь, поэзия рекламы создает научную моду и влияет на финансовые вложения. Можете ли Вы четко различить, где кончается бескорыстная творческая игра и начинается реклама? У меня такое однозначное различение не получается: это как вопрос о искренности - можно сомневаться даже в своей собственной искренности.
Итак: игра и мода как важные движущие силы.
В словах "модное научное направление" слышится нечто неоднозначное - то ли пренебрежение, смешанное с завистью, то ли еще что-то. А вообще, мода в науке - это хорошо или плохо? Дадим три ответа на этот вопрос.
Мода - это хорошо! Когда в науке появляется новая мода, тысячи исследователей, грустивших над старыми темами, порядком надоевшими еще со времени писания диссертации, со свежим азартом бросаются в дело. Новая мода позволяет им освободиться от личной истории.
Мы все зависим от своего прошлого, от привычных дел и привычных мыслей. Так давайте же приветствовать все, что освобождает нас от этой зависимости! В новой модной области почти нет накопленных преимуществ - все равны. Это хорошо для молодежи.
Мода - это плохо! Она противоречит глубине и тщательности научного поиска. Часто "новые" результаты, полученные в погоне за модой, суть всего-навсего хорошо забытые старые, да еще нередко и перевранные. Погоня за модой растлевает, заставляет переписывать старые работы и в новой словесной упаковке выдавать их за свои.
Мода - источник сверххалтуры. Примеров тому - тысячи.
"Гений - это терпение мысли." Так давайте же вслед за Ньютоном и другими Великими культивировать в себе это терпение. Не будем поддаваться соблазну моды.
Мода в науке - это элемент реальности. Так повелось во второй половине XX века: наука стала массовой и в ней постоянно вспыхивают волны моды. Можно ли относиться к реальности с позиций должного: так, дескать, должно быть, а этак - нет? Наверное, можно, но это уж точно непродуктивно. Волны моды и рекламные кампании стали элементом организации массовой науки и с этим приходится считаться, нравится нам это или нет.
Нейронные сети нынче в моде и поэтическая реклама делает свое дело, привлекает внимание. Но стоит ли следовать за модой? Ресурсы ограничены - особенно у нас, особенно теперь. Все равно всего на всех не хватит. И возникают вопросы:
нейрокомпьютер - это интеллектуальная игрушка или новая техническая революция?что нового и полезного может сделать нейрокомпьютер?
За этими вопросами скрыты два базовых предположения:
на новые игрушки, даже высокоинтеллектуальные, средств нет;нейрокомпьютер должен доказать свои новые возможности - сделать то, чего не может сделать обычная ЭВМ, - иначе на него не стоит тратиться.
У энтузиастов есть свои рекламные способы отвечать на заданные вопросы, рисуя светлые послезавтрашние горизонты. Но все это в будущем. А сейчас? Ответы парадоксальны:
нейрокомпьютеры - это новая техническая революция, которая приходит к нам в виде интеллектуальной игрушки (вспомните - и персональные ЭВМ были придуманы для игры!);для любой задачи, которую может решить нейрокомпьютер, можно построить более стандартную специализированную ЭВМ, которая решит ее не хуже, а чаще всего - даже лучше.
Зачем же тогда нейрокомпьютеры? Вступая в творческую игру, мы не можем знать, чем она кончится, иначе это не Игра. Поэзия и реклама дают нам фантом, призрак результата, погоня за которым - важнейшая часть игры. Столь же призрачными могут оказаться и прозаичные ответы - игра может далеко от них увести.
Но и они необходимы - трудно бегать по облакам и иллюзия практичности столь же важна, сколь и иллюзия величия. Вот несколько вариантов прозаичных ответов на вопрос "зачем?" - можно выбрать, что для Вас важнее:
А. Нейрокомпьютеры дают стандартный способ решения многих нестандартных задач. И неважно, что специализированная машина лучше решит один класс задач. Важнее, что один нейрокомпьютер решит и эту задачу, и другую, и третью - и не надо каждый раз проектировать специализированную ЭВМ - нейрокомпьютер сделает все сам и почти не хуже.Б. Вместо программирования - обучение. Нейрокомпьютер учится - нужно только формировать учебные задачники. Труд программиста замещается новым трудом - учителя (может быть, надо сказать - тренера или дрессировщика). Лучше это или хуже? Ни то, ни другое. Программист предписывает машине все детали работы, учитель - создает "образовательную среду", к которой приспосабливается нейрокомпьютер. Появляются новые возможности для работы.В. Нейрокомпьютеры особенно эффективны там, где нужно подобие человеческой интуиции - для распознавания образов (узнавания лиц, чтения рукописных текстов), перевода с одного естественного языка на другой и т.п. Именно для таких задач обычно трудно сочинить явный алгоритм.Г. Гибкость структуры: можно различными способами комбинировать простые составляющие нейрокомпьютеров - нейроны и связи между ними. За счет этого на одной элементной базе и даже внутри "тела" одного нейрокомпьютера можно создавать совершенно различные машины. Появляется еще одна новая профессия - "нейроконструктор" (конструктор мозгов).Д. Нейронные сети позволяют создать эффективное программное обеспечение для высокопараллельных компьютеров. Для высокопараллельных машин хорошо известна проблема: как их эффективно использовать - как добиться, чтобы все элементы одновременно и без лишнего дублирования вычисляли что-нибудь полезное? Создавая математическое обеспечения на базе нейронных сетей, можно для широкого класса задач решить эту проблему.
Если перейти к еще более прозаическому уровню повседневной работы, то нейронные сети - это всего-навсего сети, состоящие из связанных между собой простых элементов - формальных нейронов. Значительное большинство работ по нейроинформатике посвящено переносу различных алгоритмов решения задач на такие сети.
Ядром используемых представлений является идея о том, что нейроны можно моделировать довольно простыми автоматами, а вся сложность мозга, гибкость его функционирования и другие важнейшие качества определяются связями между нейронами. Каждая связь представляется как совсем простой элемент, служащий для передачи сигнала. Предельным выражением этой точки зрения может служить лозунг: "структура связей - все, свойства элементов - ничто".
Совокупность идей и научно-техническое направление, определяемое описанным представлением о мозге, называется коннекционизмом (по-ангийски connection - связь). Как все это соотносится с реальным мозгом? Так же, как карикатура или шарж со своим прототипом-человеком - весьма условно. Это нормально: важно не буквальное соответствие живому прототипу, а продуктивность технической идеи.
С коннекционизмом тесно связан следующий блок идей:
однородность системы (элементы одинаковы и чрезвычайно просты, все определяется структурой связей);надежные системы из ненадежных элементов и "аналоговый ренессанс" - использование простых аналоговых элементов;"голографические" системы - при разрушении случайно выбранной части система сохраняет свои полезные свойства.
Предполагается, что система связей достаточно богата по своим возможностям и достаточно избыточна, чтобы скомпенсировать бедность выбора элементов, их ненадежность, возможные разрушения части связей.
Коннекционизм и связанные с ним идеи однородности, избыточности и голографичности еще ничего не говорят нам о том, как же такую систему научить решать реальные задачи. Хотелось бы, чтобы это обучение обходилось не слишком дорого.
На первый взгляд кажется, что коннекционистские системы не допускают прямого программирования, то есть формирования связей по явным правилам.
Это, однако, не совсем так. Существует большой класс задач: нейронные системы ассоциативной памяти, статистической обработки, фильтрации и др., для которых связи формируются по явным формулам. Но еще больше (по объему существующих приложений) задач требует неявного процесса. По аналогии с обучением животных или человека этот процесс мы также называем обучением.
Обучение обычно строится так: существует задачник - набор примеров с заданными ответами. Эти примеры предъявляются системе. Нейроны получают по входным связям сигналы - "условия примера", преобразуют их, несколько раз обмениваются преобразованными сигналами и, наконец, выдают ответ - также набор сигналов. Отклонение от правильного ответа штрафуется. Обучение состоит в минимизации штрафа как (неявной) функции связей. Примерно четверть нашей книги состоит в описании техники такой оптимизации и возникающих при этом дополнительных задач.
Неявное обучение приводит к тому, что структура связей становится "непонятной" - не существует иного способа ее прочитать, кроме как запустить функционирование сети. Становится сложно ответить на вопрос: "Как нейронная сеть получает результат?" - то есть построить понятную человеку логическую конструкцию, воспроизводящую действия сети.
Это явление можно назвать "логической непрозрачностью" нейронных сетей, обученных по неявным правилам. В работе с логически непрозрачными нейронными сетями иногда оказываются полезными представления, разработанные в психологии и педагогике, и обращение с обучаемой сетью как с дрессируемой зверушкой или с обучаемым младенцем - это еще один источник идей. Возможно, со временем возникнет такая область деятельности - "нейропедагогика" - обучение искусственных нейронных сетей.
С другой стороны, при использовании нейронных сетей в экспертных системах на PC возникает потребность прочитать и логически проинтерпретировать навыки, выработанные сетью. В лекции 9 описаны служащие для этого методы контрастирования - получения неявными методами логически прозрачных нейронных сетей.Однако за логическую прозрачность приходится платить снижением избыточности, так как при контрастировании удаляются все связи кроме самых важных, без которых задача не может быть решена.
Итак, очевидно наличие двух источников идеологии нейроинформатики. Это представления о строении мозга и о процессах обучения. Существуют группы исследователей и научные школы, для которых эти источники идей имеют символическое, а иногда даже мистическое или тотемическое значение. Но это все поэзия, а мы пока перейдем к прозе - к изучению формальных нейронов.
Нейронные сети - универсальные
Класс функций, вычислимый с помощью нейронных сетей, замкнут относительно линейных операций. Действительно, пусть есть нейронные сети S1, S2, ..., Sk, которые вычисляют функции F1, F2, ..., Fk от вектора входных сигналов x. Линейная комбинация a0+a1F1+a2F2+...+akFk вычисляется сумматором (рис. 1.2) с весами a0, a1, a2, ...,ak, на вход которого подаются выходные сигналы сетей S1, S2, ..., Sk. Разница в числе тактов функционирования этих сетей до получения ответа легко компенсируется "линиями задержки", составленными из связей (рис. 1.6) с единичным весом.
Кроме того, класс функций, вычислимый с помощью нейронных сетей, замкнут относительно унарной операции, осуществляемой нелинейным преобразователем сигнала, входящим в состав нейрона (см. рис. 1.3, 1.5): если сеть S вычисляет функцию F, то, подавая выход этой сети на вход нелинейного преобразователя (рис. 1.3), получим на его выходе функцию
.Тем самым, по теореме 1 множество функций, вычислимых нейронными сетями с заданной непрерывной нелинейной характеристической функцией, плотно в пространстве непрерывных функций от входных сигналов.
Теперь - об имитации гладких автоматов с помощью нейронных сетей. Если есть возможность с любой точностью приблизить любую непрерывную функцию и нет ограничений на способы соединения устройств, то можно сколь угодно точно имитировать работу любого непрерывного автомата. Покажем это.
Каждый автомат имеет несколько входов (n), несколько выходов (p) и конечный набор (s) параметров состояния. Он вычисляет s+p функций от n+s переменных. Аргументы этих функций - входные сигналы (их n) и текущие параметры состояния (их s). Значения функций - выходные сигналы (их p) и параметры состояния на следующем шаге (их s). Каждый такой автомат можно представить как систему из s+p более простых автоматов (рис. 1.9). Эти простые автоматы вычисляют по одной функции от n+s переменных. Смена состояний достигается за счет того, что часть значений этих функций на следующем шаге становится аргументами - так соединены автоматы (см. рис. 1.9).
Таким образом, без потери общности можно рассматривать сеть автоматов как набор устройств, каждое из которых вычисляет функцию нескольких переменных f(x1, ..., xn). Этот простой, но фундаментальный факт позволяет использовать предыдущие результаты. Нейронные сети позволяют с любой точностью вычислять произвольную непрерывную функцию f(x1, ..., xn). Следовательно, с их помощью можно сколь угодно точно аппроксимировать функционирование любого непрерывного автомата.
Рис. 1.9.
Главный вопрос этой лекции: что могут нейронные сети. Ответ получен: нейронные сети могут все. Остается открытым другой вопрос - как их этому научить?
Работа над лекцией была поддержана Красноярским краевым фондом науки, грант 6F0124.
© 2003-2007 INTUIT.ru. Все права защищены. |
Существуют ли функции многих переменных ?
Вопрос, вынесенный в заголовок раздела, естественно возникает при изучении возможностей нейронных сетей. Из схем предыдущих разделов видно, что нейронные сети вычисляют линейные функции, нелинейные функции одного переменного, а также всевозможные суперпозиции - функции от функций, получаемые при каскадном соединении сетей. Что можно получить, используя только такие операции? Какие функции удастся вычислить точно, а какие функции можно сколь угодно точно аппроксимировать с помощью нейронных сетей? Чтобы изучить возможности нейронных сетей, нужно ответить на эти вопросы.
Заданный вопрос имеет очень большую историю и заведомо старше, чем исследования искусственных нейронных сетей.
Какие функции может вычислять человек? Если мы умеем складывать и умножать числа, то мы можем точно вычислять многочлены и рациональные функции (отношения многочленов) с рациональными коэффициентами от рациональных же аргументов.
Можно, однако, задавать функции с помощью уравнений. Если считать решения нескольких простых уравнений известными, то класс вычисляемых функций расширится - решения некоторых более общих уравнений удастся выразить через эти, более простые функции.
Классический пример: если использовать радикалы - решения уравнений xn=a, то можно явно получить решения произвольных уравнений 2-й, 3-й и 4-й степеней. Так, функция 3-х переменных a, b, c - решение уравнения ax2+bx+c=0 - может быть точно выражена с помощью сложения, умножения, деления и функции одного переменного - квадратного корня.
Вопрос: можно ли представить решение любого алгебраического уравнения с помощью радикалов, был окончательно и отрицательно решен Абелем и Галуа - уже уравнения 5-й степени неразрешимы в радикалах.
Все же можно подбирать другие простые функции небольшого числа переменных - сложнее, чем радикалы, но проще, чем общие решения уравнений высоких степеней. Удастся ли с помощью этих функций построить решение любого уравнения? Вопрос был настолько важен, что Гильберт в списке своих проблем, которые, по его мнению, должны были определять развитие математики XX века, под номером 13 поместил следующую задачу:
Представляется ли корень уравнения
x7+ax3+bx2+cx+1=0
(как функция коэффициентов) суперпозицией каких-либо непрерывных функций двух переменных?
Для уравнений 5-й и 6- й степени такое представление возможно не только с помощью непрерывных, но даже аналитических функций.
Оказалось полезным абстрагироваться от уравнений и поставить общий вопрос: можно ли произвольную непрерывную функцию n переменных получить с помощью операций сложения, умножения и суперпозиции из непрерывных функций двух переменных? Ответ оказался положительным! В серии работ [1.1, 1.2, 1.3] А.Н.Колмогоров, затем В.И.Арнольд и вновь А.Н.Колмогоров решили эту проблему: можно получить любую непрерывную функцию n переменных с помощью операций сложения, умножения и суперпозиции из непрерывных функций одного переменного.
Последняя теорема А.Н.Колмогорова [1.3] из этой серии настолько проста и изящна, что мы чуть позже приведем ее целиком. А пока - несколько замечаний о условиях теоремы.
От условия непрерывности можно отказаться - тогда получится довольно тривиальный результат связанный, по существу, с равномощностью отрезка и куба любой размерности. Условие непрерывности нельзя значительно усилить: существуют аналитические функции многих переменных, которые не допускают представления с помощью суперпозиции аналитических функций двух переменных. Более того, все l раз непрерывно дифференцируемые функции трех переменных нельзя представить в виде суперпозиций функций двух переменных, каждая из которых дифференцируема [2l/3] раз и все частные производные которых порядка [2l/3] удовлетворяют условию Липшица (выражение [2l/3] означает целую часть числа 2l/3). Это доказано А.Г,Витушкиным [1.4].
(2) |
1. "Внутренние" функции и представления (2) совершенно не зависят от разлагаемой функции .
Для определения этих функций нам понадобятся некоторые предварительные построения. Рассмотрим изображенный на рис. 1.8 "город" - систему одинаковых "кварталов" (непересекающихся замкнутых квадратов), разделенных узкими "улицами" одной и той же ширины. Уменьшим гомотетично наш "город" в раз; за центр гомотетии можно принять, например, точку - мы получим новый" город", который будем называть "городом ранга 2". "Город ранга 3" точно также получается из "города ранга 2" гомотетичным уменьшением с коэффициентом гомотетии ; "город ранга 4" получается гомотетичным уменьшением в раз "города ранга 3" и т.д. Вообще "город ранга " получается из исходного "города" (который мы будем называть "городом первого ранга") гомотетичным уменьшением в раз (с центром гомотетии в ; впрочем, выбор центра гомотетии не существенен для дальнейшего).
Рис. 1.8. Система кварталов
Построенную систему "городов" мы назовем 1-й системой. "Город первого ранга -й системы" () получается из изображенного на рис. 1.8 "города" при помощи параллельного переноса, совмещающего точку с точкой . Нетрудно понять, что "улицы" "города" можно выбрать настолько узкими, что каждая точка плоскости будет покрыта по крайней мере тремя кварталами наших пяти "городов первого ранга". Точно так же "город -го ранга" -й системы () получается из "города -го ранга 1-й системы" параллельным переносом, переводящим точку в точку , где и получаются из точек и гомотетией, переводящей "город первого ранга" 1-й системы (т.е.
наш исходный "город") в "город - го ранга" той же системы; при этом каждая точка плоскости будет принадлежать кварталам по крайней мере трех из пяти "городов" любого фиксированного ранга .
Функцию
()
мы определим теперь так, чтобы она разделяла любые два "квартала" каждого "города" системы , т.е. чтобы множество значений, принимаемых на определенном "квартале" "города -го ранга" (здесь - произвольное фиксированное число) -й системы, не пересекалось с множеством значений, принимаемых на любом другом "квартале" того же "города". При этом нам, разумеется, будет достаточно рассматривать функцию на единичном квадрате (а не на всей плоскости).
Для того, чтобы функция разделяла "кварталы" "города первого ранга", можно потребовать, например, чтобы на проекциях "кварталов" "города" на ось весьма мало отличалась от различных целых чисел, а на проекциях "кварталов" на ось весьма мало отличалась от различных кратных (ибо при целых , , , , лишь если ). При этом наложенные условия не определяют пока еще, разумеется, функций и (на "улицах" функция вообще пока может задаваться совершенно произвольно); используя это, можно подобрать границы значений и на "кварталах" "города второго ранга" так, чтобы функция разделяла не только "кварталы" "города 1-го ранга", но и "кварталы" "города 2-го ранга". Намеченную программу можно осуществить, если достаточно велико (так что кварталы последующих рангов не соединяют кварталы предыдущих). А.Н. Колмогоров выбрал . Привлекая подобным же образом к рассмотрению "города" последующих рангов и уточняя каждый раз значения функций и , мы в пределе получим непрерывные функции и (можно даже потребовать, чтобы они были монотонными), удовлетворяющие поставленным условиям.
2. Функции разложения (2), напротив того, существенно зависят от исходной функции .
Для построения этих функций докажем прежде всего, что любую непрерывную функцию двух переменных и , заданную на единичном квадрате, можно представить в виде
(3) |
(3^а) |
(3^б) |
Выберем ранг столь большим, чтобы колебание (т.е. разность наибольшего и наименьшего значений) функции на каждом "квартале" любого из "городов ранга " не превосходило ; это, разумеется, возможно, так как с ростом ранга размеры " кварталов" уменьшаются неограниченно. Далее, пусть - определенный "квартал" "города 1-й системы" (и выбранного ранга ); в таком случае (непрерывная) функция принимает на этом "квартале" значения, принадлежащие определенному сегменту числовой оси (причем в силу определения функции этот сегмент не пересекается с сегментами значений, принимаемых на всех других "кварталах"). Положим теперь функцию на сегменте постоянной, равной значения, принимаемого функцией в какой-либо (безразлично какой) внутренней точке квартала (эту точку можно назвать "центром квартала"). Таким же образом мы определим функцию на любом другом из сегментов, задаваемых значениями функции на "кварталах" "города -го ранга" 1-й системы; при этом все значения будут по модулю не превосходить (ибо значение в "центре" любого "квартала" по модулю не превосходит ). Доопределим теперь функцию при тех значениях аргумента , при каких она еще не определена, произвольно, с тем лишь, чтобы она была непрерывна и чтобы выполнялось неравенство (3б); совершенно аналогично определим и все остальные функции ().
Докажем теперь, что разность
удовлетворяет условию (3а), т.е. что , где - произвольная точка единичного квадрата. Эта точка (как и все точки плоскости) принадлежит по крайней мере трем кварталам "городов ранга "; поэтому заведомо найдутся такие три из пяти функций , которые принимают в точке значение, равное значения в "центре" соответствующего "квартала", т.е.
отличающееся от не более чем на (ибо колебание на каждом квартале не превосходит ); сумма этих трех значений будет отличаться от по модулю не более чем на . А так как каждое из оставшихся двух чисел в силу (3) по модулю не превосходит то мы получаем:
что и доказывает (3а).
Применим теперь то же разложение (3) к входящей в (3) функции ; мы получим:
или
где
и
().
Затем мы применим разложение (3) к полученной функции и т.д.; после -кратного применения этого разложения мы будем иметь:
где
и
().
Последние оценки показывают, что при получим:
где стоящий справа бесконечный ряд сходится равномерно; также и каждый из пяти рядов
()
сходится равномерно, что позволяет ввести обозначения
().
Итак, окончательно получаем:
то есть требуемое разложение (2).
До сих пор речь шла о точном представлении функций многих переменных с помощью функций одного переменного. Оказалось, что в классе непрерывных функций такое представление возможно. Но кроме вопроса о точном представлении существует еще один - об аппроксимации. Можно даже предположить, что он важнее - вычисление большинства функций производится приближенно даже при наличии "точных" формул.
Приближение функций многочленами и рациональными функциями имеет историю, еще более давнюю, чем проблема точного представления. Знаменитая теорема Вейерштрасса утверждает, что непрерывную функцию нескольких переменных на замкнутом ограниченном множестве Q можно равномерно приблизить последовательностью полиномов: для любого ?>0 существует такой многочлен , что
Чтобы сформулировать обобщения и усиления теоремы Вейерштрасса, необходимо перейти к несколько более абстрактному языку. Рассмотрим компактное пространство X и алгебру C(X) непрерывных функций на X с вещественными значениями.
Сильным обобщением теоремы о возможности равномерного приближения непрерывных функций многочленами является теорема Стоуна [1.6, 1.7]:
Пусть - замкнутая подалгебра в C(X), и функции из E разделяют точки в X (то есть для любых различных существует такая функция , что ).
Тогда E=C(X) .
Теорема Стоуна обобщает теорему Вейерштрасса по двум направлениям. Во-первых, рассматриваются функции на произвольном компакте, а не только функции многих действительных переменных. Во-вторых, доказано утверждение, новое даже для функций одного переменного (не говоря уже о многих): плотно не только множество многочленов от координатных функций, но вообще кольцо многочленов от любого набора функций, разделяющих точки. Следовательно, плотно множество тригонометрических многочленов, множество линейных комбинаций функций вида exp[-(x-x0,Q(x-x0))], где (x,Qx) - положительно определенная квадратичная форма и др.
Дан рецепт конструирования таких обобщений: достаточно взять произвольный набор функций, разделяющих точки, построить кольцо многочленов от них - и получим плотное в C(X) множество функций.
Разложения по ортогональным системам функций (ряды Фурье и их многочисленные обобщения) не дают, вообще говоря, равномерного приближения разлагаемых функций - как правило, можно гарантировать лишь монотонное стремление к нулю интеграла квадрата остатка "функция минус приближение" с какой-либо положительной весовой функцией. Все же, обращаясь к задаче аппроксимации, нельзя забывать об ортогональных разложениях. Для ряда прикладных задач простота получения коэффициентов такого разложения может оказаться важнее, чем отсутствие гарантированной равномерности приближения.
Так существуют ли функции многих переменных? В каком-то смысле - да, в каком-то - нет. Все непрерывные функции многих переменных могут быть получены из непрерывных функций одного переменного с помощью линейных операций и суперпозиции. Требования гладкости и аналитичности существенно усложняют вопрос. На этом фоне совершенно неожиданно выглядит тот факт, что любой многочлен от многих переменных может быть получен из одного произвольного нелинейного многочлена от одного переменного с помощью линейных операций и суперпозиции. Простое доказательство этой теоремы будет дано в разделе 6.
Точное представление многочленов
В этом разделе исследуются полугруппы полиномов от одного переменного относительно суперпозиции. Показано, что если такая полугруппа содержит все многочлены первой степени и хотя бы один - более высокой, то она включает все многочлены. На основании этого факта доказано, что всегда возможно представить многочлен от многих переменных суперпозициями произвольного нелинейного многочлена от одного переменного и линейных функций.
Вернемся к классическому вопросу о представлении функций многих переменных с помощью функций меньшего числа переменных. Следует еще раз заметить, что классических вопроса существует не один, а два:
Можно ли получить точное представление функции многих переменных с помощью суперпозиции функций меньшего числа переменных?Можно ли получить сколь угодно точную аппроксимацию функции многих переменных с помощью некоторых более простых функций и операций?
В рамках первого вопроса особый интерес представляют конструкции, в которых для точного представления всех функций многих переменных используется один и тот же набор функций одного переменного.
Традиционно считается, что эти функции должны иметь весьма специальный и довольно экзотический вид, например, как в обсуждавшейся выше теореме Колмогорова, где использовались существенно негладкие функции.
Напротив, свобода в выборе функций одного переменного для решения второго вопроса при том же самоограничении (один набор функций одного переменного - для приближенного представления всех функций многих переменных) очень велика. Для этого, как показано в предыдущем разделе, можно использовать практически любую нелинейную функцию и достаточно всего одной.
Далее доказываются теоремы, относящиеся к первому вопросу (точное представление). В частности, показано, что можно точно представить любой многочлен от многих переменных с помощью суперпозиций произвольного нелинейного многочлена от одного переменного и линейных функций. Следовательно особенной пропасти между 1-м и 2-м вопросом не существует. Именно это обстоятельство побудило нас включить в книгу данный раздел.
Пусть R[X] - кольцо многочленов от одного переменного над полем R, - линейное пространство многочленов над R.
Предложение 1. Если E замкнуто относительно суперпозиции многочленов, содержит все многочлены первой степени и хотя бы один многочлен p(x) степени m>1, то E=R[X].
Доказательство. Заметим, что степень многочлена p'(x)=p(x+1)-p(x) равна m-1, и , так как E содержит многочлены первой степени (поэтому ), замкнуто относительно суперпозиции (поэтому ) и линейных операций (поэтому ).
Если m>2, то понижаем степень с помощью конечных разностей (переходим к p', p'' и т.д.), пока не получим многочлен второй степени. Вычитая из него линейную часть и умножая на константу, получаем: . Поэтому для любого имеем (т.к. E - полугруппа). Дальнейшее очевидно: как неоднократно отмечалось выше, отсюда следует, что для любых их произведение а с помощью умножения и сложения многочленов первой степени порождается все кольцо R[X].
Перейдем к задаче представления многочленов от многих переменных. Обозначим R[X1, ..., Xn] кольцо многочленов от n переменных над полем R.
Для каждого многочлена от одного переменного введем множество тех многочленов, которые можно выразить с его помощью, используя суперпозиции и линейные функции. Пусть p - многочлен от одного переменного, Ep[X1, ..., Xn] - множество многочленов от n переменных, которое можно получить из p и многочленов первой степени, принадлежащих R[X1, ..., Xn], с помощью операций суперпозиции, сложения и умножения на число.
Следующие два предложения дают удобную для дальнейшего характеризацию Ep[X1, ..., Xn] и следуют непосредственно из определений.
Предложение 2. Множество Ep[X1, ..., Xn] является линейным пространством над R и для любого многочлена g(x1, ... ,xn) из .
Предложение 3. Для данного p семейство линейных подпространств , содержащих все многочлены первой степени и удовлетворяющих условию
если , то ,
замкнуто относительно пересечений. Минимальным по включению элементом этого семейства является Ep[X1, ..., Xn].
Для любого линейного подпространства рассмотрим множество алгебраических унарных операций, которые переводят элементы E в элементы E:
для любого .
Предложение 4. Для любого линейного подпространства множество полиномов PE является линейным пространством над R, замкнуто относительно суперпозиции и содержит все однородные многочлены первой степени.
Если линейное пространство E содержит 1, а PE включает хотя бы один многочлен, степени m>1 (т.е. нелинейный), то PE=R[X].
Доказательство. Замкнутость PE относительно суперпозиции следует из определения, все однородные полиномы первой степени входят в PE, поскольку E является линейным пространством, отсюда также следует, что PE является линейным пространством. Наконец, если и PE содержит многочлен степени m>1, то , тогда PE=R[X] по предложению 1.
Теорема 3. Пусть - линейное подпространство, PE содержит хотя бы один многочлен степени m>1 и , тогда E является кольцом (с единицей).
Доказательство. По предложению 4 в условиях теоремы PE=R[X]. В частности, . Это означает, что для любого также и . Поэтому для любых получаем: .
Теорема 4. Для любого многочлена p степени m>1
Ep[X1, ..., Xn]=R[X1, ..., Xn]
Доказательство. Заметим, что E=Ep[X1, ..., Xn] - линейное подпространство в R[X1, ..., Xn], PE содержит хотя бы один многочлен (p) степени m>1 и E содержит все многочлены первой степени (и поэтому также 1). В силу теоремы 3, E является кольцом, а так как оно содержит все многочлены первой степени, то совпадает с R[X1, ..., Xn], поскольку, используя умножение и сложение можно из этих многочленов получить любой.
Таким образом, из p и многочленов первой степени с помощью операций суперпозиции, сложения и умножения на число можно получить все элементы R[X1, ..., Xn].
Универсальные аппроксимационные способности произвольной нелинейности и обобщенная теорема Стоуна
В этом разделе для множеств непрерывных функций, замкнутых относительно любой нелинейной операции (а не только для колец), доказана обобщенная аппроксимационная теорема Стоуна. Это интерпретируется как утверждение о универсальных аппроксимационных возможностях произвольной нелинейности: с помощью линейных операций и каскадного соединения можно из произвольного нелинейного элемента получить устройство, вычисляющее любую непрерывную функцию с любой наперед заданной точностью.
Рассмотрим компактное пространство X и алгебру C(X) непрерывных функций на X с вещественными значениями.
Кроме аппроксимации функций многочленами и их обобщениями из колец функций, разделяющих точки, в последнее время все большее внимание уделяется приближению функций многих переменных с помощью линейных операций и суперпозиций функций одного переменного. Такое приближение осуществляется специальными формальными "устройствами" - нейронными сетями. Каждая сеть состоит из формальных нейронов. Нейрон получает на входе вектор сигналов x, вычисляет его скалярное произведение на вектор весов a и некоторую функцию одного переменного
. Результат рассылается на входы других нейронов или передается на выход. Таким образом, нейронные сети вычисляют суперпозиции простых функций одного переменного и их линейных комбинаций.Доказан ряд теорем [1.8, 1.9, 1.10] об аппроксимации непрерывных функций многих переменных нейронными сетями с использованием практически произвольной непрерывной функции одного переменного. В данном разделе мы покажем, что эта функция действительно может быть произвольной и докажем обобщенную теорему Стоуна, естественным образом охватывающую и классическую теорему Стоуна, и аппроксимацию функций многих переменных суперпозициями и линейными комбинациями функций одного переменного.
Чтобы получить требуемое обобщение, перейдем от рассмотрения колец функций к изучению их алгебр, замкнутых относительно некоторой нелинейной унарной операции.
Пусть
- линейное пространство, C(R) - пространство непрерывных функций на действительной оси R, - нелинейная функция и для любого выполнено .В этом случае будем говорить, что E замкнуто относительно нелинейной унарной операции f.
Очевидный пример: множество функций n переменных, которые можно точно представить, используя заданную функцию одного переменного и линейные функции, является линейным пространством, замкнутым относительно нелинейной унарной операции f.
Замечание. Линейное пространство замкнуто относительно нелинейной операции f(x)=x2 тогда и только тогда, когда E является кольцом.
Действительно, поэтому для линейного пространства замкнутость относительно унарной операции f(x)=x2 равносильна замкнутости относительно произведения функций.
Согласно приведенному замечанию, теорема Стоуна может быть переформулирована так.
Пусть - замкнутое линейное подпространство в C(X), , функции из E разделяют точки в X и E замкнуто относительно нелинейной унарной операции f(x)=x2. Тогда E=C(X) .
Наше обобщение теоремы Стоуна состоит в замене f(x)=x2 на произвольную нелинейную непрерывную функцию.
Теорема 1. Пусть - замкнутое линейное подпространство в C(X), , функции из E разделяют точки в X и E замкнуто относительно нелинейной унарной операции . Тогда E=C(X) .
Доказательство. Рассмотрим множество всех таких , что , то есть для любого выполнено: . Обозначим это множество PE. Оно обладает следующими свойствами:
PE - полугруппа относительно суперпозиции функций;PE - замкнутое линейное подпространство в C(R) (в топологии равномерной сходимости на компактах); и .PE включает хоть одну непрерывную нелинейную функцию.
Дальнейшее следует из теоремы 2, которая является, по существу, подготовительной теоремой о полугруппах функций.
В этом случае будем говорить, что E замкнуто относительно нелинейной унарной операции f.
Очевидный пример: множество функций n переменных, которые можно точно представить, используя заданную функцию одного переменного и линейные функции, является линейным пространством, замкнутым относительно нелинейной унарной операции f.
Замечание. Линейное пространство замкнуто относительно нелинейной операции f(x)=x2 тогда и только тогда, когда E является кольцом.
Действительно, поэтому для линейного пространства замкнутость относительно унарной операции f(x)=x2 равносильна замкнутости относительно произведения функций.
Согласно приведенному замечанию, теорема Стоуна может быть переформулирована так.
Пусть - замкнутое линейное подпространство в C(X), , функции из E разделяют точки в X и E замкнуто относительно нелинейной унарной операции f(x)=x2. Тогда E=C(X) .
Наше обобщение теоремы Стоуна состоит в замене f(x)=x2 на произвольную нелинейную непрерывную функцию.
Теорема 1. Пусть - замкнутое линейное подпространство в C(X), , функции из E разделяют точки в X и E замкнуто относительно нелинейной унарной операции . Тогда E=C(X) .
Доказательство. Рассмотрим множество всех таких , что , то есть для любого выполнено: . Обозначим это множество PE. Оно обладает следующими свойствами:
PE - полугруппа относительно суперпозиции функций;PE - замкнутое линейное подпространство в C(R) (в топологии равномерной сходимости на компактах); и .PE включает хоть одну непрерывную нелинейную функцию.
Дальнейшее следует из теоремы 2, которая является, по существу, подготовительной теоремой о полугруппах функций.
Теорема 2. Пусть множество удовлетворяет условиям 1-4. Тогда P=C(R).
Доказательство опирается на три леммы.
Лемма 1. В условиях теоремы 2 существует дважды непрерывно дифференцируемая функция , не являющаяся линейной.
Доказательство. Пусть , v(x)=0 при |x|>1, . Рассмотрим оператор осреднения
Для любого ?>0 выполнено: .
Действительно, для каждого фиксированного y ((т.к. константы принадлежат E и E замкнуто относительно линейных операций и суперпозиции функций).
Интеграл . принадлежит E, так как E является замкнутым линейным подпространством в C(R), а этот интеграл пределом конечных сумм.
Функция принадлежит так как
(напомним, что v – функция с компактным носителем).
Существует такое ?>0, что функция не является линейной, поскольку не является линейной, поскольку , пространство линейных функций замкнуто, а f не является линейной функцией. Таким образом, в предположениях леммы существует нелинейная функция , которую можно выбрать в виде
Лемма 2. Пусть в условиях теоремы 2 существует дважды непрерывно дифференцируемая функция , не являющаяся линейной. Тогда функция q(x)=x2 принадлежит P.
Доказательство. Существует точка x0, для которой . Обозначим r(x)=2(g(x+x0)-g(x0)-xg'(x0))/g''(x0). Очевидно, что . Поэтому
при .
Поскольку P замкнуто, получаем: функция q(x)=x2принадлежит P.
Лемма 3. Пусть в условиях теоремы 2 функция q(x)=x2 принадлежит P. Тогда P является кольцом - для любых их произведение .
Доказательство. Действительно, и, так как P замкнуто относительно суперпозиции и линейных операций, то .
Доказательство теоремы 2 заканчивается обращением к классической теореме Вейерштрасса о приближении функций многочленами: из лемм 1-3 следует, что в условиях теоремы 2 P является кольцом и, в частности, содержит все многочлены (которые получаются из 1 и id с помощью умножения и линейных операций). По теореме Вейерштрасса отсюда следует, что P=C(R) .
Теоремы 1,2 можно трактовать как утверждения о универсальных аппроксимационных свойствах любой нелинейности: с помощью линейных операций и каскадного соединения можно из произвольных нелинейных элементов получить любой требуемый результат с любой наперед заданной точностью.
Настройка одноэлементных систем для решения задач
Даже системы из одного адаптивного сумматора находят очень широкое применение. Вычисление линейных функций необходимо во многих задачах. Вот неполный перечень "специальностей" адаптивного сумматора:
Линейная регрессия и восстановление простейших закономерностей [2.13, 2.14]; Линейная фильтрация и адаптивная обработка сигналов [2.15]; Линейное разделение классов и простейшие задачи распознавания образов [2.16, 2.17, 2.18].
Задача линейной регрессии состоит в поиске наилучшего линейного приближения функции, заданной конечным набором значений: дана выборка значений вектора аргументов x1, ..., xm, заданы значения функции F в этих точках: F(xi)=fi, требуется найти линейную (неоднородную) функцию
, ближайшую к F. Чтобы однозначно поставить задачу, необходимо доопределить, что значит "ближайшую". Наиболее популярен метод наименьших квадратов, согласно которому ищется из условия
(1) |
Необходимо особенно подчеркнуть, что метод наименьших квадратов не является ни единственным, ни наилучшим во всех отношениях способом доопределения задачи регрессии. Его главное достоинство - квадратичность минимизируемого критерия и линейность получаемых уравнений на коэффициенты
.Явные формулы линейной регрессии легко получить, минимизируя квадратичный критерий качества регрессии. Обозначим
Найдем производные минимизируемой функции H по настраиваемым параметрам:
где xij - j-я координата вектора xi.
Приравнивая частные производные H нулю, получаем уравнения, из которых легко найти все
(j=0,...,n). Решение удобно записать в общем виде, если для всех i=1,...,m обозначить и рассматривать n +1-мерные векторы данных xi и коэффициентов . ТогдаОбозначим p n +1-мерный вектор с координатами
; Q - матрицу размером с элементами .В новых обозначениях решение задачи линейной регрессии имеет вид:
(2) |
Пересчитывая по приведенным формулам p, Q, Q-1 и после каждого получения данных, получаем процесс, в котором последовательно уточняются уравнения линейной регрессии. И требуемый объем памяти, и количество операций имеют порядок n2 - из-за необходимости накапливать и модифицировать матрицу Q-1. Конечно, это меньше, чем потребуется на обычное обращение матрицы Q на каждом шаге, однако следующий простой алгоритм еще экономнее. Он вовсе не обращается к матрицам Q, Q-1 и основан на уменьшении на каждом шаге величины - квадрата ошибки на векторе данных xm +1 регрессионной зависимости, полученной на основании выборки .
Вновь обратимся к формуле (2) и будем рассматривать n +1-мерные векторы данных и коэффициентов. Обозначим . Тогда
(5) |
Если при каждом поступлении нового вектора данных x изменять указанным образом, то получим последовательную процедуру построения линейной аппроксимации функции F(x). Такой алгоритм обучения легко реализуется аппаратными средствами (изменение веса связи есть произведение прошедшего по ней сигнала xj на ошибку ? и на величину шага). Возникает, однако, проблема сходимости: если h слишком мало, то сходимость будет медленной, если же слишком велико, то произойдет потеря устойчивости и сходимости не будет вовсе. Детальному изложению этого подхода и его приложений посвящен учебник [2.15].
Задача четкого разделения двух классов по обучающей выборке ставится так: имеется два набора векторов x1, ..., xm и y1,...,ym. Заранее известно, что xi относится к первому классу, а yi - ко второму. Требуется построить решающее правило, то есть определить такую функцию f(x), что при f(x)>0 вектор x относится к первому классу, а при f(x)<0 - ко второму.
Координаты классифицируемых векторов представляют собой значения некоторых признаков (свойств) исследуемых объектов.
Эта задача возникает во многих случаях: при диагностике болезней и определении неисправностей машин по косвенным признакам, при распознавании изображений и сигналов и т.п.
Строго говоря, классифицируются не векторы свойств, а объекты, которые обладают этими свойствами. Это замечание становится важным в тех случаях, когда возникают затруднения с построением решающего правила - например тогда, когда встречаются принадлежащие к разным классам объекты, имеющие одинаковые признаки. В этих случаях возможно несколько решений:
искать дополнительные признаки, позволяющие разделить классы; примириться с неизбежностью ошибок, назначить за каждый тип ошибок свой штраф (c12 - штраф за то, что объект первого класса отнесен ко второму, c21 - за то, что объект второго класса отнесен к первому) и строить разделяющее правило так, чтобы минимизировать математическое ожидание штрафа; перейти к нечеткому разделению классов - строить так называемые "функции принадлежности" f1(x) и f2(x) - fi(x) оценивает степень уверенности при отнесении объекта к i-му классу (i=1,2), для одного и того же x может быть так, что и f1(x)>0, и f2(x)>0.
Линейное разделение классов состоит в построении линейного решающего правила - то есть такого вектора и числа (называемого порогом), что при относится к первому классу, а при - ко второму.
Поиск такого решающего правила можно рассматривать как разделение классов в проекции на прямую. Вектор задает прямую, на которую ортогонально проектируются все точки, а число - точку на этой прямой, отделяющую первый класс от второго.
Простейший и подчас очень удобный выбор состоит в проектировании на прямую, соединяющую центры масс выборок. Центр масс вычисляется в предположении, что массы всех точек одинаковы и равны 1. Это соответствует заданию в виде
= (y1 + y2 +... +ym)/m - (x1 + x2 +... + xn)/n. (6)
Во многих случаях удобнее иметь дело с векторами единичной длины.
Нормируя , получаем:
= ((y1 + y2 +... +ym)/m - (x1 + x2 +... + xn)/n)/||(y1 + y2 +... +ym)/m - (x1 + x2 +... + x n)/n||.
Выбор может производиться из различных соображений. Простейший вариант - посередине между центрами масс выборок:
0=(((y1 + y2 +... +ym)/m,) +((x1 + x2 +... + x n)/n, ))/2.
Более тонкие способы построения границы раздела классов учитывают различные вероятности появления объектов разных классов, и оценки плотности распределения точек классов на прямой. Чем меньше вероятность появления данного класса, тем более граница раздела приближается к центру тяжести соответствующей выборки.
Можно для каждого класса построить приближенную плотность вероятностей распределения проекций его точек на прямую (это намного проще, чем для многомерного распределения) и выбирать , минимизируя вероятность ошибки. Пусть решающее правило имеет вид: при > x относится к первому классу, а при < - ко второму. В таком случае вероятность ошибки будет равна
где p1, p2 - априорные вероятности принадлежности объекта соответствующему классу, , - плотности вероятности для распределения проекций точек x в каждом классе.
Приравняв нулю производную вероятности ошибки по , получим: число , доставляющее минимум вероятности ошибки, является корнем уравнения:
(7) |
Если принять гипотезу о нормальности распределений:
то для определения получим:
Если это уравнение имеет два корня , () то наилучшим решающим правилом будет: при объект принадлежит одному классу, а при или - другому (какому именно, определяется тем, которое из произведений больше). Если корней нет, то оптимальным является отнесение к одному из классов. Случай единственного корня представляет интерес только тогда, когда ?1=?2. При этом уравнение превращается в линейное и мы приходим к исходному варианту - единственной разделяющей точке .
Таким образом, разделяющее правило с единственной разделяющей точкой не является наилучшим для нормальных распределений и надо искать две разделяющие точки.
Если сразу ставить задачу об оптимальном разделении многомерных нормальных распределений, то получим, что наилучшей разделяющей поверхностью является квадрика (на прямой типичная "квадрика" - две точки). Предполагая, что ковариационные матрицы классов совпадают (в одномерном случае это предположение о том, что ?1=?2), получаем линейную разделяющую поверхность. Она ортогональна прямой, соединяющей центры выборок не в обычном скалярном произведении, а в специальном: , где ? - общая ковариационная матрица классов. За деталями отсылаем к прекрасно написанной книге [2.17], см. также [2.11, 2.12, 2.16].
Важная возможность усовершенствовать разделяющее правило состоит с использовании оценки не просто вероятности ошибки, а среднего риска: каждой ошибке приписывается "цена" ci и минимизируется сумма . Ответ получается практически тем же (всюду pi заменяются на ci pi), но такая добавка важна для многих приложений.
Требование безошибочности разделяющего правила на обучающей выборке принципиально отличается от обсуждавшихся критериев оптимальности. На основе этого требования строится персептрон Розенблатта - "дедушка" современных нейронных сетей [2.1].
Возьмем за основу при построении гиперплоскости, разделяющей классы, отсутствие ошибок на обучающей выборке. Чтобы удовлетворить этому условию, придется решать систему линейных неравенств:
Здесь xi (i=1,..,n) - векторы из обучающей выборки, относящиеся к первому классу, а yi (j=1,..,m) - ко второму.
Удобно переформулировать задачу. Увеличим размерности всех векторов на единицу, добавив еще одну координату - к , x0=1 - ко всем x и y0 =1 - ко всем y. Сохраним для новых векторов прежние обозначения - это не приведет к путанице.
Наконец, положим zi = xi (i=1,...,n), zj = -yj (j=1,...,m).
Тогда получим систему n +m неравенств
которую будем решать относительно . Если множество решений непусто, то любой его элемент порождает решающее правило, безошибочное на обучающей выборке.
Итерационный алгоритм решения этой системы чрезвычайно прост.
Он основан на том, что для любого вектора x его скалярный квадрат (x,x) больше нуля. Пусть - некоторый вектор, претендующий на роль решения неравенств , однако часть из них не выполняется. Прибавим те zi, для которых неравенства имеют неверный знак, к вектору и вновь проверим все неравенства и т.д. Если они совместны, то процесс сходится за конечное число шагов. Более того, добавление zi к можно производить сразу после того, как ошибка () обнаружена, не дожидаясь проверки всех неравенств - и этот вариант алгоритма тоже сходится [2.2].
Решение задач нейронными сетями
Вычислительный центр СО РАН в г. КрасноярскеА.Н.Горбань
Нейронные сети могут все. Но точно также "все" могут машины Тьюринга, интерполяционные многочлены, схемы Поста, ряды Фурье, рекурсивные функции, дизъюнктивные нормальные формы, сети Петри. В предыдущей лекции было показано, что с помощью нейронных сетей можно сколь угодно точно аппроксимировать любую непрерывную функцию и имитировать любой непрерывный автомат. Это и слишком много - никому не нужен столь широкий класс функций, и слишком мало, так как далеко не все важные задачи ставятся как задачи аппроксимации.
Другое дело, что в конечном итоге решение практически любой задачи можно описать, как построение некоторой функции, перерабатывающей исходные данные в результат, но такое очень общее описание не дает никакой информации о способе построения этой функции. Мало иметь универсальные способности - надо для каждого класса задач указать, как применять эти способности. Именно здесь, при рассмотрении методов настройки нейронных сетей для решения задач должны выявиться реальные рамки их применимости. Конечно, такие реальные рамки изменяются со временем из-за открытия новых методов и решений.
В данной лекции описано несколько базовых задач для нейронных сетей и основных или исторически первых методов настройки сетей для их решения:
Классификация (с учителем) (персептрон Розенблатта [2.1, 2.2, 2.3]). Ассоциативная память (сети Хопфилда [2.4, 2.5, 2.6, 2.7]). Решение систем линейных уравнений (сети Хопфилда [2.8]). Восстановление пробелов в данных (сети Хопфилда). Кластер-анализ и классификация (без учителя) (сети Кохонена [2.9, 2.10, 2.11, 2.12]).
Начнем мы, однако, не с сетей, а с систем, состоящих из одного элемента.
Сети Хопфилда
Перейдем от одноэлементных систем к нейронным сетям. Пусть
- вес связи, ведущей от j-го нейрона к i-му (полезно обратить внимание на порядок индексов). Для полносвязных сетей определены значения при всех i,j, для других архитектур связи, ведущие от j-го нейрона к i-му для некоторых i,j не определены. В этом случае положим .В данном разделе речь пойдет в основном о полносвязных сетях. Пусть на выходах всех нейронов получены сигналы xj ( j-номер нейрона). Обозначим x вектор этих выходных сигналов. Прохождение вектора сигналов x через сеть связей сводится к умножению матрицы (
) на вектор сигналов x. В результате получаем вектор входных сигналов нелинейных элементов нейронов: .Это соответствие "прохождение сети
умножение матрицы связей на вектор сигналов" является основой для перевода обычных численных методов на нейросетевой язык и обратно. Практически всюду, где основной операцией является умножение матрицы на вектор, применимы нейронные сети. С другой стороны, любое устройство, позволяющее быстро осуществлять такое умножение, может использоваться для реализации нейронных сетей.В частности, вычисление градиента квадратичной формы
может осуществляться полносвязной сетью с симметричной матрицей связей:
(). Именно это наблюдение лежит в основе данного раздела.Что можно сделать, если мы умеем вычислять градиент квадратичной формы?
В первую очередь, можно методом наискорейшего спуска искать точку минимума многочлена второго порядка. Пусть задан такой многочлен:
. Его градиент равен . Этот вектор может быть получен при прохождении вектора x через сеть с весами связей при условии, что на входной сумматор каждого нейрона по дополнительной связи веса b подается стандартный единичный сигнал.Зададим теперь функционирование сети формулой
(8) |
Нелинейных элементов вовсе не нужно! Каждый (j-й) нейрон имеет входные веса
для связей с другими нейронами (), вес для постоянного единичного входного сигнала и вес для связи нейрона с самим собой (передачи на него его же сигнала с предыдущего шага).Выбор шага h>0 может вызвать затруднение ( он зависит от коэффициентов минимизируемого многочлена). Есть, однако, простое решение: в каждый момент дискретного времени T выбирается свое значение . Достаточно, чтобы шаг стремился со временем к нулю, а сумма шагов - к бесконечности (например, , или ).
Итак, простая симметричная полносвязная сеть без нелинейных элементов может методом наискорейшего спуска искать точку минимума квадратичного многочлена.
Решение системы линейных уравнений сводится к минимизации многочлена
Поэтому решение системы может производиться нейронной сетью. Простейшая сеть, вычисляющая градиент этого многочлена, не полносвязна, а состоит из двух слоев: первый с матрицей связей A, второй - с транспонированной матрицей . Постоянный единичный сигнал подается на связи с весами на первом слое. Минимизация этого многочлена, а значит и решение системы линейных уравнений, может проводиться так же, как и в общем случае, в соответствии с формулой . Усовершенствованные варианты алгоритма решения можно найти в работах Сударикова [2.8].
Небольшая модификация позволяет вместо безусловного минимума многочлена второго порядка P искать точку условного минимума с условиями для , то есть точку минимума P в ограничении на аффинное многообразие, параллельное некоторым координатным плоскостям. Для этого вместо формулы
следует использовать:
при
(9) |
где m - число элементов в выборке, верхний индекс j - номер вектора данных в выборке, верхний индекс Т означает транспонирование, а - произведение вектора-столбца на вектор-строку (тензорное произведение).
Пусть у вектора данных x известно несколько координат: для . Наиболее вероятные значения неизвестных координат должны доставлять условный максимум показателю нормального распределения - многочлену второго порядка (при условии для ). Эти же значения будут условными математическими ожиданиями неизвестных координат при заданных условиях.
Таким образом, чтобы построить сеть, заполняющую пробелы в данных, достаточно сконструировать сеть для поиска точек условного минимума многочлена
при условиях следующего вида: для . Матрица связей Q выбирается из условия , где ? - ковариационная матрица (ее оценка по выборке).
На первый взгляд, пошаговое накопление по мере поступления данных требует слишком много операций - получив новый вектор данных требуется пересчитать оценку ?, а потом вычислить . Можно поступать и по-другому, воспользовавшись формулой приближенного обрашения матриц первого порядка точности:
Если же добавка ? имеет вид , то
(10) |
где 1 - единичная матрица, ?>0 - достаточно малое число, - k +1-й вектор данных, - среднее значение вектора данных, уточненное с учетом :
В формуле для пошагового накопления матрицы Q ее изменение ?Q при появлении новых данных получается с помощью вектора , пропущенного через сеть: , где z=Qy. Параметр ? выбирается достаточно малым для того, чтобы обеспечить положительную определенность получаемых матриц (и, по возможности, их близость к истинным значениям Q).
Описанный процесс формирования сети можно назвать обучением. Вообще говоря, можно проводить формальное различение между формированием сети по явным формулам и по алгоритмам, не использующим явных формул для весов связей (неявным). Тогда термин "обучение" предполагает неявные алгоритмы, а для явных остается название "формирование".
Здесь мы такого различия проводить не будем.
Если при обучении сети поступают некомплектные данные с отсутствием значений некоторых координат, то сначала эти значения восстанавливаются с помощью имеющейся сети, а потом используются в ее дальнейшем обучении.
Во всех задачах оптимизации существенную роль играет вопрос о правилах остановки: когда следует прекратить циклическое функционирование сети, остановиться и считать полученный результат ответом? Простейший выбор - остановка по малости изменений: если изменения сигналов сети за цикл меньше некоторого фиксированного малого ? (при использовании переменного шага ? может быть его функцией), то оптимизация заканчивается.
До сих пор речь шла о минимизации положительно определенных квадратичных форм и многочленов второго порядка. Однако самое знаменитое приложение полносвязных сетей связано с увеличением значений положительно определенных квадратичных форм. Речь идет о системах ассоциативной памяти [2.4, 2.5, 2.6, 2.7, 2.9, 2.10, 2.12].
Предположим, что задано несколько эталонных векторов данных и при обработке поступившего на вход системы вектора x требуется получить на выходе ближайший к нему эталонный вектор. Мерой сходства в простейшем случае будем считать косинус угла между векторами - для векторов фиксированной длины это просто скалярное произведение. Можно ожидать, что изменение вектора x по закону
(11) |
Ограничимся рассмотрением эталонов, и ожидаемых результатов обработки с координатами . Развивая изложенную идею, приходим к дифференциальному уравнению
(12) |
Функция H называется "энергией" сети, она минимизируется в ходе функционирования. Слагаемое вводится для того, чтобы со временем возрастала проекция вектора x на те эталоны, которые к нему ближе, слагаемое обеспечивает стремление координат вектора x к .
Параметр ? определяет соотношение между интенсивностями этих двух процессов. Целесообразно постепенно менять ? со временем, начиная с малых ?<1, и приходя в конце концов к ?>1.
Подробнее системы ассоциативной памяти рассмотрены в отдельной лекции. Здесь же мы ограничимся обсуждением получающихся весов связей. Матрица связей построенной сети определяется функцией , так как вычисляется непосредственно при j-м нейроне без участия сети. Вес связи между i-м и j-м нейронами не зависит от направления связи и равен
(13) |
В результате возбуждение i-го нейрона передается j-му (и симметрично, от j-го к i-му), если у большинства эталонов знак i-й и j-й координат совпадают. В противном случае эти нейроны тормозят друг друга: возбуждение i-го ведет к торможению j-го, торможение i-го - к возбуждению j-го (воздействие j-го на i-й симметрично). Это правило образования ассоциативных связей (правило Хебба) сыграло огромную роль в теории нейронных сетей.
Сети Кохонена для кластер-анализа и классификации без учителя
Построение отношений на множестве объектов - одна из самых загадочных и открытых для творчества областей применения искусственного интеллекта. Первым и наиболее распространенным примером этой задачи является классификация без учителя. Задан набор объектов, каждому объекту сопоставлен вектор значений признаков (строка таблицы). Требуется разбить эти объекты на классы эквивалентности.
Естественно, прежде, чем приступать к решению этой задачи, нужно ответить на один вопрос: зачем производится это разбиение и что мы будем делать с его результатом? Ответ на него позволит приступить к формальной постановке задачи, которая всегда требует компромисса между сложностью решения и точностью формализации: буквальное следование содержательному смыслу задачи нередко порождает сложную вычислительную проблему, а следование за простыми и элегантными алгоритмами может привести к противоречию со здравым смыслом.
Итак, зачем нужно строить отношения эквивалентности между объектами? В первую очередь - для фиксации знаний. Люди накапливают знания о классах объектов - это практика многих тысячелетий, зафиксированная в языке: знание относится к имени класса (пример стандартной древней формы: "люди смертны", "люди" - имя класса). В результате классификации как бы появляются новые имена и правила их присвоения.
Для каждого нового объекта мы должны сделать два дела:
найти класс, к которому он принадлежит; использовать новую информацию, полученную об этом объекте, для исправления (коррекции) правил классификации.
Какую форму могут иметь правила отнесения к классу? Веками освящена традиция представлять класс его "типичным", "средним", "идеальным" и т.п. элементом. Этот типичный объект является идеальной конструкцией, олицетворяющей класс.
Отнесение объекта к классу проводится путем его сравнения с типичными элементами разных классов и выбора ближайшего. Правила, использующие типичные объекты и меры близости для их сравнения с другими, очень популярны и сейчас.
Существует много эвристических алгоритмов классификации без учителя, основанных на использовании мер близости между объектами. Каждый из них имеет свою область применения, а наиболее распространенным недостатком является отсутствие четкой формализации задачи: совершается переход от идеи кластеризации прямо к алгоритму, в результате неизвестно, что ищется (но что-то в любом случае находится, иногда - неплохо).
Сетевые алгоритмы классификации без учителя строятся на основе итерационного метода динамических ядер. Опишем его сначала в наиболее общей абстрактной форме. Пусть задана выборка предобработанных векторов данных {xp}. Пространство векторов данных обозначим E. Каждому классу будет соответствовать некоторое ядро a. Пространство ядер будем обозначать A. Для каждых и определяется мера близости d(x,a). Для каждого набора из k ядер a1,...,ak и любого разбиения {xp} на k классов определим критерий качества:
(16) |
Простейшая мера близости объектов - квадрат евклидового расстояния между векторами значений их признаков (чем меньше расстояние - расстояние - тем ближе объекты). Соответствующее определение признаков типичного объекта - среднее арифметическое значение признаков по выборке, представляющей класс.
Мы не оговариваем специально существование априорных ограничений, налагаемых на новые объекты - естественно, что "вселенная" задачи много 'уже и гораздо определеннее Вселенной.
Другая мера близости, естественно возникающая при обработке сигналов, изображений и т.п. - квадрат коэффициента корреляции (чем он больше, тем ближе объекты). Возможны и иные варианты - все зависит от задачи.
Если число классов m заранее определено, то задачу классификации без учителя можно поставить следующим образом.
Пусть {xp} - векторы значений признаков для рассматриваемых объектов и в пространстве таких векторов определена мера их близости ?{x,y}. Для определенности примем, что чем ближе объекты, тем меньше ?. С каждым классом будем связывать его типичный объект. Далее называем его ядром класса. Требуется определить набор из m ядер y1, y2, ... ym и разбиение {xp} на классы:
минимизирующее следующий критерий
(14) |
(15) |
Если число классов заранее не определено, то полезен критерий слияния классов: классы Yi и Yj сливаются, если их ядра ближе, чем среднее расстояние от элемента класса до ядра в одном из них. (Возможны варианты: использование среднего расстояния по обоим классам, использование порогового коэффициента, показывающего, во сколько раз должно расстояние между ядрами превосходить среднее расстояние от элемента до ядра и др.)
Использовать критерий слияния классов можно так: сначала принимаем гипотезу о достаточном числе классов, строим их, минимизируя Q, затем некоторые Yi объединяем, повторяем минимизацию Q с новым числом классов и т.д.
Существует много эвристических алгоритмов классификации без учителя, основанных на использовании мер близости между объектами. Каждый из них имеет свою область применения, а наиболее распространенным недостатком является отсутствие четкой формализации задачи: совершается переход от идеи кластеризации прямо к алгоритму, в результате неизвестно, что ищется (но что-то в любом случае находится, иногда - неплохо).
Сетевые алгоритмы классификации без учителя строятся на основе итерационного метода динамических ядер. Опишем его сначала в наиболее общей абстрактной форме. Пусть задана выборка предобработанных векторов данных {xp}. Пространство векторов данных обозначим E. Каждому классу будет соответствовать некоторое ядро a. Пространство ядер будем обозначать A. Для каждых и определяется мера близости d(x,a). Для каждого набора из k ядер a1,...,ak и любого разбиения {xp} на k классов определим критерий качества:
(16) |
Шаг алгоритма разбивается на два этапа:
1-й этап - для фиксированного набора ядер a1,...,ak ищем минимизирующее критерий качества D разбиение ; оно дается решающим правилом: , если d(x, ai)<d(x, aj) при , в том случае, когда для x минимум d(x,a) достигается при нескольких значениях i, выбор между ними может быть сделан произвольно; 2-й этап - для каждого Pi (i=1,...,k), полученного на первом этапе, ищется , минимизирующее критерий качества (т.е. слагаемое в D для данного
Начальные значения a1,...,ak, выбираются произвольно, либо по какому-нибудь эвристическому правилу.
На каждом шаге и этапе алгоритма уменьшается критерий качества D, отсюда следует сходимость алгоритма - после конечного числа шагов разбиение уже не меняется.
Если ядру ai сопоставляется элемент сети, вычисляющий по входному сигналу x функцию d(x,ai), то решающее правило для классификации дается интерпретатором "победитель забирает все": элемент x принадлежит классу Pi, если выходной сигнал i-го элемента d(x,ai) меньше всех остальных
Единственная вычислительная сложность в алгоритме может состоять в поиске ядра по классу на втором этапе алгоритма, т.е. в поиске , минимизирующего
В связи с этим, в большинстве конкретных реализаций метода мера близости d выбирается такой, чтобы легко можно было найти a, минимизирующее D для данного P.
В простейшем случае пространство ядер A совпадает с пространством векторов x, а мера близости d(x,a) - положительно определенная квадратичная форма от x-a, например, квадрат евклидового расстояния или другая положительно определенная квадратичная форма. Тогда ядро ai, минимизирующее Di, есть центр тяжести класса Pi:
(17) |
В этом случае также упрощается и решающее правило, разделяющее классы. Обозначим d(x,a) =(x-a,x-a), где (.,.) - билинейная форма (если d - квадрат евклидового расстояния между x и a, то (.,.) - обычное скалярное произведение). В силу билинейности
d(x,a)=(x-a,x-a)=(x,x)-2(x,a) +(a,a).
Чтобы сравнить d(x,ai) для разных i и найти среди них минимальное, достаточно вычислить линейную неоднородную функцию от x:
d1(x,ai) = (ai,ai)-2(x,ai).
Минимальное значение d(x,ai) достигается при том же i, что и минимум d1(x,ai), поэтому решающее правило реализуется с помощью k сумматоров, вычисляющих d(x,a) и интерпретатора, выбирающего сумматор с минимальным выходным сигналом. Номер этого сумматора и есть номер класса, к которому относится x.
Пусть теперь мера близости - коэффициент корреляции между вектором данных и ядром класса:
где - координаты векторов, (и аналогично ), n - размерность пространства данных, (и аналогично ).
Предполагается, что данные предварительно обрабатываются (нормируются и центрируются) по правилу:
Точно также нормированы и центрированы векторы ядер a. Поэтому все обрабатываемые векторы и ядра принадлежат сечению единичной евклидовой сферы (||x||=1) гиперплоскостью (). В таком случае .
Задача поиска ядра для данного класса P имеет своим решением
(18) |
В определении ядер a для сетей Кохонена входят суммы . Это позволяет накапливать новые динамические ядра, обрабатывая по одному примеру и пересчитывая ai после появления в Pi нового примера. Сходимость при такой модификации, однако, ухудшается.
Закончим раздел рассмотрением различных способов использования полученных классификаторов.
Базовый способ: для вектора данных xi и каждого ядра ai вычисляется yi=d(x,ai) (условимся считать, что правильному ядру отвечает максимум d, изменяя, если надо, знак d); по правилу "победитель забирает все" строка ответов yi преобразуется в строку, где только один элемент, соответствующий максимальному yi, равен 1, остальные - нули. Эта строка и является результатом функционирования сети. По ней может быть определен номер класса (номер места, на котором стоит 1) и другие показатели. Метод аккредитации: за слоем элементов базового метода, выдающих сигналы 0 или 1 по правилу "победитель забирает все" (далее называем его слоем базового интерпретатора), надстраивается еще один слой выходных сумматоров. С каждым (i-м) классом ассоциируется q-мерный выходной вектор zi с координатами zij. Он может формироваться по-разному: от двоичного представления номера класса до вектора ядра класса. Вес связи, ведущей от i-го элемента слоя базового интерпретатора к j-му выходному сумматору определяется в точности как zij. Если на этом i-м элементе базового интерпретатора получен сигнал 1, а на остальных - 0, то на выходных сумматорах будут получены числа zij. Нечеткая классификация. Пусть для вектор данных x обработан слоем элементов, вычисляющих yi=d(x,ai). Идея дальнейшей обработки состоит в том, чтобы выбрать из этого набора {yi} несколько самых больших чисел и после нормировки объявить их значениями функций принадлежности к соответствующим классам. Предполагается, что к остальным классам объект наверняка не принадлежит. Для выбора семейства G наибольших yi определим следующие числа:
где число характеризует отклонение "уровня среза" s от среднего значения , по умолчанию обычно принимается .
Множество трактуется как совокупность номеров тех классов, к которым может принадлежать объект, а нормированные на единичную сумму неотрицательные величины
(при и f = 0 в противном случае)
интерпретируются как значения функций принадлежности этим классам.
Метод интерполяции надстраивается над нечеткой классификацией аналогично тому, как метод аккредитации связан с базовым способом. С каждым классом связывается q-мерный выходной вектор zi. Строится слой из q выходных сумматоров, каждый из которых должен выдавать свою компоненту выходного вектора. Весовые коэффициенты связей, ведущих от того элемента нечеткого классификатора, который вычисляет fi, к j-му выходному сумматору определяются как zij. В итоге вектор выходных сигналов сети есть
В отдельных случаях по смыслу задачи требуется нормировка fi на единичную сумму квадратов или модулей.
Выбор одного из описанных четырех вариантов использования сети (или какого-нибудь другого) определяется нуждами пользователя. Предлагаемые четыре способа покрывают большую часть потребностей.
За пределами этой лекции остался наиболее универсальный способ обучения нейронных сетей методами гладкой оптимизации - минимизации функции оценки. Ему посвящена следующая лекция.
Работа над лекцией была поддержана Красноярским краевым фондом науки, грант 6F0124.
Напомним, что для векторов x, y матрица имеет своими элементами .
© 2003-2007 INTUIT.ru. Все права защищены. |
Двойственное функционирование и быстрое дифференцирование
Вычисление градиента сложной функции многих переменных также будет представлено как некоторый вычислительный процесс, в ходе которого сигналы перемещаются в обратном направлении - от выходных элементов графа к входным. И так же, как при вычислении сложной функции, будет явно представлено прохождение каждого узла (подобно тому, как это сделано в уравнении функционирования (4)), а весь процесс в целом будет складываться из таких элементарных фрагментов за счет структуры связей между узлами. Сама эта структура - та же самая, что и для прямого процесса.
Всюду в этом разделе область интерпретации - действительная прямая, а все функции дифференцируемы.
Основной инструмент при построении двойственного функционирования - формула для дифференцирования "двухслойной" сложной функции нескольких переменных
(5) |
При проведении индукции по числу слоев нам придется использовать графы с несколькими выходными вершинами, описанные в предыдущем разделе, поэтому сразу будем рассматривать этот более общий случай.
Итак, пусть G - связный (но не обязательно ориентированно связный) ориентированный граф без ориентированных циклов. Как и выше, v(G) - множество вершин G, e(G) - множество ребер. Пусть, далее, каждой вершине
сопоставлена метка - символ алфавита p(?), а каждому ребру сопоставляется метка - конечное множество натуральных чисел P(?', ?) и выполнено условие согласования A: если для данного множество входящих ребер (?', ?) непусто, то (является k-местным функциональным символом при некотором k) и семейство множествпри фиксированном ? образует разбиение множества номеров {1,...,k}. Для каждой вершины
обозначим множество входящих в нее ребер in(?), а выходящих из нее - out(?).Пусть указана интерпретация всех символов, отмечающих вершины графа, значения переменных, отвечающих входным вершинам и уравнениям функционирования (4) определены значения Z(?) для всех вершин графа. В результате определены значения всех сложных функций, формулы для которых являются термами, соответствующими вершинам графа G.
Тогда для любого
(11) |
Доказательство проводится индукцией по числу слоев. Для графов из двух слоев - нулевого и первого - теорема очевидна. Спуск от i+1-слойных графов к i-слойным производится с помощью формулы 5.
Прохождение вершины графа и прилегающих к ней ребер при прямом и обратном процессах проиллюстрировано на рис. 3.3.
Рис. 3.3.
Процесс вычисления Z(?) будем называть прямым в противовес обратному или двойственному, к описанию которого мы переходим.
При заданных Z(?) для каждой вершины и каждого ребра строятся переменные двойственного функционирования (или, более кратко, двойственные переменные). Будем обозначать их ?(?) для вершин и ?(?', ?) - для ребер.
Для выходных вершин ?(?) являются независимыми переменными. Пусть их значения заданы. Для вершины ?, не являющейся выходной, значение ?(?) есть сумма значений двойственных переменных, соответствующих выходящим из ? ребрам:
(6) |
(7) |
(8) |
Для каждого такое ? существует и единственно в силу того, что метки входящих в вершину ? ребер образуют разбиение множества номеров {1,...,k}.
В самом распространенном случае все метки ребер P(?', ?) содержат по одному элементу. В этом случае формула (7) приобретает особенно простой вид
где
Используя (6)-(8), можно записать правила вычисления двойственных переменных для вершин, не использующие двойственных переменных для ребер:
(9) |
(10) |
Греческими буквами , , здесь обозначены вершины графа.
Опять же, в распространенном случае, когда все P(?', ?) одноэлементны, применяем (7') вместо (7) и получаем
где
(9') |
Процесс вычисления двойственных переменных организуется послойно от выходных вершин к входным и часто называется процессом обратного распространения (back propagation) или просто обратным процессом.
Теорема 5. Пусть задана интерпретация всех символов, отмечающих вершины графа G, определены значения независимых переменных (а также констант), соответствующих вершинам входного слоя и значения независимых переменных двойственного функционирования ?(?) для вершин выходного слоя .
Тогда для любого
(11) |
Доказательство проводится индукцией по числу слоев. Для графов из двух слоев - нулевого и первого - теорема очевидна. Спуск от i+1-слойных графов к i-слойным производится с помощью формулы 5.
Прохождение вершины графа и прилегающих к ней ребер при прямом и обратном процессах проиллюстрировано на рис. 3.3.
Рис. 3.3.
Двойственность по Лежандру и смысл двойственных переменных
Просматривая текст предыдущих разделов, я убедился, что подробное изложение и элементы стиля математической логики могут даже очевидное сделать сложным. В данном разделе описывается связь двойственного функционирования сетей автоматов с преобразованием Лежандра и неопределенными множителями Лагранжа. Это изложение ориентировано на читателя, знакомившегося с лагранжевым и гамильтоновым формализмами и их связью (в классической механике или вариационном исчислении). Фактически на двух страницах будет заново изложен весь предыдущий материал лекции.
Переменные обратного функционирования ? появляются как вспомогательные при вычислении производных сложной функции. Переменные такого типа появляются не случайно. Они постоянно возникают в задачах оптимизации и являются множителями Лагранжа.
Мы вводим ?, исходя из правил дифференцирования сложной функции. Возможен другой путь, связанный с переходом от функции Лагранжа к функции Гамильтона. Изложим его и параллельно получим ряд дальнейших обобщений. Для всех сетей автоматов, встречавшихся нам в предыдущих разделах и лекциях, можно выделить три группы переменных:
внешние входные сигналы x...,переменные функционирования - значения на выходах всех элементов сети f...,переменные обучения a...
(многоточиями заменяются различные наборы индексов).
Объединим их в две группы - вычисляемые величины y... - значения f... и задаваемые - b... (включая a... и x...). Упростим индексацию, перенумеровав f и b натуральными числами: f1,...,fN; b1,...,bM.
Пусть функционирование системы задается набором из N уравнений
(13) |
Для послойного вычисления сложных функций вычисляемые переменные - это значения вершин для всех слоев, кроме нулевого, задаваемые переменные - это значения вершин первого слоя (константы и значения переменных), а уравнения функционирования имеют простейший вид (4), для которого
где
приПредполагается, что система уравнений (13) задает способ вычисления yi.
Пусть имеется функция (лагранжиан) H(y1,...,yN,b1,...,bM). Эта функция зависит от b и явно, и неявно - через переменные функционирования y.
Если представить, что уравнения (13) разрешены относительно всех y (y=y(b)), то H можно представить как функцию от b:
H=H1 (b)=H(y1 (b),...,yN (b),b). (14)
где b - вектор с компонентами bi.
Для задачи обучения требуется найти производные Di =?H1(b)/?bi. Непосредственно и явно это сделать трудно.
Поступим по-другому. Введем новые переменные ?1,...,?N (множители Лагранжа) и производящую функцию W:
В функции W аргументы y, b и ? - независимые переменные.
Уравнения (13) можно записать как
(15) |
(16) |
Попытаемся подобрать такую зависимость , чтобы, используя (16), получить для Di =?H1(b)/?bi наиболее простые выражения. На многообразии решений (15)
Поэтому
(17) |
Произвол в определении ?(b) надо использовать наилучшим образом - все равно от него придется избавляться, доопределяя зависимости. Если выбрать такие ?, что слагаемые в первой сумме последней строки выражения (17) обратятся в нуль, то формула для Di резко упростится. Положим поэтому
(18) |
это - в точности те выражения, которые использовались при поиске производных сложных функций. В наших вычислениях мы пользовались явным описанием функционирования. Метод множителей Лагранжа допускает и менее явные описания сетей.
В математическом фольклоре бытует такой тезис: сложная задача оптимизации может быть решена только при эффективном использовании двойственности. Методы быстрого дифференцирования являются яркой иллюстрацией этого тезиса.
Если представить, что уравнения (13) разрешены относительно всех y (y=y(b)), то H можно представить как функцию от b:
H=H1 (b)=H(y1 (b),...,yN (b),b). (14)
где b - вектор с компонентами bi.
Для задачи обучения требуется найти производные Di =?H1(b)/?bi. Непосредственно и явно это сделать трудно.
Поступим по-другому. Введем новые переменные ?1,...,?N (множители Лагранжа) и производящую функцию W:
В функции W аргументы y, b и ? - независимые переменные.
Уравнения (13) можно записать как
(15) |
(16) |
Попытаемся подобрать такую зависимость , чтобы, используя (16), получить для Di =?H1(b)/?bi наиболее простые выражения. На многообразии решений (15)
Поэтому
(17) |
Произвол в определении ?(b) надо использовать наилучшим образом - все равно от него придется избавляться, доопределяя зависимости. Если выбрать такие ?, что слагаемые в первой сумме последней строки выражения (17) обратятся в нуль, то формула для Di резко упростится. Положим поэтому
(18) |
это - в точности те выражения, которые использовались при поиске производных сложных функций. В наших вычислениях мы пользовались явным описанием функционирования. Метод множителей Лагранжа допускает и менее явные описания сетей.
В математическом фольклоре бытует такой тезис: сложная задача оптимизации может быть решена только при эффективном использовании двойственности. Методы быстрого дифференцирования являются яркой иллюстрацией этого тезиса.
Граф вычисления сложной функции
Сложная функция задается с помощью суперпозиции некоторого набора "простых". Простые функции принадлежат исходно задаваемому конечному множеству F. Формально они выделены только принадлежностью к множеству F - никаких обязательных иных отличий этих функций от всех прочих в общем случае не предполагается.
В этом разделе мы изучим способы задания сложных функций, то есть формулы и соответствующие им графы. Свойства самих функций нас сейчас не интересуют (будем рассматривать ноты, а не слушать музыку).
Теория выражений, определяющих сложные функции, является простейшим разделом математической логики, в которой сами эти выражения называются термами [3.4].
Термы - это правильно построенные выражения в некотором формальном языке. Чтобы задать такой язык, необходимо определить его алфавит. Он состоит из трех множеств символов:
C - множество символов, обозначающих константы;V - множество символов, обозначающих переменные;F - множество функциональных символов,
, где - множество символов для обозначения функций k переменных.Вводя различные множества символов, мы постоянно обращаемся к их интерпретации ("... символы, обозначающие..."). Строго говоря, это не нужно - можно (а с чисто формальной точки зрения - и должно) описать все правила действия с символами, не прибегая к их интерпретации, однако ее использование позволяет сократить изложение формальных правил за счет обращения к имеющемуся содержательному опыту.
Термы определяются индуктивно:
любой символ из
есть терм;если - термы и , то - терм.Множество термов T представляет собой объединение:
где
,Удобно разбить T на непересекающиеся множества - слои
. Элементы будем называть термами глубины i или i-слойными термами. Множеству принадлежат выражения, обозначающие те функции от термов предыдущих слоев , которые сами им не принадлежат1).Для оперирования с термами очень полезны две теоремы [3.4].
Эта теорема является точной формулировкой эквивалентности используемой бесскобочной и обычной записи.
Пусть u и v - выражения, то есть последовательности символов алфавита. Скажем, что u входит в v, если существуют такие выражения p и q (возможно, пустые), что v совпадает с puq.
Теорема 2 (о вхождении терма в терм). Пусть , - термы, t представляется в виде , ? - терм и ? входит в t. Тогда или ? совпадает с t, или ? входит в одно из .
Доказываются эти теоремы элементарной индукцией по длине термов [3.4]. В доказательстве теоремы 2 выделяется лемма, представляющая и самостоятельный интерес.
Лемма 1. Каждое вхождение любого символа в терм ? начинает вхождение некоторого терма в ?.
Определим отношение между термами индуктивным образом "сверху вниз" - по глубине вхождения:
;если t совпадает с , и - термы, то ;если и , то .
Согласно теореме 2, тогда и только тогда, когда входит в .
Для каждого терма t определим множество входящих в него термов . Если , то при непусты множества . При этом множество состоит из одного элемента - исходного терма t.
Свяжем с термом t ориентированный граф с вершинами, взаимнооднозначно соответствующими термам из . Будем одинаково обозначать вершины и соответствующие им термы. Пара вершин образует ориентированное от к ребро графа , если терм имеет вид , , - термы и один из них совпадает с . Вершины графа удобно располагать по слоям .
Для произвольного графа G будем обозначать v(G) множество вершин, а e(G) - множество ребер G.
Возьмем для примера выражение для сложной функции
(3) |
(3') |
Рис. 3.1.
Граф для этого терма изображен на рис. 3.1.
Для того, чтобы терм однозначно восстанавливался по графу, необходимы еще два дополнения.
Сопоставим каждой вершине метку p(?) - символ алфавита. Если вершина принадлежит нулевому слою , то ей соответствует терм, совпадающий с символом из . Этот символ и сопоставляется вершине в качестве метки.
Если вершина принадлежит (i>0), то меткой служит функциональный символ: вершине ? сопоставляется , если ? имеет вид , где , а - термы.Каждому ребру , приходящему в вершину ?, сопоставим метку P(?', ?) - конечное множество натуральных чисел (номеров): пусть терм ? имеет вид , где , а - термы, тогда ребру (?', ?) сопоставляется множество тех i (), для которых ?' совпадает с . На практике в большинстве случаев эта метка состоит из одного номера, но возможны и другие варианты - так же, как функции вида f(x,x). Для графических иллюстраций удобно ребра (?', ?), имеющие в своей метке P(?', ?) больше одного номера, рисовать как пучок ребер, идущих от вершины ?' к вершине ? - по одному такому ребру для каждого номера из P(?', ?); этот номер и будет меткой соответствующего ребра из пучка.
Граф вместе со всеми метками будем обозначать . На рис. 3.1 указаны соответствующие метки для разобранного примера.
Итак, для всякого терма t построен ориентированный граф и две функции: первая сопоставляет каждой вершине символ алфавита , вторая (обозначим ее P) - каждому ребру - конечное множество натуральных чисел P(?', ?). Отмеченный граф - набор () обозначаем . Функции p и P удовлетворяют следующему ограничению:
А) если для данного множество входящих ребер (?', ?) непусто, то (является k-местным функциональным символом при некотором k) и семейство множеств
при фиксированном ? образует разбиение множества номеров {1,...,k}, то есть
при ,
На этом завершается изложение основных формальных конструкций. Прежде, чем переходить к интерпретации, сформулируем теорему об эквивалентности графического и формульного представления термов.
Пусть G - конечный ориентированный граф, не имеющий ориентированных циклов, и в G существует и единственна такая вершина , к которой от любой вершины ведет ориентированный путь. Пусть, далее, заданы две функции: p - на множестве вершин G со значениями в множестве символов алфавита и P - на множестве ребер G со значениями в множестве конечных наборов натуральных чисел и выполнено условие A.
Теорема 3. Существует и единственен терм t, для которого .
Доказательство проводится в два этапа. Сначала в G устанавливается послойная структура: строится разбиение множества вершин G: . Множество состоит из тех вершин, к которым не ведет ни одного ребра - из-за отсутствия ориентированных циклов такие вершины существуют. Множество состоит из тех вершин, к которым ведут ребра только из элементов . Последний непустой элемент в последовательности состоит из одной вершины , все предшествующие элементы этой последовательности непусты, а объединение всех содержит все вершины G.
Доказательство основного утверждения теоремы проводится индукцией по числу слоев k.
Интерпретация сопоставляет терму сложную функцию. Она строится так. Задается некоторое множество D - область интерпретации. Каждой константе с, входящей в интерпретируемый терм t, сопоставляется элемент из D (), каждому k-местному функциональному символу f, входящему в t, сопоставляется функция k переменных (мы сохраняем одинаковое обозначение для символов и их интерпретации, это вполне соответствует интуиции и не должно приводить к путанице). Каждой переменной, входящей в интерпретируемый терм t, сопоставляется переменная, пробегающая D. В результате терму t сопоставляется функция n переменных , где n - число различных символов переменных, входящих в t. Эта "сложная" функция получается суперпозицией "простых" функций, соответствующих функциональным символам.
Если , то есть терм является константой или переменной, то вместо сложной функции получаем константу или тождественную функцию id, переводящую значение переменной в него же. Если , то соответствующая функция является "простой". Истинные сложные функции появляются, начиная со слоя .
Заметим, что заданная интерпретация терма t одновременно определяет интерпретацию каждого терма, входящего в t.
Представим процесс вычисления сложной функции с помощью отмеченного графа . Строится два представления: статическое (все результаты промежуточных вычислений располагаются на графе) и динамическое (шаг за шагом, слой за слоем).
Пусть задана интерпретация терма t и определены значения всех переменных, входящих в t. Тогда для любого терма ?, входящего в t, также задана интерпретация и определены значения всех функций . Каждой вершине ?, входящей в граф , сопоставляется значение функции - элемент D. При этом вершинам нулевого слоя соответствуют значения переменных и констант, а единственной вершине последнего (выходного) слоя - значение . Будем называть элементы D, соответствующие вершинам, значениями этих вершин и обозначать их Z(? ).
Для каждой вершины ?, принадлежащей ненулевому слою, можно выписать уравнение функционирования, связывающее значения вершин. Пусть , и in(?) - совокупность входящих в ? ребер. Напомним, что совокупность меток ребер, оканчивающихся в ?,
образует разбиение множества {1,2,...,k}.
Уравнение функционирования для вершины ?, принадлежащей ненулевому слою, имеет вид
(4) |
В силу уравнения функционирования (4), если для входящих в ? ребер известны значения Z(?') и задана интерпретация символа - метки вершины, то можно найти значение вершины Z(?). На основании этого (очевидного) замечания строится динамическое представление вычисления сложной функции.
С каждой вершиной графа ?, принадлежащей ненулевому слою, ассоциируется автомат, вычисляющий функцию , где - метка вершины ?. Автоматы срабатывают по слоям в дискретные моменты времени (такты) - автоматы i-го слоя в i-й момент времени. В начальный момент сформированы значения вершин нулевого слоя - известны значения переменных и констант. Они поступают на входы автоматов первого слоя в соответствии с нумерацией аргументов. После i-го такта функционирования определены значения вершин, принадлежащих слоям . На i+1-м такте автоматы i+1-го слоя вычисляют значения вершин i+1-го слоя, получая входные сигналы с предыдущих слоев по правилу (4) - в соответствии с метками входящих ребер.
Обучение нейронных сетей как минимизация функции ошибки
Построение обучения как оптимизации дает нам универсальный метод создания нейронных сетей для решения задач. Если сформулировать требования к нейронной сети, как задачу минимизации некоторой функции - оценки, зависящей от части сигналов (входных, выходных, ...) и от параметров сети, то обучение можно рассматривать как оптимизацию и строить соответствующие алгоритмы, программное обеспечение и, наконец, устройства (hardware). Функция оценки обычно довольно просто (явно) зависит от части сигналов - входных и выходных. Ее зависимость от настраиваемых параметров сети может быть сложнее и включать как явные компоненты (слагаемые, сомножители,...), так и неявные - через сигналы (сигналы, очевидно, зависят от параметров, а функция оценки - от сигналов).
За пределами задач, в которых нейронные сети формируются по явным правилам (сети Хопфилда, проективные сети, минимизация аналитически заданных функций и т.п.) нам неизвестны случаи, когда требования к нейронной сети нельзя было бы представить в форме минимизации функции оценки. Не следует путать такую постановку задачи и ее весьма частный случай - "обучение с учителем". Уже метод динамических ядер, описанный в предыдущей лекции, показывает, каким образом обучение без учителя в задачах классификации может быть описано как минимизация целевой функции, оценивающей качество разбиения на классы.
Если для решения задачи не удается явным образом сформировать сеть, то проблему обучения можно, как правило, сформулировать как задачу минимизации оценки. Осторожность предыдущей фразы ("как правило") связана с тем, что на самом деле нам неизвестны и никогда не будут известны все возможные задачи для нейронных сетей, и, быть может, где-то в неизвестности есть задачи, которые несводимы к минимизации оценки.
Минимизация оценки - сложная проблема: параметров астрономически много (для стандартных примеров, реализуемых на РС - от 100 до 1000000), адаптивный рельеф (график оценки как функции от подстраиваемых параметров) сложен, может содержать много локальных минимумов, извилистых оврагов и т.п.
Наконец, даже для того, чтобы воспользоваться простейшими методами гладкой оптимизации, нужно вычислять градиент функции оценки. Здесь мы сталкиваемся с одной "очевидной" догмой, без разрушения которой было бы невозможно эффективное обучение нейронных сетей.
Оптимизационное обучение нейронных сетей
Когда можно представить обучение нейронных сетей как задачу оптимизации? В тех случаях, когда удается оценить работу сети. Это означает, что можно указать, хорошо или плохо сеть решает поставленные ей задачи и оценить это "хорошо или плохо" количественно. Строится функция оценки. Она, как правило, явно зависит от выходных сигналов сети и неявно (через функционирование) - от всех ее параметров. Простейший и самый распространенный пример оценки - сумма квадратов расстояний от выходных сигналов сети до их требуемых значений:
где
- требуемое значение выходного сигнала.Другой пример оценки - качество классификации в сетях Кохонена. В этом случае ответы заранее неизвестны, но качество работы сети оценить можно.
Устройство, вычисляющее оценку, надстраивается над нейронной сетью и градиент оценки может быть вычислен с использованием описанного принципа двойственности.
В тех случаях, когда оценка является суммой квадратов ошибок, значения независимых переменных двойственного функционирования ?(?) для вершин выходного слоя
при вычислении градиента H устанавливаются равными
(19) |
на вход при обратном функционировании поступают ошибки выходных сигналов! Это обстоятельство настолько впечатлило исследователей, что они назвали метод вычисления градиента оценки методом обратного распространения ошибок. Впрочем, после формулы Уидроу, описанной в лекции 2, формула (19) должна быть очевидной.
Для обучения используется оценка, усредненная по примерам с известным ответом.
Предлагается рассматривать обучение нейронных сетей как задачу оптимизации. Это означает, что весь мощный арсенал методов оптимизации может быть испытан для обучения. Так и видится: нейрокомпьютеры наискорейшего спуска, нейрокомпьютеры Ньютона, Флетчера и т.п. - по названию метода нелинейной оптимизации.
Существует, однако, ряд специфических ограничений. Они связаны с огромной размерностью задачи обучения. Число параметров может достигать 108 - и даже более. Уже в простейших программных имитаторах на персональных компьютерах подбирается 103 - 104 параметров.
Из- за высокой размерности возникает два требования к алгоритму:
Ограничение по памяти. Пусть n - число параметров. Если алгоритм требует затрат памяти порядка n2, то он вряд ли применим для обучения. Вообще говоря, желательно иметь алгоритмы, которые требуют затрат памяти порядка Kn, K=const. Возможность параллельного выполнения наиболее трудоемких этапов алгоритма и желательно - нейронной сетью. Если какой-либо особо привлекательный алгоритм требует память порядка n2, то его все же можно использовать, если с помощью анализа чувствительности и, возможно, контрастирования сократить число обучаемых параметров до разумных пределов.
Еще два обстоятельства связаны с нейрокомпьютерной спецификой.
Обученный нейрокомпьютер должен с приемлемой точностью решать все тестовые задачи (или, быть может, почти все с очень малой частью исключений). Поэтому задача обучения становится по существу многокритериальной задачей оптимизации: надо найти точку общего минимума большого числа функций. Обучение нейрокомпьютера исходит из гипотезы о существовании такой точки. Основания гипотезы - очень большое число переменных и сходство между функциями. Само понятие "сходство" здесь трудно формализовать, но опыт показывает что предположение о существовании общего минимума или, точнее, точек, где значения всех оценок мало отличаются от минимальных, часто оправдывается. Обученный нейрокомпьютер должен иметь возможность приобретать новые навыки без утраты старых. Возможно более слабое требование: новые навыки могут сопровождаться потерей точности в старых, но эта потеря не должна быть особо существенной, а качественные изменения должны быть исключены. Это означает, что в достаточно большой окрестности найденной точки общего минимума оценок значения этих функций незначительно отличаются от минимальных. Мало того, что должна быть найдена точка общего минимума, так она еще должна лежать в достаточно широкой низменности, где значения всех минимизируемых функций близки к минимуму. Для решения этой задачи нужны специальные средства.
Итак, имеем четыре специфических ограничения, выделяющих обучение нейрокомпьютера из общих задач оптимизации: астрономическое число параметров, необходимость высокого параллелизма при обучении, многокритериальность решаемых задач, необходимость найти достаточно широкую область, в которой значения всех минимизируемых функций близки к минимальным. В остальном - это просто задача оптимизации и многие классические и современные методы достаточно естественно ложатся на структуру нейронной сети.
Заметим, кстати, что если вести оптимизацию (минимизацию ошибки), меняя параметры сети, то в результате получим решение задачи аппроксимации. Если же ведется минимизация целевой некоторой функции и ищутся соответствующие значения переменных, то в результате решаем задачу оптимизации (хотя формально это одна и та же математическая задача и разделение на параметры и переменные определяется логикой предметной области, а с формальной точки зрения разница практически отсутствует).
Значительное число публикаций по методам обучения нейронных сетей посвящено переносу классических алгоритмов оптимизации (см., например, [3.7, 3.8]) на нейронные сети или поиску новых редакций этих методов, более соответствующих описанным ограничениям - таких, например, как метод виртуальных частиц [3.5, 3.6]. Существуют обширные обзоры и курсы, посвященные обучению нейронных сетей (например, [3.9, 3.10]). Не будем здесь останавливаться на обзоре этих работ - если найден градиент, то остальное приложится.
Работа над лекцией была поддержана Красноярским краевым фондом науки, грант 6F0124.
Производная сложной функции одного переменного
Основную идею двойственного функционирования можно понять уже на простейшем примере. Рассмотрим вычисление производной сложной функции одного переменного. Пусть заданы функции одного переменного f1(A),f2(A),...,fn(A). Образуем из них сложную функцию
F(x)=fn(fn-1 (...(f1 (x))...)). (1)
Можно представить вычисление F(x) как результат работы n автоматов, каждый из которых имеет один вход и выдает на выходе значение fi(A), где A - входной сигнал ( рис. 3.2, а). Чтобы построить систему автоматов, вычисляющую F'(x), надо дополнить исходные автоматы такими, которые вычисляют функции fi'(A), где A - входной сигнал (важно различать производную fi по входному сигналу, то есть по аргументу функции fi, и производную сложной функции fi(A(x)) по x; fi'(A) - производные по A).
Для вычисления F'(x) потребуется еще цепочка из n-1 одинаковых автоматов, имеющих по два входа, по одному выходу и подающих на выход произведение входов. Тогда формулу производной сложной функции
можно реализовать с помощью сети автоматов, изображенной на рис. 3.2, б. Сначала по этой схеме вычисления идут слева направо: на входы f1 и f1' подаются значения x, после вычислений f1(x) это число подается на входы f2 и f2' и т.д. В конце цепочки оказываются вычисленными все fi (fi-1 (...)) и fi'(fi-1 (...)).
Рис. 3.2. Схематическое представление вычисления сложной функции одного переменного и ее производных.
Тем самым, для каждого автомата нижней строки, кроме самого правого, оказывается сформированным по одному значению входа, а у самого правого - оба, поэтому он может сработать и начать передачу сигнала в обратном направлении - справа налево. Это обратное движение есть последовательное вычисление попарных произведений и передача их налево. В конце получаем ?F/?x.
Сложность вычисления функции и ее градиента
Подсчитаем теперь число операций, необходимых для вычисления всех двойственных переменных ?(?) для вершин и ?(?', ?) - для ребер.
Во-первых, нужно вычислить все частные производные
для всех вершин ? и всех k аргументов "простой" функции, соответствующей каждой вершине. Число таких производных равно сумме числа аргументов для всех функциональных символов, соответствующих вершинам графа, то есть следующей величине E:
Договоримся в этом разделе отображать ребра (?', ?), имеющие в своих метках P(?', ?) больше одного номера, как пучки ребер, идущих от вершины ?' к вершине ? - по одному такому ребру для каждого номера из P(?', ?). Число E просто равно числу ребер в графе. Число необходимых умножений и число сложений также не превосходят E.
Количество вычислений "простых" функций при вычислении сложной равно числу вершин графа. Обозначим его V. Отношение E/V дает представление об отношении вычислительных затрат на вычисление градиента к затратам на вычисление функции. Чтобы последовательно использовать эту оценку, а также искать те функции, для которых вычисление градиента еще проще, необходимо зафиксировать исходные предположения. Будем обозначать Tf затраты на вычисление f.
Для каждой вершины графа, соответствующей ей функции f, и любого аргумента этой функции x справедлива оценка
; Для функций , соответствующих вершинам графа, , то есть сумма переменных - простейшая функция; Умножение и сложение имеют примерно одинаковую сложность.В предположениях 1-3 зафиксирован тот уровень точности, с которым будут делаться оценки. При формальном использовании отношения "a примерно равно b" неизбежны парадоксы типа "куча": один камень не куча, если n камней - не куча, то и n+1 - тоже, следовательно... . Чтобы избежать этого и сделать рассуждения более наглядными, поступим следующим образом. Сложность "простой" функции k переменных и любой ее частной производной оценим как ck, где c - некоторая константа,
; сложность суммы k слагаемых (и произведения k сомножителей) определим как k-1.Последнее вычитание единицы имеет смысл при рассмотрении большого числа сумм, содержащих мало слагаемых.
Пусть, как и выше, E- число ребер графа, V- число вершин, Vout - число выходных вершин (им не соответствует ни одной суммы в (6)). Сложность прямого прохождения графа (вычисления функций) оценивается как cE.
Обратное прохождение графа при вычислении градиентов складывается из трех слагаемых:
Вычисление всех частных производных простых функций, соответствующих вершинам графа. Необходимо вычислить E таких производных. Сложность вычисления одной такой производной для вершины ?, имеющей |in(?)| входящих ребер, оценивается как c|in(?)|. Оценка сложности вычисления всех этих производных дается следующей суммой
Вычисление всех произведений (7) на ребрах - E произведений (в связи с тем, что мы в данном разделе передачу сигнала на разные входы автомата, вычисляющего , обозначаем различными ребрами, уравнения (7), сохраняя прежнюю внешнюю форму, преобразуются так, что в суммах остается по одному слагаемому, остальное суммирование переносится к вершинам (6)). Вычисление всех сумм (6) - сложность равна E-(V-Vout).
Итого, полная сложность обратного прохождения сигналов оценивается как
Основную роль в последней сумме играет первое слагаемое - именно им определяется сложность обратного распространения по графу (если все |in(?)|=1, то TDif =cE, а уже в случае, когда |in(?)|=2, мы получаем TDif =2cE). Поэтому можно положить T ? TDif (строго говоря, , однако различия в два-три раза для нас сейчас несущественны).
Если характерное число переменных у простых функций, соответствующих вершинам графа, равно m (то есть |in(?)|=m), то для вычисляемой по графу сложной функции F можно оценить отношение затрат на вычисление F и gradF следующим образом:
Эта оценка, конечно, лучше, чем полное число переменных n, но все же искомое отношение оценивается примерно как отношение числа ребер к числу вершин E/V (с точностью до менее значимых слагаемых). Если нас интересуют графы с большим числом связей, то для сохранения эффективности вычисления градиентов нужно ограничиваться специальными классами простых функций.
Из исходных предположений 1-3 наиболее существенно первое (). Зададимся вопросом: для каких функций f вычисление частных производных вообще не требует вычислений?
Ответ очевиден: общий вид таких функций
(12) |
В общем случае функции (12) билинейны. Их частный случай - линейные функции: если индексам из P2 в (12) соответствуют константы, то функция f - линейная.
И функции вида (12), и соответствующие им вершины будем называть квазилинейными.
Пусть интерпретация функциональных символов такова, что в графе вычислений присутствуют только вершины двух сортов: квазилинейные или с одной входной связью (соответствующие простым функциям одного переменного). Обозначим количества этих вершин Vq и V1 соответственно. Оценка сложности вычисления градиента для таких графов принципиально меняется. Обратное функционирование в этом случае требует следующих затрат:
Поиск всех производных функций одного переменного, соответствующих вершинам графа (число таких производных равно V1), сложность поиска одной производной оценивается как c.Вычисление всех произведений (7) на ребрах - E произведений.Вычисление всех сумм (6) - сложность равна E-(V-Vout).
Итого, суммарная сложность обратного прохождения сигналов оценивается как
T gradF = cV 1+2E-(V- V out).
Оценим сложность вычислений при прямом распространении:
Для любой квазилинейной вершины ? сложность вычисления функции оценивается как ,Для любой вершины с одной входной связью сложность оценивается как c.
Итак, для прямого распространения сложность оценивается как
T F =cV 1+(E- V 1- V q).
С ростом числа связей !!!
Графы вычислений (с заданной интерпретацией функциональных символов), в которых присутствуют только вершины двух сортов: квазилинейные или с одной входной связью (соответствующие простым функциям одного переменного) играют особую роль. Будем называть их существенно квазилинейными. Для функций, вычисляемых с помощью таких графов, затраты на вычисление вектора градиента примерно вдвое больше, чем затраты на вычисление значения функции (всего!). При этом число связей и отношение могут быть сколь угодно большими. Это достоинство делает использование существенно квазилинейных графов весьма притягательным во всех задачах оптимизации. Их частным случаем являются нейронные сети, для которых роль квазилинейных вершин играют адаптивные линейные сумматоры.
Таким образом, обратное прохождение адаптивного сумматора требует таких же затрат, как и прямое. Для других элементов стандартного нейрона обратное распространение строится столь же просто: точка ветвления при обратном процессе превращается в простой сумматор, а нелинейный преобразователь в линейную связь с коэффициентом связи . Поэтому для нейронных сетей обратное распространение выглядит особенно просто. Детали можно найти в различных руководствах, например [3.5, 3.6]
Отличие общего случая от более привычных нейронных сетей состоит в том, что можно использовать билинейные комбинации (12) произвольных уже вычисленных функций, а не только линейные функции от них с постоянными коэффициентами-весами.
В определенном смысле квазилинейные функции (12) вычисляются линейными сумматорами с весами 1 и и аргументами и , только веса не обязательно являются константами, а могут вычисляться на любом слое.
Естественно возникает вопрос о вычислительных возможностях сетей, все вершины которых являются квазилинейными. Множество функций, вычисляемых такими сетями, содержит все координатные функции и замкнуто относительно сложения, умножения на константу и умножения функций. Следовательно оно содержит и все многочлены от любого количества переменных.Любая непрерывная функция на замкнутом ограниченном множестве в конечномерном пространстве может быть сколь угодно точно приближена с их помощью.
Вычисления на ориентированном графе
Для дальнейшего полезно обобщение изложенных конструкций, предназначенное для описания одновременного вычисления нескольких сложных функций.
Пусть G - связный (но не обязательно ориентированно связный) ориентированный граф без ориентированных циклов. Как и выше, множество вершин G обозначаем v(G), множество ребер - e(G). Пусть, далее, каждой вершине
сопоставлена метка - символ алфавита p( ?), а каждому ребру сопоставляется метка - конечное множество натуральных чисел P(?', ?) и выполнено условие согласования A: если для данного множество входящих ребер (?', ?) непусто, то (является k-местным функциональным символом при некотором k) и семейство множествпри фиксированном ? образует разбиение множества номеров {1,...,k}.
С помощью транзитивного замыкания G устанавливаем на множестве его вершин v(G) отношения частичного порядка:
, если существует ориентированный путь, ведущий от ?' к ?. Из-за отсутствия ориентированных циклов это отношение антисимметрично: если и , то ? совпадает с ?'. Минимальные вершины (к которым не ведет ни одного ребра) называем входными, а максимальные (от которых не идет ни одного ребра) - выходными. Обозначим множество входных вершин , а выходных - . Метки входных вершин являются символами переменных или констант, метки остальных вершин - функциональные символы.Определим послойную структуру:
. Нулевой слой состоит из минимальных вершин, первый слой из минимальных вершин графа, получаемого удалением из G нулевого слоя и выходящих из него ребер и т.д. - i+1-й слой состоит из минимальных вершин графа, получаемого удалением из G всех вершин объединения и содержащих их ребер. Последний слой состоит только из выходных вершин. Предыдущие слои также могут содержать выходные вершины.С каждой вершиной графа
однозначно связан терм (который мы, следуя традиции предыдущего раздела, также будем обозначать ?). Для его построения удалим из G все вершины, кроме тех, от которых к ? можно пройти по ориентированному пути, а также связанные с ними ребра. Полученный граф обозначим :Граф
удовлетворяет условиям теоремы 3, поэтому по нему единственным образом восстанавливается терм (и соответствующая сложная функция).Пусть задано множество D - область интерпретации и указана интерпретация всех символов, отмечающих вершины графа, а также значения переменных, отвечающих входным вершинам. Тогда по уравнениям функционирования (4) (они полностью сохраняются и для рассматриваемых графов) можно определить значения Z(?) для всех вершин графа. В результате определяются значения всех сложных функций, формулы для которых являются термами, соответствующими вершинам графа G.
Описанные общие графы могут появляться в различных ситуациях. Для дальнейшего важно то, что такие графы возникают, если из графа вычисления сложной функции удалить один или несколько последних слоев.