Определение среднеквадратичной шероховатости поверхности опаловой матрицы (пример) (778898), страница 2
Текст из файла (страница 2)
Всего 80 наблюдений, которые надо разбить на 3 множества:
- обучающее- 65 примера
- контрольное – 8 примера (№ 3, 7, 12, 34, 40, 46, 68, 78)
- тестовое – 3 примера (№ 15, 26, 66).
-игнорируемое –3 примера (№ 31, 44, 50, 58), которые впоследствии будут использоваться в качестве данных для работы с произвольными данными.
4 Выбор типа и архитектуры нейронной сети
Как правило, прогнозируемая переменная (как и в нашем случае) является числовой, поэтому прогнозирование - это случай регрессии.
С целью решения задач регрессии можно использовать сети:
-
многослойный персептрон (MLP);
-
радиально-базисную функцию (RBF);
-
обобщенно-регрессионную (GRNN);
-
линейную.
1. Многослойный персептрон (MLP). Каждый элемент сети строит взвешенную сумму своих входов с поправкой в виде слагаемого и затем пропускает эту величину активации через передаточную функцию, и таким образом получается выходное значение этого элемента. Элементы организованы в послойную топологию с прямой передачей сигнала. Такую сеть легко можно интерпретировать как модель вход-выход, в которой веса и пороговые значения (смещения) являются свободными параметрами модели. Такая сеть может моделировать функцию практически любой степени сложности, причем число слоев и число элементов в каждом слое определяют сложность функции.
Для моделирования любой задачи достаточно многослойного персептрона с двумя промежуточными слоями (в точной формулировке этот результат известен как теорема Колмогорова). При этом может оказаться и так, что для решения некоторой конкретной задачи более простой и удобной будет сеть с еще большим числом слоев. Сети с тремя слоями практически не применяются.
MLP является универсальной сетью, которая быстро работает и умеет экстраполировать
В соответствии с вариантом домашнего задания необходимо использовать сеть MLP с двумя промежуточными слоями, в каждом из которых по одному нейрону. То есть структура - MLP (4:2-1-1-1)
2.Радиальная базисная функция (RBF). Данная сеть имеет ряд преимуществ перед MLP. Во-первых, они моделируют только произвольную нелинейную функцию с помощью одного промежуточного слоя, и тем самым избавляют нас от необходимости решать вопрос о числе слоев. Во-вторых, параметры линейной комбинации в выходном слое можно полностью оптимизировать с помощью хорошо известных методов линейного моделирования. Поэтому сеть RBF обучается очень быстро. Однако необходимо определить число радиальных элементов, положение их центров и величины отклонений. Опыт показывает, для правильного моделирования типичной функции сеть RBF, с ее более эксцентричной поверхностью отклика, требует несколько большего числа элементов. Сети RBF более чувствительны к "проклятию размерности" и испытывают значительные трудности, когда число входов велико. Так как число входов всего два, то использование RBF не будет вызывать трудностей.
RBF не умеет экстраполировать, но быстрее обучается в отличие от MLP. Данная сеть не выявляет тенденции, поэтому достовернее предскажет результат параметров.
Число слоев всегда 3. Выберем 2 модификации: с 15 и 30 промежуточными слоями
RBF (3:2-15-1), RBF (3:2-30-1).
3 Обобщенно-регрессионная нейронная сеть (GRNN) для решения задач регрессии использует метод ядерной аппроксимации. Сеть имеет 4 слоя: входной, 2 радиальных и выходной.
Первый промежуточный слой сети GRNN состоит из радиальных элементов. Второй промежуточный слой содержит элементы, которые помогают оценить взвешенное среднее. Для этого используется специальная процедура. Каждый выход имеет в этом слое свой элемент, формирующий для него взвешенную сумму. Чтобы получить из взвешенной суммы взвешенное среднее, эту сумму нужно поделить на сумму весовых коэффициентов. Последнюю сумму вычисляет специальный элемент второго слоя. После этого в выходном слое производится собственно деление (с помощью специальных элементов "деления"). Таким образом, число элементов во втором промежуточном слое на единицу больше, чем в выходном слое. Как правило, в задачах регрессии требуется оценить одно выходное значение, и, соответственно, второй промежуточный слой содержит два элемента.
Число слоев - 4. Число нейронов во втором промежуточном слое на единицу больше, чем в выходном слое, т.е n3=n4+1=2
GRNN (4:2-30-2-1)
4. Линейная. Линейная модель представляется сетью без промежуточных слоев, которая в выходном слое содержит только линейные элементы (то есть элементы с линейной функцией активации). Веса соответствуют элементам матрицы, а пороги - компонентам вектора смещения. Во время работы сеть фактически умножает вектор входов на матрицу весов, а затем к полученному вектору прибавляет вектор смещения. Эту сеть не брать в рассмотрение при решении задачи прогнозирования, так как она используется для простых задач с малым количеством обучающих данных.
Все типы и структуры сетей приведены в таблице 2.
Таблица 2. Тип и архитектура сетей
5 Выбор способа обучения сети и параметров процесса обучения. Выбор функции ошибки и ее допустимое значение
После того, как определено число слоев и число элементов в каждом из них, нужно найти значения для весов и порогов сети, которые бы минимизировали ошибку прогноза, выдаваемого сетью. Именно для этого служат алгоритмы обучения. С использованием собранных исторических данных веса и пороговые значения автоматически корректируются с целью минимизировать эту ошибку.
В качестве функции ошибок чаще всего берется сумма квадратов ошибок, т.е. когда все ошибки выходных элементов для всех наблюдений возводятся в квадрат и затем суммируются. При работе с пакетом ST Neural Networks пользователю выдается так называемая среднеквадратичная ошибка (RMS) - описанная выше величина нормируется на число наблюдений и переменных, после чего из нее извлекается квадратный корень - это очень хорошая мера ошибки, усредненная по всему обучающему множеству и по всем выходным элементам.
Среднее значение всех значений выходного параметра составляет 132,7133 мкм. Зададим предельную ошибку как 5 % от среднего значения, то есть не более 6,6357 мкм.
1 Обучение сети - многослойный персептрон MLP
Ошибка для конкретной конфигурации сети определяется путем прогона через сеть всех имеющихся наблюдений и сравнения реально выдаваемых выходных значений с желаемыми (целевыми) значениями.
Для обучения MLP использовалось управляемое обучение с кросс - проверкой.
Самый известный вариант алгоритма обучения нейронной сети - так называемый алгоритм обратного распространения. Существуют современные алгоритмы второго порядка, такие как метод сопряженных градиентов и метод Левенберга-Маркара, которые на многих задачах работают существенно быстрее (иногда на порядок).
В алгоритме обратного распространения вычисляется вектор градиента поверхности ошибок. Этот вектор указывает направление кратчайшего спуска по поверхности из данной точки, поэтому если мы "немного" продвинемся по нему, ошибка уменьшится. Последовательность таких шагов (замедляющаяся по мере приближения к дну) в конце концов приведет к минимуму того или иного типа. Определенную трудность здесь представляет вопрос о том, какую нужно брать длину шагов.
Таким образом, алгоритм действует итеративно, и его шаги принято называть эпохами. Таким образом, алгоритм действует итеративно, и его шаги принято называть эпохами. На каждой эпохе на вход сети поочередно подаются все обучающие наблюдения, выходные значения сети сравниваются с целевыми значениями и вычисляется ошибка. Значение ошибки, а также градиента поверхности ошибок используется для корректировки весов, после чего все действия повторяются. Начальная конфигурация сети выбирается случайным образом, и процесс обучения прекращается либо когда пройдено определенное количество эпох, либо когда ошибка достигнет некоторого определенного уровня малости, либо когда ошибка перестанет уменьшаться (пользователь может сам выбрать нужное условие остановки).
При большой длине шага сходимость будет более быстрой, но имеется опасность перепрыгнуть через решение или (если поверхность ошибок имеет особо вычурную форму) уйти в неправильном направлении. При маленьком шаге, вероятно, будет схвачено верное направление, однако при этом потребуется очень много итераций. На практике величина шага берется пропорциональной крутизне склона (так что алгоритм замедляет ход вблизи минимума) с некоторой константой, которая называется скоростью обучения.
С помощью алгоритма обратного распространения осуществляется градиентный спуск по поверхности ошибок.
Метод нелинейной оптимизации - спуск по сопряженным градиентам использует алгоритм, как правило, требует гораздо меньшего числа шагов, чем метод обратного распространения, и дает лучшую точку минимума (для того, чтобы алгоритм обратного распространения точно установился в некоторой точке, нужно выбирать очень маленькую скорость обучения).
В качестве метода обучения использовали
-
метод обратного распространения (Back propagation)
-
метод сопряженных градиентов(Conjugate Gradient descent)
Сеть работает лучше с использованием метода обратного распространения (Back propogation) со следующими параметрами: количество эпох-200, скорость обучения 0,001.
2 Обучение RBF происходит в несколько этапов: определение центров, отклонений и функции выходного параметра.
Расположение центров должно соответствовать кластерам, реально присутствующим в исходных данных. Два наиболее часто используемых метода:
-
Выборка из выборки (Sample). В качестве центров радиальных элементов берутся несколько случайно выбранных точек обучающего множества. В силу случайности выбора они "представляют" распределение обучающих данных в статистическом смысле. Однако, если число радиальных элементов невелико, такое представление может быть неудовлетворительным.
-
Алгоритм K-средних (K-means). Этот алгоритм стремится выбрать оптимальное множество точек, являющихся центроидами кластеров в обучающих данных. При K радиальных элементах их центры располагаются таким образом, чтобы:
-
Каждая обучающая точка "относилась" к одному центру кластера и лежала к нему ближе, чем к любому другому центру;
-
Каждый центр кластера был центроидом множества обучающих точек, относящихся к этому кластеру.
Величина отклонения (ее также называют сглаживающим фактором) определяет, насколько "острой" будет гауссова функция (поверхность отклика радиального элемента). Если эти функции выбраны слишком острыми, сеть не будет интерполировать данные между известными точками и потеряет способность к обобщению. Если же гауссовы функции взяты чересчур широкими, сеть не будет воспринимать мелкие детали. На самом деле сказанное - еще одна форма проявления дилеммы пере-/недообучения. Как правило, отклонения выбираются таким образом, чтобы колпак каждой гауссовой функций захватывал "несколько" соседних центров. Для этого имеется несколько методов:
-
Явный(Explicit). Отклонения задаются пользователем.
-
Изотропный. Отклонение берется одинаковым для всех элементов и определяется эвристически с учетом количества радиальных элементов и объема покрываемого пространства.
-
3 K ближайших соседей (K-Nearest). Отклонение каждого элемента устанавливается (индивидуально) равным среднему расстоянию до его K ближайших с. Тем самым отклонения будут меньше в тех частях пространства, где точки расположены густо, - здесь будут хорошо учитываться детали, - а там, где точек мало, отклонения будут большими (и будет производится интерполяция).
Отклонения и центры задавали двумя методами:
-
центры - выборка из выборки (sample), отклонения – изотропный метод (isotropic);
-
центры - алгоритм K-средних (K-means) и отклонения – K ближайших соседей (K-Nearest)
После того, как выбраны центры и отклонения, параметры выходного слоя оптимизируются с помощью стандартного метода линейной оптимизации - алгоритма псевдообратных матриц (Pseudo-invert).
Лучший результат получен при задании центров методом выборка из выборки (sample), задании отклонений изотропным метод (isotropic);















