Секция 4 - Нейросетевые технологии (1250001), страница 15
Текст из файла (страница 15)
Здесь N w — полное количество весовых коэффициентов нейронной сети. В сравнении с методом сопряженных градиентов квазиньютоновский алгоритм обладает более быстрой сходимостью, т. к. вместо вычисления гессиана выполняется его оценка.1313Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»2.2.3.
Алгоритм Левенберга-МарквардтаЗадача обучения нейронной сети обычно формулируется в виде нелинейной задачи наименьших квадратов. Соответственно для настройкипараметров нейронной сети могут быть использованы методы, относящиеся к методам наименьших квадратов, например, метод Гаусса-Ньютона,который относится к методам линеаризации. Пусть r обозначает вектор,содержащий значения ошибки, J — якобиан, содержащий производные отr, имеющий N w столбцов и N p × N y строк, где N p — число выборок,N y — число выходов. Выражение, описывающее метод Гаусса-Ньютона,имеет вид:wn = wc − ( J cT J c ) −1 ( J cT rc ) .Если J c является неполной, то можно применять метод ЛевенбергаМарквардта (Levenberg-Marquardt), при этом выражения для корректировки весов примет вид:wn = wc − ( J cT J c + µI ) −1 ( J cT rc ) .где µ — неотрицательное число.
В модифицированном алгоритме Левенберга-Марквардта, который был предложен для обучения многослойныхсетей прямого распространения используется диагональную матрицу вместо единичной матрицы I. Вычислительную сложность и требования к памяти у алгоритма Левенберга-Марквардта можно уменьшить, если использовать неполные матрицы Якоби.2.2.4. Алгоритмы глобальной оптимизацииДругой важный класс методов использует методы случайной оптимизации, которые характеризуются наличием элемента случайного поискав процессе обучения, что позволяет не останавливаться в локальных минимумах, а сходиться к глобальному минимуму целевой функции.К методам глобальной оптимизации относятся генетические алгоритмы обучения нейросети [6].
Эти алгоритмы имитируют процессы наследования свойств живыми организмами и генерируют последовательности новых векторов w, содержащие оптимизированные значения параметров. При этом выполняются операции трех видов: селекция, скрещиваниеи мутация. Идея этих операций, как и их название, заимствованы из генетики: отбор наиболее приспособленных хромосом — векторов w (селекция), обмен комплементарными частями среди отобранных хромосом(скрещивание) и замена значений отдельных генов случайными допустимыми значениями (мутация).Исследованиями доказано [6], что каждое последующее поколение,сформированное после выполнения указанных операций, имеет статисти1314Секция 4.
Нейро-сетевые технологиически лучшие средние показатели приспособленности. Когда обучениесчитается завершенным, в качестве окончательного решения принимаетсянаиболее приспособленная хромосома. Решение об остановке процессаобучения может быть принято либо при достижении удовлетворительногоуровня ошибки, либо при выполнении максимального количества итераций, либо в случае отсутствия прогресса минимизации.Поскольку методы случайного поиска, в том числе и генетические,сами по себе сходятся достаточно медленно, то целесообразно рассматривать более общие методы, являющиеся объединением традиционных градиентных методов обучения и методов случайной оптимизации. Если впроцессе обучения градиентным методом встречается пологий участок целевой функции, то обучающий алгоритм переключается на метод случайной оптимизации.
После того, как пологий участок пройден, алгоритмвновь переключается на градиентный метод.3. Реализация рассмотренных методов в среде MATLABПоскольку для решения задачи используется двухслойная сетьпрямого распространения, то для создания сети используется функцияnet = newff(PR,[S1 S2…SNI],{TF1 TF2…TFNI},btf,blf,pf)где PR — массив размера R×2 минимальных и максимальных значений дляR векторов входа; Si — количество нейронов в слое i; Tfi — функция активации слоя i, по умолчанию tansig; btf — обучающая функция, реализующая метод обратного распространения, по умолчанию trainlm; blf — функция настройки, реализующая метод обратного распространения, по умолчанию learngdm; pf — критерий качества обучения, по умолчанию mse;net — объект класса network object — нейронная сеть.В рассматриваемом случае вызов функции newff() выглядит следующим образом:min_max = zeros(Ni,2);min_max(:,1) = -pi;min_max(:,2) = pi;net = newff(min_max,[hls No],{'logsig','logsig'},'traingd');Здесь Ni — количество входов нейронной сети, hls — количествонейронов в скрытом слое, No — количество выходов нейронной сети.
Вприведенной записи предполагается, что для обучения будет использоваться классический алгоритм обратного распространения. Этот алгоритмреализует функция пакета Neural Network Toolbox ‘traingd’.Функция traingd характеризуется следующими параметрами, заданными по умолчанию:net.trainparamans =epochs:goal: 01001315Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»lr:1.0000e-002max_fail:5min_grad: 1.0000e-010show: 25time: InfЗдесь epochs — максимальное количество циклов (эпох) обучения; goal —предельное значение критерия обучения; lr — параметр скорости настройки; max_fail — максимально допустимый уровень превышения ошибкиконтрольного подмножества по сравнению с обучающим; min_grad — минимальное значения градиента; show — интервал вывода информации, измеренный в циклах; time — предельное время обучения в секундах.Результаты тестирования данного метода при решении рассматриваемой задачи показали, что алгоритм не достиг заданного уровня ошибкидаже через 1000 эпох обучения.
Алгоритмы второго порядка сходятся гораздо быстрее.Рассмотрим методы сопряженных градиентов. Функция ‘traincgf’реализует алгоритм Флетчера-Ривса, а функция ‘traincgp’ — алгоритм Полака-Рибейры. Эти функции характеризуются следующими параметрамипо умолчанию:net = newff(min_max,[hls No],{'logsig','logsig'},'traincgf');net.trainParamans =epochs:100show: 25goal: 0time: Infmin_grad: 1.0000e-006max_fail:5searchFcn: 'srchcha'scale_tol:20alpha: 0.0010beta: 0.1000delta: 0.0100gama: 0.1000low_lim:0.1000up_lim:0.5000maxstep:100minstep:1.0000e-006bmax: 26Здесь SearchFcn — имя функции одномерного поиска; scale_tol —коэффициент для вычисления шага процедуры одномерного поиска;alpha — коэффициент, определяющий порог уменьшения критерия качества; beta — коэффициент, определяющий выбор шага; delta — начальныйшаг разбиения интервала; gama — параметр, регулирующий изменениекритерия качества; lo_lim — нижняя граница изменения шага; up_lim —верхняя граница изменения шага; maxstep — максимальное значение шага;1316Секция 4.
Нейро-сетевые технологииminstep — минимальное значение шага; bmax — максимальное значениешага для процедуры srchhyb.Алгоритм Бройдена-Флетчера-Голдфарба-Шанно реализован вMATLAB в виде функции обучения ‘traindfg’. Параметры данной функции практически совпадают с параметрами функции traincgf, за исключением программы одномерного поиска, которая в данном случае замененаM-функцией srchbac.Последний алгоритм, который тестировался при решении рассматриваемой задачи — это алгоритм Левенберга-Марквардта (функция обучения trainlm) и его модификация на основе метода регуляризации Байеса(trainbr). Параметры по умолчанию этих функций приведены ниже:net.trainParamans =epochs:100goal: 0max_fail:5mem_reduc: 1min_grad: 1.0000e-010mu: 0.0010mu_dec:0.1000mu_inc:10mu_max:1.0000e+010show: 25time: InfРассмотрим новые параметры.
Параметр mu — начальное значениедля коэффициента µ . Это значение умножается либо на коэффициентmu_dec, когда функционал ошибки уменьшается, либо на коэффициентmu_inc, когда функционал ошибки возрастает. Если mu превысит значениеmu_max, алгоритм останавливается. Параметр mem_reduc позволяет экономить объем используемой памяти (чем его значение больше, тем меньшеобъем требуемой памяти и тем меньше быстродействие алгоритма).В табл.
1 представлены результаты, полученные на компьютере IntelCeleron 900Мгц, позволяющие сравнить длительность, количество цикловобучения и вычислительную сложность различных алгоритмов (во всехслучаях обучение проводилось до получения на выходе нейронной сетисреднеквадратичной ошибки (sse) меньшей, чем 0.5). Все алгоритмы былиреализованы в среде MATLAB 6.5 (Release 13), что создало основу для получения объективных оценок применительно к данной конкретной задаче.В рассматриваемом случае нейронная сеть имела три слоя. Количествонейронов во входном и скрытом слоях было равно 16, в выходном слое —8.
Это соответствует разбиению изображения на блоки по 8 пикселей ивычислению для каждого из них 32-точечного ДПФ [8].1317Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»Таблица 1.Сравнение эффективности алгоритмов обучения.Название алгоритмаАлгоритм Левенберга–МарквардтаАлгоритм, основанный наметоде БайесаАлгоритм на основеметода масштабируемыхсопряженных градиентовАлгоритм на основеметода Флетчера–РивсаАлгоритм на основеметода Полака–РибейрыАлгоритм на основеметода Пауэлла–БиелеВремяКоличествообучения,цикловсобученияЧислооперацийМаксимальнаяэнергия ошибки для10000 тестовыхсигналов20208 1351.66604318 6300.81301492611 9982.630027081 483 7261.888814447 6461.721118391 102 2992.1ВыводыПо результатам многочисленных и различных тестов были сделаныследующие выводы:Алгоритмы, основанные на алгоритме обратного распространенияпри решении данной задачи дают неудовлетворительные результаты, ниодин из них не позволяет получить приемлемое значение ошибки на выходе нейронной сети за удовлетворительное время обучения.Наибольшую эффективность показал алгоритм Левенберга–Марквардта.
При его использовании наблюдалось наименьшее время обучения, наименьшее количество циклов обучения и наименьшая вычислительная сложность.Следующим по эффективности обучения идет метод ПолакаРибейры, относящийся к группе методов сопряженных градиентов. Этомуметоду немного уступает метод масштабируемых сопряженных градиентов.Отдельно следует сказать про алгоритм, основанный на методе Байеса. Фактически эта процедура обучения реализует алгоритм ЛевенбергаМарквардта, дополненный методом регуляризации, уменьшающим эффектпереобучения.
Из приведенной таблицы видно, что процедура настройкипараметров сети длится втрое дольше, при этом выполняется приблизительно вдвое больше циклов обучения, чем для «чистого» метода Левенберга-Марквардта, но способность сети к обобщению (эффективность аппроксимации реальной зависимости) оказывается наилучшей. В рассматриваемой задаче целесообразно использовать именно эту процедуру обу1318Секция 4. Нейро-сетевые технологиичения, поскольку, во-первых, метод Левенберга-Марквардта оказался наиболее эффективным при настройке параметров сети на обучающем множестве и, во-вторых, не предъявляется жестких требований к скорости обучения сети.Был также проведен ряд экспериментов по обучению нейросети генетическим методом обучения.