5

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

delta_w = a*(t - y)*g'(h)*x 

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

Можете ли вы любезно предоставить пример того, как вы будете использовать BP в неконтролируемом обучении, особенно для кластеризации классификации?

Заранее спасибо.

ответ

6

Я не уверен, какой неконтролируемый алгоритм машинного обучения специально использует обратное распространение; если есть, я не слышал об этом. Можете ли вы указать пример?

Backpropagation используется для вычисления производных функции ошибки для обучения искусственной нейронной сети по отношению к весам в сети. Он назван как таковой, потому что «ошибки» «распространяются» через сеть «назад». Это необходимо в этом случае, потому что конечная ошибка относительно цели зависит от функции функций (функций ... в зависимости от того, сколько слоев в вашем ANN.) Производные позволяют вам затем корректировать значения, чтобы улучшить ошибку (от gradient descent).

В неконтролируемых алгоритмах вам не нужно это делать. Например, в k-Means, где вы пытаетесь минимизировать среднеквадратическую ошибку (MSE), вы можете минимизировать ошибку непосредственно на каждом шаге с учетом назначений; градиентов не требуется. В других моделях кластеризации, таких как mixture of Gaussians, алгоритм expectation-maximization (EM) намного эффективнее и точнее, чем любой метод на основе градиентного спуска.

+2

Итак, я предполагаю, что следующий вопрос, который у меня есть, это ... Можем ли мы использовать EM для обучения контролируемой нейронной сети? Если да, почему мы предпочитаем BackPropagation над EM? – Shatu

6

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

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

Я не знаком с другими методами, которые используют backpropogation для кластеризации или других неподконтрольных задач. Подходы кластеризации с ANN, похоже, используют другие алгоритмы (example 1, example 2).

+1

+1 при упоминании автокодера. Полностью забыл об этом. :) –

1

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

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

2

Что вы можете спросить о неконтролируемой функции обучения и глубоком изучении.

Изучение функций - единственный метод, который я могу придумать в отношении NN или его недавнего варианта (вариант, названный смесью RBM, аналогичен смеси gaussians, но вы можете построить много моделей на основе двух). Но в основном две модели, с которыми я знаком, это RBM (ограниченные машины boltzman) и Autoencoders.

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

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

Смесь RBM (аналогичная смеси гауссово) может использоваться для мягкой кластеризации или KRBM (аналогичная K-средству) может использоваться для жесткой кластеризации. На самом деле это похоже на изучение нескольких нелинейных подпространств.

http://deeplearning.net/tutorial/rbm.html

http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial

2

Альтернативный подход заключается в использовании нечто вроде порождающей обратного распространения. В этом случае вы тренируете нейронную сеть, обновляя весовые коэффициенты И входные значения. Указанные значения используются в качестве выходных значений, так как вы можете напрямую вычислить значение ошибки. Этот подход использовался в уменьшении размерности, завершении матрицы (отсутствие вменения значения) среди других приложений. Для получения дополнительной информации см. non-linear principal component analysis (NLPCA) и unsupervised backpropagation (UBP), в которой используется идея генеративного обратного распространения. UBP расширяет NLPCA, вводя предварительную подготовку. Реализация UBP и NLPCA и неконтролируемое backpropagation можно найти в наборе инструментов машинного обучения вафель. Документацию для UBP и NLPCA можно найти с помощью команды nlpca.

1

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