Участник:Ruzik/Песочница
Материал из MachineLearning.
| Строка 61: | Строка 61: | ||
===Параметр сглаживания===  | ===Параметр сглаживания===  | ||
В алгоритме для оценки функционала <tex>Q</tex> на каждой итерации используется его приближённое значение по методу экспоненциального сглаживания, откуда <tex>\lambda</tex> лучше брать порядка <tex>\frac{1}{l}</tex>. Если длина выборки избыточно большая, то <tex>\lambda</tex> следует увеличивать.  | В алгоритме для оценки функционала <tex>Q</tex> на каждой итерации используется его приближённое значение по методу экспоненциального сглаживания, откуда <tex>\lambda</tex> лучше брать порядка <tex>\frac{1}{l}</tex>. Если длина выборки избыточно большая, то <tex>\lambda</tex> следует увеличивать.  | ||
| + | |||
| + | ===Известные частные случаи алгоритма===  | ||
| + | Метод SG (при соответствующем выборе функций активации и потерь) является обобщением следующих широко распространённых эвристик подбора <tex>w</tex> и алгоритмов классификации:  | ||
| + | #Адаптивный линейный элемент (Adalines);  | ||
| + | #Правило Хэбба;  | ||
| + | #Алгоритм k-средних (K-Means);  | ||
| + | #Learning Vector Quantization (LVQ).  | ||
Версия 14:08, 3 января 2010
 
 
 
 
 
 
 
Содержание | 
Метод стохастического градиента (Stochastic Gradient)
Градиентные методы - это широкий класс оптимизационных алгоритмов, используемых не только в машинном обучении.
Здесь градиентный подход будет рассмотрен в качестве способа подбора вектора синаптических весов  в линейном классификаторе (ссылка).
Пусть 
 - целевая зависимость, известная только на объектах обучающей выборки:
.
Найдём алгоритм , аппроксимирующий зависимость 
.
Согласно принципу минимизации эмпирического риска для этого достаточно решить оптимизационную задачу:
,
где 
 - заданная функция потерь.
Для минимизации применим метод градиентного спуска. Это пошаговый алгоритм, на каждой итерации которого вектор  изменяется в направлении наибольшего убывания функционала 
 (то есть в направлении антиградиента):
,
где  - положительный параметр, называемый темпом обучения (learning rate).
Возможно 2 основных подхода к реализации градиентного спуска:
-  Пакетный (batch), когда на каждой итерации обучающая выборка просматривается целиком, и только после этого изменяется 
. Это требует больших вычислительных затрат.
 - Стохастический (stochastic/online), когда на каждой итерации алгоритма из обучающей выборки каким-то (случайным) образом выбирается только один объект. Таким образом вектор w настраивается на каждый вновь выбираемый объект.
 
Алгоритм Stochastic Gradient (SG)
Вход:
-  
- обучающая выборка
 -  
- темп обучения
 -  
- параметр сглаживания функционала
 
Выход:
-  Вектор весов 
 
Тело:
- Инициализировать веса 
;
 - Инициализировать текущую оценку функционала:
-  
;
 
-  
 
 - Повторять:
-  Выбрать объект 
из
(например, случайным образом);
 -  Вычислить выходное значение алгоритма 
и ошибку:
-  
;
 
-  
 
 -  Сделать шаг градиентного спуска:
-  
;
 
-  
 
 -  Оценить значение функционала:
-  
;
 
-  
 
 
 -  Выбрать объект 
 - Пока значение 
не стабилизируется и/или веса
не перестанут изменяться.
 
Порядок выбора объектов
Выше сказано, что в случае стохастического градиентного спуска объекты следует выбирать случайным образом. Однако существуют эвристики, направленные на улучшение сходимости, которые слегка модифицируют обычный случайный выбор:
-  Перемешивание (shuffling). Предлагается случайно выбирать объекты, но попеременно из разных классов. Идея в том, что объекты из разных классов скорее всего менее "похожи", чем объекты из одного класса, поэтому вектор 
будет каждый раз сильнее изменяться.
 - Возможен вариант алгоритма, когда выбор каждого объекта неравновероятен, причём вероятность выпадения объекта обратно пропорциональна величине ошибки на объекте. Следует заметить, что при такой эвристике метод становится очень чувствителен к шумам.
 
Способы инициализации весов
-  Инициализировать вектор 
нулями. Этот способ используется очень во многих системах, но совсем не всегда является удачным.
 -  
, где
- размерность пространства признаков. Этот подход существенно более удачен, чем предыдущий, если соответствующим образом нормализовать признаковое описание (см. ниже.)
 -  Ещё один подход заключается в том, чтобы решить исходную оптимизационную задачу в случае статистически независимых признаков, линейной функции активации (
) и квадратичной функции потерь (
). Тогда решение имеет вид:
 
-  
.
 
-  
 
Параметр сглаживания
В алгоритме для оценки функционала  на каждой итерации используется его приближённое значение по методу экспоненциального сглаживания, откуда 
 лучше брать порядка 
. Если длина выборки избыточно большая, то 
 следует увеличивать.
Известные частные случаи алгоритма
Метод SG (при соответствующем выборе функций активации и потерь) является обобщением следующих широко распространённых эвристик подбора  и алгоритмов классификации:
- Адаптивный линейный элемент (Adalines);
 - Правило Хэбба;
 - Алгоритм k-средних (K-Means);
 - Learning Vector Quantization (LVQ).
 

