Оптимизация количества кластеров с помощью сплайнов

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

Эта способность, безусловно, востребована в искусственном интеллекте, и именно в этом заключается цель методов кластеризации, которые мы здесь обсудим.

Среди методов, предлагаемых машинным обучением и искусственным интеллектом, методы кластеризации являются одними из самых интересных. Эти методы относятся к классу неконтролируемых методов и как таковые не страдают предвзятостью или предположениями, поскольку они не стремятся изучить известное правило, а скорее идентифицируют неизвестные связи. Таким образом, их привлекательность заключается в их способности осмысливать данные, объем и/или кардинальность которых превышают возможности человека по обработке.

Контролируемое и неконтролируемое обучение

В области искусственного интеллекта существует два основных класса методов: контролируемый подход и неконтролируемый подход.

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

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

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

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

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

Приложения кластеризации

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

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

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

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

Процесс расчета

Существует большое разнообразие методов кластеризации, которые различаются в зависимости от:

  • их способность группироваться вдоль нелинейных границ;
  • их эффективность с точки зрения времени расчета;
  • их эффективность с точки зрения потребления памяти;
  • их способность обрабатывать большие объемы данных;
  • их способность работать с большим количеством измерений;

Скриншот ниже, взятый из документации известной библиотеки Scikit-learn, иллюстрирует это разнообразие:

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

Расчет функции

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

Если мы работаем с текстовыми данными, то можно использовать частотность слов в данном корпусе, их длину, их кодировку в виде вектора с помощью таких методов, как Word2Vec…

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

Уменьшение размера

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

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

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

Методы, используемые на этом этапе, по сути являются анализом энергии, переносимой одной или несколькими функциями. Наиболее часто используемым методом для этого, несомненно, является анализ главных компонентов (АГК). Затем исключаются комбинации признаков, несущих небольшую энергию.

Группировка

Рисунок 1 выше хорошо иллюстрирует то, что мы хотим сделать на этапе кластеризации. На этом рисунке мы сталкиваемся с тривиальным случаем двумерных данных.

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

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

Затем итеративно он включает ближайшие точки при обновлении центра кластеров.

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

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

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

Оптимальное количество кластеров

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

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

Выделяют четыре основных этапа:

  • N1: переход от бодрствования ко сну
  • N2: легкий сон
  • N3: глубокий сон
  • БДГ: БДГ-сон

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

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

Определить оптимальное количество кластеров со сплайнами

Оценить релевантность кластеризации

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

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

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

Полученная таким образом кривая очень похожа на кривую, изображенную на рисунке 2.

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

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

Дифференциальная геометрия и колено

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

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

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

Кривизна кривой

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

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

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

Рисунок 3 иллюстрирует эту кривизну:

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

Однако этот метод не применим непосредственно к нашим данным. Мы работаем с дискретными данными со значением для каждого количества кластеров.

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

Сплайны

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

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

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

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

Реализовав данные нашего примера и увеличив зашумленные участки, получим рисунок 4.

Наша кривая хорошо сглажена, убраны артефакты из-за дискретизации.

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

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

Заключение

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

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

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