Тип
сети
|
Преимущества
|
Недостатки
|
MLP
|
Небольшие,
быстро работают.
|
Медленно
обучаются.
|
RBF
|
Быстро
обучаются.
|
Большие
по размерам. Не могут экстраполировать.
|
Линейные
|
Простые,
быстро обучаются.
|
Не
могут решать нелинейные задачи.
|
Байесовы
|
Обучаются
очень быстро, имеют хорошую теоретическую основу.
|
Очень
большие, медленно работают, не экстраполируют.
|
Кохонена
|
Неуправляемое
обучение.
|
Сложность
исследования.
|
Таблице 3.1.1. Типы нейронных сетей и их
особенности.
Рассмотрим все эти типы нейронных сетей и методы
их обучения в программе Trajan.
.1.1 Многослойный персептрон
Эта структура сети используется сейчас наиболее
часто. Каждый элемент сети строит взвешенную сумму своих входов с поправкой в
виде слагаемого, затем пропускает эту величину активации через передаточную
функцию, и таким образом получается выходное значение этого элемента. Элементы
организованны в послойную топологию с прямой передачей сигнала. Такую сеть
можно легко интерпретировать как модель вход-выход, в которой свободными
параметрами являются веса и пороговые значения. Сеть подобной структуры может
моделировать функцию практически любой степени сложности, причем число слоев и
число элементов в каждом слое определяет сложность функции.
3.1.1.1 Обучение MLP
сетей в программе Trajan
После того, как определено число слоев и число
элементов в каждом из них, нужно найти значения для весов и порогов сети,
которые минимизировали бы ошибку прогноза, выдаваемого сетью. Именно для этого
служат алгоритмы обучения. С помощью собранных исторических данных веса их
пороговые значения автоматически корректируются с целью минимизировать эту
ошибку. Этот процесс представляет собой подгонку модели, которая реализуется
сетью, к имеющимся обучающим данным. Ошибка для конкретной конфигурации сети
определяется путем прогона через сеть всех имеющихся наблюдений и сравнивания
реально выдаваемых выходных значений с желаемыми (целевыми) значениями. Все
такие разности суммируются в так называемую функцию ошибок, значение которой и
есть ошибка сети. Чаще всего для построения функции ошибки все ошибки выходных
элементов для всех наблюдений возводятся в квадрат и затем суммируются. При
работе с программой Trajan
пользователю выдается так называемая среднеквадратичная ошибка - описанная выше
величина нормируется на число наблюдений и переменных, после чего из нее
извлекается квадратный корень. Это очень хорошая мера ошибки, усредненная по
всему обучающему множеству и по всем выходным элементам.
В традиционном моделировании можно
алгоритмически определить конфигурацию модели, дающий абсолютный минимум для
указанной ошибки. Цена, которую приходиться платить за более широкие
(нелинейные) возможности моделирования с помощью нейронных сетей, состоит в
том, что, корректировать сеть с целью минимизировать ошибку, мы никогда не
можем быть уверены, что нельзя добиться еще меньшей ошибки.
Здесь оказывается очень полезным понятие
поверхности ошибок. Каждому из весов и порогов сети (то есть свободных
параметров модели; их общее число обозначим через N)
соответствует одно измерение в многомерном пространстве. (N+1)-е
измерение соответствует ошибке сети. Для всевозможных сочетаний весов
соответствующую ошибку сети можно изобразить точкой в (N+1)-мерном
пространстве, и все такие точки образуют там некоторую поверхность -
поверхность ошибок. Цель обучения состоит в том, чтобы найти на этой
многомерной поверхности самую низкую точку.
В нейронных сетях поверхность ошибок имеет
сложное строение и обладает рядом неприятных свойств, в частности, может иметь
локальные минимумы, плоские участки, седловые точки и длинные узкие овраги.
Аналитическими средствами невозможно определить
положение глобального минимума на поверхности ошибок, поэтому обучение
нейронной сети, по сути дела, заключается в исследовании этой поверхности.
Отталкиваясь от случайной начальной конфигурации весов и порогов (то есть
случайно взятой области на поверхности ошибок), алгоритм обучения постепенно
отыскивает глобальный минимум. Как правило, для этого вычисляется градиент
(наклон) поверхности ошибок в данной точке, а затем эта информация используется
для продвижения вниз по склону. В конце концов алгоритм останавливается в
нижней точке, которая может оказаться всего лишь локальным минимумом (а если
повезет - глобальным минимумом).
В программе Trajan
реализованы основные алгоритмы обучения MLP
сетей: метод обратного распространения, сопряженных градиентов и
Левенберга-Маркара.
нейронный сеть программа trajan
3.1.1.1.1 Алгоритм обратного
распространения
В алгоритме обратного распространения
вычисляется вектор градиента поверхности ошибок. Этот вектор указывает
направление кратчайшего спуска по поверхности из данной точки, поэтому если мы
«немного» продвинемся по нему, ошибка уменьшится. Последовательность таких
шагов, замедляющаяся по мере приближения к дну, в конце концов, приведет к
минимуму того или иного типа. Определенную трудность здесь представляет вопрос
об необходимой длине шага.
При большой длине шага сходимость будет более
быстрой, но имеется опасность перепрыгнуть через решение или, если поверхность
ошибок имеет более вычурную форму, уйти в неправильном направлении.
Классическим примером такого явления при обучении сети служит ситуация, когда
алгоритм очень медленно продвигается по узкому оврагу с крутыми склонами,
прыгая с одной его стороны на другую. Напротив, при маленьком шаге, вероятно,
будет схвачено верное направление, однако при этом потребуется очень много
итераций. На практике величина шага берется пропорционально крутизне склона
(так что алгоритм замедляет ход вблизи минимума) с некоторой константой,
которая называется скоростью обучения. Правильный выбор скорости обучения
зависит от конкретной задачи и обычно подбирается опытным путем; эта константа
может также зависеть от времени, уменьшаясь по мере продвижения к минимуму.
Таким образом, алгоритм действует итеративно, и
его шаги принято называть эпохами. На каждой эпохе на вход сети поочередно
подаются все обучающие наблюдения, выходные значения сети сравниваются с
целевыми значениями и вычисляется ошибка. Значение ошибки, а также градиента
поверхности ошибок используются для корректировки весов, после чего все действия
повторяются. Начальная конфигурация сети выбирается случайным образом, и
процесс обучения прекращается либо когда пройдено определенное количество эпох,
либо когда ошибка достигает некоторого определенного уровня малости или вовсе
перестает уменьшаться.
Одной из серьезных трудностей данного подхода
является в том, что таким образом мы минимизируем не ту ошибку, которую на
самом деле нужно минимизировать - ошибку, которую можно ожидать от сети, когда
ей будут подаваться на вход совершенно новые наблюдения. Иначе говоря, мы
хотели бы, чтобы нейронная сеть обладала способностью обобщать результат на
новые наблюдения. В действительности сеть обучается минимизировать ошибку на
обучающем множестве, и в отсутствие идеального и бесконечно большого множества
это совсем не тоже самое, что минимизировать «настоящую» ошибку на поверхности
ошибок в заранее известной модели явления. Сильнее всего это различие
проявляется в проблеме переобучения, или излишней подгонки. Сети с большим
числом весов моделируют более сложные функции и, следовательно, склонны к
переобучению. Сеть же с небольшим числом весов может оказаться недостаточно
гибкой, чтобы смоделировать имеющуюся зависимость. Почти всегда более сложная
сеть дает меньшую ошибку, но это может свидетельствовать не о хорошем качестве
модели, а о переобучении.
Для фиксирования переобучения в программе Trajan
используется механизм контрольной кросспроверки. Резервируется часть обучающих
наблюдений, и они не используются в обучении по алгоритму обратного
распространения. Вместо этого, по мере работы алгоритма, они используются для
независимого контроля результата. В самом начале работы ошибка сети на
обучающем и контрольном множестве будет одинаковой (если они существенно
отличаются, то, вероятно, разбиение всех наблюдений на два множества было
неоднородно). По мере того, как сеть обучается, ошибка обучения, естественно,
убывает, и, пока обучение уменьшает действительную функцию ошибок, ошибка на
контрольном множестве также будет убывать. Если же контрольная ошибка перестала
убывать или даже стала расти, это указывает на то, что сеть начала слишком
быстро аппроксимировать данные и обучение следует остановить. Это явление
чересчур точной аппроксимации и называется переобучением. Если такое случилось,
то обычно советуют уменьшить число скрытых элементов и/или слоев, ибо сеть
является слишком мощной для данной задачи. Если же сеть, наоборот, была взята
недостаточно богатой для того, чтобы моделировать имеющуюся зависимость, то
переобучения, скорее всего, не произойдет, и обе ошибки - обучения и проверки -
не достигнут достаточного уровня малости.
Описанные проблемы с локальными минимумами и
выбором размера сети приводят к тому, что при практической работе с нейронными
сетями, как правило приходится экспериментировать с большим числом различных
сетей, порой обучая каждую из них несколько раз и сравнивая полученные
результаты. Главным показателем качества результата является здесь контрольная
ошибка. При этом в соответствии с общенаучным принципом, согласно которому при
прочих равных показателях следует предпочесть более простую модель, из двух
сетей с приблизительно равными ошибками имеет смысл выбрать ту, которая меньше
по размеру.
Необходимость многократных экспериментов ведет к
тому, что контрольное множество начинает играть ключевую роль в выборе модели,
то есть становится частью процесса обучения. Тем самым ослабляя его роль как
независимого критерия качества модели - при большом числе экспериментов есть
риск выбрать «удачную» сеть, дающую хороший результат на контрольном множестве.
Для того, чтобы придать окончательной модели должную надежность в программе Trajan
предусмотрено еще одно - тестовое множество. Итоговая модель тестируется на
данных из этого множества, чтобы убедиться, что результаты, достигнутые на
обучающем и контрольном множествах реальны. А не являются артефактами процесса
обучения. Разумеется, для того чтобы хорошо играть свою роль, тестовое
множество должно быть использовано только один раз.
3.1.1.1.2 Метод сопряженных
градиентов
Метод сопряженных градиентов является методом
линейного поиска. Алгоритм линейного поиска действует следующим образом:
выбирается какое-либо разумное направление движения по многомерной поверхности.
В этом направлении проводится линия, и на ней ищется точка минимума (это
делается относительно просто с помощью того или иного варианта метода деления
отрезка пополам); затем все повторяется с начала. Очевидным разумным
направлением является направление скорейшего спуска (именно так действует
алгоритм обратного распространения). На самом деле, этот вроде бы очевидный
выбор не очень удачен. После того как был найден минимум по некоторой прямой,
следующая линия, выбранная для кратчайшего спуска, может «испортить» результаты
минимизации по предыдущему направлению. В методе сопряженных градиентов после
нахождения точки минимума, вдоль некоторой прямой, производная по этому
направлению равна нулю, сопряженное направление выбирается таким образом, чтобы
эта производная и дальше оставалась нулевой. Если это условие выполнимо, то до
достижения точки минимума достаточно будет N
эпох. На реальных, сложно устроенных поверхностях по мере хода алгоритма
условие сопряженности портится, и, тем не менее, такой алгоритм, как правило,
требует гораздо меньшего числа шагов, чем метод обратного распространения, и
дает лучшую точку минимума.
3.1.1.1.3 Метод Левенберга-Маркара
Метод Левенберга-Маркара - это метод
доверительных областей, основанный на следующей идее: вместо того чтобы
двигаться в определенном направлении поиска, предположим, что поверхность имеет
достаточно простую форму, так что точку минимума можно найти непосредственно.
Попробуем смоделировать это и посмотреть, насколько хорошей окажется полученная
точка. Вид модели предполагает, что поверхность имеет хорошую и гладкую форму,
такое предположение выполнено вблизи точек минимума. Вдали от них данное
предположение может сильно нарушаться, так что модель будет выбирать для
очередного продвижения совершенно не те точки. Правильно работать такая модель
будет только в некоторой окрестности минимума, причем размеры этой окрестности
заранее не известны. Поэтому выберем в качестве следующей точки для продвижения
нечто промежуточное между точкой, которую предлагает наша модель, и точкой,
которая получилась бы по обычному методу градиентного спуска. Если эта новая точка
оказалась хорошей передвинемся в нее и усилим роль нашей модели в выборе
очередных точек; если же точка оказалась плохой, не будем в нее перемещаться и
увеличим роль метода градиентного спуска при выборе очередной точки.
3.1.2 Радиальные базисные функции
В программе Trajan имеется возможность
работать с сетями различных архитектур, из которых, вероятно, лучше всего
известны многослойные персептроны. Другой, тоже часто используемый тип
элементов -радиальная базисная функция (RBF).
Каждый элемент
многослойного персептрона выполняет линейное преобразование входного вектора
(набора значений, подаваемого на вход элемента); более точно, берется
взвешенная сумма входов, и из нее вычитается пороговое значение. В программе Trajan такое преобразование
называется линейной PSP (пост-синаптической потенциальной) функцией. Результат затем
пропускается через нелинейную функцию активации. Линейность PSP-функции означает, что
многослойный персептрон фактически делит пространство входных векторов на части
посредством гиперплоскостей (в двумерном пространстве гиперплоскость - это
обычная прямая).
В отличие от
многослойного персептрона с его линейным подходом, в сети на радиальных
базисных функциях используется радиальная PSP-функция. В каждом
элементе вычисляется квадрат расстояния от входного вектора до вектора весов.
Затем это расстояние умножается на «пороговое значение» (в действительности, на
величину отклонения), после чего результат пропускается через функцию
активации. Таким образом, сеть на радиальных базисных функциях делит
пространство входов посредством гиперсфер (в двумерном пространстве гиперсфера
- это окружность).
Каждый из двух
описанных подходов имеет свои достоинства и недостатки. Действие радиальных
функций очень локально, в то время как при линейном подходе охватывается все
пространство входов. Поэтому, как правило, RBF сети имеют больше
элементов, чем MLP сети, однако MLP может делать необоснованные обобщения в ситуациях, когда ему
попадается набор данных, непохожий ни на какие наборы из обучающего множества,
в то время как RBF в таком случае всегда будет выдавать почти нулевой отклик.
В теории отмечается
также, что для решения некоторых классов задач с помощью MLP требуется два
промежуточных слоя, а иногда для большей эффективности приходится брать даже большее
число промежуточных слоев. В отличие от этого, для RBF-сети всегда достаточно
одного промежуточного слоя.
RBF-сеть всегда состоит из трех слоев: входного, промежуточного,
состоящего из радиальных элементов, и линейного выходного слоя. Благодаря нелинейности
радиальных элементов, этот выходной слой можно брать уже чисто линейным (т.е. с
линейной PSP-функцией и линейной функцией активации). В программу Trajan заложены стандартные
методы линейной оптимизации, позволяющие оптимизировать параметры выходного
линейного слоя при любых заданных параметрах предыдущих слоев сети.
Таким образом,
способ обучения RBF сети принципиально отличается от того, который мы имели в случае MLP. Прежде всего, с
помощью обучения без учителя (т.е. когда в обучающих данных в расчет
принимаются только значения входных переменных) определяются радиальные центры
и отклонения (или протяженность). По сути дела, идея состоит в том, чтобы
поместить центры в середины кластеров обучающих данных, а отклонения выбрать
так, чтобы они отражали плотность данных в кластерах. Затем происходит
оптимизация линейного выходного слоя методом псевдообратных матриц.
Можно действовать
иначе: изменить вид функций активации элементов выходного слоя на логистические
(Logistic) и затем обучить этот слой с помощью метода обратного
распространения, сопряженных градиентов или Левенберга-Маркара, соединив таким
образом преимущества нелинейности радиальных функций и устойчивость
логистических функций активации, правда, ценой увеличения времени обучения.
3.1.3 Линейные модели
Главная причина
популярности нейронных сетей кроется в их способности моделировать нелинейные
задачи, т.е. задачи классификации, которые нельзя решить, проводя
гиперплоскость между классами, и задачи регрессии, которые нельзя решить,
проводя гиперплоскость через данные.
При этом, однако,
не следует пренебрегать и простыми линейными моделями. Часто оказывается, что
задача, считавшаяся сложной и нелинейной, на самом деле может быть успешно
решена линейными методами, и, во всяком случае, линейная модель является
хорошей точкой отсчета для сравнения эффективности различных более сложных
методов.
В программе Trajan линейные модели строятся с помощью специального типа нейронных
сетей - линейных. Линейная сеть имеет всего два слоя: входной и выходной слой,
имеющий линейные PSP-функции и функции активации. Как и выходной слой RBF сети, линейная сеть
оптимизируется непосредственно с помощью метода псевдообратных.
3.1.4 Сеть Кохонена
Сеть Кохонена сильно отличается от всех других
типов сетей, реализованных в программе Trajan.
В то время как все остальные сети предназначены для задач с управляемым
процессом обучения, сети Кохонена главным образом рассчитаны на неуправляемое
обучение.
При управляемом обучении наблюдения,
составляющие обучающие данные, вместе с входными переменными содержат также и
соответствующие им выходные значения, и сеть должна восстановить отображение,
переводящее первые во вторые. В случае же неуправляемого обучения обучающие
данные содержат только значения входных переменных, и сеть Кохонена учится
понимать саму структуру данных.
Одно из возможных применений
таких сетей - разведочный анализ данных. Сеть Кохонена может распознавать
кластеры в данных, а также устанавливать близость классов. Таким образом,
пользователь может улучшить свое понимание структуры данных, чтобы затем
уточнить нейросетевую модель. Если в данных распознаны классы, то их можно
обозначить, после чего сеть сможет решать задачи классификации. Сети Кохонена
можно использовать и в тех задачах классификации, где классы уже заданны, -
тогда преимущество будет в том, что сеть сможет выявить сходство между
различными классами. Другая возможная область применения - обнаружение новых
явления. Сеть Кохонена распознает кластеры в обучающих данных и относит все
данные к тем или иным кластерам. Если после этого сеть встретится с
наблюдениями, непохожими ни на один из известных образцов, то она не сможет
классифицировать такой набор и тем самым выявит его новизну. Сеть Кохонена
имеет всего два слоя: входной и выходной, составленный из радиальных элементов
(выходной слой также называют слоем топологической карты). Элементы
топографической карты располагаются в некотором пространстве, как правило,
двумерном.
Обучение происходит так: очередное наблюдение
подается на вход сети, обрабатывается ею, выбирается выигравший (наиболее
активный) элемент второго слоя сети, и затем он и его ближайшие соседи
корректируются так, чтобы лучше воспроизводить обучающее наблюдение. Скорость
обучения управляет степенью адаптации, а окрестность определяет количество
корректируемых элементов.
Обучение сети Кохонена происходит по
определенному алгоритму. Обычно работа алгоритма Кохонена разбивается на два
этапа: упорядочивания и тонкой настройки, на каждом из которых скорость
обучения и размер окрестности, параметры влияющие на обучение, постепенно
меняются от своих начальных значений к конечным В связи со специфичностью сетей
Кохонена программа Trajan,
имеет специальные средства для работы с ними, в том числе:
· Окно Частоты выигрышей - Win
Freguencies.В диалоговом окне Частоты выигрышей - Win
Freguencies, которое
открывается командой меню Статистки - Statistics,
можно наблюдать за тем, где на топологической карте формируются кластеры. Это
окно прогоняет сеть по всем наблюдениям из обучающего множества и подсчитывает,
сколько раз каждый элемент выиграл (то есть оказывался ближайшим к
обрабатываемому наблюдению). Большие значения частоты выигрышей указывают на
центры кластеров в топологической карте. Элементы с нулевой частотой выигрышей
вообще не были использованы, и часто это считается признаком того, что обучение
не было особенно успешным (так как сеть не использовала все свои ресурсы).
· Окно Топологическая карта - Topological
Map. В окне
Топологическая карта - Topological
Map выходной слой
представлен графически в пространстве двух измерений.
3.1.5 Вероятностные нейронные сети (PNN)
Вероятностные
нейронные сети (PNN) или по другому Байесовы сети, применяются в задачах
классификации, поэтому набор данных для них должен иметь одну номинальную
выходную переменную.
Стандартные
архитектуры сетей, рассчитанные на управляемое обучение (многослойный
персептрон и радиальная базисная функция), предполагают построение
параметрической модели по имеющимся обучающим данным, где в качестве параметров
выступают веса. Параметрическая модель (сеть) по объему обычно оказывается
гораздо меньше, чем набор обучающих данных, и работает довольно быстро, хотя
для обучения сети иногда может требоваться значительное время.
К задаче можно
подойти иначе: попытаться моделировать искомое отображение более или менее
непосредственно по обучающим данным. Преимущество такого подхода в том, что
здесь не требуется обучения (не считая, быть может, некоторых простых действий,
которые практически сводятся к изменениям формы представления обучающих
данных), а недостаток - в том, что в результате может получиться очень
громоздкая модель, которая будет занимать много памяти и медленно работать.
Сеть PNN как раз и представляет
собой метод такого типа, «замаскированный» под нейронные сети, предназначенный
для задач классификации. Сеть PNN имеет, по меньшей мере, три слоя: входной, радиальный и выходной.
Радиальные элементы берутся по одному на каждое обучающее наблюдение. Каждый из
них представляет собой гауссову функцию с центром в этом наблюдении. Каждому
классу соответствует один выходной элемент. Каждый такой элемент соединен со
всеми радиальными элементами, относящимися к его классу, а со всеми остальными
радиальными элементами он имеет нулевое соединение. Таким образом, выходной
элемент просто складывает отклики всех элементов, принадлежащих к его классу.
Значения выходных сигналов получаются пропорциональными ядерным оценкам
вероятности принадлежности соответствующим классам, и, пронормировав их на
единицу, мы получим окончательные оценки вероятности принадлежности классам.
3.2 Автоматический конструктор сети
Основное
преимущество нейронных сетей перед другими методами моделирования - их
способность «учиться на примерах» (вместо целенаправленного построения модели
для конкретной задачи). Алгоритмы обучения типа метода обратного
распространения способны эффективно строить модель по имеющимся данным. К
сожалению, такие алгоритмы все же требуют от пользователя принятия важных
решений, например выбор размера и тип (архитектуру) сети.
Автоматический конструктор
сети автоматически выбирает подходящий тип сети и вариант архитектуры (т.е.
число скрытых элементов). В стандартном варианте большинство пользователей
просто проводят серию экспериментов с сетями различных типов и архитектур,
выделяя на эвристическом уровне наиболее многообещающие, после чего именно на
них и сосредотачивается все внимание. Автоматический конструктор сети действует
по такой же схеме, и даже более формально. Задачу определения архитектуры сети
он рассматривает как задачу оптимизации и для исследования возможных вариантов
архитектур использует довольно сложные методы поиска (в том числе линейный
поиск и вариант метода «отжига»).
Таким образом,
действия автоматического конструктора очень напоминают действия человека в этой
же ситуации. При этом работа алгоритма может занимать весьма длительное время,
поскольку он перебирает множество различных вариантов архитектур. Однако
времени у него уйдет не больше, чем у человека, выполняющего ту же серию
экспериментов, а преимущество этого метода в том, что в процессе работы он не
требует присутствия пользователя. Кроме того, этот алгоритм осуществляет
перебор гораздо большего числа вариантов, чем способен вытерпеть человек, и,
как следствие, его результаты часто оказываются лучше.
Выводы к главе 3
. Рассмотрены типы нейронных сетей, используемых
в программе Trajan, с
указанием их преимуществ и недостатков.
. Рассмотрено понятие поверхности ошибки.
. Разобраны некоторые методы обучения нейронных
сетей в программе Trajan.
. Рассмотрен автоматический конструктор сети.
Глава 4. Процедуры решения задачи
4.1 Преобразование первичных данных
Перед началом работы в программе Trajan,
необходимо преобразовать файл данных Exchange.dat
в формат программы Trajan.
Для этого надо воспользоваться конвертером, который был создан студентами
группы А-1-96.
4.1.1 Назначение программы и
системные требования
Данная программа осуществляет преобразование
(конвертацию) файлов данных в формат файлов данных нейросети Trajan.
Поддерживается несколько форматов нейросети Trajan:
·
формат
*.pat - основной формат Trajan
·
формат
*.csv - значения
атрибутов находятся в колонках и разделены запятыми
·
формат
*.txt - значения
атрибутов находятся в колонках и символами табуляции.
Программа
написана в среде визуального программирования Delphi 5.0 компании Inprise
на объектно-ориентированном языке Object
Pascal и представляет
собой единственный исполняемый файл BM2TRAJ.EXE.
Системные требования: IBM-совместимый
ПК с ОС Windows95,
Windows98, WindowsNT
или их более поздние версии.
4.1.2 Описание программы
Основное окно программы содержит две строки
выбора исходного и результирующего файла, а также кнопки “Конвертировать ” и
“Выход”.
Рис. 4.1.2.1. Основное окно программы.
Строка задания исходного файла позволяет выбрать
исходный файл. Выбор файла осуществляется нажатием мышью на кнопку с
открывающейся папкой в правой части строки ввода.
Строка задания выходного файла позволяет задать
имя выходного файла, а также его формат. Для открытия диалога задания имени и
типа файла нужно нажать мышью на кнопку с открывающейся папкой в правой
части строки ввода. При этом появится следующее
окно:
Рис.4.1.2.2. Открытие файла.
После задания исходного и выходного файлов
становится доступна кнопка “Конвертировать”, при нажатии на которую
осуществляется процесс преобразования (конвертации) исходного файла в один из
форматов нейросети Trojan.
В случае успешной конвертации выдается
соответствующее
уведомление:
Рис.4.1.2.3. Успешная конвертации.
Листинг программы представлен в Приложении 1.
4.1.3 Порядок работы с программой
(инструкция пользователя)
1. Выбрать файл в строке “Исходный файл”
(Для открытия диалога задания имени и типа файла нужно нажать мышью на кнопку с
открывающейся папкой в правой части строки ввода).
. Указать имя результирующего файла и его
формат в строке “Файл в формате Trajan”.
3. Нажать кнопку конвертировать для начала
процесс преобразования форматов.
. При необходимости повторить пункты 1-3
для каждого файла, нуждающегося в преобразовании форматов.
Пример преобразования файла в форматы Trajan
представлен в Приложении 2.
4.2 Обработка данных в программе Trajan
4.2.1 Открытие файла данных
Откроем программу Trajan,
запустив файл trajan.exe
. Для того, чтобы открыть файл данных надо зайти в меню File
выбрать Open
Data Set
и указав на файл нажать кнопку открыть. В результате этих действий откроется
таблица с нужными данными.
Рис.4.2.1. Открытие данных.
Вверху этой таблицы нужно указать количество
входов и выходов, выделить данные для тренировки и тестирования нейронной сети.
Также можно редактировать и саму таблицу.
Таблицы программы Trajan
предлагают большой набор средств, облегчающих создание наборов данных и
последующую работу с ними. Приведем их краткое описание:
· Перемещение активной ячейки.
Осуществляется клавишами: стрелка влево, стрелка вправо, стрелка вверх, стрелка
вниз, Home, End,
Page Up,
Page Down.
· Выделение диапазонов ячеек.
Производится перетаскиванием указателя мыши или клавишами курсора при нажатой
клавише Shift.
· Копирование и вставка. Чтобы
скопировать выделенный диапазон ячеек в буфер обмена, нажмите Ctrl+C,
чтобы вставить содержимое буфера обмена в таблицу - нажмите Ctrl+V.
Можно копировать и вставлять целые строки и столбцы целиком. Также возможен
обмен с другими приложениями.
· Вставка. В любом месте таблицы можно
вставить новую строку или столбец. Поместите курсор мыши на линию, разделяющую
метки двух соседних строк или столбцов (при этом курсор превратится в
двухстороннюю стрелку), и щелкните кнопкой - откроется полоса вставки. После
нажатия клавиши Insert
будет вставлена новая строка/столбец.
· Чтобы назначить тип переменной -
Входная - Input, Выходная -
Output, Входная/Выходная
- Input/Output
или Неучитываемая - Ignore,
выберите переменную, щелкнув на метке соответствующего столбца, затем нажмите
правую кнопку мыши и выберите нужный тип из контекстного меню.
· Чтобы задать номинальную переменную
(например, пол={муж, жен}), выберите переменную, щелкнув на метке
соответствующего столбца, затем нажмите правую кнопку мыши и выберите команду
Определение - Definition...
из контекстного меню.
· Чтобы задать тип подмножества
Обучающее - Training,
Контрольное - Verification,
Тестовое - Test или
Неучитываемое - Ignored,
выбирайте наблюдения, щелкая на метках их строк, нажимайте правую кнопку мыши и
выбирайте нужный тип из контекстного меню.
· Все перечисленные возможности
доступны также через команды Наблюдения - Cases...
и Переменные - Variables...
меню Правка - Edit.
4.2.2 Пре/пост-процессирование
Всякая нейронная сеть принимает на входе
числовые значения и выдает на выходе также числовые значения. Передаточная
функция для каждого элемента сети обычно выбирается таким образом, чтобы ее
входной аргумент мог принимать произвольные значения, а выходные значения
лежали бы в строго ограниченном диапазоне. При этом, хотя входные значения
могут быть любыми, возникает эффект насыщения, когда элемент оказывается
чувствительным лишь к входным значениям лежащим в некоторой ограниченной
области. Так как выходные значения всегда принадлежат некоторой ограниченной
области, а вся информация должна быть представлена в числовом виде, очевидно,
что при решении реальных задач методами нейронных сетей требуются этапы
предварительной обработки - пре-процессирования и заключительной обработки
пост-процессировании данных. Соответствующие средства имеются в программе Trajan.
Здесь нужно рассмотреть два вопроса:
1. Шкалирование. Числовые значения должны
быть приведены в масштаб, подходящий для сети. Обычно исходные данные
масштабируются по линейной шкале. В программе Trajan
реализованы алгоритмы минимакса и средне/стандартного отклонения, которые
автоматически находят масштабирующие параметры для преобразования числовых
значений в нужный диапазон.
2. Номинальные переменные. Номинальные
переменные могут быть двузначными ( например, пол = {муж/жен}) или
многозначными (то есть принимать более двух значений и состояний). Двузначную
номинальную переменную легко преобразовать в числовую (например, муж = 0, жен =
1). С многозначными номинальными переменными дело обстоит сложнее. Их тоже
можно представить числовыми значениями (например, собака = 0, овца = 1, кошка =
2), однако при этом может возникать ложное упорядочивание значений: в
рассмотренном примере овца окажется чем-то средним между собакой и кошкой.
Существует более точный способ, известный как кодирование 1-из-N,
в котором одна номинальная переменная представляется несколькими числовыми
переменными. Количество числовых переменных равно числу возможных значений
номинальных переменных; при этом всякий раз ровно одна из N
переменных принимает нулевое значение (например, собака = {1,0,0}, овца =
{0,1,0}, кошка = {1,0,0}). В программе Trajan
имеются возможности преобразования как двух-, так и многозначных номинальных
переменных для последующего использования в нейронной сети.
4.3 Создание нейронной сети
Создать новую сеть в программе Trajan можно либо
средствами диалогового окна Создать сеть - Create Network, доступ к
которой осуществляется через команду Сеть… - Network... меню
Файл-Создать - File-New, либо с
помощи кнопки на панели
инструментов. Кроме того, можно создать сеть, пользуясь автоматическим
конструктором сети
(кнопка ).
Диалоговое окно Создать сеть - Create Network показано на
рисунке 4.3.1..
Рис.4.3.1. Диалоговое окно Создать
сеть.
В программе Trajan для
конструирования сетей реализованы довольно сложные возможности. Функция Совет -
Advise, позволяет
автоматически сконфигурировать большинство характеристик сети по набору
исходных данных.
Диалоговое окно Creatr Network содержит
две таблицы: левая предназначена для пре/пост-процессирования переменных,
позволяет привести исходные данные в числовую форму, пригодную для обработки
нейронной сети, а правая - собственно для задания параметров сети. Нажав кнопку
Advise, вы можете
быть уверенны, что пре/пост-процессирование переменных будет произведено в
соответствии с типом данных и что число слоев в сети и элементов в каждом слое выбрано
разумным образом. Обычно от пользователя требуется выполнить несколько
действий:
1. Изменить, если потребуется,
преобразующую функцию для пре/пост-процессирования.
2. Задать число слоев и скрытых элементов в
сети. В программе Trajan
на экран также выдается число элементов во входном и выходном слоях. Однако два
последних параметра полностью определяются числом входных и выходных
переменных, и их нельзя менять (они отображаются черным цветом).
Также в окне Сreate
Network можно задать и
некоторые другие параметры, в том числе; тип сети - Type,
параметры временного ряда (Time
Series) Временное окно - Steps
и Горизонт - Lookahead,
тип сети, параметры преобразования и подстановки пропущенных значений при
пре/пост-процессировании, ширину слоев сети. После задания всех нужных
параметров для создания нейронной сети нужно нажать кнопку Create.
Если при создании сети пользователь неуверен в
типе нейронной сети, для решения конкретной задачи, то можно воспользоваться
автоматическим конструктором нейронной сети; окно параметров этого конструктора
представлено на рис. 4.3.2..
Рис. 4.3.2. Автоматический конструктор сети.
В одном из диалоговых окон для автоматического
создания сети можно выбрать типы сетей, которые будут анализироваться. Они
упорядочены в порядке возрастания сложности обучения.
Одна из трудностей, связанная с автоматическим
построением сети, заключается в том, что сеть большего размера может давать
такое же качество результата, как и небольшая и, следовательно, более
предпочтительная сеть. Чтобы учесть это обстоятельство, можно задать
специальный коэффициент Unit
Penalty. Он определяет
величину штрафа, которая умножается на число элементов в сети и прибавляется к
ее ошибке перед решением вопроса о том, какая сеть лучше. Тем самым сеть с
большим числом элементов должна оправдать свой размер, то есть давать
существенно меньшую ошибку. Даже очень маленький коэффициент (например, 0,001)
будет оказывать серьезное влияние на то, чтобы при прочих равных предпочтение
отдавалось сетям, чьи размеры меньше. Также, при решении задач анализа временных
рядов, нужно задать значения параметров Steps,
число копий одной переменной, и Lookahed,
величина прогнозирования.
4.4 Инструкция по обучению MLP
сети на примере алгоритма обратного распространения
Параметры, влияющие на процесс обучения с использованием
алгоритма обратного распространения, задаются в окне Back
Propagation, которое
открывается из меню Train /Back Propagation.
Рис. 4.4.1. Окно обучения методом обратного
распространения.
Epochs - число
эпох обучения, задаваемое при каждом нажатии кнопки Train.
По умолчанию принимается равным 100.
Learning
rate - степень или
скорость обучаемости. Слишком высокий уровень обучаемости может приводить к
неустойчивости некоторых показателей, особенно в зашумленных задачах. Trajan
может постепенно повышать значение показателя относительно задаваемого в левой
части поля начального значения до предельного - в правой части поля.
Momentum
- инерция, показатель темпа обучения может способствовать ускорению процесса
настройки при медленном изменении значений ошибки. Значение показателя
выбирается в пределах [0.0, 1.0). Аналогично предыдущему Trajan в состоянии
постепенно увеличивать значение показателя относительно задаваемого в левой
части поля начального значения до предельного, задаваемого а правой части поля.
Shuffle
- кнопка перемешивания образов. Нажатие этой кнопки изменяет порядок
предъявления образов при каждой эпохе, что вносит дополнительный шум в процесс
обучения, ошибка изменяется более плавно, алгоритм становится менее жестким и
качество процесса может улучшаться.
Для более наглядного представления процесса
обучения есть окно Training
Eror Graph,
которое открывается с помощью команды Training
Graph... меню Statistics.
Рис.4.4.2. График процесса обучения.
На графике показан график обучения и выводится
ошибка. При повторных нажатиях кнопки обучения алгоритм переходит к очередным
эпохам. После прохождения нескольких эпох следует остановиться, если значение
ошибки будет удовлетворять задаче, также возможна и автоматическая остановка,
если заданы условия остановки.
Окно обучения по методу сопряженных градиентов и
методу Левенберга-Маркара тем же способом из меню Train,
но в самом окне есть только параметр Epochs
- число эпох обучения и возможность кросспроверки.
4.4.2 Условия остановки обучения
В программе Trajan
есть возможность задать определенные условия остановки обучения сети. Это
делается в окне Stopping
Conditions, которое
изображено на Рис. 4.4.2.1.(доступ через пункт Stopping
Conditions… меню Train-Auxiliary).
Рис. 4.4.2.1. Условия остановки обучения.
Те или иные условия остановки используются во
всех алгоритмах обучения программы Trajan.
Кроме максимального числа эпох (Epochs),
можно задать уровень допустимой ошибки (Target
Error), при достижении
которой обучение должно прекращаться, или величину минимального улучшения (Minimum
Improvement) ошибки за
фиксированное число эпох.
Возможно, самый полезный из этих параметров -
величина минимального улучшения (Minimum
Improvement). Смысл ее в
следующем: если на протяжении заданного числа эпох (параметр Windows)
ошибка обучения и контрольная ошибка не улучшились на эту величину, обучение
прекращается.
4.5 Запуск нейронной сети
После обучения сеть нужно запустить на
исполнение. Это можно сделать в нескольких вариантах:
1. На текущем наборе данных - в целом или
на отдельных наблюдениях; окно Run
Single Case,
доступ к которому осуществляется через команду Single
Case меню Run.
Рис. 4.5.1. Окно запуска на одном наблюдении.
В поле Case
No задается номер
наблюдения, подлежащего обработке. Чтобы обработать текущее наблюдение, нажмите
кнопку Run, а для
обработки каково- либо другого наблюдения пользуются стрелками прокрутки на
кнопке микропрокрутки, которая расположена справа от поля Case
No. Значения входных
переменных для текущего наблюдения отображаются в таблице, расположенной в
верхней части окна, а выходные значения - в нижней таблице. Помимо фактического
выходного значения, которое выдает сеть, выводится также целевое значение и
ошибка, то есть разность между первым и вторым. Кроме того, ошибка,
соответствующая данному наблюдению, выводится отдельно в верхней части окна
(поле Error).
2. На другом наборе данных - в целом или
на отдельных наблюдениях (такой набор данных уже может не содержать выходных
значений и предназначаться исключительно для тестирования); окно Run
Data Set,
доступ к которому осуществляется через команду Data
Set меню Run.
Рис. 4.5.2. Окно запуска на все наблюдениях.
В таблице окна Run
Data Set
содержатся следующие значения (перечисленные слева на право): фактические
выходные сигналы, целевые выходные значения, ошибки, то есть разность между
первым и вторым, и суммарная ошибка по каждому наблюдению.
3. На одном конкретном наблюдении, для
которого значения переменных введены пользователем, а не взяты из какого-то
файла данных; окно Run
One-off
Case, доступ к которому
осуществляется через команду One-off
меню Run.
Рис. 4.5.3. Окно запуска на одном наблюдении,
которое введено пользователем.
Иногда необходимо протестировать сеть на
отдельном наблюдении, не принадлежащем никакому набору данных. Причины для
этого могут быть такие:
· Обученная сеть используется для
построения прогнозов на новых данных с неизвестными выходными значениями.
· Вы хотите поэкспериментировать с
сетью, например, проверить чувствительность результата к малым изменением
данных.
Тестирование заданных пользователем наблюдений
производится из окна Run
One-off
Case, в котором нужно
ввести входные значения в таблицу, расположенную в верхней части окна, и нажать
кнопку Run, результаты
будут выведены в нижнюю таблицу.
. Из другого приложения.
4.6 Оценка качества работы
После того как сеть обучена, стоит проверить,
насколько хорошо она работает. Среднеквадратичная ошибка, которая выдается в
окне Train
Error Graph,
представляет лишь грубую меру производительности. Более полезные характеристики
выдаются в окне Regression
Statistics,которое
открывается через пункт Regression...
меню Statistics.
Рис. 4.6.1. Окно статистик регрессии.
В этом окне подсчитываются среднее и стандартное
отклонение для выходных переменных и ошибки сети, а также отношение
стандартного отклонения ошибки к стандартному отклонению данных. Последняя
статистика является хорошим показателем качества регрессии. Если величина S.D.
Ratio меньше 0,1, это
означает хорошее качество регрессии.
Выводы к главе 4
1. Даны инструкции для работы в программе
конвертора.
2. Даны инструкции по работе с данными,
созданию нейронной сети, обучению нейронной сети, тестированию нейронной сети в
программе Trajan.
Глава 5. Решение поставленной задачи
с помощью нейронной сети
Исходная задача является частным
случаем задачи регрессии, и после соответствующего предварительного
преобразования данных может быть решена нейронной сетью любого типа,
предназначенного для задач регрессии.
5.1 Работа с исходными данными
Откроем таблицу с исходными данными файл Exchange.pat.
В этой таблице пометим первый столбец как Ignore,
а остальные как Input.
Создадим в этой таблице еще один столбец и скопируем в него значения столбца Yen,
начиная со 2. Озаглавим его как Exit
и пометим его как Output.
Также отметим 15 строк для тренировки сети, 5 строк для проверки, за обучением,
а оставшиеся 4 для тестирования и еще 1 строку для предсказания. В результате
должна получается таблица:
Рис. 5.1.1. Преобразованная таблица исходных
данных.
5.2 Построение нейронной сети
Для выбора типа нейронной сети
подходящей для этой задачи, числа слоев и элементов воспользуемся
автоматическим конструктором нейронной сети. Зададим следующие параметры в окне
автоматического конструктора:
1. Выберем все возможные типы сетей.
2. Выберем значение Unit
Penalty равное 0,001.
. Параметр Steps
равный 1.
. Параметр Lookahead
равный 1.
После запуска автоматического конструктора
нейронной сети с данными параметрами, он построил, на основе данных, нейронную
сеть, которая представлена на рис. 5.2.1..
Рис. 5.2.1. Нейронная сеть, построенная
автоматическим конструктором.
Из рис. 5.2.1. видно, что автоматический
конструктор выбрал для решения поставленной задачи MLP
сеть с четырьмя слоями.
Возьмем за основу нейронную сеть, которую
предложил автоматический конструктор, и обучая ее различными методами добьемся
определенной точности нейронной сети для поставленной задачи.
5.3 Обучение нейронной сети
Перед началом обучения нейронной сети,
необходимо определить значение уровня допустимой ошибки, предположим, значение
допустимой ошибки обучения будет равно 0,05.
5.3.1 Обучение нейронной сети по
алгоритму обратного распространения
В окне настроек параметров алгоритма обратного
распространения, смотри рис. 3.4.1., выставим следующие начальные параметры
обучения: число эпох равное 500, скорость обучения равной 0,6, инерцию в начале
равной 0,6, а в конце 0,1, и обучим нашу нейронную сеть.
На рис. 5.3.1.1. видно, что уже после пяти
итерации контрольная ошибка не уменьшается, а ошибка обучения сети уже достигла
нужной точности. Для того чтобы уменьшить контрольную ошибку надо изменить
структуру нейронной сети, либо попробовать другой метод обучения.
Рис. 5.3.1.1. График обучения методом обратного
распространения.
Изменим структуру нейронной сети, убрав из нее 3
слой. Сеть, полученная после удаления 3 слоя, представлена на рис. 5.3.1.4.
Рис.5.3.1.4. Измененная структура нейронной
сети.
Обучим измененную сеть тем же методом и с теми
же начальными параметрами. Как видно из рис.5.3.1.5. качество процесса обучения
ухудшается, так как обе ошибки увеличиваются.
Рис.5.3.1.5. График обучения измененной сети
методом обратного распространения.
На основе вышеприведенных экспериментов можно
сделать вывод, что метод обратного распространения решает поставленную задачу с
большой контрольной ошибкой. В связи с этим воспользуемся другими алгоритмами
обучения нейронной сети.
5.3.2 Обучение нейронной сети
методом сопряженных градиентов
Обучим нейронную сеть, которая изображена на
рис.5.2.1., методом сопряженных градиентов. Как видно из рис.5.3.2.1., на
котором изображен процесс обучения, ошибка обучения и контрольная ошибка не
удовлетворяют решению задачи, причем процесс обучения застревает в локальном
минимуме.
Рис.5.3.2.1. График обучения методом сопряженных
градиентов.
Изменим структуру нейронной сети, убрав из нее 3
слой (рис.5.3.1.4.) и обучим ее методом сопряженных градиентов. На рис.5.3.2.3.
показан график обучения измененной нейронной сети.
Рис.5.3.2.3. График обучения методом сопряженных
градиентов измененной нейронной сети.
При сравнении графика обучения исходной
нейронной сети рис.5.3.2.1. и графика обучения измененной нейронной сети
рис.5.3.2.3. заметим, что обученная измененная нейронная сеть больше подходит
для решения поставленной задачи данным методом, так как ошибка обучения почти
удовлетворяет поставленной задачи, хоть ошибка проверки чуть больше. Это
говорит о том, что можно еще раз изменить структуру сети, обучить ее и
посмотреть полученные результаты.
Изменим нейронную сеть (рис.5.3.1.4.) убрав из
среднего слоя один элемент. Полученная таким образом нейронная сеть
представлена на рис.5.3.2.4..
Рис.5.3.2.4. Нейронная сеть, полученная из
измененной нейронной сети.
Обучим нейронную сеть (рис.5.3.2.4.) методом
сопряженных градиентов.
На рис.5.3.2.5. показан график обучения
нейронной сети.
Рис.5.3.2.5. График обучения нейронной сети,
полученной из измененной нейронной сети.
Из графика рис.5.3.2.5 следует, что при
дополнительном изменении структуры исходной сети, качество процесса обучения
почти не меняется.
На основе вышеприведенных экспериментов можно
сделать вывод, что метод сопряженных градиентов решает поставленную задачу с
больше точностью ошибки обучения, чем метод обратного распространения, но
уровень переобучения выше, также можно заметить, что при изменении структуры
сети в методе сопряженных градиентов качество обучения повышается.
5.3.3 Обучение нейронной сети, с
помощью метода Левенберга-Маркара
Обучим нейронную сеть, которая изображена на
рис.5.2.1., методом Левенберга-Маркара. Как видно из рис.5.3.3.1., на котором
изображен процесс обучения, ошибка обучения более, если сравнивать с другими
методами
Рис.5.3.3.1. График обучения методом
Левенберга-Маркара.
Изменим структуру сети так же, как и в
предыдущем методе и обучим ее методом Левенберга-Маркара. На рис.5.3.3.3. и
рис.5.3.3.4. показаны графики обучения нейронной сетей (структуры сетей
соответственно изображены на рис.5.3.1.4. и рис.5.3.2.4.). При сравнении этих
двух графиков можно заметить, что при дальнейшем упрощении сети качество
обучения нейронной сети методом ней Левенберга-Маркара вначале улучшается, а
потом ухудшается.
Рис.5.3.3.2. График обучения измененной
нейронной сети методом Левенберга-Маркара.
Рис.5.3.3.3. График обучения методом
Левенберга-Маркара измененной нейронной сети.
На основе проведенных методов обучения исходной
нейронной сети можно сделать вывод, что для решения поставленной задачи более
всего подходит нейронная сеть изображенная на рис.5.3.1.4. и обученная методом
Левенберга-Маркара.
5.4 Запуск и тестирование нейронной
сети
Запустим сеть
с наилучшими показателями обучения. На рис.5.4.1. показан прогон всего набора
данных. На основе ошибок можно сделать вывод о том, что хоть сеть и обучилась,
но от эффекта переобучения полностью избавиться не удалось. Это может быть
связанно с тем, что исходная таблица имеет мало данных.
Рис.5.4.1. Прогон всего набора данных.
Оценим качество регрессии полученной нейронной
сети. Окно со значениями представлено на рис.5.4.2.
Рис. 5.4.2. Статистики регрессии.
Величина S.D.
Ratio является хорошим
показателем качества регрессии, так как она меньше 0,1, то это означает хорошее
качество регрессии.
Протестируем нашу сеть на наблюдении, которое мы
выделили для предсказания значения на будущий день. Окно тестирования
представлено на рис.5.4.3.
Рис.5.4.3. Предсказание на будущий день.
Сравним значение, которое получилось на выходе
нейронной сети со значением, которое согласно таблице должно быть на следующий
день (данные для предсказания - это первая строка исходной таблицы данных, а
предсказанное значение на следующий день соответственно должно быть во второй
строке в столбце Exit).
Эти два значения не отличаются друг от друга, следовательно, обученная
нейронная сеть может предсказывать значение на один день, что и требовалось в
нашей задаче, но, если посмотреть на рис.5.4.1., то можно убедиться, что в
некоторых наблюдениях ошибка большая и прогноз на будущий день будет неточен.
5.5 Основные результаты
экспериментов
Результаты проведенных экспериментов сведены в
таблицу 5.5.1..
Сеть
|
Структура
сети
|
Метод
обучения
|
n эпох
|
Ошибка
обучения
|
Ошибка
контроля
|
MLP
|
6;
2; 2; 1;
|
по
алгоритму обратного распространения
|
2400
|
0,433
|
0,8044
|
MLP
|
6;
2; 1;
|
по
алгоритму обратного распространения
|
2400
|
0,03873
|
1,874
|
MLP
|
6;
2; 2; 1;
|
2
|
0,2414
|
2,045
|
MLP
|
6;
2; 1;
|
по
методу сопряженных градиентов
|
25
|
0,08532
|
2,373
|
MLP
|
6;
1; 1;
|
по
методу сопряженных градиентов
|
20
|
0,08402
|
2,262
|
MLP
|
6;
2; 2; 1;
|
по
методу Левенберга-Маркара
|
100
|
0,01016
|
1,223
|
MLP
|
6;
2; 1;
|
по
методу Левенберга-Маркара
|
100
|
0,000084
|
0,819
|
MLP
|
6;
1; 1;
|
по
методу Левенберга-Маркара
|
200
|
0,0775
|
1,869
|
Таблица 5.5.1. Результаты экспериментов.
В таблице 5.5.1. указаны следующие данные: сеть
- тип нейронной сети; структура сети - число слоев и элементов в этих слоях;
метод обучения - метод использованный при обучении нейронной сети; n
эпох - число эпох обучения; ошибка обучения - ошибка получаемая при обучении
нейронной сети; ошибка контроля - контрольная ошибка получаемая при обучении
нейронной сети.
На основании проведенных экспериментов можно сделать
вывод, что наиболее подходящей нейронной сетью для решения поставленной задачи
является трехслойная MLP
сеть с двумя элементами во внутреннем слое.
Выводы к главе 5
1. Сделан начальный выбор типа нейронной
сети.
2. Проведены эксперименты для создания и
обучения нейронной сети, решающей поставленную задачу.
. Проведено тестирование построенной
сети.
. Сделан вывод о соответствии построенной
сети нашей задачи.
. Указаны основные результаты экспериментов.
Глава 6. Эргономическая оценка
программы Trajan
Эргономическая оценка направлена на установление
степени соответствия производственного оборудования (изделия) эргономическим
требованиям в целях создания безопасных условий труда, достижения высокой
производительности труда и работоспособности человека.
Эргономическую оценку можно осуществлять
дифференциальным методом, при котором оборудование (изделие) оценивают по
отдельным эргономическим показателям, или комплексным методом, при котором
определяют один обобщённый эргономический показатель. В данной работе
используется комплексный метод.
Анализ нормативных и рекомендованных материалов
показывает, что основным методом, применяемым для эргономической оценки,
является экспертный метод. Оценку проводит экспертная комиссия, состав которой,
задачи, организация и порядок проведения работы определяются в соответствии с
ГОСТ 23554.0-79, ГОСТ 23554.1-79 и Р8 50-418 - 83.
Экспертная группа должна включать 5 - 7
специалистов, в число которых входит ведущий эксперт. В отдельных случаях
(например, при невысокой сложности системы «человек - машина») допускается
состав экспертной группы менее 5 человек. В представленном проекте принимали
участие 5 экспертов.
Мнение экспертов по поводу оценки эргономических
показателей выявляют путём опроса.
Конечный результат предусматривает балльную
оценку эргономических показателей по четырём категориям: отлично, хорошо,
удовлетворительно и плохо.
Рекомендуется следующая градация показателей
шкалы оценки:
баллов (отлично) - параметры объекта
соответствуют оптимальным значениям нормативных требований; оцениваемый элемент
при его функциональном применении оказывает благоприятное влияние на
работоспособность, развитие физических и психических функций человека, создаёт
необходимое удобство в работе;
балла (хорошо) - параметры объекта соответствуют
допустимым значениям нормативных требований; оцениваемый элемент при его
функциональном применении может приводить к временному (компенсируемому)
снижению работоспособности, но не оказывает неблагоприятного влияния на
состояние здоровья работающего;
балла (удовлетворительно) - параметры объекта
отклоняются от допустимых значений нормативных требований; оцениваемый элемент
при его функциональном применении может оказывать неблагоприятное влияние на
состояние здоровья работающего, что может быть устранено путём реализации
мероприятий, исключающих неблагоприятное на здоровье (применение специальных
средств защиты, изменение расположения органов индикации и управления,
изменение размеров и т. д.);
баллов (плохо) - состояние объекта соответствует
недопустимому уровню.
При оценке комплексным, наиболее информативным,
методом рассчитывают обобщённый эргономический показатель kэрг,
представляющий собой функцию от единичных эргономических показателей с учётом
их коэффициентов весомости. При этом предполагается при назначении весового
коэффициента исходить из влияния каждого эргономического свойства на повышение
работоспособности, самочувствия и производительности труда. Подробно методика
описана в книге [1] .
В процессе выполнения задания предстояло оценить
с эргономической точки зрения программу Trajan.
Эта программа предназначена для работы с нейронными сетями и позволяет на
основе статистических данных сформировать нейронную сеть, обучить ее и
использовать в дальнейшем для прогнозирования. Исходя из вышесказанного,
становится очевидным, что интерфейс этой программы должен быть понятен и легок
в обращении людям работающим в этой области. На основе собственного опыта
работы, а также рекомендаций, изложенных в литературе [1], был произведён выбор
базовых эргономических показателей. Они же были сведены в три однородные
группы, значимость которых определена цифровой последовательностью.
Список базовых эргономических показателей:
1.