Разработка методов и алгоритмов оценки надежности сетей телекоммуникации на основе нейронных сетей

Рассмотрение существующих методов для оценки надежности. Оценка надежности сети на основе нейронных сетей. Архитектура нейронной сети Кохонена. Реализация алгоритма и программы оценки надежности телекоммуникационных сетей с помощью нейронных сетей.

Рубрика Программирование, компьютеры и кибернетика
Вид диссертация
Язык русский
Дата добавления 24.05.2018
Размер файла 2,6 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

В данной главе проводится исследование математического обеспечения нейронных сетей, а также методы их обучения.

2.1 Нейронные сети Кохонена

Искусственный нейрон имитирует в первом приближении свойства биологического нейрона. На вход искусственного нейрона поступает некоторое множество сигналов, каждый из которых является выходом другого нейрона. Каждый вход умножается на соответствующий вес, аналогичный синоптической силе, и все произведения суммируются, определяя уровень активации нейрона. Множество входных сигналов, обозначенных x1, x2,:, xn, поступает на искусственный нейрон. Эти входные сигналы, в совокупности, обозначаемые вектором X, соответствуют сигналам, приходящим в синапсы биологического нейрона. Каждый сигнал умножается на соответствующий вес w1, w2,..., wn, и поступает на суммирующий блок. Каждый вес соответствует "силе" одной биологической синоптической связи. (Множество весов в совокупности обозначается вектором W.) Суммирующий блок, соответствующий телу биологического элемента, складывает взвешенные входы алгебраически, создавая выход.

Искусственные нейронные сети -- математические модели, а также их программные или аппаратные реализации, построенные по принципу организации и функционирования биологических нейронных сетей -- сетей нервных клеток живого организма. Это понятие возникло при изучении процессов, протекающих в мозге, и при попытке смоделировать эти процессы. Первой такой попыткой были нейронные сети Маккалока и Питтса. Впоследствии, после разработки алгоритмов обучения, получаемые модели стали использовать в практических целях: в задачах прогнозирования, для распознавания образов, в задачах управления и др.

Искусственные нейронные сети представляют собой систему соединённых и взаимодействующих между собой простых процессоров (искусственных нейронов). Такие процессоры обычно довольно просты, особенно в сравнении с процессорами, используемыми в персональных компьютерах. Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам. И тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие локально простые процессоры вместе способны выполнять довольно сложные задачи.

Существует много разновидностей нейронных сетей, но наиболее распространенными являются сети Кохонена, Хопфилда, обратного распространения ошибки.

Для применения нейронных сетей Кохонена в задачах классификации требуется некоторая формализация. Каждый объект, который требуется классифицировать, представляется в виде некоторого вектора, подающегося на вход нейронной сети. Количество нейронов во входном слое определяется количеством компонентов этого входного вектора. Количество же выходов определяется количеством классов, т.е. если всего классов, то количество нейронов в выходном слое тоже будет . Таким образом, каждый нейрон в выходном слое «отвечает» за свой класс. Значения, которые принимают нейроны в выходном слое, отображают насколько вектор классифицируемого объекта на входе близок, по мнению нейронной сети Кохонена, к тому или иному классу. Чем больше «уверенность», что объект принадлежит к тому или иному классу, тем больше значение принимает нейрон соответствующего класса. Иногда применяют специальную функцию активацию, которая делает сумму выходов со всех нейронов равной единице. В таком случае каждый выход можно трактовать, как вероятность того, что объект принадлежит к данному классу.

Стоит отметить, что существует или более простая реализация нейронной сети Кохонена, которая называется «победитель забирает все». В таком случае каждый нейрон выходного слоя может принимать значение либо ноль, либо единица. При этом для одного входного вектора единице может быть равен один и только один нейрон выходного слоя, т.е. один объект не может относиться сразу к двум классам.

2.2 Сети векторного квантования, обучаемые с учителем

Нейронная сеть Кохонена - это широкий класс сетей, насчитывающий несколько десятков реализаций, объединяемый общим тезисом "Победитель получает все". Сеть обучается "без учителя": просматривается входная выборка векторов и выявляются законы их распределения. Сеть Кохонена используется для решения двух задач: наилучшей квантизации и выделения главных компонент. В этом качестве она может использоваться самостоятельно или же в качестве первого слоя сети более сложной архитектуры (например, сети Кохонена-Гроссберга).

Слой Кохонена состоит из некоторого количества параллельно действующих линейных элементов. Все они имеют одинаковое число входов и получают на свои входы один и тот же вектор входных сигналов . На выходе го линейного элемента получаем сигнал

где -- весовой коэффициент го входа го нейрона, -- пороговый коэффициент.

После прохождения слоя линейных элементов сигналы посылаются на обработку по правилу «победитель забирает всё»: среди выходных сигналов ищется максимальный; его номер . Окончательно, на выходе сигнал с номером равен единице, остальные -- нулю. Если максимум одновременно достигается для нескольких , то либо принимают все соответствующие сигналы равными единице, либо только первый в списке (по соглашению).

Рис. 7 Нейронная сеть Кохонена

Большое распространение получили слои Кохонена, построенные следующим образом: каждому (му) нейрону сопоставляется точка в -мерном пространстве (пространстве сигналов). Для входного вектора вычисляются его евклидовы расстояния до точек и «ближайший получает всё» -- тот нейрон, для которого это расстояние минимально, выдаёт единицу, остальные -- нули. Следует заметить, что для сравнения расстояний достаточно вычислять линейную функцию сигнала:

здесь - Евклидова длина вектора:

Последнее слагаемое одинаково для всех нейронов, поэтому для нахождения ближайшей точки оно не нужно. Задача сводится к поиску номера наибольшего из значений линейных функций:

Таким образом, координаты точки совпадают с весами линейного нейрона слоя Кохонена (при этом значение порогового коэффициента ).

Если заданы точки , то -мерное пространство разбивается на соответствующие многогранники Вороного-Дирихле : многогранник состоит из точек, которые ближе к , чем к другим ()

Задача векторного квантования с кодовыми векторами для заданной совокупности входных векторов ставится как задача минимизации искажения при кодировании, то есть при замещении каждого вектора из соответствующим кодовым вектором. В базовом варианте сетей Кохонена используется метод наименьших квадратов и искажение вычисляется по формуле:

где состоит из тех точек , которые ближе к , чем к другим (). Другими словами, состоит из тех точек , которые кодируются кодовым вектором .

Если совокупность задана и хранится в памяти, то стандартным выбором в обучении соответствующей сети Кохонена является метод K-средних. Это метод расщепления:

при данном выборе кодовых векторов (они же весовые векторы сети) минимизацией находим множества -- они состоит из тех точек , которые ближе к , чем к другим ;

при данном разбиении на множества минимизацией находим оптимальные позиции кодовых векторов -- для оценки по методу наименьших квадратов это просто средние арифметические:

где -- число элементов в .

Далее итерируем. Этот метод расщепления сходится за конечное число шагов и даёт локальный минимум искажения.

Если же, например, совокупность заранее не задана, или по каким-либо причинам не хранится в памяти, то широко используется онлайн метод. Векторы входных сигналов обрабатываются по одному, для каждого из них находится ближайший кодовый вектор («победитель», который «забирает всё») . После этого данный кодовый вектор пересчитывается по формуле

где -- шаг обучения. Остальные кодовые векторы на этом шаге не изменяются.

Для обеспечения стабильности используется онлайн метод с затухающей скоростью обучения: если -- количество шагов обучения, то полагают . Функцию выбирают таким образом, чтобы монотонно при и чтобы ряд расходился, например, .

Векторное квантование является намного более общей операцией, чем кластеризация, поскольку кластеры должны быть разделены между собой, тогда как совокупности для разных кодовых векторов не обязательно представляют собой раздельные кластеры. С другой стороны, при наличии разделяющихся кластеров векторное квантование может находить их и по-разному кодировать.

Например: Решается задача классификации. Число классов может быть любым. Изложим алгоритм для двух классов, и . Исходно для обучения системы поступают данные, класс которых известен. Задача: найти для класса некоторое количество кодовых векторов , а для класса некоторое (возможно другое) количество кодовых векторов таким образом, чтобы итоговая сеть Кохонена с кодовыми векторами , (объединяем оба семейства) осуществляла классификацию по следующему решающему правилу:

если для вектора входных сигналов ближайший кодовый вектор («победитель», который в слое Кохонена «забирает всё») принадлежит семейству , то принадлежит классу ; если же ближайший к кодовый вектор принадлежит семейству , то принадлежит классу .

С каждым кодовым вектором объединённого семейства связан многогранник Вороного-Дирихле. Обозначим эти многогранники , соответственно. Класс в пространстве сигналов, согласно решающему правилу, соответствует объединению , а класс соответствует объединению . Геометрия таких объединений многогранников может быть весьма сложной (см. Рис с примером возможного разбиения на классы).

Рис 8 Разделения пространство Вороного-Дирихле на два класса

Правила обучения сети онлайн строится на основе базового правила обучения сети векторного квантования. Пусть на вход системы подаётся вектор сигналов , класс которого известен. Если он классифицируется системой правильно, то соответствующий кодовый вектор слегка сдвигается в сторону вектора сигнала («поощрение»)

Если же классифицируется неправильно, то соответствующий кодовый вектор слегка сдвигается в противоположную сторону от сигнала («наказание»)

где -- шаг обучения. Для обеспечения стабильности используется онлайн метод с затухающей скоростью обучения. Возможно также использование разных шагов для «поощрения» правильного решения и для «наказания» неправильного.

2.3 Задачи для реализации метода

Задачей данной работы является создание методов алгоритмов оценки надежности телекоммуникационных сетей с использованием нейросетей. Для ее выполнения была выбрана нейронная сеть Кохенена. Для решения задачи::

1. Работа с данными

- Составить базу данных из примеров, характерных для данной задачи

- Разбить всю совокупность данных на два множества: обучающее и тестовое (возможно разбиение на 3 множества: обучающее, тестовое и подтверждающее).

2. Предварительная обработка

- Выбрать систему признаков, характерных для данной задачи, и преобразовать данные соответствующим образом для подачи на вход сети (нормировка, стандартизация и т.д.). В результате желательно получить линейно отделяемое пространство множества образцов.

- Выбрать систему кодирования выходных значений.

3. Конструирование, обучение и оценка качества сети

- Выбрать топологию сети: количество слоев, число нейронов в слоях и т.д.

- Выбрать функцию активации нейронов (например "сигмоида")

- Выбрать алгоритм обучения сети

- Оценить качество работы сети на основе подтверждающего множества или другому критерию, оптимизировать архитектуру (уменьшение весов, прореживание пространства признаков)

- Остановится на варианте сети, который обеспечивает наилучшую способность к обобщению и оценить качество работы по тестовому множеству

4. Использование и диагностика

- Выяснить степень влияния различных факторов на принимаемое решение (эвристический подход).

- Убедится, что сеть дает требуемую точность классификации (число неправильно распознанных примеров мало)

- При необходимости вернутся на этап 2, изменив способ представления образцов или изменив базу данных.

- Практически использовать сеть для решения задачи.

Для тестирования созданного класса будет создано Windows-приложение с использованием визуальных компонентов. Тестирующая программа должна осуществлять ввод текстовой информации из файла и с клавиатуры, а также ввод параметров нейросети: количество эпох обучения, количество нейронов скрытого слоя, момент и коэффициент обучения.

2.4 Формирование входных данных для нейронной сети

Для понимания методов анализа и синтеза необходимо определить факторы, влияющие на надежность СС. Анализ процессов функционирования сетей связи позволяет отнести к числу таких факторов следующие потоки:

- отказов и восстановлений технических средств;

- заявок на использование СС (загруженность);

- естественных помех;

- искусственных помех;

- разрушающих искусственных воздействий;

- ошибок программного обеспечения СС;

- отказов, вызванных деятельностью человека;

- отказов, вызванных природными явлениями.

Для оценки значимости той или иной группы факторов будем использовать результаты статистического анализа интенсивности и последствий отказов, вызванных этими факторами (см. табл. 2.1), на примере высокоавтоматизированной широкомасштабной распределенной СС США PSTN (Public Switched Telephone Network).

Таблица 1

Распределение отказов в сети PSTN

Группа факторов

Доля от общего количества отказов, %

Потери пользователь-ского времени, %

Отказы технических средств

19

7

Перегрузки сети

6

44

Ошибки ПО

14

2

Ошибки персонала

25

14

Вандализм

1

1

Непреднамеренная разрушительная деятельность людей

24

14

Природные явления

11

18

Характер отказов технических средств СС и обычных радиоэлектронных систем идентичен. Влияние постепенных отказов, вызванных воздействием таких факторов, как нестабильность питания, тепловые воздействия, влажность, перепады давления, запыленность и агрессивность среды, компенсируется конструктивными методами при создании устройств и использованием специальных защитных устройств (стабилизаторы, термостаты, экраны). Таким образом, при оценке показателей надежности СС следует учитывать только потоки внезапных отказов. Среди внезапных отказов выделяют устойчивые отказы и сбои, то есть кратковременные самоустраняющиеся отказы.

Для учета характеристик потока сбоев элемента СС достаточно использовать интенсивность этого потока, а для учета потока устойчивых отказов и потока восстановлений следует использовать коэффициент готовности и интенсивность отказов либо среднее время наработки на отказ и среднее время восстановления технических средств СС.

Отметим, что пользователю СС безразлично, чем вызван отказ в обслуживании его требования на установление связи - отказом элементов СС или их занятостью обслуживанием других заявок. Современные методы анализа СС позволяют учитывать занятость элементов СС при оценке показателей ее надежности.

Чаще всего нейтрализация влияния потока естественных помех достигается путем введения временной или информационной избыточности, либо применением помехоустойчивого кодирования, либо многократной передачей сообщения (что можно рассматривать так же, как применение своеобразных помехоустойчивых кодов). Влияние этого фактора учитывается путем соответствующего увеличения длительности сеанса связи с последующим использованием этого значения при расчете вероятности поддержания связи.

Характерные особенности воздействия потока искусственных помех позволяют рассматривать искусственную помеху, как сбой элемента, и учитывать влияние этого фактора на надежностные характеристики СС аналогично способу учета сбоев технических средств.

Характерными для воздействия потоков искусственных разрушающих воздействий являются: полная потеря работоспособности элемента СС, подверженного этому воздействию; возможность одновременного повреждения нескольких элементов; устойчивый характер повреждения, то есть отсутствие самовосстановления элемента после окончания воздействия; восстановление элемента после такого воздействия возможно только путем его ремонта или замены. Эти особенности аналогичны условиям возникновения и устранения устойчивых отказов за исключением высокой кратности нарушений работоспособности элементов, большего времени восстановления и зависимости отказов элементов друг от друга.

Природа ошибок программного обеспечения СС существенно отличается от природы отказов технических средств СС. На количество и качество ошибок программы в основном влияют субъективные факторы. Поэтому отказ ПО - это событие, заключающееся в проявлении, при определенных последовательностях входных данных, тех ошибок, которые были допущены при разработке ПО и не выявлены при его тестировании. В то же время отказ технических средств - это событие, заключающееся в изменении его параметров и приводящее к потере работоспособности. Второе существенное отличие состоит в том, что программа не стареет, то есть с течением времени количество ошибок в программе не увеличивается, а может только уменьшаться в результате их обнаружения и устранения. Другие отличия: если ошибка программы исключена, то она больше в ней не появится; предварительный анализ влияния ошибки практически невозможен из-за большого числа способов влияния ошибки на поведение программы. Количественным показателем корректности программы является число ошибок, оставшихся в программе после завершения отладки и тестирования. По аналогии с количественными показателями безотказности технических устройств используют также вероятность безотказной работы программы на интервале времени и интенсивность потока ошибок.

Отказы, вызванные деятельностью человека, можно разделить на отказы, вызванные деятельностью обслуживающего персонала, и отказы, вызванные деятельностью других людей.

Первая группа отказов обусловлена ошибками персонала при эксплуатации СС. Их характер и интенсивность существенно зависят от уровня автоматизации процессов управления СС. Применительно к СС PSTN отказы этой группы вызываются следующими ошибками: эксплуатации и ремонта кабелей, систем питания, технических устройств, контроля питания, использования не тех версий программного обеспечения; некорректной инсталляции и определения конфигурации программного обеспечения (исключая ошибки, вносимые в тексты программ); неверного ввода даты. Вторая группа отказов обусловлена преднамеренной (вандализм) и непреднамеренной разрушительной по отношению к СС деятельностью людей, не являющихся персоналом СС, которая проявляется в нарушении целостности кабелей и другого оборудования вследствие катастрофических событий (в основном автомобильных аварий).

К отказам, вызванным природными явлениями, относятся повреждения кабелей, систем питания и других устройств животными, а также молнией, ураганами, землетрясениями и наводнениями.

Выходными классами мы можем условно разделить на 5 или более дискретных класса для метода «Победитель забирает все».

Все входные параметры приводятся к интервалу от 0.. 1 в зависимости от пределов данного фактора.

2.5 Конструирование, обучение и оценка качества сети

Искусственный нейрон является элементарным функциональным модулем, из множества которых строятся ИНС. Он представляет собой, в нашем понимании, отдельно взятую личность сообщества, однако, лишь в смысле осуществляемых ею преобразований, а не способа функционирования. Взаимодействие отдельных членов представляет собой сетевое сообщество.

Функционалом отдельного члена сообщества (формального нейрона) можно считать:

1. Накопление данных (адаптивный сумматор).

2. Анализ (функция активации).

3. Передача опыта другим членам сообщества (точка ветвления).

Рис. 9 Формальный нейрон

Большое распространение получили слои Кохонена, построенные следующим образом: каждому (му) нейрону сопоставляется точка в -мерном пространстве (пространстве сигналов). Для входного вектора вычисляются его евклидовы расстояния до точек и «ближайший получает всё» -- тот нейрон, для которого это расстояние минимально, выдаёт единицу, остальные -- нули. Следует заметить, что для сравнения расстояний достаточно вычислять линейную функцию сигнала:

здесь - Евклидова длина вектора:

Последнее слагаемое одинаково для всех нейронов, поэтому для нахождения ближайшей точки оно не нужно. Задача сводится к поиску номера наибольшего из значений линейных функций:

Таким образом, координаты точки совпадают с весами линейного нейрона слоя Кохонена (при этом значение порогового коэффициента ).

Если заданы точки , то -мерное пространство разбивается на соответствующие многогранники Вороного-Дирихле : многогранник состоит из точек, которые ближе к , чем к другим ()

Рис 10 Обученные нейроны в 3х мерном пространстве признаков

Задача векторного квантования с кодовыми векторами для заданной совокупности входных векторов ставится как задача минимизации искажения при кодировании, то есть при замещении каждого вектора из соответствующим кодовым вектором. В базовом варианте сетей Кохонена используется метод наименьших квадратов и искажение вычисляется по формуле:

где состоит из тех точек , которые ближе к , чем к другим (). Другими словами, состоит из тех точек , которые кодируются кодовым вектором .

Количество внутренних нейронов можно будет задать в ручную, на каждое измерения. Нейронная сетка распределяется равномерно по измерениям и меняется входе обучения. Чем больше и плотнее расположены внутренний слой нейронной сети, тем точнее выводимый результат, но тем медленнее работа сети.

Выводы по главе II

Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Это значит, что в случае успешного обучения сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке, а также неполных и/или «зашумленных», частично искаженных данных.

С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т. п. С математической точки зрения, обучение нейронных сетей -- это многопараметрическая задача нелинейной оптимизации.

3. Реализация алгоритма и программы оценки надежности телекоммуникационных сетей с помощью нейронных сетей

В данной главе описаны разработанные методы и приемы оптимизации работы и обеспечения стабильности системы, а также структура разрабатываемой нейронной сети. Описывается программная реализация разработанных методов и приемов, описывается методология разработки программного обеспечения нейронной сети. Проводится анализ полученных результатов. Подводятся итоги исследований.

В рамках исследования была написана программа реализующая алгоритмы и методы оценки надежности, на основе нейронных сетей.

Для реализации было выполнено:

1. Изучение существующих методов и программных средств для решения данной задачи.

2. Сбор исходных данных для обучения и тестирования.

2.1. Сбор данных.

2.2. Нормирование каждого показателя.

2.3. Разделения на обучающие и тестовые данные.

3. Создание классов и программы нейронной сети.

4. Тестирование и анализ результатов программы.

3.1 Алгоритм обучения сети

Суть обучения нейронной сети Кохонена заключается в такой подстройке весов, при которой близкие входные векторы будут активировать один и тот же нейрон Кохонена.

Если совокупность задана и хранится в памяти, то стандартным выбором в обучении соответствующей сети Кохонена является метод K-средних. Это метод расщепления:

При данном выборе кодовых векторов (они же весовые векторы сети) минимизацией находим множества -- они состоит из тех точек , которые ближе к , чем к другим ;

при данном разбиении на множества минимизацией находим оптимальные позиции кодовых векторов -- для оценки по методу наименьших квадратов это просто средние арифметические:

где -- число элементов в .

Далее итерируем. Этот метод расщепления сходится за конечное число шагов и даёт локальный минимум искажения.

k-means (метод k-средних) -- наиболее популярный метод кластеризации. Был изобретён в 1950-х годах математиком Гуго Штейнгаузом и почти одновременно Стюартом Ллойдом. Особую популярность приобрёл после работы Маккуина.

Действие алгоритма таково, что он стремится минимизировать суммарное квадратичное отклонение точек кластеров от центров этих кластеров:

где -- число кластеров, -- полученные кластеры, и -- центры масс векторов .

По аналогии с методом главных компонент центры кластеров называются также главными точками, а сам метод называется методом главных точек и включается в общую теорию главных объектов, обеспечивающих наилучшую аппроксимацию данных.

Алгоритм представляет собой версию EM-алгоритма, применяемого также для разделения смеси гауссиан. Он разбивает множество элементов векторного пространствана заранее известное число кластеров k.

Основная идея заключается в том, что на каждой итерации перевычисляется центр масс для каждого кластера, полученного на предыдущем шаге, затем векторы разбиваются на кластеры вновь в соответствии с тем, какой из новых центров оказался ближе по выбранной метрике.

Алгоритм завершается, когда на какой-то итерации не происходит изменения кластеров. Это происходит за конечное число итераций, так как количество возможных разбиений конечного множества конечно, а на каждом шаге суммарное квадратичное уклонение V уменьшается, поэтому зацикливание невозможно.

Рис 11 Обучение нейронной сети методом К-средних

Но этот метод не гарантируется достижение глобального минимума суммарного квадратичного отклонения V, а только одного из локальных минимумов.

Результат зависит от выбора исходных центров кластеров, их оптимальный выбор неизвестен.

Число кластеров надо знать заранее.

ОВК (обучающее векторное квантование).

Алгоритм квантования обучающего вектора (LVQ) был придуман тем же Туэво Кохоненом, который изобрел самоорганизующиеся карты признаков (которые в нашем пакете называются сетями Кохонена).

Квантование обучающего вектора представляет собой преобразованный метод обучения Кохонена. Стандартный алгоритм Кохонена с помощью итерационной процедуры подбирает положение векторов образцов, хранящихся в радиальном слое сети Кохонена, учитывая только положения существующих векторов и обучающих _данных. Этот алгоритм стремится поместить векторы образцов в центры кластеров обучающих данных. При этом не принимаются во внимание метки классов обучающих наблюдений. Для достижения наилучшего качества классификации, желательно, чтобы векторы образцов формировались на основе имеющихся классов, т.е. чтобы они отражали естественные группы в каждом отдельном классе. Скорее всего, образец, расположенный на границе, на одинаковом расстоянии от наблюдений из двух классов, будет бесполезен для распознавания этих классов. В то же время крайне важную роль может играть образец, расположенный внутри, достаточно далеко от границ.

Существует несколько вариантов метода квантования обучающего вектора, и три из них реализованы в программе STATISTICA Нейронные Сети. Основная версия, LVQ1, очень похожа на алгоритм обучения Кохонена. Выбирается образец, ближайший к обучающему наблюдению, и его положение корректируется. Однако если в алгоритме Кохонена образец просто смещается в сторону обучающего наблюдения, в методе LVQ1 проверяется совпадение меток классов образца и обучающего наблюдения. Если такое совпадение имеет место, образец смещается к обучающему наблюдению, а если совпадения нет - смещение происходит в противоположную сторону. Еще более гибкие алгоритмы, LVQ2.1 и LVQ3, учитывают и дополнительную информацию. Они определяют два ближайших к обучающему наблюдению образца. Если один из этих образцов имеет правильное значение класса, а другой неправильное, то правильный образец смещается к обучающему наблюдению, а неправильный - от него. Метод LVQ3 смещает в сторону обучающего наблюдения оба образца, если они оба имеют правильный класс. Основной смысл обоих методов, LVQ2.1 и LVQ3, заключается в постепенном перемещении образцов в те места, где существует опасность ошибочной классификации.

Технические замечания. Для корректировки весов используются следующие правила:

если образец и обучающее наблюдение принадлежат одному классу;

если не принадлежат.

x - обучающее наблюдение, ht - скорость обучения.

В методе LVQ2.1 два ближайших образца корректируются только в том случае, если один из них принадлежит правильному классу, а другой нет, и оба они находятся на "примерно одинаковом" расстоянии от обучающего наблюдения. Для определения понятия "примерно одинаковый" используется специальный параметр, e, и следующие формулы:

В методе LVQ3 используется аналогичная формула для того, чтобы определить, расположены ли два ближайших образца на "примерно одинаковом" расстоянии от обучающего наблюдения:

Кроме того, в методе LVQ3 оба ближайших образца смещаются в сторону обучающего наблюдения, если они принадлежат одному классу. При этом стандартный коэффициент скорости обучения для данной эпохи умножается на коэффициент b.

3.2 Архитектура нейронной сети Кохонена

Структура нейронной сети Кохонена состоит из:

· Входного слоя

· Слоя кодовых векторов (нейронов)

· Слоя классов.

Рис. 12 Структура нейронной сети Кохонена

Входной слой определяется количеством факторов влияющих на конечный результат. Все данные должны быть в интервале 0..1.

В нашем случае входных параметров 8:

- статистика отказов и восстановлений технических средств;

- заявок на использование СС или загруженность сети;

- защищенность от естественных помех;

- защищенность от искусственных помех;

- защищенность от разрушающих искусственных воздействий;

- статистика ошибок программного обеспечения СС или уровень надежности ПО;

- защищенность от отказов, вызванных деятельностью человека или уровень автоматизации;

- защищенность от отказов, вызванных природными явлениями.

Слой кодовых векторов можно задать предварительно, перед обучением и чем больше их тем меньше ошибок, но медленнее работать будет.

Слой классов содержат список кодовых векторов относящиеся к этому классу. В нашем случае мы задаем 5 классов надежности сети: A, B, C, D, E.

Соответственно A класс с самым высоким уровнем надежности, а E класс самым низким уровнем надежности.

3.3 Сбор исходных данных для обучения и тестирования

Исходными данными могут послужить статистические данные или знания эксперта.

Надежность системы пропорционален входным параметрам нейронной сети. Но некоторых состояниях, с несколькими низкими параметрами, система может сохранять свою работоспособность.

Исходными данными возьмём точки в n-мерном пространстве. Максимальная длина вектора точки может быть 81/2. Эту длину разделим на 5 отрезок и определим границы классов:

- E класс - от 0 до 81/2/5

- D класс - от 0 до 2*81/2/5

- C класс - от 0 до 3*81/2/5

- B класс - от 0 до 4*81/2/5

- A класс - от 0 до 81/2

Рис. 13 разделения пространства на 5 классов

У нас 8 входных параметров:

- статистика отказов и восстановлений технических средств;

- заявок на использование СС или загруженность сети;

- защищенность от естественных помех;

- защищенность от искусственных помех;

- защищенность от разрушающих искусственных воздействий;

- статистика ошибок программного обеспечения СС или уровень надежности ПО;

- защищенность от отказов, вызванных деятельностью человека или уровень автоматизации;

- защищенность от отказов, вызванных природными явлениями.

Характер отказов технических средств системы и обычных радиоэлектронных систем идентичен. Влияние постепенных отказов, вызванных воздействием таких факторов, как нестабильность питания, тепловые воздействия, влажность, перепады давления, запыленность и агрессивность среды, компенсируется конструктивными методами при создании устройств и использованием специальных защитных устройств (стабилизаторы, термостаты, экраны). Таким образом, при оценке показателей надежности системы следует учитывать только потоки внезапных отказов. Среди внезапных отказов выделяют устойчивые отказы и сбои, то есть кратковременные самоустраняющиеся отказы.

Для учета характеристик потока сбоев элемента системы достаточно использовать интенсивность этого потока, а для учета потока устойчивых отказов и потока восстановлений следует использовать коэффициент готовности и интенсивность отказов либо среднее время наработки на отказ и среднее время восстановления технических средств системы. Полученный показатель делится на максимальный показатель и отнимается от 1.

Отметим, что пользователю системы безразлично, чем вызван отказ в обслуживании его требования на установление связи - отказом элементов системы или их занятостью обслуживанием других заявок. Современные методы анализа системы позволяют учитывать занятость элементов системы при оценке показателей ее надежности. Для оценки возможностей сети надо оценить запасную ширину канала и бесперебойность обслуживания. Для этого среднюю загруженность канала умножаем на 1,5 и делим на пропускную способность канала. Результат отнимаем от 1.

Чаще всего нейтрализация влияния потока естественных помех достигается путем введения временной или информационной избыточности, либо применением помехоустойчивого кодирования, либо многократной передачей сообщения (что можно рассматривать так же, как применение своеобразных помехоустойчивых кодов). Влияние этого фактора учитывается путем соответствующего увеличения длительности сеанса связи с последующим использованием этого значения при расчете вероятности поддержания связи.

Характерные особенности воздействия потока искусственных помех позволяют рассматривать искусственную помеху, как сбой элемента, и учитывать влияние этого фактора на надежностные характеристики системы аналогично способу учета сбоев технических средств.

Характерными для воздействия потоков искусственных разрушающих воздействий являются: полная потеря работоспособности элемента системы, подверженного этому воздействию; возможность одновременного повреждения нескольких элементов; устойчивый характер повреждения, то есть отсутствие самовосстановления элемента после окончания воздействия; восстановление элемента после такого воздействия возможно только путем его ремонта или замены. Эти особенности аналогичны условиям возникновения и устранения устойчивых отказов за исключением высокой кратности нарушений работоспособности элементов, большего времени восстановления и зависимости отказов элементов друг от друга.

Природа ошибок программного обеспечения системы существенно отличается от природы отказов технических средств системы. На количество и качество ошибок программы в основном влияют субъективные факторы. Поэтому отказ ПО - это событие, заключающееся в проявлении, при определенных последовательностях входных данных, тех ошибок, которые были допущены при разработке ПО и не выявлены при его тестировании. В то же время отказ технических средств - это событие, заключающееся в изменении его параметров и приводящее к потере работоспособности. Второе существенное отличие состоит в том, что программа не стареет, то есть с течением времени количество ошибок в программе не увеличивается, а может только уменьшаться в результате их обнаружения и устранения. Другие отличия: если ошибка программы исключена, то она больше в ней не появится; предварительный анализ влияния ошибки практически невозможен из-за большого числа способов влияния ошибки на поведение программы. Количественным показателем корректности программы является число ошибок, оставшихся в программе после завершения отладки и тестирования. По аналогии с количественными показателями безотказности технических устройств используют также вероятность безотказной работы программы на интервале времени и интенсивность потока ошибок.

Отказы, вызванные деятельностью человека, можно разделить на отказы, вызванные деятельностью обслуживающего персонала, и отказы, вызванные деятельностью других людей.

Первая группа отказов обусловлена ошибками персонала при эксплуатации системы. Их характер и интенсивность существенно зависят от уровня автоматизации процессов управления системой. Применительно к системе PSTN отказы этой группы вызываются следующими ошибками: эксплуатации и ремонта кабелей, систем питания, технических устройств, контроля питания, использования не тех версий программного обеспечения; некорректной инсталляции и определения конфигурации программного обеспечения (исключая ошибки, вносимые в тексты программ); неверного ввода даты. Вторая группа отказов обусловлена преднамеренной (вандализм) и непреднамеренной разрушительной по отношению к системе с деятельностью людей, не являющихся персоналом СС, которая проявляется в нарушении целостности кабелей и другого оборудования вследствие катастрофических событий (в основном автомобильных аварий).

К отказам, вызванным природными явлениями, относятся повреждения кабелей, систем питания и других устройств животными, а также молнией, ураганами, землетрясениями и наводнениями.

Все входные параметры приводятся к интервалу от 0.. 1 в зависимости от пределов данного фактора. Вероятностные факторы вычисляются и учитывается вероятность работоспособности, то есть вероятность отказа отнимаем от 1.

3.4 Реализация алгоритма нейронной сети для оценки надежности телекоммуникационных сетей

Алгоритм был реализован в виде двух классов:

- класса Neuron.

- класса Leyer.

Класс Neuron представляет модель нейрона Кохонена. Класс имеет следующие поля:

- private String clName;

- private int count;

- private double[] weights;

Также имеет следущие методы:

- public void addPoint(double[] point)

- public void setNeuron(double[] point)

- public void setClName(String clName)

- public void getClName()

- public double test(double[] point)

Класс Layer предствавляет модель нойронного слоя Кохонена и содержит в себе нейроны слоя и имеет поле:

- public Neuron[] layer;

Также имеет следующие методы:

- public int searchWithName(double[] point, String clName)

- public int search(double[] point)

- public void study()

- public ArrayList<String> test()

- public void setLayer(int points)

Ввод данных осушествляется с базы данных MySQL, из таблиц STUDY и TEST.

Структура базы данных выглядит следующим образом:

CREATE DATABASE `NEURON`;

USE `NEURON`;

CREATE TABLE

`STUDY` (

`id` INT(11) NOT NULL AUTO_INCREMENT,

`par1` DOUBLE NOT NULL,

`par2` DOUBLE NOT NULL,

`par3` DOUBLE NOT NULL,

`par4` DOUBLE NOT NULL,

`par5` DOUBLE NOT NULL,

`par6` DOUBLE NOT NULL,

`par7` DOUBLE NOT NULL,

`par8` DOUBLE NOT NULL,

`class` CHAR(30) NOT NULL,

PRIMARY KEY(`id`)

)

CREATE TABLE

`TEST` (

`id` INT(11) NOT NULL AUTO_INCREMENT,

`par1` DOUBLE NOT NULL,

`par2` DOUBLE NOT NULL,

par3` DOUBLE NOT NULL,

`par4` DOUBLE NOT NULL,

`par5` DOUBLE NOT NULL,

`par6` DOUBLE NOT NULL,

`par7` DOUBLE NOT NULL,

`par8` DOUBLE NOT NULL,

`class` CHAR(30) NOT NULL,

PRIMARY KEY(`id`)

)

Описание класса Neuron

Класс Neuron имеет следующие поля:

- private String clName;

- private int count;

- private double[] weights;

Поле “clName” - представляет наименования класса. Используется для идентификации классов.

Поле “count” - представляет количество объектов обучения нейрона.

Поле “weights” - представляет весы нейрона для входного вектора. Длина массива соответсвует длине входного векора.

Класс Neuron имеет следущие методы:

- public void addPoint(double[] point)

- public void setNeuron(double[] point)

- public void setClName(String clName)

- public String getClName()

- public double test(double[] point)

Метод “addPoint” принимает в качестве параметра входной вектор для обучения и не возврашает никакое значение. Этому методу обрашается для обучения нейрона. Принятый вектор смешает весы нейрона свою сторону по следуюшей формуле.

Таким образом чем больше обучаются, тем меньше сдвигаются нейронные веса. Этот метод относится динамическому обучению нейрона.

Метод “setNeuron” принимает в качестве взодного параметра начальные веса нейрона и не возврашает никакое значение.

Метод “setClName” принимает в качестве входного параметра строку и никакой параметр не возврашает. Метод устанавливает название класса которому относится нейрон.

Метод “getClName” не принимает никакой параметр и возврашает строку. Метод возврашает название класса которому относится нейрон.

Метод “test” в качестве входного параметра принимает вектор входных параметров и возвращает число с плавующей запятой. Этот метод вычисляет растояние от весов нейрона до входного вектора.растояние вычисляется по следующей формуле:

Описание класса Layer.

Класс Layer имеет следующие поля:

- public Neuron[] layer;

Поле “layer” представляет слой нейронов и состоит из множество нейронов относящиеся нескольким классам. Количесво нейронов в слою формируется во время работы программы параметрами пользователя.

Класс Layer имеет следующие методы:

- public int searchWithName(double[] point, String clName)

- public int search(double[] point)

- public void study()

- public ArrayList<String> test()

- public void setLayer(int points)

Метод “searchWithName” принимает в качестве параметра входной вектор и строку и возвращает целочисленное значение. Этот метод ишет самый близкий нейрон входному вектору относящийся к определенному классу и возвращает индекс нейрона в слою.

Метод “search” принимает в качестве параметра вектор объекта и возвращает целочисленное значение. Этот метод ишет самый близкий нейрон входному вектору и возвращает индекс нейрона в слою.

Метод “study” непринимает и невозвращает никакие параметры. Метод производит обучение нейронного слоя. Обучение производится поиском близкого нейрона и обучением его. Обучения производится из таблицы “STUDY” базы данных.

Метод “test” непринимает никакие параметры и возвращает лист строк. Метод проверяет обученнсть нейронного слоя на основе тестов хранящиеся в таблице базы данных “TEST”. Метод возвращает положительный или отрицательный результат каждого теста в листе.

Метод “setLayer” принимает в качестве параметра целое значение и не возвращает параметры. Метод на основе принятого параметра вычисляет количество нейронов и равномерно распределяет в пространстве. Принятый параметр определяет сколько нейронов приходится на каждое измерение. Например: Если ведем цыфру 3 то количество нейронов на каждое измерение приходится по 3, у нас 8 измерений получается , то есть 6 561 нейронов в слое.

3.5 Результаты программы

Программа для реализации метода была написана на языке Java в среде NetBeans как консольное приложение.

NetBeans IDE -- свободная интегрированная среда разработки приложений (IDE) на языках программирования Java, JavaFX, Python, PHP, JavaScript, C, C++, Ада и ряда других.

Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведется независимым сообществом разработчиков-энтузиастов (NetBeans Community) и компанией NetBeans Org.

По качеству и возможностям последние версии NetBeans IDE не уступают лучшим коммерческим (платным) интегрированным средам разработки для языка Java, таким, как IntelliJ IDEA, поддерживая рефакторинг, профилирование, выделение синтаксических конструкций цветом, авто-дополнение набираемых конструкций на лету, множество предопределённых шаблонов кода и др.

Рис. 14 Среда разработки NetBeans

База данных для обучения и тестирования было представлено в база данных MySQL.

Рис. 15 Таблица STUDY базы данных NEURON

Таблица STUDY имеет более 15000 записей для обучения нейронной сети и содержит входные параметры и классы которым они относятся.

Для тестирования нейронный сеть создана таблица TEST. Который содержит более 730 тестов для тестирования системы.

Рис 16 Таблица TEST базы данных NEURON

Данные таблиц базы данных отличны друг от друга и на повторяются.

Программа тестировалась разными входными параметрами, при 2, 3, 4 разделений на измерения.

При разделениях на измерения:

- Количество нейронов 256.

- Обучающие данных - 15007.

- Тестов - 731.

- Время работы - 1 с.

Рис. 17 Результаты работы программы при разделениях на измерения

При разделениях на измерения результат 726 из 731, то есть 99,31%.

При разделениях на измерения:

- Количество нейронов 6561.

- Обучающие данных - 15007.

- Тестов - 731.

- Время работы - 4 с.

Рис. 18 Результаты работы программы при разделениях на измерения

При разделениях на измерения результат 730 из 731, то есть 99,86%.

При 4х разделениях на измерения:

- Количество нейронов 65536.

- Обучающие данных - 15007.

- Тестов - 731.

- Время работы - 44 с.

Рис. 19 Результаты работы программы при разделениях на измерения

При разделениях на измерения результат 730 из 731, то есть 99,86%.

Выводы по главе III

Оптимальным параметром является при 3х разделениях на измерения. При этом скорость работы и результативвность оптимальный.

Алгоритм можно усложнить и модифициоровать для получения более лучших результатов и ускорить обучение сети.

Даже в случае успешного, на первый взгляд, обучения сеть не всегда обучается именно тому, чего от неё хотел создатель. Известен случай, когда сеть обучалась распознаванию изображений танков по фотографиям, однако позднее выяснилось, что все танки были сфотографированы на одном и том же фоне. В результате сеть «научилась» распознавать этот тип ландшафта, вместо того, чтобы «научиться» распознавать танки. Таким образом, сеть «понимает» не то, что от неё требовалось, а то, что проще всего обобщить.

Тестирование качества обучения нейросети необходимо проводить на примерах, которые не участвовали в ее обучении. При этом число тестовых примеров должно быть тем больше, чем выше качество обучения. Если ошибки нейронной сети имеют вероятность близкую к одной миллиардной, то и для подтверждения этой вероятности нужен миллиард тестовых примеров. Получается, что тестирование хорошо обученных нейронных сетей становится очень трудной задачей.

Заключение

Нейронные сети продемонстрировали свою способность решать сложные задачи. Они имеют уникальные потенциальные возможности, хотя не свободны от ограничений и вопросов, на которые до сих пор не существует ответа. Такая ситуация настраивает на умеренный оптимизм.

С точки зрения машинного обучения, нейронная сеть представляет собой частный случай методов распознавания образов, дискриминантного анализа, методов кластеризации и т. п. С математической точки зрения, обучение нейронных сетей -- это многопараметрическая задача нелинейной оптимизации.

Исследование методов и алгоритмов оценки надежности телекоммуникационных сетей позволяет сформулировать следующие выводы:

1. Современное состояние оценки надежности систем позволяет решать задачу оценки системы при необходимом уровне достоверности.

2. При построении нейронных сетей для оценки надежности сети надо предварительно подготовить входные данные и привести их одному виду. Данные должны быть достоверными и обоснованными для получения реальные показатели надежности.

...

Подобные документы

  • Нейронные сети как средство анализа процесса продаж мобильных телефонов. Автоматизированные решения на основе технологии нейронных сетей. Разработка программы прогнозирования оптово-розничных продаж мобильных телефонов на основе нейронных сетей.

    дипломная работа [4,6 M], добавлен 22.09.2011

  • Простейшая сеть, состоящая из группы нейронов, образующих слой. Свойства нейрокомпьютеров (компьютеров на основе нейронных сетей), привлекательных с точки зрения их практического использования. Модели нейронных сетей. Персептрон и сеть Кохонена.

    реферат [162,9 K], добавлен 30.09.2013

  • Способы применения технологий нейронных сетей в системах обнаружения вторжений. Экспертные системы обнаружения сетевых атак. Искусственные сети, генетические алгоритмы. Преимущества и недостатки систем обнаружения вторжений на основе нейронных сетей.

    контрольная работа [135,5 K], добавлен 30.11.2015

  • Общие сведения о принципах построения нейронных сетей. Искусственные нейронные системы. Математическая модель нейрона. Классификация нейронных сетей. Правила обучения Хэбба, Розенблатта и Видроу-Хоффа. Алгоритм обратного распространения ошибки.

    дипломная работа [814,6 K], добавлен 29.09.2014

  • Понятие искусственного нейрона и искусственных нейронных сетей. Сущность процесса обучения нейронной сети и аппроксимации функции. Смысл алгоритма обучения с учителем. Построение и обучение нейронной сети для аппроксимации функции в среде Matlab.

    лабораторная работа [1,1 M], добавлен 05.10.2010

  • Возможности программ моделирования нейронных сетей. Виды нейросетей: персептроны, сети Кохонена, сети радиальных базисных функций. Генетический алгоритм, его применение для оптимизации нейросетей. Система моделирования нейронных сетей Trajan 2.0.

    дипломная работа [2,3 M], добавлен 13.10.2015

  • Анализ применения нейронных сетей для прогнозирования ситуации и принятия решений на фондовом рынке с помощью программного пакета моделирования нейронных сетей Trajan 3.0. Преобразование первичных данных, таблиц. Эргономическая оценка программы.

    дипломная работа [3,8 M], добавлен 27.06.2011

  • Применение нейрокомпьютеров на российском финансовом рынке. Прогнозирование временных рядов на основе нейросетевых методов обработки. Определение курсов облигаций и акций предприятий. Применение нейронных сетей к задачам анализа биржевой деятельности.

    курсовая работа [527,2 K], добавлен 28.05.2009

  • Изучение методов разработки систем управления на основе аппарата нечеткой логики и нейронных сетей. Емкость с двумя клапанами с целью установки заданного уровня жидкости и построение нескольких типов регуляторов. Проведение сравнительного анализа.

    курсовая работа [322,5 K], добавлен 14.03.2009

  • Понятие и свойства искусственных нейронных сетей, их функциональное сходство с человеческим мозгом, принцип их работы, области использования. Экспертная система и надежность нейронных сетей. Модель искусственного нейрона с активационной функцией.

    реферат [158,2 K], добавлен 16.03.2011

  • Особенности нейронных сетей как параллельных вычислительных структур, ассоциируемых с работой человеческого мозга. История искусственных нейронных сетей как универсального инструмента для решения широкого класса задач. Программное обеспечение их работы.

    презентация [582,1 K], добавлен 25.06.2013

  • Описание технологического процесса напуска бумаги. Конструкция бумагоделательной машины. Обоснование применения нейронных сетей в управлении формованием бумажного полотна. Математическая модель нейрона. Моделирование двух структур нейронных сетей.

    курсовая работа [1,5 M], добавлен 15.10.2012

  • Рост активности в области теории и технической реализации искусственных нейронных сетей. Основные архитектуры нейронных сетей, их общие и функциональные свойства и наиболее распространенные алгоритмы обучения. Решение проблемы мертвых нейронов.

    реферат [347,6 K], добавлен 17.12.2011

  • Искусственные нейронные сети как одна из широко известных и используемых моделей машинного обучения. Знакомство с особенностями разработки системы распознавания изображений на основе аппарата искусственных нейронных сетей. Анализ типов машинного обучения.

    дипломная работа [1,8 M], добавлен 08.02.2017

  • Способы применения нейронных сетей для решения различных математических и логических задач. Принципы архитектуры их построения и цели работы программных комплексов. Основные достоинства и недостатки каждой из них. Пример рекуррентной сети Элмана.

    курсовая работа [377,4 K], добавлен 26.02.2015

  • Модели нейронных сетей и их реализации. Последовательный и параллельный методы резолюции как средства логического вывода. Зависимость между логическим следованием и логическим выводом. Применение технологии CUDA и реализация параллельного алгоритма.

    дипломная работа [1,5 M], добавлен 22.09.2016

  • Сущность, структура, алгоритм функционирования самообучающихся карт. Начальная инициализация и обучение карты. Сущность и задачи кластеризации. Создание нейронной сети со слоем Кохонена при помощи встроенной в среды Matlab. Отличия сети Кохонена от SOM.

    лабораторная работа [36,1 K], добавлен 05.10.2010

  • Построение векторной модели нейронной сети. Проектирование и разработка поискового механизма, реализующего поиск в полнотекстовой базе данных средствами нейронных сетей Кохонена с применением модифицированного алгоритма расширяющегося нейронного газа.

    курсовая работа [949,0 K], добавлен 18.07.2014

  • Диагностический анализ изучения алгоритмов обучения нейронных сетей "с учителем". Сбор входных и выходных переменных для наблюдений и понятие пре/пост процессирования. Подготовка и обобщение многослойного персептрона, модель обратного распространения.

    курсовая работа [249,3 K], добавлен 22.06.2011

  • Технологии решения задач с использованием нейронных сетей в пакетах расширения Neural Networks Toolbox и Simulink. Создание этого вида сети, анализ сценария формирования и степени достоверности результатов вычислений на тестовом массиве входных векторов.

    лабораторная работа [352,2 K], добавлен 20.05.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.