Изучите фундаментальную, но часто «скрытую» концепцию глубокого обучения.

Что такое скрытое пространство?

Если мне нужно описать скрытое пространство одним предложением, это просто означает представление сжатых данных.

Представьте себе большой набор данных из рукописных цифр (0–9), подобных показанному выше. Рукописные изображения с одним и тем же номером (т. Е. Изображения с тройками) больше всего похожи друг на друга по сравнению с другими изображениями с разными номерами (т. Е. С тройками против 7). Но можем ли мы обучить алгоритм распознавать эти сходства? Как?

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

Если кажется, что этот процесс «скрыт» от вас, это потому, что это так. Скрытый по определению означает «скрытый».

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

Заинтригованы? Давайте разберем скрытое пространство по крупицам:

Почему мы сжимаем данные в машинном обучении?

Сжатие данных определяется как процесс кодирования информации с использованием меньшего количества битов, чем исходное представление. Это похоже на то, как взять точку данных 19D (требуется 19 значений для определения уникальной точки) и сжать всю эту информацию в точку данных 9D.

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

Допустим, мы хотим обучить модель классификации изображения с помощью полностью сверточной нейронной сети (FCN). (т. е. вывод числа цифр с учетом изображения цифры). По мере того, как модель «учится», она просто изучает особенности на каждом слое (края, углы и т. Д.) И приписывает комбинацию характеристик конкретным выходным данным.

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

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

Это «сжатое состояние» представляет собой скрытое пространственное представление наших данных.

Что я имею в виду под пробелом?

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

Но вот параллель.

В этом довольно упрощенном примере предположим, что наш исходный набор данных - это изображения с размерами 5 x 5 x 1. Мы установим размеры нашего скрытого пространства равными 3 x 1, что означает, что наша точка сжатых данных представляет собой трехмерный вектор.

Теперь каждая точка сжатых данных однозначно определяется всего тремя числами. Это означает, что мы можем изобразить эти данные на трехмерной плоскости (одно число - x, другое - y, другое - z).

Это то «пространство», о котором мы говорим.

Каждый раз, когда мы наносим точки на график или думаем о точках в скрытом пространстве, мы можем представить их как координаты в пространстве, в котором точки, которые «похожи» расположены ближе друг к другу на графике.

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

Неудовлетворительный ответ: мы не можем. Мы трехмерные существа, которые не могут постичь n-мерное пространство (такое, что n ›3). Однако есть инструменты, такие как t-SNE, которые могут преобразовывать наши представления скрытого пространства более высоких измерений в представления, которые мы можем визуализировать (2D или 3D). (См. Раздел Визуализация скрытого пространства ниже.)

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

Что я имею в виду под похожим?

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

Но что делает эти два изображения стульев «более похожими»? У стула есть отличительные особенности (например, спинка, без ящика, соединения между ножками). Все это можно «понять» с помощью наших моделей, изучив закономерности по краям, углам и т. Д.

Как объяснялось, такие функции упакованы в представление данных в скрытом пространстве.

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

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

* Обратите внимание, что метрика «близости», о которой я упоминал в статье, является двусмысленным термином и не окончательным евклидовым расстоянием, потому что существует несколько определений расстояния в пространстве.

Почему скрытое пространство имеет значение?

Концепция скрытого пространства определенно интригует. Но как он используется? Когда мы его используем? И самое главное, почему?

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

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

Репрезентативное обучение

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

Это представление должно затем представлять особенности исходных данных.

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

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

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

Ниже перечислены конкретные примеры обучения репрезентации.

Коллекторы

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

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

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

Возьмем, к примеру, "швейцарский рулет" ниже.

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

Уменьшая размерность наших данных до 2D, что в данном случае можно рассматривать как представление «скрытого пространства», мы можем более легко различать многообразия (группы похожих данных) в нашем наборе данных.

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





Автоэнкодеры и генеративные модели

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

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

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

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

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

В приведенном выше примере мы можем сгенерировать различные лицевые структуры с помощью интерполяции по скрытому пространству и использования нашего декодера модели для реконструкции представления скрытого пространства в 2D-изображение с теми же размерами, что и исходные входные данные.

Что я имею в виду под интерполяцией скрытого пространства?

Допустим, я сжал изображения стульев из предыдущего раздела в следующие 2D-векторы, [0,4, 0,5] и [0,45, 0,45]. Допустим, стол сжат до [0,6, 0,75]. Если бы мне пришлось выполнять интерполяцию по скрытому пространству, я бы взял точки в скрытом пространстве между кластером «стул» и кластером «стол».

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

Ниже приведен пример линейной интерполяции между двумя типами стульев в скрытом пространстве.

Генерация изображений по-прежнему является активной областью исследований, а скрытое пространство - это важная концепция, которую необходимо понимать. В следующих статьях вы найдете дополнительные примеры использования генеративных моделей и практический пример интерполяции скрытого пространства с использованием GAN (Generative Adversarial Network), другой генеративной модели, использующей представления скрытого пространства.





Визуализация скрытого пространства

Чтобы узнать больше о визуализации скрытого пространства, я рекомендую статью Hackernoon, в которой приводится практический пример визуализации сходства между цифровыми изображениями в 2D-пространстве с помощью алгоритма t-SNE.



Ключевые выводы

  • Скрытое пространство - это просто представление сжатых данных, в котором похожие точки данных расположены ближе друг к другу в пространстве.
  • Скрытое пространство полезно для изучения функций данных и для поиска более простых представлений данных для анализа.
  • Мы можем понять закономерности или структурные сходства между точками данных, анализируя данные в скрытом пространстве, будь то с помощью многообразий, кластеризации и т. Д.
  • Мы можем интерполировать данные в скрытом пространстве и использовать декодер нашей модели для «генерации» выборок данных.
  • Мы можем визуализировать скрытое пространство, используя такие алгоритмы, как t-SNE и LLE, которые принимают наше представление скрытого пространства и преобразуют его в 2D или 3D.

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