www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home
Занимательная история, выдающиеся люди, малоизвестные факты, находки, открытия, фальсификации. Присоединяйся!

Необучаемое изучение моделей гауссовой смеси на автокодере SELU (не другой MNIST)

Дата публикации Aug 20, 2017

MNIST - это классический набор данных для машинного обучения. Представьте себе следующий сценарий:

Рисунок 1 - Инопланетянин, который не может понять изображения рукописных цифр человека

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

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

Рисунок 2 - Номер 5

Первая проблема для кластеризации MNIST состоит в том, что каждое изображение размером 28x28 пикселей означает, что каждая цифра имеет 784 измерения.

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

Рисунок 3 - Автоматический кодировщик SELU с регуляризацией для обеспечения ограничения пространства (продвигать структуру?)

SELU - это новая функция активации для нейронных сетей, которая обладает свойством самонормализации. Если мы сделаем классический автоэнкодер и переключим функции активации на SELU, сжатое пространство сходится к четко определенному среднему значению и дисперсии. Возможно, некоторые из распределений, которые представляют сжатое пространство, будут распределены по Гауссу и могут быть хорошо отражены с помощью модели гауссовой смеси. Регуляризация L2 используется на кодированном уровне для ограничения его весового пространства. Поскольку именно на этом слое будет произведено подгонка Гаусса, это ограничение, а также тот факт, что используются только 6 нейронов, создадут узкое место в информации, которое будет способствовать структурированному представлению данных.

Во-первых, давайте проверим распределение сжатого пространства, выполнив парный график (6-мерный):

Рисунок 4 - Парная диаграмма сжатого пространства

Это пространство создается путем сжатия набора данных MNIST из изображений размером 784 (28x28 пикселей) в 6-мерное пространство. Похоже, что в конце концов есть гауссовское поведение! Помните, что автоэнкодер не имеет доступа к меткам, и единственная причина, по которой они включены в пару, это то, что у нас есть ссылка на возможные кластеры.

Но теперь возникает проблема: как выбрать правильное количество компонентов для модели гауссовой смеси? Хотя существует множество функций стоимости, которые можно использовать для выбора подходящего количества компонентов, например, с помощью байесовского информационного критерия (BIC) или Akaike Information Criteria (AIC), существуют алгоритмы, которые могут сделать этот выбор для нас (без необходимости выполнять по-разному подходит для каждого количества компонентов). Один из них был предложен в этой статьеНеконтролируемое изучение моделей конечных смесей

Чтобы соответствовать гауссовой модели микширования с автоматическим выбором компонентов, я собираюсь использовать реализацию (все еще WIP), которую я сделал, используя идеи этого документа (я по сути преобразовал код Matlab моего профессора в Python).Пакет Github

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

Рисунок 5 - Обучение автоэнкодера на наборе данных MNIST и подбор модели гауссовой смеси

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

После подгонки модели можно выбрать новые изображения (в сжатом пространстве) из модели гауссовой смеси, каждый компонент представляет различную концепцию этих изображений (Numbers!). Выбранное сжатое пространство проходит через обученный ранее декодер SELU, и на выходе появляются вновь сгенерированные числа, которые были выбраны из модели гауссовой смеси.

Поздравляем, вы успешно использовали свои чужие алгоритмы и теперь можете воспроизводить и создавать человеческие цифры!

Каждая из следующих фигур была взята из другого гауссова компонента,

Вы можете создать свои инопланетные 0:

Рисунок 6 - Иностранец сгенерировал 0, узнав, что такое человеческая цифра 0

Вы можете создать свой инопланетянин 1:

Рисунок 7 - Чужие сгенерировали 1, узнав, что такое человеческая цифра 1

Вы можете создать своего пришельца 2:

Рисунок 8. Чужие сгенерировали 2, узнав, что такое человеческая цифра 2

...

Вы можете создать свои инопланетные 9:

Рисунок 9 - Чужие сгенерировали 9, узнав, что такое человеческая цифра 9

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

Алгоритм кластеризации на самом деле обнаружил 21 кластер! Вы можете проверить их вблокнот Jupyterиспользуется для этого Medium.

«Проверка структур кластеризации является наиболее сложной и разочаровывающей частью кластерного анализа. Без значительных усилий в этом направлении кластерный анализ останется черным искусством, доступным только тем истинно верующим, у которых есть опыт и большая смелость ». - Jain and Dubes (Jain and Dubes 1988)

Кстати, вот классная визуализация алгоритма кластеризации, сходящегося в игрушечном примере:

Рисунок 10. Изучение моделей гауссовых смесей без контроля

Код, использованный для создания этой среды:Вот,

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map