Pull to refresh
18
0
Send message

Кластеризация: зачем и как объединять Gaussian Mixture и DBSCAN?

Level of difficultyMedium
Reading time12 min
Views1.7K

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

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

Каждый метод кластеризации основан на какой-то своей модели взаимного расположения объектов (хотя эта модель не всегда конкретизируется). Поэтому, применяя разные методы кластеризации к одним и тем-же данным вы будете получать различное разделение одних и тех-же объектов на кластера. Интересную (и часто приводимую) кластеризации одинаковых данных разными методами можно увидеть здесь: https://scikit-learn.org/stable/modules/clustering.html.

Наиболее простыми и понятными алгоритмами являются смесь гауссовых распределений (Gaussian Mixture, метод основанный на модели распределения) и DBSCAN (метод основанный на расстоянии). Рассмотрим их чуть более подробно, чтобы понять почему они так часто используются, в чем их плюсы и минусы, и почему иногда их хочется объединить.

Читать далее

Как я перестал беспокоиться и полюбил абсолютную активацию

Level of difficultyMedium
Reading time11 min
Views25K

Началось все на лекциях. Для иллюстрации работы нейронной сети нужны простые примеры. Достаточно хорошо известно, что одиночный нейрон формирует разделяющую гиперплоскость, и поэтому задачки типа "а найди мне, какой прямой разделяются два цвета на флаге Монако (который состоит из двух горизонтальных полос)" один нейрон решает на раз. Проблемы начинаются позже, например с флагом Японии (который состоит из красного круга на белом фоне) - один нейрон эту задачу хорошо не решает. Обычно, стандартным методом решения является 'в лоб': а давайте увеличим число нейронов, поставим решаюший слой, и задача решится. И тут возникает проблема номер 1: сколько нейронов в скрытом слое ставить. Традиционный ответ из всей обучающей литературы - подбирайте опытным путем. С одной стороны, их не должно быть сильно много, потому-что будет много неизвестных параметров, а с другой стороны - и сильно мало тоже не очень хорошо, ведь с одним нейроном мы уже обожглись. Итак, стандартный вопрос: сколько-же нейронов все-таки надо?

Оказывается, ответ на этот вопрос давно уже есть: в этой задаче - ровно пять. Есть такая теорема Колмогорова-Арнольда, где доказано, что если взять пять нейронов, то для них существуют какие-то гладкие функции активации, при которых двухслойная нейронка будет решать почти любую простую задачу для двумерных входных данных. И это было доказано аж в конце 50х годов 20 века и решало одну из важнейших математических задач 20го века - 13ю проблему Гильберта. Ключевая проблема здесь - "какие-то гладкие функции активации". Ведь, какие они конкретно - никто не сказал, и поэтому нужно их искать.

Читать далее

Information

Rating
Does not participate
Registered
Activity