AI интеллект & Нейронные сети #8
ТЕХНОЛОГИЯ НЕЙРОСЕТЕВЫХ СТРУКТУР
Сети также можно классифицировать по числу слоев. На рисунке снизу представлен двухслойный перцептрон, полученный из перцептрона путем добавления второго слоя, состоящего из двух нейронов.
Здесь уместно отметить важную роль нелинейности активационной функции, так как, если бы она не обладала данным свойством или не входила в алгоритм работы каждого нейрона, результат функционирования любой р-слойной НС с веcовыми матрицами 10°, i = 1, 2, р для каждого слоя / сводился бы к перемножению входного вектора сигналов X на матрицу
т.е. фактически такая р-слойная НС эквивалентна однослойной НС с весовой матрицей единственного слоя W .
В ряде случаев нелинейность вводится и в синаптические связи. При этом, как правило, используют для нахождения взвешенной суммы входов нейрона формулу, однако в некоторых приложениях НС полезно ввести другую запись, например:
Введение такого рода нелинейности, вообще говоря, увеличивает вычислительную мощь сети, т.е. позволяет из меньшего числа нейронов с "нелинейными" синапсами сконструировать НС, выполняющую работу обычной НС с большим числом стандартных нейронов и более сложной конфигурации.
Многообразие существующих структур НС позволяет отыскать и другие критерии для их классификации.
Из рисунка функции единичного скачка видно,
что пороговое значение Г, в общем случае, может принимать произвольное значение. Более того, оно должно принимать некое произвольное, неизвестное заранее значение, которое подбирается на стадии обучения вместе с весовыми коэффициентами. То же самое относится и к центральной точке сигмоидной зависимости, которая может сдвигаться вправо или влево по оси х, а также и ко всем другим активационным функциям. Это, однако, не отражено в формуле, которая должна была бы выглядеть так:
Дело в том, что такое смещение обычно вводится путем добавления к слою нейронов еще одного входа, возбуждающего дополнительный синапс каждого из нейронов, значение которого всегда равняется 1. Присвоим этому входу номер 0. Тогда
Очевидно, что различие формул состоит лишь в способе нумерации входов.
Из всех активационных функций, изображенных на рисунке снизу,
одна выделяется особо. Это гиперболический тангенс, зависимость которого симметрична относительно оси х и лежит в диапазоне [-1, 1]. Выбор области возможных значений выходов нейронов во многом зависит от конкретного типа НС и является вопросом реализации, так как манипуляции с ней влияют на различные показатели эффективности сети, зачастую не изменяя общую логику ее работы.
Иначе говоря, работа всех сетей сводится к классификации (обобщению) входных сигналов, принадлежащих «-мерному гиперпространству, по некоторому числу классов. С математической точки зрения это происходит путем разбиения гиперпространства гиперплоскостями
(запись для случая однослойного перцептрона)
Каждая полученная область является областью определения отдельного класса. Число таких классов для одной НС перцептронного типа не превышает 2'”, где m - число выходов сети, Однако не все из них могут быть разделимы данной НС.
Например, однослойный перцептрон, состоящий из одного нейрона с двумя входами, не способен разделить плоскость (двумерное гиперпросграноство) на две полуплоскости так, чтобы осуществить классификацию входных сигналов по классам А и В. Таблица:
является уравнением прямой (одномерной гиперплоскости), которая ни при каких условиях не может разделить плоскость так, чтобы точки из множества входных сигналов, принадлежащие разным классам, оказались по разные стороны от прямой (рисунок снизу).
Анализируя таблицу сверху, можно заметить, что данное разбиение на классы реализует логическую функцию исключающего ИЛИ для входных сигналов. Невозможность реализации однослойным перцептроном этой функции получила название проблемы исключающего ИЛИ.
Функции, которые не реализуются однослойной сетью, называются линейно неразделимыми. Решение задач, подпадающих под это ограничение, заключается в применении 2-слойных и более слой-ных сетей или сетей с нелинейными синапсами, однако и тогда существует вероятность, что корректное разделение некоторых входных сигналов на классы невозможно.
Вопросы обучения НС могут быть более подробно рассмотрены на примере перцептона. В этом случае алгоритм обучения с учителем будет выглядеть следующим образом.
1.Проинициализировать элементы весовой матрицы (обычно небольшими случайными значениями).
2.Подать на входы один из входных векторов, которые сеть должна научиться различать, и вычислить ее выход.
3.Если выход правильный, перейти на шаг 4.
Иначе вычислить разницу между идеальным и полученным значениями выхода:
где t и t + 1 - номера соответственно текущей и следующей итераций; v - коэффициент скорости обучения, 0 < v < 1; i -номер входа; j - номер нейрона в слое.
Очевидно, что если У > У, весовые коэффициенты будут увеличены и тем самым уменьшат ошибку. В противном случае они будут уменьшены, и У тоже уменьшится, приближаясь к у.
4.Повторять цикл с шага 2, пока сеть не перестанет ошибаться.
На втором шаге на разных итерациях поочередно в случайном порядке предъявляются все возможные входные вектора. К сожалению, нельзя заранее определить число итераций, которые потребуется выполнить, а в некоторых случаях и гарантировать полный успех.
Нужно отметить, что применение НС в основном тяготеет к распознаванию образов, их классификации и, в определенной степени, к сжатию информации.