Адаптивный линейный элемент
Материал из MachineLearning.
м (категория) |
|||
(7 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | {{Задание|Головин Антон|Константин Воронцов| | + | {{Задание|Головин Антон|Константин Воронцов|6 января 2010}} |
+ | |||
+ | '''Адаптивный линейный элемент'''('''Адаптивный линейный нейрон''' или '''ADALINE<ref>[http://www.machinelearning.ru/wiki/images/6/68/Voron-ML-Lin.pdf Лекции по линейным алгоритмам классификации, К.В.Воронцов]</ref>''') - частный случай линейного классификатора или искусственной нейронной сети с одним слоем. Был предложен Видроу<ref>http://en.wikipedia.org/wiki/Bernard_Widrow Википедия - свободная энциклопедия</ref> и Хоффом<ref>http://en.wikipedia.org/wiki/Marcian_Hoff Википедия - свободная энциклопедия</ref> в 1960 году, развивая [[Модель МакКаллока-Питтса|математическую модель нейрона МакКаллока–Питтса]]. | ||
+ | |||
+ | == Общая схема работы ADALINE == | ||
+ | Схема работы ADALINE несколько напоминает работу биологического нейрона: | ||
+ | <br> | ||
+ | [[Изображение:Mat_model_neirona.png|300px|thumb|модель работы нейрона<ref>[http://mechanoid.narod.ru/nns/base/index.html#SECTION00042000000000000000 Основные модели и методы теории искусственных нейронных сетей, Е.С.Борисов, 2005-10-19]</ref>]] | ||
+ | На вход подаётся вектор импульсов '''x<sub>n</sub>''' ,состоящий из '''n''' числовых признаков. Внутри нейрона импульсы складываются с некоторыми весами '''w<sub>j</sub>, j = 1..n''' и, если суммарный импульс '''S(x) =<tex>\textstyle\sum_{j=1}^n w_jx_j</tex>''' превысит ''порог активации'' '''w<sub>0</sub>''', то нейрон возбуждается и выдаёт некоторое значение '''a(x) = S(x) - w<sub>0</sub>'''. | ||
+ | <br><br> | ||
+ | Если добавить фиктивный импульс-признак '''x<sub>0</sub> ≡ -1''' и ему сопоставить вес '''w<sub>0</sub>''' - порог активации, то формулу выхода '''Y(x)''' можно выписать более компактно: | ||
+ | <br> | ||
+ | '''a(x) =(w,x) ''', где '''(w,x)''' - скалярное произведение, '''w''' и '''x''' - векторы весов и импульсов-признаков соответственно. | ||
+ | |||
+ | == Обучение ADALINE == | ||
+ | Пусть дана обучающая выборка: множество входных значений '''X''' и множество выходящих значений '''Y''', такие что каждому входу '''x<sub>j</sub>''' соответствует '''y<sub>j</sub>''' - выход, '''j = 1..m'''. Необходимо по этим данным построить ADALINE, которая допускает наименьшее количество ошибок на этой обучающей выборке. | ||
+ | Обучение ADALINE заключается в подборе "наилучших" значений вектора весов '''w'''. Какие значение весов лучше определяет | ||
+ | ''функционал потерь''.В ADALINE используется функционал, предложенный Видроу и Хоффом, '''L(a,x) = (a - y)<sup>2</sup>'''. Таким образом необходимо минимизировать функционал '''Q(w)''': <br /> | ||
+ | <tex>Q(w) \, = \, \sum_{i=1}^m (a(x_i, w) - y_i)^2 \to \min_w</tex> <br /> | ||
+ | Применим [[метод градиентного спуска]], тогда следующее значение будет иметь вид: | ||
+ | <tex>w \, {:=} \, w \, - \, \eta \nabla Q(w) = w - \eta \( (w,x) - y)*x </tex> ,где <tex>\eta</tex> - темп обучения. | ||
+ | |||
+ | |||
+ | ===Схема обучение ADALINE=== | ||
+ | '''Вход:''' | ||
+ | *<tex>X^m</tex> - обучающая выборка из m элементов <br /> | ||
+ | *<tex>\eta</tex> - темп обучения <br /> | ||
+ | *<tex>\lambda</tex> - параметр сглаживания функционала <tex>Q</tex> <br /> | ||
+ | '''Выход:''' | ||
+ | *Вектор весов <tex>w</tex> <br /> | ||
+ | '''Тело:''' | ||
+ | #Инициализировать веса <tex>w_j \; j = 0, \dots, n</tex>; | ||
+ | #Инициализировать начальную оценку функционала: | ||
+ | #:: <tex>Q \, {:=} \, \sum_{i=1}^m (a(x_i, w) - y_i)^2</tex>; | ||
+ | #Повторять: | ||
+ | ##Выбрать объект <tex>x_i</tex> из <tex>X^l</tex> (например, случайным образом); | ||
+ | ##Вычислить ошибку: | ||
+ | ##::<tex>\varepsilon_i \, {:=} \, ((x_i, w)- y_i)^2</tex>; | ||
+ | ##Сделать шаг градиентного спуска: | ||
+ | ##::<tex>w \, {:=} w - \eta \( (x_i, w) - y_i)*x_i</tex>; | ||
+ | ## Оценить значение функционала: | ||
+ | ##::<tex>Q \, {:=} \, (1 \, - \, \lambda)Q \, + \, \lambda\varepsilon_i</tex>; | ||
+ | #Пока значение <tex>Q</tex> не стабилизируется и/или веса <tex>w</tex> не перестанут изменяться. | ||
+ | |||
+ | |||
+ | === Связь обучения ADALINE с Stochastic Gradient === | ||
+ | Схема обучения ADALINE соответствует схеме обучения линейного классификатора методом [[Метод стохастического градиента|стохастического градиента]] c линейной функцией активации '''φ(z) = z''' и квадратичной функцией потерь '''L(a,x) = (a - y)<sup>2</sup>'''. | ||
+ | |||
+ | <references/> | ||
+ | |||
+ | [[Категория:Нейронные сети]] | ||
+ | [[Категория:Линейные классификаторы]] | ||
+ | [[Категория:Линейная регрессия]] |
Текущая версия
Данная статья является непроверенным учебным заданием.
До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}. См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе. |
Адаптивный линейный элемент(Адаптивный линейный нейрон или ADALINE[1]) - частный случай линейного классификатора или искусственной нейронной сети с одним слоем. Был предложен Видроу[1] и Хоффом[1] в 1960 году, развивая математическую модель нейрона МакКаллока–Питтса.
Содержание |
Общая схема работы ADALINE
Схема работы ADALINE несколько напоминает работу биологического нейрона:
На вход подаётся вектор импульсов xn ,состоящий из n числовых признаков. Внутри нейрона импульсы складываются с некоторыми весами wj, j = 1..n и, если суммарный импульс S(x) = превысит порог активации w0, то нейрон возбуждается и выдаёт некоторое значение a(x) = S(x) - w0.
Если добавить фиктивный импульс-признак x0 ≡ -1 и ему сопоставить вес w0 - порог активации, то формулу выхода Y(x) можно выписать более компактно:
a(x) =(w,x) , где (w,x) - скалярное произведение, w и x - векторы весов и импульсов-признаков соответственно.
Обучение ADALINE
Пусть дана обучающая выборка: множество входных значений X и множество выходящих значений Y, такие что каждому входу xj соответствует yj - выход, j = 1..m. Необходимо по этим данным построить ADALINE, которая допускает наименьшее количество ошибок на этой обучающей выборке.
Обучение ADALINE заключается в подборе "наилучших" значений вектора весов w. Какие значение весов лучше определяет
функционал потерь.В ADALINE используется функционал, предложенный Видроу и Хоффом, L(a,x) = (a - y)2. Таким образом необходимо минимизировать функционал Q(w):
Применим метод градиентного спуска, тогда следующее значение будет иметь вид:
,где - темп обучения.
Схема обучение ADALINE
Вход:
- - обучающая выборка из m элементов
- - темп обучения
- - параметр сглаживания функционала
Выход:
- Вектор весов
Тело:
- Инициализировать веса ;
- Инициализировать начальную оценку функционала:
- ;
- Повторять:
- Выбрать объект из (например, случайным образом);
- Вычислить ошибку:
- ;
- Сделать шаг градиентного спуска:
- ;
- Оценить значение функционала:
- ;
- Пока значение не стабилизируется и/или веса не перестанут изменяться.
Связь обучения ADALINE с Stochastic Gradient
Схема обучения ADALINE соответствует схеме обучения линейного классификатора методом стохастического градиента c линейной функцией активации φ(z) = z и квадратичной функцией потерь L(a,x) = (a - y)2.