Секция 4 - Нейросетевые технологии (1250001), страница 7
Текст из файла (страница 7)
Медведев В. С., Потемкин В. Г. Нейронные сети. MATLAB 6.— М.:ДИАЛОГ-МИФИ, 2002.— 496 с.9. Demuth H. Neural Network Toolbox. User’s Guide. Version 4 / H. Demuth,M. Beale.— MathWorks, Inc., 2001.— 844 p.10. Осовский С. Нейронные сети для обработки информации.— М.: Финансы и статистика, 2002.— 344 с.11. Haykin S. Neural Networks: a Comprehensive Foundation.— New Jersey:Prentice Hall, 1999.— 842 с.1265Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»УДК 519.711.3РЕШЕНИЕ РЕСУРСОЕМКИХ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ С ПОМОЩЬЮ НЕЙРОСЕТЕЙЗлобин В.
В.Московский государственный университет им. М.В.Ломоносова,факультет вычислительной математики и кибернетики, Москва,e-mail:zlobin@cs.msu.suМатематическое моделирование призвано заменить натурные эксперименты. Математическая модель стала единственным средством изученияявлений в тех областях человеческой деятельности, где проведение натурных экспериментов связано с большими финансовыми затратами или риском для жизни людей. К такой области деятельности относится разработкаустановок для осуществления управляемого термоядерного синтеза(УТС) [1].
Целью моделирования УТС является увеличение длительностиразряда в плазме. Увеличение достигается за счет выбора оптимальных параметров, поиск которых осуществляется путем оптимизации соответствующей математической модели. Но оказывается, что сами математические модели настолько сложны и требуют столько вычислительных ресурсов, что их невозможно использовать для поиска оптимальных параметров.Например, для кода SCoPE, моделирующего эволюцию равновесия тороидальной плазмы, время одного расчета занимает несколько часов на компьютере P4 1700MHz. Но число параметров, влияющих на длительностьразряда — несколько десятков. Поэтому, предлагается заменить саму математическую модель еще более простой моделью на основе нейросетей.
Акак известно, одно прямое вычисление по нейросети выполняется за долисекунды. Эту нейросеть можно использовать как модель процессов, происходящих в плазме. Таким образом, авторами предлагается следующая методика.1. Проводятся расчеты по исходной математической модели. Наборысоответствующих параметров выбираются случайно.2. С помощью проведенных расчетов настраивается нейросеть прямого распространения.3.
Проводится поиск оптимальных значений параметров с помощьюградиентных методов, используя нейросеть как целевую функцию.4. В этих точках проводятся расчеты по исходной модели.5. Результаты новых расчетов используются для уточнения настройки нейросети. Окончательные результаты оптимизации проверяются по точной модели.Для программной реализации методики была выбрана системаMATLAB 6.5, так как она предоставляет удобные средства для работы с1266Секция 4. Нейро-сетевые технологиинейросетями (Neural Network Toolbox) и градиентными методами оптимизации (Optimization Toolbox).Решение задачи оптимизации в токамакеРассмотрим в качестве примера задачу об увеличении дополнительного (бутстрап) тока в установке токамак и продемонстрируем на ней всепреимущества предлагаемого подхода. Способ получения оптимальныхпараметров поясняется на рис.1.ИсходныепараметрыНатурныйэкспериментИсходныепараметрыМатематическаямодельРезультатыИсходныепараметрыНейроннаясетьРезультатыРезультатыРис.
1. Три сценария настройки параметров. Каждый переход на уровень ниже,расширяет возможности экспериментатора.В первой строке приводиться стандартная последовательность действий, которая применяется для настройки параметров некоторого процесса, например, физиком-экспериментатором. Задавая различные исходныеданные, исследователь проводит полномасштабные натурные эксперименты. По результатам делаются выводы о степени влияния различных параметров, на основе чего выбираются их новые значения и эксперименты повторяются.Вторая строка (рис.1) отражает переход от натурного эксперимента кего математической модели [2].
Здесь требуется проделать дополнительную работу по созданию адекватного математического описания иссле1267Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»дуемого процесса. Затем, вместо исследования влияния параметров напроцесс, проводиться изучение математической модели, а зависимость отпараметров исследуется на ее решении. Наряду с теоретическими методами изучения моделей, используется вычислительный эксперимент, сутькоторого состоит в численном решении возникающих при моделированииматематических задач. В этом случае, исследователь совершает те же действия, что и физик-экспериментатор, за исключением того, что вместопроведения натурного эксперимента он исполняет программу на ЭВМ.Нижняя строка на рис. 1 обозначает переход от математической модели, основанной на численных методах, к нейронной сети.
На этом этапеисследователь создает нейронную сеть и обучает ее по результатам расчетов вычислительного эксперимента. Проверяет степень соответствия нейросети и исходной математической модели с помощью тестового множества параметров, не участвовавшего в обучении. И теперь, оптимальные значения параметров можно искать практическим любым известным методомоптимизации, в том числе градиентными методами. Высокая скоростьпрямого вычисления значений нейросети (тысячи значений в секунду насовременном персональном компьютере), позволяет воспользоваться дажеперебором. В этом и заключается основное преимущество предлагаемойметодики, потому что сложные математические модели не позволяют использовать эти методы поиска параметров из-за своей ресурсоемкости.Процедуру увеличения дополнительного тока в установке токамакможно разбить на пять шагов, поясняющих рис.
2.53.5x 10окрестности максимумамаксимум, найденныйпо нейросетевой моделивеличина дополнительного тока , А3ручная настройка2.521.510.5случайный поиск024681012141618202224262830номер экспериментаРис. 2. Динамика изменения дополнительного тока в процессеоптимизации параметров. По оси X отложены порядковые номера экспериментов,а по оси Y — величина дополнительного тока в амперах.1268Секция 4. Нейро-сетевые технологииШаг 1: провести расчеты в случайных точках. Из постановки задачи было известно, что ток 50 кА (килоампер) считается хорошим значением. Среди первых пяти случайных точек, оказалась одна, с током 70 кА(см. рис.2).
После этого, вместо случайных, выбирались такие точки, параметры которых были субъективно «похожи» на эту «эталонную» точку.Тут использовалась некоторая дополнительная информация о задаче, аименно, теоретическое положение о том, что большим значениям двух определенных параметров, соответствуют большие значения дополнительного тока. Но прямое применение этого правила невозможно, так как слишком большие значения параметров, несомненно, приведут к срыву плазмы,а значит, цель не будет достигнута. Тем не менее, среди следующих 17 точек, выбранных таким интуитивным образом, ток колебался около 200 кА,и максимум достиг 240 кА.Дальнейшие попытки улучшить результат вручную, даже с использованием новых расчетных данных, не оправдались (рис.2, эксперименты с6-го по 23-ий). Поэтому, переходим к следующему шагу.Шаг 2: обучить нейросеть.
Архитектура нейросети определяется заранее, но при увеличении размера обучающей выборки (по мере накопления результатов расчетов) может измениться. Например, может понадобиться увеличить число нейронов в скрытом слое, чтобы повысить точность нейросетевой модели. В качестве базовой использовалась следующая архитектура: два последовательно идущих скрытых слоя заканчиваются одним линейным выходным нейроном. Количество нейронов в каждом из скрытых слоев, выбиралось исходя из размеров обучающей выборки и ошибки на тестовом множестве. В конечном счете, наиболее удачнойоказалась архитектура с четырьмя нейронами (по два в каждом скрытомслое) с функцией активации — гиперболический тангенс. Создание и обучение сети с такой архитектурой в MATLAB осуществляется двумя командами:nn = newff ([min(P’)’ max(P’)’], [2 2 1], {‘tansig’, ‘tansig’, ‘purelin’});nn = train(nn, P, T);Где nn — переменная-нейросеть, P — входные параметры (каждый наборзанимает столбец), T — строка со значениями целевой функции.Для обучения нейросети использовался метод ЛевенбергаМарквартда.
Поскольку обучающая выборка содержит меньше 50 точек, анейросеть состоит лишь из 4 нейронов, то большие затраты памяти, приписываемые к недостаткам этого метода, практически не проявляются.Чтобы обучать сеть этим методом в MATLAB, перед обучением нужно добавить строку:nn.trainFcn=’trainlm’;Для остановки обучения использовалась байесовская регуляризация(nn.trainFcn = ‘trainbr’ ) или проверка на неуменьшение тестовой ошибки в1269Труды II научной конференции «Проектирование инженерных и научных приложений в среде MATLAB»течение30итераций(использовалсяпараметрнейросетиnn.trainParam.max_fail).Был проведен ручной отбор обучающей и тестовой выборки из всехимеющихся данных.
Обучив нейросеть, мы переходим к поиску максимаее значений в той области, в которой мы ее обучали.Шаг 3: Найти оптимальные значения параметров. Для оптимизации параметров по нейросетевой модели использовался квазиньютоновский алгоритм поиска экстремума (функция fminunc). Чтобы оценить реальную картину расположения экстремумов использовался метод мультистарта — поиск совершался из K начальных точек, при этом, максимальноечисло итераций квазиньютоновского алгоритма ограничивалось константой N. На практике использовались значения для K и N — около 30 и 50соответственно.Шаг 4: Провести расчеты в найденных точках.
После отбора наилучших точек по нейросети, в этих точках были проведены дополнительные расчеты по исходной модели. В нашем случае был выбран толькоодин максимум.Как видно на рисунке (см. рис. 2, эксперимент 24, ток 280 кА), максимальное значение тока увеличилось на (18%). Это значимый результат,потому что к этому моменту, попытки улучшить ток вручную стали безуспешными. Помимо расчетов в этой точке, были также проведены расчетыв случайных точках из малой окрестности выбранного максимума. Ясно,что среди них могут оказаться еще лучшие результаты (как и оказалось вданной задаче, см. рис.