Автор работы: Пользователь скрыл имя, 07 Ноября 2011 в 23:43, курсовая работа
ИНС представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты, особенно в сравнении с процессорами, используемыми в персональных компьютерах. Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие локально простые процессоры вместе способны выполнять довольно сложные задачи.
ВВЕДЕНИЕ
Идентификация
соединений при контроле качества пищевых
продуктов, объектов окружающей среды,
лекарственных препаратов, установлении
структуры нового вещества и решении
других задач с применением
Иску́сственные нейро́нные се́ти (ИНС) — математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге при мышлении, и при попытке смоделировать эти процессы. Первой такой моделью мозга был перцептрон. Впоследствии эти модели стали использовать в практических целях, как правило в задачах прогнозирования.
ИНС
представляют собой систему соединённых
и взаимодействующих между
С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т. п. С математической точки зрения обучение нейронных сетей, это многопараметрическая задача нелинейной оптимизации. С точки зрения кибернетики, нейронная сеть используется в задачах адаптивного управления и как алгоритмы для робототехники. С точки зрения развития вычислительной техники и программирования, нейронная сеть — способ решения проблемы эффективного параллелизма. А с точки зрения искусственного интеллекта, ИНС является основой философского течения коннективизма и основным направлением в структурном подходе по изучению возможности построения (моделирования) естественного интеллекта с помощью компьютерных алгоритмов.
Нейронные
сети не программируются в привычном
смысле этого слова, они обучаются.
Возможность обучения — одно из
главных преимуществ нейронных
сетей перед традиционными
Схема простой нейросети.
Зелёным обозначены входные элементы,
жёлтым
— выходной элемент
Сеть Кохонена
Нейронные сети Кохонена (Kohonen neural network) — класс нейронных сетей, основным элементом которых является слой Кохонена. Слой Кохонена состоит из адаптивных линейных сумматоров («линейных формальных нейронов»). Как правило, выходные сигналы слоя Кохонена обрабатываются по правилу «победитель забирает всё»: наибольший сигнал превращается в единичный, остальные обращаются в ноль.
По способам настройки входных весов сумматоров и по решаемым задачам различают много разновидностей сетей Кохонена.[1] Наиболее известные из них:
Сети векторного квантования сигналов[1], тесно связанные с простейшим базовым алгоритмом кластеризации (метод динамических ядер или K-средних, то есть K-means)
Самоорганизующиеся карты Кохонена (Self-Organising Maps, SOM)[1]
Сети
векторного квантования, обучаемые
с учителем (Learning Vector Quantization)[1]
Слой
Кохонена
Базовая
версия
Слой Кохонена состоит из некоторого количества параллельно действующих линейных элементов. Все они имеют одинаковое число входов и получают на свои входы один и тот же вектор входных сигналов . На выходе го линейного элемента получаем сигнал
где
— весовой коэффициент
го входа
го нейрона,
— пороговой коэффициент.
После
прохождения слоя линейных элементов
сигналы посылаются на обработку
по правилу «победитель забирает
всё»: среди выходных сигналов
ищется максимальный; его номер
. Окончательно, на выходе сигнал с номером
равен единице, остальные — нулю. Если
максимум одновременно достигается для
нескольких
, то либо принимают все соответствующие
сигналы равными единице, либо только
первый в списке (по соглашению). «Нейроны
Кохонена можно воспринимать как набор
электрических лампочек, так что для любого
входного вектора загорается одна из них.»[1]
Геометрическая интерпретация
Разбиение
плоскости на многоугольники Вороного-Дирихле
для случайно выбранных точек (каждая
точка указана в своём
Большое распространение получили слои Кохонена, построенные следующим образом: каждому ( му) нейрону сопоставляется точка в -мерном пространстве (пространстве сигналов). Для входного вектора вычисляется его расстояния до точек и «ближайший получает всё» — тот нейрон, для которого это расстояние минимально, выдаёт единицу, остальные — нули. Следует заметить, что для сравнения расстояний достаточно вычислять линейную функцию сигнала:
Последнее слагаемое одинаково для всех нейронов, поэтому для нахождения ближайшей точки оно не нужно. Задача сводится к поиску номера наибольшего из значений линейных функций:
Таким образом, координаты точки совпадают с весами линейного нейрона слоя Кохонена (при этом значение порогового коэффициента ).
Если
заданы точки
, то
-мерное пространство разбивается на соответствующие
многогранники Вороного-Дирихле
: многогранник
состоит из точек, которые ближе к
, чем к другим
(
).[1]
Сети
векторного квантования
Задача векторного квантования с кодовыми векторами для заданной совокупности входных векторов ставится как задача минимизации искажения при кодировании, то есть при замещении каждого вектора из соответствующим кодовым вектором. В базовом варианте сетей Кохонена используется метод наименьших квадратов и искажение вычисляется по формуле
где состоит из тех точек , которые ближе к , чем к другим ( ). Другими словами, состоит из тех точек , которые кодируются кодовым вектором .
Если совокупность задана и хранится в памяти, то стандартным выбором в обучении соответствующей сети Кохонена является метод K-средних. Это метод расщепления:
при данном выборе кодовых векторов (они же весовые векторы сети) минимизацией находим множества — они состоит из тех точек , которые ближе к , чем к другим ;
при данном разбиении на множества минимизацией находим оптимальные позиции кодовых векторов — для оценки по методу наименьших квадратов это просто средние арифметические:
где — число элементов в .
Далее итегрируем. Этот метод расщепления сходится за конечное число шагов и даёт локальный минимум искажения.
Если же, например, совокупность заранее не задана, или по каким-либо причинам не хранится в памяти, то широко используется онлайн метод. Векторы входных сигналов обрабатываются по одному, для каждого из них находится ближайший кодовый вектор («победитель», который «забирает всё») . После этого данный кодовый вектор пересчитывается по формуле
где — шаг обучения. Остальные кодовые векторы на этом шаге не изменяются.
Для обеспечения стабильности используется онлайн метод с затухающей скоростью обучения: если — количество шагов обучения, то полагают . Функцию выбирают таким образом, чтобы монотонно при и чтобы ряд расходился, например, .
Векторное
квантование является намного более
общей операцией, чем кластеризация,
поскольку кластеры должны быть разделены
между собой, тогда как совокупности
для разных кодовых векторов
не обязательно представляют собой раздельные
кластеры. С другой стороны, при наличии
разделяющихся кластеров векторное квантование
может находить их и по-разному кодировать.
Самоорганизующиеся карты Кохонена
Идея
и алгоритм обучения
Задача векторного квантования состоит, по своему существу, в наилучшей аппроксимации всей совокупности векторов данных кодовыми векторами . Самоорганизующиеся карты Кохонена (англ. Self-Organising Maps, SOM) также аппроксимируют данные, однако при наличии дополнительной структуры в совокупности кодовых векторов (англ. codebook). Предполагается, что априори задана некоторая симметричная таблица «мер соседства» (или «мер близости») узлов: для каждой пары ( ) определено число ( ) при этом диагональные элементы таблицы близости равны единице ( ).
Векторы входных сигналов обрабатываются по одному, для каждого из них находится ближайший кодовый вектор («победитель», который «забирает всё») . После этого все кодовые векторы , для которых , пересчитываются по формуле
где — шаг обучения. Соседи кодового вектора — победителя (по априорно заданной таблице близости) сдвигаются в ту же сторону, что и этот вектор, пропорционально мере близости.
Чаще всего, таблица кодовых векторов представляется в виде фрагмента квадратной решётки на плоскости, а мера близости определяется, исходя из евклидового расстояния на плоскости.
Самоорганизующиеся
карты Кохонена служат, в первую
очередь, для визуализации и первоначального
(«разведывательного») анализа данных.[1]
Каждая точка данных отображается соответствующим
кодовым вектором из решётки. Так
получают представление данных на плоскости
(«карту данных»). На этой карте возможно
отображение многих слоёв: количество
данных, попадающих в узлы (то есть «плотность
данных»), различные функции данных
и так далее. При отображении
этих слоёв полезен аппарат