Pull to refresh

Unsupervised learning или «пойди туда, не знаю куда, найди то, не знаю что»

Artificial Intelligence
imageЭкспертные системы, нейронные сети, исчисление предикатов, хорновские дизъюнкты, теоремы сходимости…
Не знаю как у вас, у меня вся эта кухня вызывает восторг. Как замечательно, что компьютеры (конечно, наученные программистами, вооруженными серьезной математикой) могут хотя бы иногда приближаться к человеку по навыкам принятия решений. Особенно это хорошо у них получается, когда человек готов учить.

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

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

Обычно такие задачи формулируются как задачи автоматической классификации. На входе – много отдельных объектов (например, веб-страниц или историй болезни больных), на выходе – дерево групп таких объектов, где они аккуратно разложены по полочкам.

image

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

Один из такиз методов — самоорганизующиеся карты Кохонена (SOM, нейронная сеть Кохонена, алгоритм Кохонена кластеризации данных).

Изначально все данные представлены как точки в некотором многомерном пространстве. Точка описана набором координат по осям, и этих координат обычно много (сотни и тысячи). Наша задача – выделить группы, связи, закономерности в этом неудобном многомерном облаке.

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

image

Метод самоорганизующихся карт
Как же метод работает? В пространстве расположены точки данных. В это же пространство помещается плоская сеть Кохонена из нейронов.
Выполняется перебор всех точек данных, для каждой находится ближайшая точка сети и вся сеть немного подтягивается к этой точке. Сеть тянут за тот нейрон, который оказался ближе к точке данных. Чем дальше от лучшего конкретный нейрон, тем меньше его перемещение.

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

image

Например, для двух- и трехмерной задачи это выглядит примерно так (обучение сознательно не доведено до конца, когда карта схлопывается в 2-3 сгустка):

image

Анализ и возможности
После окончания процесса карта «расправляется» и полученные группы данных можно анализировать (методов и характеристик много).

image

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

image

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

image

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

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

Скачать программу-пример

Написано с применением OpenCV (Скачать, описание)

Также сети Кохонена как один из инструментов анализа данных присутствуют во множестве специализированных программных пакетов.

Методы анализа данных в условиях отсутствия учителя и четких критериев группировки широко применяются в задачах отбора признаков для анализа, понижения размерности, data mining.

Что почитать по теме:
По-русски
1. Сети Кохонена
2. Кластерный анализ
На других языках
3. www.cis.hut.fi/teuvo
4. www.shef.ac.uk/psychology/gurney/notes/l7/l7.html
5. www.len.ro/work/ai/som-neural-networks
6. www.samhill.co.uk/kohonen
Tags:
Hubs:
Total votes 105: ↑96 and ↓9 +87
Views 6.5K
Comments Comments 172