- •Ведение
- •1. Определение инс
- •1.1 Теоретическая постановка задачи.
- •1.2 Биологический нейрон.
- •1.3 Искусственный нейрон
- •1.4 Однослойные искусственные нейронные сети.
- •1.5 Персептрон - инструмент для классификации образов.
- •2. Описание структуры программы
- •2.1 Обучение нейросети
- •2.2 Результаты тестирования программы
- •Список литературы
1.4 Однослойные искусственные нейронные сети.
Хотя один нейрон и способен выполнять простейшие процедуры распознавания, сила нейронных вычислений проистекает от соединений нейронов в сетях. Простейшая сеть состоит из группы нейронов образующих слой, как показано в правой части рисунка. Отметим, что вершины - круги слева служат лишь для распределения входных сигналов.
Рисунок 6 –Однослойная нейронная сеть
Они не выполняют каких-либо вычислений, и поэтому не будут считаться слоем. Каждый элемент из множества входов Х отдельным весом соединен с каждым искусственным нейроном. А каждый нейрон выдает взвешенную сумму входов в сеть. В искусственных и биологических сетях многие соединения могут отсутствовать, все соединения показаны в целях общности. Могут иметь место также соединения между выходами и входами элементов в слое (сети Хопфилда). Удобно считать веса элементами матрицы W. Матрица имеет n строк и m столбцов, где n - число входов, а m - число нейронов. Таким образом, вычисление выходного вектора OUT, компонентами которого являются выходы NET нейронов сводится к матричному умножению OUT=XW [4].
1.5 Персептрон - инструмент для классификации образов.
Персептрон - это некоторый инструмент, который способен "запоминать" ("обучиться") - какой образ относится к какому классу. После такого "обучения", в идеале, он должен уметь правильно "узнавать" и другие образы, не входившие в обучающее множество, но достаточно похожие на них, или сообщать, что образ не похож ни на один из множества обучающих образов. Степень "достаточной похожести" определяется удачностью выбора признакового множества. А способность персептрона "обучиться" зависит от разделимости признакового множества, то есть от уникальности наборов признаков с точностью до класса (иными словами - не пересекаются ли области, ограничивающие свои классы). Итак, персептрон - это однослойная нейронная сеть. Принцип его работы таков:
Задается и обнуляется матрица весов.
Обучающий образ, представленный входным вектором X (нулей и единиц) умножается на матрицу весов. В результате получается вектор NET, размерностькоторого равна количеству нейронов.
Строим на основе полученного произведения выходной вектор (такой же размерности) по формуле: yi = F (NETi), где F - пороговая функция. В нашем случае это линейная функция .
Сравниваем покомпонентно получившийся вектор Y с правильным ответом. Под ответом подразумевается вектор такой же размерности, что и выходной. Его надо заранее подготовить, и, разумеется, для каждого класса это должен быть свой уникальный вектор.
При этом сравнении мы выполняем следующие действия (для каждой компоненты векторов): Если j-тая компонента результата больше j-той компоненты ответа, мы вычитаем входной (!) вектор из j-того столбца матрицы весов, то есть столбца j-того нейрона (что бы при последующем умножении входного вектора на матрицу скалярное произведение оказалось меньше). Если j-тая компонента результата меньше j-той компоненты ответа, мы прибавляем входной (!) вектор к j-тому столбцу матрицы весов. Таким образом, входной вектор корректирует матрицу весов под свои значения.
Так же персептрон обучается на втором обучающем образе, третьем, ..., k-том.
Если хотя бы один обучающий образ изменил матрицу весов, повторяем все еще раз с шага 2. Существует теорема, что если классы обучающих образов разделимы, то рано или поздно матрица перестанет меняться (обучится).
Одна итерация обучения персептрона на одном образе представлена на рисунке 7:
Рисунок 7 – Итерация в персептроне