Самоорганизиращи се карти на Кохонен

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

Алгоритъмът за функциониране на самоорганизиращи се карти (SOM) е една от опциите за групиране на многомерни вектори. Пример за такива алгоритми е k-средният алгоритъм. Важна разлика в алгоритъма SOM е, че в него всички неврони (възли, центрове на класове ...) са подредени в някаква структура (обикновено двумерна мрежа). В същото време, по време на тренировка се модифицира не само печелившият неврон, но и неговите съседи, но в по-малка степен. Поради това SOM може да се счита за един от методите за проектиране на многомерно пространство в пространство с по-ниско измерение. Когато се използва този алгоритъм, вектори, които са сходни в оригиналното пространство, се оказват наблизо и на получената карта.

SOM включва използването на подредена структура на невроните. Обикновено се използват едно- и двумерни решетки. Освен това всеки неврон е n-измерен вектор на колона $ = [w_1, w_2, \ ldots, w_n] ^ T $, където n се определя от измерението на оригиналното пространство (измерението на входните вектори). Използването на едно- и двумерни решетки е свързано с факта, че възникват проблеми при показване на пространствени структури с по-високи измерения (в този случай отново възникват проблеми с намаляване на измерението до двумерни, представени на монитора).

Обикновено невроните са разположени на възлите на двумерна решетка с правоъгълни или шестоъгълни клетки. Освен това, както бе споменато по-горе, невроните също взаимодействат помежду си. Мащабът на това взаимодействие се определя от разстоянието между невроните на картата. Фигура 1 дава пример за разстояние за шестнадесетични и четириъгълни мрежи.

самоорганизиращи

В този случай броят на невроните в мрежата определя степента на детайлност в резултата от алгоритъма и в крайна сметка точността на обобщаващата способност на картата зависи от това.

Първоначална инициализация на картата

При внедряването на алгоритъма SOM конфигурацията на мрежата (правоъгълна или шестоъгълна) и броят на невроните в мрежата са предварително дефинирани. Някои източници препоръчват използването на възможно най-много неврони в картата. В същото време първоначалният радиус на обучение (съседство в англоезичната литература) значително влияе върху способността за обобщаване, използвайки получената карта. В случая, когато броят на възлите на картата надвишава броя на примерите в обучителния набор, тогава успехът от използването на алгоритъма до голяма степен зависи от подходящия избор на първоначалния радиус на обучение. В случая обаче, когато размерът на картата е десетки хиляди неврони, времето, необходимо за обучение на картата, обикновено е твърде дълго за решаване на практически проблеми, поради което е необходимо да се постигне приемлив компромис при избора на броя на възлите.

Преди да започнете да тренирате картата, е необходимо да инициализирате тежестите на невроните. Добре подбраният метод за инициализация може значително да ускори обучението и да доведе до по-добри резултати. Има три начина за иницииране на първоначални тегла.

  • Инициализиране чрез случайни стойности, когато на всички тегла са дадени малки произволни стойности.
  • Инициализиране чрез примери, когато стойностите на произволно избрани примери от учебния набор са зададени като начални стойности
  • Линейна инициализация. В този случай теглата се инициират от стойностите на векторите, линейно подредени по линейно подпространство между двата основни собствени вектора на оригиналния набор от данни. Собствените вектори могат да бъдат намерени, например, с помощта на процедурата на Gram-Schmidt.