ДонНТУ | Портал магистров ДонНТУ |
Фёдоров Антон ВасильевичФакультет: Компьютерных наук и технологийСпециальность: Программное обеспечение автоматизированных системТема выпускной работы:«Исследование методов контурной сегментации для построения системы оптического распознавания символов»Руководитель: к.т.н., доцент кафедры ПМиИ Федяев О.И. |
|
Индивидуальный раздел«Нейросетевые технологии в современном мире» |
|
Интеллектуальные системы на основе искусственных нейронных сетей позволяют с успехом решать проблемы распознавания образов, выполнения прогнозов, оптимизации, ассоциативной памяти и управления. Традиционные подходы к решению этих проблем не всегда дают необходимую гибкость и много приложений выигрывают от использования нейросетей. Искусственные нейросети являются электронными моделями нейронной структуры мозга. Мозг учится, главным образом, на опыте. Естественной аналог доказывает, что множество проблем, не поддающихся решению традиционными компьютерами, может быть эффективно решено с помощью нейросетей. Продолжительный период эволюции придал мозгу человека много качеств, отсутствующих в современных компьютерах с архитектурой фон Неймана. К ним относятся:
Приборы, построенные на принципах биологических нейронов, имеют перечисленные характеристики, которые можно считать существенным достижением в индустрии обработки данных.
Достижения в области нейрофизиологии дают начальное понимание механизма естественного мышления, где хранение информации происходит в виде сложных образов. Процесс хранения информации как образов, использование образов и решение поставленной проблемы определяют новую область в обработке данных, которая, не используя традиционного программирования, обеспечивает создание параллельных сетей и их обучение. В лексиконе разработчиков и пользователей нейросетей присутствуют слова, отличные от традиционной обработки данных, в частности, «вести себя», «реагировать», «самоорганизовывать», «обучать», «обобщать» и «забывать» [1].
|
|
Обучение искусственной нейронной сетиФундаментальным свойством мозга является способность к обучению. Процесс обучения может рассматриваться как определение архитектуры сети и настройки весов связей для эффективного выполнения специальной задачи. Нейросеть настраивает весы связей под имеющееся обучающее множество. Для процесса обучения необходимо иметь модель внешней среды, в которой функционирует нейронная сеть - нужную для решения задачи информацию. Во-вторых, необходимо определить, как настраиваются весы связей сети. Алгоритм обучения означает процедуру, в которой используются правила обучения для настраивания весов.
Существуют три вида обучения: «с учителем», «без учителя» (самообучение) и смешанное [2]. В первом случае нейросеть имеет в своем распоряжении правильные ответы (выходы сети) на каждый входной пример. Весы настраиваются так, чтобы сеть вырабатывала ответы близкие к известным правильным ответам. Обучение без учителя не требует знания правильных ответов на каждый пример обучающей выборки. В этом случае используется внутренняя структура данных и корреляция между образцами в обучающем множестве для распределения образцов по категориям. При смешанном обучении часть весов определяется по помощи обучения с учителем, в то время как другая определяется по помощи самообучения.
|
|
Применение нейросетей при решении практических задач |
Классификация образов. Задача состоит в определении принадлежности входного образа (например, языкового сигнала или рукописного символа), представленного вектором признаков к одному или нескольким предварительно определенным классам. К известным приложениям относятся распознавание букв, распознавание языка, классификация сигнала электрокардиограммы, классификация клеток крови. Кластеризация/категоризация. При решении задачи кластеризации, обучающее множество не имеет меток классов. Алгоритм кластеризации основан на подобии образов и помещает похожие образы в один кластер. Известны случаи применения кластеризации для добычи знаний, сжатия данных и исследования свойств данных. Аппроксимация функций. Предположим, что есть обучающая выборка ((x1,y1), (x2,y2)..., (xn,yn)) (пары данных вход-выход), которая генерируется неизвестной функцией F, искаженной шумом. Задача аппроксимации состоит в нахождении неизвестной функции F. Аппроксимация функций необходима при решении многочисленных инженерных и научных задач моделирования. Предвидение/прогноз. Пусть заданы n дискретных отсчетов {y(t1), y(t2), ..., y(tn)} в последовательные моменты времени t1, t2,..., tn . Задача состоит в предвидении значения y(tn+1) в следующий момент времени tn+1. Предвидение/прогноз имеют большое значение для принятия решений в бизнесе, науке и технике (предвидение цен на фондовой бирже, прогноз погоды) [3]. Оптимизация. Многочисленные проблемы в математике, статистике, технике, науке, медицине и экономике могут рассматриваться как проблемы оптимизации. Задачей алгоритма оптимизации является нахождение такого решения, которое удовлетворяет системе ограничений и максимизирует или минимизирует целевую функцию. Память, адресуемая по смыслу. В традиционных компьютерах обращение к памяти доступно только с помощью адреса, не зависящего от содержания памяти. Более того, если допущена ошибка в вычислении адреса, то может быть найдена совсем другая информация. Ассоциативная память или память, адресуемая по смыслу, доступна по указанию заданного содержания. Содержимое памяти может быть вызвано даже по частичному входу или при поврежденном содержании. Ассоциативная память может быть использована в мультимедийных информационных базах данных. Управление. Рассмотрим динамическую систему, заданную совокупностью {u(t), y(t)}, где u(t) - входное управляющее воздействие, а y(t) - выход системы в момент времени t. В системах управления с эталонной моделью целью управления является расчет такого входного воздействия u(t), при котором система действует по желательной траектории, заданной эталонной моделью. Примером может быть управление автомобилем при парковке. Но, несмотря на преимущества нейронных сетей в отдельных областях над традиционными вычислениями, существующие нейросети не являются совершенными решениями. Они обучаются и могут делать «ошибки». Кроме того, нельзя гарантировать, что разработанная сеть будет оптимальной сетью. Новые возможности вычислений требуют умений разработчика вне границ традиционных вычислений. Сначала вычисления были лишь аппаратными, и инженеры делали их работающими. Потом были специалисты по программному обеспечению: программисты, системные инженеры, специалисты по базам данных и проектировщики. Теперь появились нейронные архитекторы. Новый профессионал должен иметь квалификацию выше, чем у предшественников. Например, он должен знать статистику для выбора и оценивания обучающих и тестовых множеств.
При создании эффективных нейросетей важным для современных инженеров программного обеспечения является логическое мышление, эмпирическое умение и интуиция [4].
|
|
Классификация известных нейросетей по основным категориям применения |
Нейросеть обратного распространение погрешности (Back Propagation)Архитектура FeedForward BackPropagation была разработана в начале 1970-х лет несколькими независимыми авторами: Вербор (Werbor); Паркер (Parker); Румельгарт (Rumelhart), Хинтон (Hinton) и Вильямс (Williams). Сейчас парадигма BackPropagation – наиболее популярная, эффективная и легкая модель обучения сложных, многослойных сетей. Она используется в разных типах приложений, и породила большой класс нейросетей с разными структурами и методами обучения. Типичная сеть BackPropagation имеет входной слой, выходной слой и, по крайней мере, один скрытый слой. Теоретически, ограничений относительно числа скрытых слоев не существует, но практически применяют один или два. Нейроны организованы в послойную структуру с прямой передачей сигнала. Каждый нейрон сети продуцирует взвешенную сумму своих входов, пропускает эту величину через передаточную функцию и выдает выходное значение. Сеть может моделировать функцию практически любой сложности, причем число слоев и число нейронов в каждом слое определяют сложность функции. Определение числа промежуточных слоев и числа нейронов в них является важным при моделировании сети. Большинство исследователей и инженеров, применяя архитектуру к определенным проблемам, используют общие правила, в частности:
После того, как определено число слоев и число нейронов в любом из них, нужно найти значения для синаптических весов и порогов сети, способных минимизировать погрешность спродуцированного результата. Именно для этого существуют алгоритмы обучения, где происходит подгонка модели сети к имеющимся обучающим данным. Погрешность для конкретной модели сети определяется путем прохождения через сеть всех обучающих примеров и сравнения спродуцированных выходных значений с желаемыми значениями. Множество погрешностей создает функцию погрешностей, значение которой можно рассматривать, как погрешность сети. В качестве функции погрешностей чаще используют сумму квадратов погрешностей. Для лучшего понимания алгоритма обучения сети Back Propagation нужно разъяснить понятия поверхности состояний. Каждому значению синаптических весов и порогов сети (свободных параметров модели количеством N) отвечает одно измерение в многомерном пространстве. N+1-ое измерение отвечает погрешности сети. Для разных соединений весов соответствующую погрешность сети можно изобразить точкой в N+1-измеримом пространстве, все эти точки образовывают некоторую поверхность - поверхность состояний. Цель обучения нейросети состоит в нахождении на многомерной поверхности наиболее низкой точки. Поверхность состояний имеет сложное строение и довольно неприятные свойства, в частности, наличие локальных минимумов (точки, наиболее низкие в своем определенном округе, но выше глобального минимума), плоские участки, седловые точки и длинные узкие овраги. Аналитическими средствами невозможно определить расположение глобального минимума на поверхности состояний, поэтому обучение нейросети, по сути, состоит в исследовании этой поверхности. Отталкиваясь от начальной конфигурации весов и порогов (от случайно избранной точки на поверхности), алгоритм обучения постепенно отыскивает глобальный минимум. Вычисляется вектор градиента поверхности погрешностей, который указывает направление кратчайшего спуска по поверхности из заданной точки. Если немножко продвинуться по нему, погрешность уменьшится. В конце концов, алгоритм останавливается в нижней точке, которая может оказаться лишь локальным минимумом (в идеальном случае - глобальным минимумом). Сложность здесь состоит в выборе длины шагов. При большой длине шага сходимость будет быстрее, но есть опасность перепрыгнуть решения, или пойти в неправильном направлении. При маленьком шаге, правильное направление будет выявлено, но возрастает количество итераций. На практике размер шага берется пропорциональным крутизне склона с некоторой константой - скоростью обучения. Правильный выбор скорости обучения зависит от конкретной задачи и определяется исследовательским путем. Эта константа может также зависеть от времени, уменьшаясь по мере продвижения алгоритма. Алгоритм действует итеративно, его шаги называются эпохами. На каждой эпохе на вход сети поочередно подаются все обучающие примеры, выходные значения сети сравниваются с желаемыми значениями и вычисляется погрешность. Значение погрешности, а также градиента поверхности состояний используют для коррекции весов, и действия повторяются. Процесс обучения прекращается или если пройдено определенное количество эпох, или если погрешность достигает определенного уровня малости, или если погрешность перестает уменьшаться (пользователь преимущественно сам выбирает нужный критерий останова) [1] . Области применения. Распознавание образов, классификация, прогнозирование. Недостатки. Многокритериальная задача оптимизации в методе обратного распространения рассматривается как набор однокритериальных задач - на каждой итерации происходят изменения значений параметров сети, которые улучшают работу лишь с одним примером обучающей выборки. Такой подход существенным образом уменьшает скорость обучения [1]. Преимущества. Обратное распространение - эффективный и популярный алгоритм обучения многослойных нейронных сетей, с его помощью решаются многочисленные практические задачи.
Модификации. Модификации алгоритма обратного распространения связаны с использованием разных функций погрешности, разных процедур определения направления и величины шага.
|
|
Сеть КохоненаСеть разработана Тойво Кохоненом в начале 1980-х гг. и принципиально отличается от рассмотренных выше сетей, поскольку использует неконтролируемое обучение и обучающее множество состоит лишь из значений входных переменных. Сеть распознает кластеры в обучающих данных и распределяет данные по соответствующих кластерах. Если дальше сеть встречается с набором данных, непохожим ни на одним из известных образцов, она относит его к нового кластеру. Если в данных содержатся метки классов, то сеть способна решать задачи классификации. Сеть Кохонена имеет всего два слоя: входной и выходной, ее называют самоорганизованной картой. Элементы карты располагаются в некотором пространстве - как правило, двумерном. Сеть Кохонена учится методом последовательных приближений. Начиная со случайным образом выбранного выходного расположения центров, алгоритм постепенно улучшается для кластеризации обучающих данных. Основной итерационный алгоритм Кохонена последовательно проходит ряд эпох, на каждой эпохе обрабатывается один обучающий пример. Входные сигналы (векторы действительных чисел) последовательно предъявляются сети, желаемые выходные сигналы не определяются. После предъявления достаточного числа входных векторов, синаптические весы сети определяют кластеры. Весы организуются так, что топологически близкие узлы чувствительны к похожим входным сигналам. Для реализации алгоритма необходимо определить меру соседства нейронов (окрестность нейрона-победителя). Сеть формирует грубую структуру топологического порядка, при которой похожие примеры активируют группы нейронов, которые близко находятся на топологической карте. С каждой новой эпохой скорость обучения и размер окрестности уменьшаются, и внутри участков карты обнаруживаются более тонкие расхождения, что приводит к точному настраиванию каждого нейрона. Часто обучения умышленно разбивают на две фазы: более короткую, с большой скоростью обучения и больших окрестностей, и более продолжительную с маленькой скоростью обучения и нулевыми или почти нулевыми окрестностями. После того, как сеть научена распознаванию структуры данных, ее можно использовать как средство визуализации при анализе данных [1]. Области применения. Кластерный анализ, распознавание образов, классификация. Недостатки. Сеть может быть использована для кластерного анализа только в том случае, если заранее известное число кластеров. Преимущества. Сеть Кохонена способна функционировать в условиях препятствий, так как число кластеров фиксировано, весы модифицируются медленно, настраивание весов заканчивается после обучения.
Модификации. Одна из модификаций состоит в том, что к сети Кохонена прибавляется сеть MAXNET. Она определяет нейрон с наименьшим расстоянием к входному сигналу.
|
|
Современные направления развития нейрокомпьютерных технологий |
Детальный анализ разработок нейрокомпьютеров позволяет выделить основные перспективные направления современного развития нейрокомпьютерных технологий: нейропакеты, нейросетевые экспертные системы, СУБД с включением нейросетевых алгоритмов, обработка изображений, управление динамическими системами и обработка сигналов, управление финансовой деятельностью, оптические нейрокомпьютеры, виртуальная реальность. Разработками в этой области занимается более 300 заграничных компаний, причем число их постоянно увеличивается. Среди них такие гиганты, как Intel, IBM и Motorolla. Сегодня наблюдается тенденция перехода от программных реализаций к программно-аппаратной реализации нейросетевых алгоритмов с резким увеличением числа разработок нейрочипов с нейросетевой архитектурой. Резко выросло количество военных разработок, в основном направленных на создание сверхскоростных, «умных» супервычислителей [1]. Если говорить про основное направление - интеллектуализацию вычислительных систем, придание им свойств человеческого мышления и восприятия, то здесь нейрокомпьютеры - практически единственный путь развития вычислительной техники. Большинство неудач на пути усовершенствования искусственного интеллекта на протяжении последних 30 лет связано с тем, что для решения важных и сложных по постановке задач выбирались вычислительные средства, не адекватные по возможностям решаемой задаче, в основном из числа традиционных компьютеров. При этом, как правило, не решалась задача, а показывалась принципиальная возможность ее решения. Сегодня активное развитие компьютерных технологий создал объективные условия для построения вычислительных систем, адекватных по возможностям и архитектуре практически любым задачам искусственного интеллекта. В Японии с 1993 года принята программа «Real world computing program». Ее основная цель - создание эволюционирующей адаптивной ЭВМ. Проект рассчитан на 10 лет. Основой разработки является нейротехнология, которая используется для распознавания образов, обработки семантической информации, управления информационными потоками и роботами, способных адаптироваться к окружающей среде. Только в 1996 году было проведено около сотни международных конференций по нейрокомпьютерам и смежным проблемам. Разработки нейрокомпьютеров ведутся во многих странах мира, в частности, в Австралии создан образец коммерческого супернейрокомпьютера. Для какого класса задач эффективно применение вычислительного устройства, построенного по новой технологии? Относительно нейрокомпьютеров ответ на этот вопрос постоянно меняется на протяжении 50 лет. В истории вычислительной техники всегда были задачи, не решаемые традиционными компьютерами с архитектурой фон Неймана и для них переход к нейросетевым технологиям закономерен в случае увеличения размерности пространства или сокращения времени обработки. Можно выделить три участка применения нейросетевым технологий: общий, прикладной и специальный. |
|
Общие задачиЭти задачи сводятся к обработке нейронною сетью многомерных массивов переменных, например:
|
|
Прикладные задачиОбработка изображений Перспективными задачами обработки изображений нейрокомпьютеров является обработка аэрокосмических изображений (сжатие с восстановлением, сегментация, обработка изображений), поиск, выделение и распознавание на изображении подвижных объектов заданной формы, обработка потоков изображений, обработка информации в высокопроизводительных сканерах. Обработка сигналов В первую очередь это класс задач, связанный с прогнозированием временных зависимостей:
При решении этих задач наблюдается переход от простейших регрессионных и других статистических моделей прогноза до нелинейных адаптивных экстраполирующих фильтров, реализованных в виде сложных нейронных сетей. Системы управления динамическими объектами Это одна из самых перспективных, областей применения нейрокомпьютеров. В США и Финляндия ведут работы по использованию нейрокомпьютеров для управления химическими реакторами. В странах СНГ этим не занимались, в частности, через моральное устаревание существующих реакторов и нецелесообразность усовершенствования их систем управления [1]. Перспективной считается разработка нейрокомпьютера для управления подвижной установкой гиперзвукового самолета. Актуальной для решения с помощью нейрокомпьютера является задача обучения нейронной сети изготовлению точного маневра истребителя, задача управления роботами: прямая, обратная кинематическая и динамическая задачи, планирование маршрута движения работа. Переход к нейрокомпьютерам связан в первую очередь с ограниченностью объемов размещения вычислительных систем, а также с необходимостью реализации эффективного управления в реальном масштабе времени.
|
|
Нейросетевые экспертные системыНеобходимость реализации экспертных систем с алгоритмом нейросетей возникает при значительном увеличении числа правил и выводов. Примерами реализации конкретных нейросетевых экспертных систем могут служить система выбора воздушных маневров в ходе воздушного боя и медицинская диагностическая экспертная система для оценки состояния летчика [7].
|
|
Нейрочипы и нейрокомпьютерыГлавным результатом разработки нейросетевых алгоритмов решения задачи является возможность создания архитектуры нейрочипа, адекватной решаемой задаче. Для реализации нейросетевых алгоритмов с использованием универсальных микропроцессорных средств эффективней создать архитектуру, ориентированную на выполнение нейросетевых операций, чем использовать стандартные алгоритмы, ориентированные на модификацию решения задачи. В отличие от других направлений развития сверхпродуктивной вычислительной техники, нейрокомпьютеры дают возможность вести разработки с использованием имеющегося потенциала электронной промышленности. Необходимо отметить ряд важных особенностей данных работ:
|
|
ВыводНейрокомпьютеры являются перспективным направлением развития современной высокопроизводительной вычислительной техники, а теория нейронных сетей и нейроматематика представляют собой приоритетные направления вычислительной науки, и при соответствующей поддержке интенсивно развиваются. Основой активного развития нейрокомпьютеров является принципиальное отличие нейросетевым алгоритмов решения задач от однопроцессорных и малопроцессорных [5]. Нейрокомпьютеры является предметом исследований сразу нескольких дисциплин, поэтому единственное определение нейрокомпьютера можно дать только с учетом разных точек зрения, адекватных разным направлениям науки [4]. Математическая статистика Нейрокомпьютеры - это системы, разрешающие сформировать описание характеристик случайных процессов и совокупности случайных процессов, имеющих сложные, многомодальные или неизвестные функции распределения. Математическая логика и теория автоматов Нейрокомпьютеры - это системы, в которых алгоритм решения задачи представлен логической сетью элементов отдельного вида - нейронов, с полным отказом от булевских элементов типа И, ИЛИ, НЕТ, вследствие этого введены специфические связи между элементами, которые являются предметом отдельного рассмотрения [2]. Теория управления В качестве объекта управления выбирается хорошо формализованный объект - многослойная нейронная сеть, а динамический процесс ее настраивания представляет процесс решения задачи. При этом практически весь аппарат синтеза адаптивных систем управления переносится на нейронную сеть, как отдельный вид объекта управления [6]. Вычислительная математика Нейрокомпьютеры реализуют алгоритмы решения задач, представленные в виде нейронных сетей. Это ограничение позволяет разрабатывать алгоритмы, потенциально распараллелельнее, чем другая их физическая реализация. Множество нейросетевых алгоритмов решения задач составляет перспективный раздел вычислительной математики, условно названный нейроматематикой [1]. Вычислительная техника Нейрокомпьютер - это вычислительная система, в которой реализованы два принципиальных технических решения:
Литература
|
© Фёдоров А.В., ДонНТУ, 2010