Участник:Ruzik/Песочница

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
Строка 8: Строка 8:
==Метод стохастического градиента (Stochastic Gradient)==
==Метод стохастического градиента (Stochastic Gradient)==
''Градиентные методы'' - это широкий класс оптимизационных алгоритмов, используемых не только в машинном обучении.
''Градиентные методы'' - это широкий класс оптимизационных алгоритмов, используемых не только в машинном обучении.
-
Здесь градиентный подход будет рассмотрен в качестве способа подбора вектора синаптических весов w в линейном классификаторе (ссылка).
+
Здесь градиентный подход будет рассмотрен в качестве способа подбора вектора синаптических весов <tex>w</tex> в линейном классификаторе (ссылка).
Пусть <tex>y^*: \: X \to Y</tex> - целевая зависимость, известная только на объектах обучающей выборки:
Пусть <tex>y^*: \: X \to Y</tex> - целевая зависимость, известная только на объектах обучающей выборки:
<tex>X^l \, = \, (x_i,y_i)_{i=1}^l, \; y_i \, = \, y^*(x_i)</tex>.
<tex>X^l \, = \, (x_i,y_i)_{i=1}^l, \; y_i \, = \, y^*(x_i)</tex>.
Строка 17: Строка 17:
где <tex>L(a,y)</tex> - заданная функция потерь.
где <tex>L(a,y)</tex> - заданная функция потерь.
-
Для минимизации применим метод градиентного спуска. Это пошаговый алгоритм, на каждой итерации которого вектор w изменяется в направлении наибольшего убывания функционала Q (то есть в направлении антиградиента):
+
Для минимизации применим метод градиентного спуска. Это пошаговый алгоритм, на каждой итерации которого вектор <tex>w</tex> изменяется в направлении наибольшего убывания функционала <tex>Q</tex> (то есть в направлении антиградиента):
::<tex>w \, {:=} \, w \, - \, \eta \nabla Q(w)</tex>,
::<tex>w \, {:=} \, w \, - \, \eta \nabla Q(w)</tex>,
где <tex>\eta</tex> - положительный параметр, называемый ''темпом обучения (learning rate)''.
где <tex>\eta</tex> - положительный параметр, называемый ''темпом обучения (learning rate)''.
Возможно 2 основных подхода к реализации градиентного спуска:
Возможно 2 основных подхода к реализации градиентного спуска:
-
* ''Пакетный (batch)'', когда на каждой итерации обучающая выборка просматривается целиком, и только после этого изменяется w. Это требует больших вычислительных затрат.
+
* ''Пакетный (batch)'', когда на каждой итерации обучающая выборка просматривается целиком, и только после этого изменяется <tex>w</tex>. Это требует больших вычислительных затрат.
* ''Стохастический (stochastic/online)'', когда на каждой итерации алгоритма из обучающей выборки каким-то (случайным) образом выбирается только один объект. Таким образом вектор w настраивается на каждый вновь выбираемый объект.
* ''Стохастический (stochastic/online)'', когда на каждой итерации алгоритма из обучающей выборки каким-то (случайным) образом выбирается только один объект. Таким образом вектор w настраивается на каждый вновь выбираемый объект.

Версия 11:56, 3 января 2010

y^*: \: X \to Y
X^l \, = \, (x_i,y_i)_{i=1}^l, \; y_i \, = \, y^*(x_i)
Q(w) \, = \, \sum_{i=1}^l L(a(x_i, w), \, y_i) \to \min_w
w \, {:=} \, w \, - \, \eta \nabla Q(w)
w \, {:=} \, w \, - \, \eta \sum_{i=1}^l L_a^\prime (a(x_i, w), \, y_i) \varphi^\prime (<w, x_i>)x_i
w_j \, {:=} \, \frac{<y, f_i>}{<f_i, f_j>}
x^j \, {:=} \, \frac{x^j \, - \, x_{\min}^j}{x_{\max}^j \, - \, x_{\min}^j}

Метод стохастического градиента (Stochastic Gradient)

Градиентные методы - это широкий класс оптимизационных алгоритмов, используемых не только в машинном обучении. Здесь градиентный подход будет рассмотрен в качестве способа подбора вектора синаптических весов w в линейном классификаторе (ссылка). Пусть y^*: \: X \to Y - целевая зависимость, известная только на объектах обучающей выборки: X^l \, = \, (x_i,y_i)_{i=1}^l, \; y_i \, = \, y^*(x_i).

Найдём алгоритм a(x, w), аппроксимирующий зависимость y^*. Согласно принципу минимизации эмпирического риска для этого достаточно решить оптимизационную задачу: Q(w) \, = \, \sum_{i=1}^l L(a(x_i, w), \, y_i) \to \min_w, где L(a,y) - заданная функция потерь.

Для минимизации применим метод градиентного спуска. Это пошаговый алгоритм, на каждой итерации которого вектор w изменяется в направлении наибольшего убывания функционала Q (то есть в направлении антиградиента):

w \, {:=} \, w \, - \, \eta \nabla Q(w),

где \eta - положительный параметр, называемый темпом обучения (learning rate).

Возможно 2 основных подхода к реализации градиентного спуска:

  • Пакетный (batch), когда на каждой итерации обучающая выборка просматривается целиком, и только после этого изменяется w. Это требует больших вычислительных затрат.
  • Стохастический (stochastic/online), когда на каждой итерации алгоритма из обучающей выборки каким-то (случайным) образом выбирается только один объект. Таким образом вектор w настраивается на каждый вновь выбираемый объект.

Алгоритм Stochastic Gradient (SG)

Вход:

X^l - обучающая выборка
\eta - темп обучения
\lambda - параметр сглаживания функционала Q

Выход:

Вектор w
Личные инструменты