- •Цифровая обработка сигналов и изображений
- •Лабораторный практикум по цифровой обработке сигналов и изображений
- •Тема 1. Спектральный анализ и синтез сигналов
- •Краткие теоретические сведения.
- •Лабораторная работа №1 Расчет спектра центрированного прямоугольного импульса
- •Нахождение амплитудного спектра в среде математического пакета Mathcad
- •Лабораторная работа №2 Расчет спектра прямоугольного импульса, начинающегося в нулевой момент времени
- •Нахождение амплитудного и фазового спектра в среде математического пакета Mathcad
- •Вопросы для самопроверки
- •Тема 2. Построение и моделирование цифровых нерекурсивных фильтров
- •2.1. Краткие теоретические сведения о цифровых фильтрах Классификация сигналов
- •Связь между аналоговыми и дискретными сигналами. Теорема Котельникова. Связь между дискретными и цифровыми сигналами
- •Динамические характеристики цифровых фильтров: передаточная функция, частотная передаточная функция, импульсная переходная функция, связь между ними с помощью преобразования Фурье
- •Понятие рекурсивных и нерекурсивных цифровых фильтров, ких и бих фильтров
- •Понятие устойчивости фильтров
- •Синтез нерекурсивных цифровых фильтров
- •Второй рассмотрим введение весовой функции Фейера:
- •Лабораторная работа №4 Расчет и моделирование нерекурсивного низкочастотного фильтра с высокочастотным синусоидальным шумом в среде математического пакета Mathcad
- •Пример программы в Mathcad.
- •Лабораторная работа №5 Расчет и моделирование нерекурсивного низкочастотного фильтра с высокочастотным псевдобелым шумом в среде математического пакета Mathcad
- •Пример программы в Mathcad.
- •Вопросы для самопроверки
- •Понятие устойчивости фильтров.
- •Тема 3. Построение и моделирование цифровых рекурсивных филитров
- •3.1. Краткие теоретические сведения о цифровых фильтрах. Синтез рекурсивных фильтров
- •Полиномиальные цифровые фильтры нч
- •Синтез цифровых фильтров нч Баттерворта Для фильтра Баттерворта справедливо записать:
- •Лабораторная работа №6 Расчет и моделирование рекурсивного низкочастотного фильтра Баттерворта с высокочастотным псевдобелым шумом в среде математического пакета Mathcad
- •Вопросы для самопроверки
- •Понятие устойчивости фильтров.
- •Тема 4. Цифровая обработка сигналов с помощью вейвлет-преобразований
- •Тема 5. Цифровая обработка изображений в matlab
- •1. Краткие теоретические сведения
- •Задание и порядок выполнения работы
- •Вопросы для самопроверки
- •Тема 6. Цифровая обработка сигналов и изображений с помощью нейронных сетей Краткие теоретические сведения
- •Классификация и свойства нейронных сетей
- •Обучение искусственных нейронных сетей
- •Обучение с учителем
- •Обучение без учителя
- •Нечеткие (гибридные) нейронные сети
- •Алгоритмы обучения и использования нечетких нейронных сетей
- •Лабораторная работа № 10. Низкочастотная фильтрация с помощью нейронных сетей
- •Порядок выполнения работы
- •Программа моделирования нч фильтра на основе нейронной сети
- •Вопросы для самопроверки
- •Литература
Обучение искусственных нейронных сетей
Очень важно выбрать нужную структуру нейронной сети, которая должна соответствовать решаемой задаче. Но этого недостаточно. Для того чтобы нейронная сеть выполняла возложенные на нее функции, необходимо правильно подобрать весовые коэффициенты и смещения, что производится в процессе обучения.
Каждому входному
вектору
множества
нейронная сеть ставит в соответствие
выходной вектор
множества
,
в соответствии с функцией преобразования
.
(6.18)
При заданной
структуре сети и функциях активации,
функция
определяется
весовыми коэффициентами и смещениями.
Можно говорить о множестве
функций преобразования, причем каждая
функция этого множества будет
соответствовать вполне определенным
весовым коэффициентам и смещениям.
Процесс обучения
сети заключается в поиске такой функции
,
которая бы минимизировала некоторый
функционал
на всем множестве входных
и выходных
векторов. Таким образом, процесс обучения
нейронной сети сводится к решению задачи
многомерной оптимизации. Для ее решения
могут быть использованы следующие
методы:
локальной оптимизации с вычислением частных производных первого порядка;
локальной оптимизации с вычислением частных производных первого и второго порядка;
стохастической оптимизации;
глобальной оптимизации.
Существуют разные критерии, применяемые для сравнения методов обучения сети. Наиболее существенным является вычислительная сложность алгоритмов обучения и время обучения. Как правило, чем больше вычислительная сложность алгоритма и время обучения, тем выше качество обучения. Поэтому здесь необходим разумный компромисс. Предпочтение нужно отдавать методам, которые при небольшой вычислительной сложности и приемлемом времени обучения дают достаточно хорошее качество обучения.
Существуют три вида обучения: «с учителем», «без учителя» (самообучение и смешанный.
Обучение с учителем
Обучение с учителем предполагает, что для каждого входного вектора существует выходной целевой вектор, которые образуют обучающую пару. Обучение сети производится на некотором множестве таких обучающих пар.
Если нейронная сеть состоит из одного слоя нейронов, алгоритм обучения «с учителем» заключается в прямой подстройке весовых коэффициентов и смещений этого слоя, таким образом, чтобы минимизировать ошибку на выходе сети.
В многослойных нейронных сетях требуемые значения выходных сигналов нейронов скрытых слоев не известны. Известны только требуемые сигналы на выходе сети, по которым достаточно сложно осуществить настройку весовых коэффициентов и смещений скрытых слоев.
Существует алгоритм, называемый алгоритмом обратного распространения ошибки, который широко применяется в процедурах обучения нейронных сетей. В этом алгоритме рассматривается распространение сигналов ошибки от выходов нейронной сети к ее входам, в отличие от прямого распространения сигналов от входа сети к ее выходу.
Будем рассматривать трехслойную нейронную сеть, изображенную на Рис.5. Сеть функционирует согласно уравнениям (6.11). Будем предполагать, что функции активации входного и выходного слоев линейны, а скрытого слоя – логистическая функция.
Процедура обучения заключается в следующем. Сначала нейронная сеть на основании входного вектора формирует выходной вектор, а затем сравнивает его с желаемым (целевым) выходным вектором. Если различий между векторами нет, то сеть обучать не следует. Если же различие имеет место, то весовые коэффициенты изменяются таким образом, чтобы разница между векторами уменьшилось.
Мерой различия является функционал квадрата ошибки, имеющий следующий вид
,
(6.18)
.
(6.19)
Здесь
-
функционал квадрата ошибки
-
го вектора,
-
количество векторов в обучающей выборке,
-
желаемый
-
й элемент
-
го выходного вектора,
-
фактический элемент выходного вектора,
-
число нейронов выходного слоя.
Рассмотрим правило обучения для выходного слоя. В соответствии с (6.11) для выходного слоя справедливо записать
,
;
(6.20)
.
(6.21)
Здесь
-
взвешенная сумма входных сигналов
-
го нейрона выходного слоя.
Вывод строится на основе одного из градиентных методов, например метода наискорейшего спуска. В соответствии с этим методом
,
-
необходимое изменение весового
коэффициента
-го
входа и
-го
нейрона в настоящий и последующий
моменты времени, то есть
.
(6.22)
При обучении обычно вводится некоторый коэффициент обучения, влияющий на скорость обучения
,
.
(6.23)
Введем в рассмотрение
величину обобщенного сигнала ошибки
.
(6.24)
Тогда
.
(6.25)
В этом выражении, являющимся произведением двух сомножителей, первый сомножитель выражает изменение ошибки в зависимости от изменения входного сигнала выходного слоя сети, а второй, влияние конкретного веса связи на входной сигнал выходного слоя сети.
С учетом (6.11)
,
откуда
,
.
(6.26)
Величину обобщенного
сигнала ошибки
представим в виде
.
(6.27)
Таким образом,
величина обобщенного сигнала ошибки
представляет собой произведение двух
членов. Первый из них отражает изменение
ошибки по отношению к выходу сети, а
второй – изменение выхода по отношению
к изменению входа выходного слоя.
Из уравнения (6.19) получим
,
(6.28)
а из выражения (6.20)
,
(6.29)
где
-
производная от
по
.
С учетом (6.5)
,
(6.30)
откуда
.
(6.31)
Таким образом, для выходного слоя имеем
,
.
(6.32)
Теперь рассмотрим правило настройки весовых коэффициентов скрытого слоя. В соответствии с методом наискорейшего спуска
.
(6.33)
Это выражение представим в следующем виде
,
(6.34)
где
.
Из уравнений (6.11) для скрытого слоя получим
,
;
.
(6.35)
Тогда
,
(6.36)
и
.
(6.37)
Величину обобщенного
сигнала ошибки
представим в следующем виде
.
Суммирование по
говорит о том, что изменение величины
влияет на все выходы
,
поэтому и требуется суммирование по
.
С учетом полученных ранее выражений, найдем величину обобщенного сигнала ошибки
.
(6.38)
Аналогично может быть получено выражение для настройки весовых коэффициентов входного слоя
,
(6.39)
и величины обобщенного сигнала ошибки
.
(6.40)
Таким образом, получен следующий алгоритм изменения весовых коэффициентов в скрытом и выходном слое
,
,
, (6.41)
,
Чтобы повысить скорость обучения и придания процессу некоторой инерционности, сглаживающей колебания в выходном сигнале, модифицируем первые три уравнения из (6.40), включив в них время, в соответствии со следующим правилом
,
,
.
Здесь
- коэффициент инерционности (сглаживания).
Алгоритм обучения нейронной сети с помощью процедуры обратного распространения ошибки может быть представлен в виде следующей последовательности шагов.
Шаг 1. Присвоить
начальные значения величинам
,
,
,
,
,
,
и
.
Положить в логистической функции
.
Шаг 2. Подать на
нейронную сеть входной сигнал. Задать
соответствующий ему желаемый выход
,
вычислить
,
,
и
по формуле
.
Шаг 3. Изменить весовые коэффициенты на величину
.
Шаг 4. Вычислить
по формуле
.
Шаг 5. Изменить весовые коэффициенты на величину
.
Шаг 6. Вычислить по формуле
.
Шаг 7. Изменить весовые коэффициенты на величину
.
Шаг 8. Положить
и перейти к шагу 2.
Рассматриваемая нейронная сеть имеет несколько «узких» мест. Во-первых, большие положительные или отрицательные значения весов могут сместить рабочую точку на логистической функции активации нейрона в область насыщения. Малые величины производной от логистической функции приведут к остановке обучения, что парализует сеть.
Во-вторых, применение метода градиентного спуска не гарантирует нахождение глобального минимума целевой функции. Этот вопрос тесно связан с выбором скорости обучения. Приращения весов и, следовательно, скорость обучения для нахождения экстремума должны быть бесконечно малыми. Однако в этом случае обучение будет происходить неприемлемо медленно.
С другой стороны,
слишком большие коррекции весов могут
привести к постоянной неустойчивости
процесса обучения. Поэтому в качестве
коэффициента скорости обучения
обычно выбирается число меньшее 1,
например
,
которое в процессе обучения постепенно
уменьшается.
Для исключения попадания в локальные минимумы, после того как значения весовых коэффициентов стабилизировались, рекомендуется кратковременно значительно увеличить , чтобы начать градиентный спуск из новой точки. Если при повторении этой процедуры несколько раз нейронная сеть приходит в одно и тоже состояние, то с большой уверенностью можно утверждать, что найден глобальный максимум.
