Исскуственные нейронный сети

Введение

В первых поколениях компьютеров не было возможности отображать графику. Поэтому программисты заинтересовались возможностью отображения графики с помощью текстовых символов и вывода полученных изображений на экран терминала и печать. Это стало популярным развлечением программистов — написать программу, которая «рисует» заданное изображение текстовыми символами. Позже зародилось целое направление Ascii Art, когда кодирование изображения в текстовый формат стало одним из направлений искусства. Однако кроме развлекательного аспекта данную технологию можно использовать и в более прикладных областях, например, сжатие с потерями, и передача данных по сети в компактном формате.

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

 

Исскуственные нейронный сети

 

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

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

 

Рисунок 1.1 : Модель нейрона

 

Многослойный персептрон

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

Рисунок 1.2: Пример линейно разделимой задачи.

 

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

Рисунок 1.3: Пример разбиения плоскости на кластеры.

 

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

 

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

· множества входных узлов, которые образуют входной слой;

· одного или нескольких скрытых слоев вычислительных нейронов;

· одного выходного слоя нейронов.

Многослойный персептрон представляет собой обобщение однослойного персептрона Розенблатта. Архитектура многослойной нейронной сети состоит из множества слоев нейронных элементов.

Рисунок 1.4: Пример многослойной ИНС с двумя скрытыми слоями.

Входной слой (input layer) нейронных элементов выполняет распределительные функции. Выходной слой (output layer) нейронов служит для обработки информации от предыдущих слоев и выдачи результатов. Слои нейронных элементов, расположенные между входным и выходным слоем, называются промежуточными или скрытыми (hidden layers). Как и выходной слой, скрытые слои являются обрабатывающими. Выход каждого нейронного элемента предыдущего слоя нейронной сети соединен синоптическими связями со всеми входами нейронных элементов следующего слоя. Таким образом, топология многослойной нейронной сети является однородной и регулярной. Количество слоев в многослойной нейронной сети характеризует, каким образом входное пространство может быть разбито на подпространства меньшей размерности. Так, двухслойная нейронная сеть с одним слоем нелинейных нейронов разбивает входное пространство образов на классы при помощи гиперплоскости. Трехслойная нейронная сеть, где в качестве двух последних слоев используются нейронные элементы с нелинейной функцией активации, позволяет формировать любые выпуклые области в пространстве решений. При помощи четырехслойной нейронной сети, которая имеет три нелинейных слоя, можно получать область решений любой формы и сложности, в том числе и невыпуклой.

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

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

Свойство 1. Каждый нейрон сети имеет нелинейную функцию активации

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

где – параметр наклона сигмоидальной функции. Изменяя этот параметр, можно построить функции с различной крутизной.

График 1.1: Сигмоидная функция активации

 

Наличие нелинейности играет очень важную роль, так как в противном случае отображение «вход-выход» сети можно свести к обычному однослойному персептрону.

Свойство 2. Несколько скрытых слоев

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

Свойство 3. Высокая связность

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

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

Для обучения многослойных ИНС применяется алгоритм обратного распространения ошибки.