Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
86
Добавлен:
01.05.2014
Размер:
722.94 Кб
Скачать

Отображение кластеров.

Кластером будет являться группа векторов, расстояние между которыми внутри этой группы меньше, чем расстояние до соседних групп. Структура кластеров при использовании алгоритма SOM может быть отображена путем визуализации расстояния между опорными векторами (весовыми коэффициентами нейронов). При использовании этого метода чаще всего используется унифицированная матрица расстояний (u-matrix). При использовании этого метода вычисляется расстояние между вектором весов нейрона в сетке и его ближайшими соседями. Затем эти значения используются для определения цвета, которым этот узел будет отрисован. Обычно используют градации серого, причем чем больше расстояние, тем темнее отрисовывается узел. При таком использовании узлам с наибольшим расстоянием между ними и соседями соответствует черный цвет, а близлежащим узлам – белый.

Описание реализации сети

В программе реализован алгоритм SOM, состоящий из 64 нейронов. Карта представляет собой прямоугольную сетку 8х8 элементов. Количество входов произвольно и задается размерностью векторов из обучающего множества.

При инициализации весам присваиваются малые случайные значения (от 0 до 1), при этом веса не нормируются.

Функция соседства нейронов h(t) используется Гауссова с ,убывающей линейно от 8 до 0.0001 .

Cкорость обучения a(t) убывает линейно от 0.9 до 0.1 .

Рекомендуемое количество эпох обучения – более 32000 (500*количество нейронов)

На карте отображаются как принадлежность вектора кластеру, так и расстояние между кластерами (extended Kohonen map). Степень схожести кластеров показано путем окрашивания ребер между нейронами в различные оттенки серого. Более светлые показывают схожесть, более темные – различие кластеров (имеется в виду расстояние между весовыми векторами соседних нейронов в евклидовом пространстве). Используется 16 градаций серого цвета.

Работа с программой

  1. решетка справа на экране карта (SOM) 8x8

  2. слева список векторов – обучающее множество (заполняется после загрузки векторов)

  3. внизу слева можно вводить произвольный вектор (должно быть задано обучающее множество)

  4. внизу справа задается количество эпох обучения (по умолчанию 32000)

подробнее:

  1. На карте отображаются поданные на вход сети вектора. Ребра между соседними клетками (нейронами) показывают степень схожести этих нейронов. Светлее ребро – более схожи нейроны, темнее – более различны. Раскраску можно включить/выключить в пункте меню “Show\Map as extended”.

  1. “Vectors list (training set)”

Список векторов отображает текущее обучающее множество. Вектора загружаются из файла (“File\Load set of vectors…”). Слева перед точкой стоит номер вектора (для наглядности первые 26 векторов представлены буквами английского алфавита).

Чтобы подать желаемые вектора на вход сети, необходимо выделить один/несколько векторов и нажать кнопку “Give vectors to net”. После чего они появятся на карте справа. Вектора подаются и отображаются последовательно (верхний, затем 2-ой сверху…). В случае отнесения 2-х и более векторов к одному кластеру, на карте будет отображен только последний вектор, принадлежащий этому кластеру.

  1. “Vector”

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

После нажатия кнопки “Give vector to net” вектор добавляется к обучающему множеству (но участвовать в обучении будет только после переобучения сети) и отображается на SOM карте.

  1. “Training”

В окне ввода задается количество эпох обучения. По умолчанию используется 32000 эпох.

Описание меню:

“File”

“Clear Kohonen map” - очищает карту (визуально, данные при этом не затрагиваются)

“Load set of vectors…” - загрузка файла с векторами обучающего множества

“Load map weights …” - загрузка файла с весами сети

“Save map weights …” - сохранение файла с весами сети

“Save Kohonen map” - сохранение файла с отображением текущего состояния карты

“Exit” - выход из программы

“Process”

“Train” - обучение сети. Выполняется только после загрузки обучающего множества

“Stop training” - прерывание обучения и очистка весов сети.

“Clasterize” - подать на вход сети все вектора из обучающего множества (только при обученной сети)

“Show”

“Map as extended” - включает/отключает раскраску ребер карты

Структура файлов:

Файлы с обучающим множеством (*.set) :

Состоят из чисел, знаков ‘-‘ и пробелов.

Первые два числа – количество векторов и размерность вектора.

Остальные числа – элементы векторов, разделенные пробелами и символами ‘конец строки’.

Элементы векторов – целые числа.

Файлы с весами сети (*.wgh) :

Аналогично предыдущим, но элементы – вещественные.

Файлы с отображением текущего состояния карты (*.res) :

Текстовой файл, представляющий схему карты.

Проведение эксперимента:

Теперь проведём эксперимент с файлом IRIS_4.set на примере задачи классификации ирисов Фишера.

  1. Загрузить обучающее множество из 32 векторов ( “File\Load vectors set...” файл “IRIS_4.set ” ). Эти векторы отобразятся в окне "Vectors list".

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

а)

  1. Загрузить веса сети ( “File\Load map weights…” файл “wght5k.wgh”, веса после 5000 эпох обучения)

  2. Затем запустить обучение (“Process\Train”)

  1. Выделить в окне "Vectors list" требуемые векторы (которые будут участвовать в кластеризации) и нажать "Give vectors to net". Кластеризация отобразится на карте.

  1. Ввести произвольный вектор в поле “Vector” и нажать "Give vector to net". Сеть отнесет его к какому-либо кластеру и отобразит его. Его номер можно посмотреть в списке векторов, это будет последний вектор в списке.

Сохраним карту и веса:

Веса:

64 4

61.8929 28.9328 41.0104 12.835

64.1392 29.0747 43.5397 13.2717

65.6928 28.9471 45.867 13.9928

68.2766 30.2241 47.893 14.6381

67.8218 30.3878 50.8476 18.3313

70.9679 30.4313 57.1579 19.3763

74.6844 30.3919 61.7449 20.6379

77.0934 31.6338 66.5857 21.5501

59.2397 33.9536 29.618 8.43112

63.3564 31.2359 39.9742 12.2969

65.2151 30.9305 44.7565 14.3974

65.5074 30.349 47.2361 15.9638

67.6262 30.6784 51.3468 21.9774

68.3022 30.9321 54.7233 21.1442

71.2408 31.3052 59.3609 20.1176

72.5944 33.5316 61.567 22.7689

55.0922 38.6092 16.4802 3.29703

57.5485 36.1932 23.9825 6.2925

62.5801 31.2924 42.4768 13.4525

62.0619 31.0424 46.5058 15.3231

62.7874 31.1021 50.0555 19.2818

63.5209 32.8887 54.5451 23.1701

65.7675 31.7413 57.3046 23.2566

67.6366 31.977 58.0443 22.1513

54.672 40.3836 13.965 2.9295

54.0394 37.1796 16.0256 3.08603

57.4901 32.2241 34.7233 10.6969

59.6873 31.5895 45.0895 15.5413

59.5487 30.5173 47.8703 17.8031

59.9589 30.1764 50.9849 20.3365

63.4868 29.7693 54.8469 20.0368

64.8669 27.4732 56.6719 18.7586

53.3412 36.3653 14.3966 2.05567

52.13 34.5445 15.1901 2.29118

54.6944 31.8792 28.9283 8.53333

57.1041 29.6325 41.7066 13.4286

56.4389 29.385 44.7231 15.2661

56.6828 28.3099 48.4984 18.9545

58.3548 27.038 50.8901 19.0101

62.4548 26.8726 53.4159 17.4789

49.9815 34.3408 13.8833 2.1936

50.3837 34.2884 15.8383 4.16903

53.3852 31.0926 26.6088 7.80996

56.643 28.0257 37.9502 12.4992

56.2409 27.409 41.5509 13.1012

54.0851 26.5799 44.9985 15.7392

59.8652 26.9192 49.2617 16.6308

62.4691 26.9893 49.3861 17.4356

46.9472 32.9182 12.5811 2.10558

48.2547 32.6932 15.4076 2.29598

51.904 29.0174 25.5742 6.7305

55.9766 25.91 35.3807 10.493

54.6048 25.2649 39.5283 12.7203

56.8982 26.8704 43.7282 12.8186

60.4251 27.0924 46.9094 13.3904

61.9715 24.4965 48.9836 15.1228

44.1829 29.5198 12.803 1.92217

47.9161 30.5876 14.7107 2.11272

49.9104 28.0218 22.6193 5.28843

50.7713 23.6518 32.9402 10.4031

54.6438 24.0954 37.7067 11.032

57.6693 25.8571 40.7868 11.4455

60.1867 24.8903 44.3548 12.701

62.1786 22.9892 45.3256 14.1781

Карта Кохонена:

- - C - - - - -

- - - - G - - -

- - - - - - - -

- - - - - - - -

- - - - - - - -

- - - - - - - E

- - - - - - - -

126 - - - - - - -

Теперь попробуем проэксперементировать с другими весами:

б)

Загрузим веса сети ( “File\Load map weights…” файл “wght32k.wgh”, веса после 32000 эпох обучения)

Веса:

64 4

44.87 24.3533 12.9968 2.78508

43.6752 29.8397 12.5762 1.65789

46.271 34.0538 12.0995 2.21093

49.9847 32.4899 12.7471 2.03921

50.7312 34.8136 14.3844 2.08102

52.2468 37.3286 15.1969 2.49381

53.2463 39.7435 13.7782 2.86052

56.3941 42.4183 14.0236 2.81713

47.2208 27.8691 16.5387 3.80792

47.4037 30.7866 13.9296 2.29004

48.831 30.7196 15.5429 1.86394

48.04 33.9545 17.614 2.01755

50.2752 34.2014 16.2366 5.12188

54.1151 34.1533 15.7659 2.7094

52.5992 38.424 17.8527 3.95415

56.8351 38.1571 16.9095 3.01924

50.9373 24.8428 30.1546 10.7902

51.7811 27.2815 26.0844 6.816

52.1389 29.3574 24.7544 5.59682

53.0056 31.0585 25.8971 6.47728

55.1557 32.0213 27.8941 8.58532

57.6944 32.7801 27.571 7.96933

60.8164 32.9214 33.8465 9.93202

63.1318 33.3133 35.9391 10.4825

49.4706 22.8712 33.4633 10.0045

55.7589 24.7731 36.5453 10.3186

58.0002 26.7303 39.9195 11.3352

60.7959 27.7175 40.4291 12.9928

60.5742 29.4836 42.5926 13.9804

64.0084 29.3329 43.3086 13.2613

66.2875 29.9648 44.6466 14.0574

68.5712 31.4747 46.9725 14.4408

54.0166 27.9154 37.5545 13.4473

55.2305 24.2565 39.7628 12.5312

59.9133 22.0976 40.033 10.088

62.5907 22.6951 44.387 13.7377

60.7903 29.0344 46.26 13.6887

63.3948 32.5074 46.237 15.6037

66.9498 30.059 49.6674 16.9002

68.5318 29.649 48.5616 14.5765

55.9907 28.0043 42.4386 12.5586

51.3334 25.398 44.5515 15.0896

58.2554 24.7092 46.9501 14.9491

61.8242 23.8655 49.3779 15.0255

62.8883 25.964 49.503 18.5349

64.9768 31.034 51.4688 19.995

68.1826 30.4898 52.725 22.1899

73.0122 29.0483 60.8935 17.8789

55.6909 29.2473 44.9885 14.2426

57.1905 28.4332 47.1406 16.3778

57.4076 26.4914 50.3902 19.4432

61.553 26.899 53.2509 14.8249

63.9986 30.0085 55.283 18.0382

63.1672 33.0684 54.027 23.212

69.2856 31.3107 58.4954 22.3048

76.6405 28.4938 66.315 21.0818

59.8322 33.6969 45.1415 16.0299

59.6622 30.4536 49.1835 18.0007

57.5555 28.0774 50.4193 22.5397

63.472 27.0915 53.2929 19.0726

65.7002 26.4244 57.1869 19.5446

66.3919 32.0572 57.0842 23.5992

71.6368 35.2347 60.8556 24.453

77.6601 37.2712 66.0187 21.2985

Карта Кохонена:

126 - - - - - - -

- - - - - - - -

- - - - - - - -

- - - - - - C -

- - - - - - - -

- - - - - - G -

- - - E - - - -

- - - - - - - -

Загрузим веса сети ( “File\Load map weights…” файл “wght64k.wgh”, веса после 64000 эпох обучения)

Веса:

64 4

54.1829 34.1916 15.5917 2.66903

50.5384 34.9207 13.9625 2.10738

49.999 32.6562 13.2987 2.00283

46.0077 34.6106 12.722 2.66992

43.6239 30.433 12.4164 1.62378

45.0145 23.1646 13.0232 2.97779

49.003 23.7785 27.5642 8.07657

49.529 23.2319 33.1597 10

53.2343 39.7621 13.7687 2.84848

51.6915 37.4733 15.3497 2.62044

50.2826 34.0757 16.2825 4.99885

47.9966 33.9892 17.6619 2.00173

46.4919 31.7182 14.866 2.0093

48.8456 30.4068 14.7938 1.84522

51.1757 25.0705 30.1649 10.8953

56.4932 25.4995 35.496 10.0031

56.6847 42.2909 13.867 2.84873

56.169 38.2767 16.9965 3.27473

51.0813 37.8983 19.0631 4.05094

53.0527 32.2716 25.0038 5.81025

50.7363 30.4536 20.7244 4.55383

53.6286 29.2251 32.3868 9.55976

53.5365 27.7456 37.862 13.6056

55.2086 24.4255 39.5953 12.3867

60.9073 37.2357 26.3089 7.06449

61.1147 33.3956 32.6654 9.36796

61.0865 28.0988 40.0401 12.9798

63.0805 29.0023 43.0006 13.0019

59.0395 29.9644 42.091 14.9293

56.7671 29.5439 41.5612 12.4831

55.3155 26.3159 43.3682 12.3155

57.9999 26.6882 40.0163 11.2954

69.7233 31.7222 47.5554 14.277

67.5695 29.2874 47.5713 14.4299

66.2434 29.9477 44.5914 14.1564

62.4837 32.9292 45.6878 15.6366

60.6541 28.6826 46.175 13.4444

55.8365 29.2841 45 14.2842

49.5511 25.1517 44.8837 16.7013

59.952 22.0651 40.0415 10.0584

72.0097 29.9599 57.9848 16.115

67.1066 25.1684 57.8987 17.9746

67.0023 29.9834 49.9908 17.0272

63.2902 31.0958 48.7532 17.9267

61.1059 29.2774 48.3833 17.9997

58.9907 30.8964 49.6163 18.0012

57.795 25.9595 47.4496 16.1209

62.4414 22.4442 44.5577 14.1109

76.7288 28.2219 66.0813 22.2037

72.278 29.8059 60.8489 19.0933

68.1104 30.4922 52.8563 22.1011

64.7304 31.4934 51.7933 20.8096

61.4819 29.1279 51.8982 19.7115

57.0798 26.9354 50.0798 20.1695

61.1019 27.3596 50.9953 15.6645

60.0176 22.0217 49.99 15.0083

77.758 37.9715 65.853 21.2392

71.9408 35.608 60.9391 24.6465

66.9384 31.7502 57.3349 22.6204

62.6845 33.694 56.5906 23.9894

64.138 29.2404 55.5498 19.6712

63.866 27.0413 52.9935 19.003

61.1504 26.1436 55.6134 14.0904

63 25.7472 49.3863 17.5851

Карта Кохонена:

- - - - - 126 - -

- - - - - - - -

- - - - - - - -

- - - - - - - -

- - C - - - - -

- - - - - - - -

- - G - - - E -

- - - - - - - -

Загрузим веса сети ( “File\Load map weights…” файл “wght128k.wgh”, веса после 128000 эпох обучения)

Веса:

64 4

76.4688 28.4249 67.1063 21.4874

78.1561 37.9993 65.2646 20.8436

63.0414 32.9918 59.9858 24.9785

64.2568 28.5136 56.5136 21.6626

65.2961 28.39 56.1585 18

61.1247 26.96 52.5558 15.1065

61.7738 23.7738 49.4087 15

62.5776 22.5776 44.4224 13.8448

75.4254 29.3489 61.4784 20.9803

71.9952 35.9829 60.9933 24.9881

67.6679 32.006 57.1946 23.2896

62.9803 33.4039 54.4704 23.3842

63.9874 27.0099 52.9978 19.0062

62.4477 27.061 48.6933 18.2456

60.0104 28.9536 44.9981 14.9912

62.1773 28.5532 41.6595 13

71.8566 30.6502 58.7936 17.3673

68.4032 30.4032 54.5969 21

67.7458 30.3729 51.6272 23

56.9243 26.8585 49.9242 19.6737

57.977 27.9822 50.977 23.9391

57.6531 26.7019 46.3931 16.8969

58 26.6163 39.7323 11.6514

59.9688 22.0708 39.9854 10.0234

68.6932 31.0059 47.8066 14.6079

67.0002 30.001 49.9994 17.0001

65 31.1829 51.4085 20

59.7852 30.6405 48.6075 18

56.9092 28.209 47.243 17.2083

49.0076 25.0028 44.9965 16.9961

55.2326 24.2057 39.0137 11.7812

56.0609 25.0609 35.939 10

66.1944 29.8053 44.7782 13.8978

64.0031 31.9954 45.0031 14.9999

61.3277 33.5574 45.8851 16

61 28.9903 46.6725 13.3256

55.6051 27.5801 44.5711 13.009

57.1667 28.8101 41.7613 13.2922

52.0054 26.9987 38.9994 13.9964

49.8178 23.5872 32.4858 10.2443

62.9303 31.9436 36.841 10.9476

58.2919 34.1768 27.332 7.42632

56.9689 33.1408 29.9278 9.01234

56.0003 29.0013 35.9987 12.9982

53.8465 30.5362 33.3018 9.44699

52.294 29.7438 27.0677 6.97348

48.9869 29.5968 22.7131 5.6699

48.3617 24.538 26.5138 7.70548

54.8663 38.7113 16.9999 3.71119

53.8736 36.4959 14.4959 2

54 34 15.7296 3.27035

50.4046 33.8476 16.4046 4.90889

48 34 17.6519 2.00002

48.6871 30.6041 15.1934 1.85473

46.4971 32.0415 14.2065 2.08716

44.9997 23.0525 13.006 2.99265

57.0468 41.7503 13.4159 2.66892

53.1598 39.8402 13.8402 2.73972

51 37.7394 16.0699 2.91898

49.5003 35.7868 13.7868 1.71345

50.9237 34.4228 14.6086 2.29489

49.9999 32.6043 13.2087 2.00001

46.0009 35.975 10.0363 2.00686

43.7227 30.0413 12.8377 1.72271

Карта Кохонена:

- - - - - E - -

- - - - - - - -

- - G - - - - -

- - - - - - - -

C - - - - - - -

- - - - - - - -

- - - - - - - 126

- - - - - - - -

Вывод:

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

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

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