где t обозначает номер эпохи (номер итерации обучения).
Функция h(t) называется функцией соседства нейронов. Эта функция представляет собой невозрастающую функцию от времени и расстояния между нейроном-победителем и соседними нейронами в сетке. Эта функция разбивается на две части: собственно функцию расстояния и функции скорости обучения от времени:
,где r – координаты нейрона в сетке.
Обычно применяется одна из двух функций от расстояния: простая константа:
,или Гауссова функция:
,При этом
является убывающей функцией от времени. Эту величину называют радиусом обучения. Он выбирается достаточно большим на начальном этапе обучения и постепенно уменьшается так, что в конечном итоге обучается один нейрон-победитель. Наиболее часто используется функция, линейно убывающая от времени.Функция скорости обучения
также представляет собой функцию, убывающую от времени. Наиболее часто используются два варианта этой функции: линейная и обратно пропорциональная времени вида: ,где A и B это константы. Применение этой функции приводит к тому, что все вектора из обучающей выборки вносят примерно равный вклад в результат обучения.
Обучение состоит из двух основных фаз: на первоначальном этапе выбирается достаточно большое значение скорости обучения и радиуса обучение, что позволяет расположить вектора нейронов в соответствии с распределением примеров в выборке, а затем производится точная подстройка весов, когда значения параметров скорости обучения много меньше начальных.
2.3.6 Алгоритм нейронного газа
В этом алгоритме на каждой итерации все нейроны сортируются в зависимости от их расстояния до вектора x. После сортировки нейроны размечаются в последовательности, соответствующей увеличению удалённости.
где dk=|x-wm(i)| обозначает удалённость i-того нейрона, занимающего в результате сортировки m-ю позицию в последовательности, возглавляемой нейроном-победителем, которому сопоставлена удаленность d0. Значение функции соседства для i-того нейрона G(i,x) определяется по формуле:
в которой m(i) обозначает очерёдность, полученную в результате сортировки (m(i)=1,2,3,…,n-1), а лямбда - параметр, аналогичный уровню соседства в алгоритме Кохонена, уменьшающийся с течением времени. При лямбда =0 адаптации подвергается только нейрон-победитель, и алгоритм превращается в обычный алгоритм WTA, но при уточнению подлежат веса многих нейронов, причём уровень уточнения зависит от величины G(i,x).
Для достижения хороших результатов самоорганизации процесс обучения должен начинаться с большого значения лямбда, однако с течением времени его величина уменьшается до нуля.
3. Формализация задачи
В качестве группы пакетов, выступающих в качестве обучающего примера, возьмём 10 подряд идущих поступающих на рабочую станцию пакетов. Для построения модели оценим в каждой группе следующие параметры:
1.Число пакетов поступивших от хостов “своей” ЛВС.
2.Число фрагментированных пакетов.
3.Число TCP-пакетов.
4.Число UDP-пакетов.
5.Максимальное число пакетов в группе, пришедших от одного из хостов-отправителей.
6.Принадлежность хоста, отправителя наибольшего числа пакетов. (1 - “своя” ЛВС, 0 - иначе)
7.Средняя загрузка процессора (без учёта приложений не связанных с сетью). (%)
8.Изменение загрузки процессора с времени получения первого пакета до времени получения последнего пакета (без учёта приложений не связанных с сетью).(%)
9.Средний размер пакета. (байт)
10.Число пакетов размером в интервале с 0.8*x до 1.2*x, где x – средний размер пакета.
11. Число доступных хостов.
12. Число различных хостов.
Вышеперечисленные параметры будут являться входами модели. Пользователю следует определить размер карты Кохонена, а также параметры настройки нейронной сети. Остаётся только сгенерировать различные пакеты TCP, UDP и ICMP как обычные, так и “хакерские”, и переслать их на хост, ведущий журнал входящих пакетов и их параметров. Из данного журнала пакеты объединяются в группы (10 последовательно идущих пакетов). Для каждой группы определяются выделенные интегральные критерии.
Полученные данные служат для самообучения сети.
4. Эксперимент
На локальную станцию (192.168.0.3) поступают следующие пакеты:
TCP – обычные пакеты от станций собственной ЛВС. Соединение происходит в обычном режиме. Передача файлов.
ICMP – обычные пакеты, “проверка связи”.
UDP – обычные пакеты от станций ЛВС, обмен данными между приложениями BroodWar, Blizzard Intertainment.
TCP – обычные пакеты от хостов, на принадлежащих “своей” ЛВС, передача файлов.
TCP – “хакерские” пакеты. Паническая атака.
ICMP – пакеты, являющиеся следствием широковещательного шторма.
UDP – “хакерские” пакеты (посылка широковещательного шторма).
TCP – “хакерские” пакеты, фрагментрованные и не связанные между собой (aтака на файрфолл).
Эксперимент представляет собой посылку и запоминание чередующихся обычных и “опасных” пакетов. Причём в группе, относящийся к классу зарождающейся атаки, могут присутствовать и совершенно безвредные пакеты с данными и сообщениями. Того как заранее определённое число пакетов было получено и после предобработки в группы произошло обучение модели, необходимо произвести визуализацию карты Кохонена. На карте, состоящей из квадратов, где за каждый квадрат отвечает один нейрон, производится заливка в зависимости от класса опасности. Нейроны, отвечающие за класс - тотальная атака (большое число опасных пакетов), окрашиваются в более тёмно красные цвета, нейроны, классифицирующие обычную работу станции в сети (приём-передача данных), окрашены в более нейтральные цвета.
5. Результаты работы модели
1.Стандартный алгоритм Кохонена. Карта 10*10 нейронов.
Рис.5 Визуализация карты Кохонена при обучении стандартным алгоритмом Кохонена
Из-за того что многие нейроны после обучения остались мертвыми нейронная сеть имеет высокую погрешность квантования.
Самые опасные классы характеризуются следующими параметрами: небольшие по размеру пакеты, значительное количество пакетов одного типа, например только ICMP или UDP, и одного размера, во время получения этих групп пакетов происходит существенная загрузка процессора, значительная часть хостов - отправителей не доступны. Другим опасным классом является кластер с большими по размерам фрагментированными пакетами.
2.Стандартный алгоритм Кохонена с учётом соседства. Карта 10*10 нейронов.
Рис.6 Визуализация карты Кохонена при обучении стандартным алгоритмом Кохонена с учётом соседства
Из-за подстройки большего числа нейронов значительная часть нейронов – “живая”. Погрешность квантования значительно ниже. Визуально прослеживается группирование опасных групп пакетов. Между двумя основными очагами опасности (в левом и правом углах карты) расположены группы пакетов соответствующие безопасной передаче.
3.Обучение карты признаков с механизмом утомления. Карта 10*10 нейронов.
Рис.7 Визуализация карты Кохонена при обучении с использованием механизма утомления.
4. Обучение карты признаков с механизмом утомления и подстройкой соседей. Карта 10*10 нейронов.
Рис.8 Визуализация карты Кохонена при обучении обучении с использованием механизма утомления и подстройкой соседей.
5 .Алгоритм нейронного газа.=
Рис.9 Визуализация карты Кохонена при обучении. Алгоритмом нейронного газа
Большой разброс по карте различных цветов объясняется самим алгоритмом обучения: здесь соседство нейронов не зависит от расположения нейронов на карте признаков.
Кроме визуализации карты важны также значения синаптических весов. Синаптический вес W0=1- поляризация нейрона.
Пример.1
Рис.10 Карта Кохонена. 5*5 нейронов.
Ниже даны значения синаптических весов для каждого из “живых” нейронов.
Нейрон 0 1 7,87128697398845 0,625510201518193 2,7803597528978 1,89207931247814 3,29053079148225 0,846173185063035 13,5345966850206 7,0865225491331 129,307664502201 1,40585258052631 9,01013368873421 | Нейрон 1 1 7,15478814257012 0,80038505604928 3,4657135681091 2,14143521744823 3,44359875511805 0,776338372597683 12,9441507600633 5,13478248587067 183,45652320823 0,892269137377325 8,8894329158617 | Нейрон 2 1 6,51072352952404 0,992340068508278 4,06763582460853 2,78810515781772 3,8079162430252 0,67583544535221 11,7697105357889 1,88885822746819 277,625057718703 0,489223807498444 9,01986066715186 | Нейрон 3 1 5,89443270744136 1,07835225630037 5,00871505425791 3,21406653769472 4,05965826713145 0,688612599435516 9,64055979833943 0,176019982013541 349,212505651654 0,307102637433364 8,2882446272146 |
Нейрон 4 1 5,70325599064924 1,50203934884403 5,48238703058519 2,857530344957 4,1045922884135 0,559367823973787 9,80870961032371 -2,51748577298294 388,707709851468 0,360064195846817 8,67487120799402 | Нейрон 6 1 6,98662538009356 0,943325646563848 3,76316661580884 2,28074699102588 3,84435226155865 0,675295943164295 13,1166889150889 2,5894675318043 232,422065671803 0,578616436145349 9,30231795759802 | Нейрон 7 1 6,4383154761932 1,30743427921713 4,43322764797434 2,5712769815738 4,015643912254 0,585958396325411 11,4384134686756 0,295227565032279 308,441204991856 0,436934279428607 9,22429249868916 | Нейрон 8 1 6,2914496789632 1,49510940329358 5,16485493868028 2,94683540727014 4,26732605590749 0,59451625983309 10,9123469737949 -2,32327270509521 397,564552174538 0,581383154548032 9,07977817163535 |
Нейрон 9 1 5,78995420800614 1,73921623428801 5,64413639879408 2,83323796423943 4,40990583312066 0,500543095760549 11,1144609757214 -5,73252740367375 449,019038281951 0,657035152619139 9,23115369270226 | Нейрон 10 1 6,97268621817446 0,79277691809128 4,02543058948051 2,46523221397023 3,77806690364019 0,676526389633808 13,8202281014187 0,469769683982962 259,238919476768 0,757542791254212 9,28309047834848 | Нейрон 11 1 7,04631978115591 0,866271976699346 4,10365456015304 2,88223720882954 4,03150518348344 0,741278370899166 13,8559400919982 -1,255919505345 293,322921366235 0,704152207962319 9,48440166138134 | Нейрон 12 1 6,53912681147659 1,56421780805537 4,65601147347958 2,9067904818665 4,27363452636153 0,618578255936595 12,5822623306945 -2,08418808911294 374,872439162492 0,774431791221968 9,54008041266804 |
Нейрон 13 1 5,69340841412797 2,44796836439865 5,48622818955848 2,92237813180815 4,67788797387526 0,423401926734283 12,1938129780133 -3,92356491480928 497,650849296462 1,22621001209077 9,58796185267328 | Нейрон 14 1 5,10226147046721 2,74988223156105 5,9342783502907 2,83173118981968 4,95695609620259 0,316516196981386 12,0153591762438 -5,69212277788297 553,351005991353 1,42911651866737 9,61230903245157 | Нейрон 15 1 6,98052845303821 1,22279827555202 4,46220766547028 2,90189348319595 4,15096271989555 0,718494733032167 13,8462699925973 -0,265034800167613 329,133144315137 0,789272703113608 9,41327311392812 | Нейрон 16 1 6,78108488859872 1,4587788312988 4,75098402281347 2,99715775219415 4,35524349138507 0,688106328846737 13,146546408368 -1,83766433492922 378,789970538933 0,911094890831572 9,47688044148138 |
Нейрон 17 1 5,9813392597355 2,59141112244731 5,42222552146448 2,88984764450358 4,90655379368435 0,558857955310756 12,3129769708837 -1,59557885143347 509,639060778038 1,46442141785324 9,64035319482989 | Нейрон 18 1 4,37316852020513 3,93024605710541 6,35532277636607 2,54556862325942 5,71566995847879 0,301720400062721 12,1338787032946 -0,810932403256381 666,82904006035 2,40887775038786 9,71260136248531 | Нейрон 19 1 3,82835833175608 4,14740478540821 6,51201817449346 2,53488453447905 5,87186670401515 0,209331814630084 12,1270372594924 -1,30049493872786 704,444674316111 2,25030241452771 9,65725372019714 | Нейрон 21 1 6,39813422562582 2,08493929159042 5,32829499657161 3,06032597511598 4,7641814353147 0,582189552264411 12,5599245219555 -1,96191395295381 469,290874929838 1,22613369905861 9,46669357056521 |
Нейрон 23 1 3,55908012277478 4,77646016724021 6,74861021282903 2,41585236193159 6,31871793270481 0,255152204011248 12,1980038558062 1,93696746210735 759,876377313462 2,82715213468638 9,64367900062772 | Нейрон 24 1 3,37428950504548 4,73559755878779 6,67504947616927 2,51158813130044 6,22501279809869 0,20990156336746 12,1086739774428 1,00744771459805 778,544161691368 2,27296953057915 9,5765164059112 |
Табл. 1. Весовые коэффициенты нейронов карты Кохонена для примера 1.