Обучение признакам

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Обучение признакам или обучение представлениям[1] — это набор техник, которые позволяют системе автоматически обнаружить представления, необходимые для выявления признаков или классификации исходных (сырых) данных. Это заменяет ручное конструирование признаков и позволяет машине как изучать признаки, так и использовать их для решения специфичных задач.

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

Обучение признакам может быть с учителем или без.

Обучение с учителем[править | править код]

Обучение признакам с учителем — это обучение признакам из помеченных данных. Пометки данных позволяют системе вычислить величину погрешности, то есть уровень, при превышении которого система не может воспроизвести пометку, кроме того, величина погрешности может затем быть использована как обратная реакция для корректировки процесса обучения (уменьшить/минимизировать ошибку). Обучению с учителем принадлежат следующие подходы:

Словарное обучение с учителем[править | править код]

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

Словарное обучение с учителем использует как структуру лежащих в основе входных данных, так и метки для оптимизации словарных элементов. Например, техника словарного обучения с учителем[6] применяется к словарному обучению для задач классификации путём совместной оптимизации словарных элементов, весов для представляющих данные точек и параметров классификации, основываясь на входных данных. В частности, формулируется задача минимизации, в которой целевая функция включает ошибку классификации, ошибку представления, L1 регуляризации весов для каждой точки (для обеспечения разреженности данных) и L2 регуляризации на параметрах классификатора.

Нейронные сети[править | править код]

Нейронные сети — это семейство обучаемых алгоритмов, которые используют «сеть», состоящую из нескольких уровней внутренне связанных узлов. Узлы рассматриваются как нейроны, а дуги рассматриваются как связи между нейронами. Каждой дуге приписывается вес, и сеть определяет вычислительные правила для обработки входных данных от входного уровня сети к выходному уровню. Функция сети, ассоциированная с нейронной сетью, описывает связь между входным и выходным уровнями. При должном определении функции сети различные задачи обучения могут быть решены путём минимизации функции цены над функцией сети (весам)[уточнить].

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

Без учителя[править | править код]

Обучение признакам без учителя — это обучение признакам из непомеченных данных. Цель обучения признакам без учителя часто заключается в обнаружении признаков малой размерности, которые воспроизводят некоторую структуру лежащих в основе многомерных входных данных. Когда обучение признакам осуществляется без учителя, возможен вид обучения с частичным привлечением учителя, где признаки учатся из непомеченных данных, а затем производится обучение с учителем с помеченными данными для улучшения производительности [7][8]. К этому классу методов принадлежат следующие.

Кластеризация методом K-средних[править | править код]

Метод k-средних — это подход для векторного квантования. В частности, если дано множество из n векторов, кластеризация методом k-средних группирует их в k кластеров (т.е. подмножеств) таким способом, что каждый вектор принадлежит кластеру с самым близким средним. Задача вычислительно NP-трудна, хотя были разработаны подоптимальные жадные алгоритмы.

Метод k-средних можно использовать для группировки непомеченных множеств входных данных в k кластеров, а затем использовать центры тяжести этих кластеров для выделения признаков. Эти признаки можно выделять несколькими путями. Самый простой путь — добавить k бинарных признаков к каждому элементу данных, где каждый признак j имеет значение 1 тогда и только тогда, когда j-ый центроид, обученный посредством k-средних, является наиболее близким к элементу рассматриваемых данных[3]. Можно также использовать расстояния до кластеров в качестве признаков после преобразования их посредством радиально-базисной функции (техника, которая использовалась для обучения RBF сетей[9]). Коутс и Ын заметили, что некоторые варианты k-средних ведут себя подобно алгоритмам разреженного кодирования[10].

В сравнительной оценке методов обучения признакам без учителя Коутс, Ли и Ын нашли, что кластеризация k-средних с подходящим преобразованием превосходит позднее разработанные автокодировщики и ограниченные машины Больцмана на задачах классификации изображений[3]. K-средние также улучшает производительность в области обработки естественного языка (англ. Natural language processing, NLP), в частности, для распознавания именованных сущностей[en][11]. Здесь метод соревнуется с кластеризацией Брауна[en], а также с распределённым представлением слов (известным также как нейронное векторное представление слов)[8].

Метод главных компонент[править | править код]

Метод главных компонент (МГК) часто используется для снижения размерности. Если дано непомеченное множество n входных векторов данных, МГК генерирует p (которое много меньше размерности входных данных) правых сингулярных векторов, соответствующих p наибольшим сингулярным значениям матрицы данных, где k-ая строка матрицы данных является k-ым входным вектором, сдвинутым на выборочное среднее входных данных (т.е. вычитания среднего из вектора данных). Эквивалентно, эти сингулярные вектора являются собственными векторами, соответствующими p наибольшим собственным значениям выборочной ковариантной матрицы входных векторов. Эти p сингулярных векторов являются векторами признаков, извлечённых из входных данных. Они представляют направления, вдоль которых данные имеют наибольшие изменения.

Метод главных компонент является методом линейного обучения признакам, поскольку p сингулярных векторов являются линейными функциями от матрицы данных. Сингулярные вектора могут быть получены посредством простого алгоритма за p итераций. На i-ой итерации вычитается проекция матрицы данных на (i-1)-ый собственный вектор и ищется i-ый сингулярный вектор как правый сингулярный вектор, соответствующий наибольшему сингулярному числу остаточной матрицы данных.

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

Локально-линейное вложение[править | править код]

Локально-линейное вложение[en] (ЛЛВ) — это метод нелинейного обучения для получения сохраняющего соседство представления низкой размерности из (непомеченных) входных данных высокой размерности. Подход предложили Ровайс и Сол[12][13]. Основная идея локально-линейного вложения заключается в пересоздании исходных данных высокой размерности при использовании точек с малой размерностью и сохранении при этом некоторые геометрические свойства соседства исходного множества данных.

Локально-линейное вложение состоит из двух главных шагов. Первый шаг осуществляется с целью «сохранения соседства», когда каждая входная точка данных Xi пересоздаётся как взвешенная сумма K ближайших соседних точек данных, а оптимальные веса находятся путём минимизации средней квадратичной ошибки реконструированных данных (т.е. разность между входной точкой и её реконструкцией) при условии, что веса, ассоциированные с каждой точкой, в сумме дают единицу. На втором шаге осуществляется «сокращение размерности» путём поиска векторов в пространстве низкой размерности, которые минимизируют ошибку представления, используя оптимизированные веса из первого шага. Заметим, что на первом шаге веса оптимизируются на фиксированных данных, так что задача может быть решена методом наименьших квадратов. На втором шаге точки пространства малой размерности оптимизируются с фиксированными весами, так что эту задачу можно решить с помощью разложения по собственным значениям разрешенной матрицы.

Веса, полученные на первом шаге, захватывают «существенные геометрические свойства» соседства входных данных[13]. Предполагается, что исходные данные лежат на гладком многообразии низкой размерности, а «существенные геометрические свойства», захваченные весами, также лежат на многообразии. Вот почему те же самые веса используются во втором шаге метода. По сравнению с МГК метод ЛЛВ более сильный для обнаружения лежащей в основе структуры данных.

Анализ независимых компонент[править | править код]

Анализ независимых компонент (АНК) — это техника образования представления данных с использованием взвешенной суммы независимых негауссовых компонент[14]. Предположение негауссовости накладывается ввиду того, что веса не могут быть однозначно определены, если все компоненты имеют гауссово распределение.

Словарное обучение без учителя[править | править код]

Словарное обучение без учителя не использует пометку данных и пользуется структурой данных, лежащей в основе, для оптимизации элементов словаря. Примером словарного обучения без учителя служит разреженное кодирование, целью которого является изучение базисных функций (элементов словаря) для представления данных из непомеченных входных данных. Разреженное кодирование может быть применено для обучения переполненных словарей, где число элементов словаря больше размерности входных данных[15]. Аарон и др. предложили алгоритм K-SVD[en] (англ. K-Singular Value Decomposition, K-Сингулярное Разложение) для обучения словаря элементов, которое даёт разреженное представление[16].

Многоуровневые/глубокие архитектуры[править | править код]

Иерархическая архитектура биологических нейронных сетей вдохновило архитектуру глубокого обучения для обучения признакам путём каскадирования слоёв обучаемых уровней[17]. Эти архитектуры часто разрабатываются на основе предположения распределенного представления — экспериментальные данные генерируются путём взаимодействия многих различных факторов на нескольких уровнях. В архитектуре глубокого обучения выход каждого промежуточного уровня можно рассматривать как представление исходных входных данных. Каждый уровень использует в качестве входа представление, произведённое предыдущим уровнем, и создаёт новое представление на выходе, которое затем подаётся на уровень выше. Входом самого нижнего уровня служат сырые данные, а в качестве выхода конечного уровня служит конечный признак или представление низкой размерности.

Ограниченная машина Больцмана[править | править код]

Ограниченные машины Больцмана (ОМБ) часто используются в качестве строительных блоков многоуровневых обучаемых архитектур[3][18]. Ограниченная машина Больцмана может быть представлена неориентированным двудольным графом, состоящим из группы двоичных[en] скрытых переменных, группы видимых переменных и рёбер, соединяющих скрытые и видимые переменные. ОМБ является специальным случаем более общих машин Больцмана с ограничением, что нет внутриузловых связей. Каждому ребру ОМБ приписывается вес. Веса вместе с соединениями определяют функцию энергии, основываясь на которой, можно разработать совместное распределение видимых и скрытых узлов. На основе топологии ОМБ, скрытые (видимые) переменные независимы и обусловлены видимыми (скрытыми) переменными. Такая условная независимость облегчает вычисления.

ОМБ можно рассматривать как архитектура с одним уровнем для обучения признакам без учителя. В частности, видимые переменные соответствуют входным данным, а скрытые переменные соответствуют детекторам признаков. Веса могут быть обучены путём максимизации вероятности видимых переменных с помощью алгоритма контрастивной дивергенции Хинтона (CD)[18].

В общем виде обучение ОМБ путём решения задачи максимизации приводит к представлению, не являющемуся разреженным. Разреженная ОМБ[19] была предложена для обеспечения разреженных представлений. Идея заключается в добавлении члена регуляризации в целевую функции правдоподобия данных, которая штрафует отклонение дисперсии скрытых переменных от константы с малой величиной.

Автокодировщик[править | править код]

Автокодировщик состоит из кодировщика, а декодировщик является парадигмой для архитектур глубокого обучения. Пример привели Хинтон и Салахутдинов[18], в котором кодировщик использует сырые данные (например, изображение) в качестве входных данных и даёт признак или представление в качестве выхода, а декодировщик использует выделенный кодировщиком признак в качестве входа и восстанавливает исходные входные сырые данные в качестве выхода. Кодировщик и декодировщик строятся путём каскадирования ограниченных машин Больцмана. Параметры, используемые в архитектуре, первоначально полученные жадным алгоритмом от уровня к уровню — после того, как один уровень выявления признаков обучен, признаки представляются как видимые переменные для обучения соответствующей ОМБ. В настоящее время подходы обычно применяют сквозное обучение методами стохастического градиента[en]. Обучение можно повторять, пока не достигнем некоторого останавливающего критерия.

См. также[править | править код]

Примечания[править | править код]

Литература[править | править код]