Адаптивный линейный элемент

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

(Различия между версиями)
Перейти к: навигация, поиск
м (категория)
 
(5 промежуточных версий не показаны.)
Строка 1: Строка 1:
-
{{Задание|Головин Антон|Константин Воронцов|8 января 2010}}
+
{{Задание|Головин Антон|Константин Воронцов|6 января 2010}}
-
'''Адаптивный линейный элемент'''('''Адаптивный линейный нейрон''' или '''ADALINE''') - частный случай линейного классификатора или искусственной нейронной сети с одним слоем. Был предложен Видроу и Хоффом в 1960 году, развивая [[Модель МакКаллока-Питтса|математическую модель нейрона МакКаллока–Питтса]].
+
'''Адаптивный линейный элемент'''('''Адаптивный линейный нейрон''' или '''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 ==
Схема работы ADALINE несколько напоминает работу биологического нейрона:
Схема работы ADALINE несколько напоминает работу биологического нейрона:
<br>
<br>
Строка 13: Строка 13:
'''a(x) =(w,x) ''', где '''(w,x)''' - скалярное произведение, '''w''' и '''x''' - векторы весов и импульсов-признаков соответственно.
'''a(x) =(w,x) ''', где '''(w,x)''' - скалярное произведение, '''w''' и '''x''' - векторы весов и импульсов-признаков соответственно.
-
=== Схема обучения ADALINE ===
+
== Обучение ADALINE ==
-
Пусть дана обучающая выборка: множество входных значений '''X''' и множество выходящих значений '''Y''', такие что каждому входу '''x<sub>j</sub>''' соответствует '''y<sub>j</sub>''' - выход, '''j = 1..l'''. Необходимо по этим данным построить ADALINE, которая допускает наименьшее количество ошибок на этой обучающей выборке.
+
Пусть дана обучающая выборка: множество входных значений '''X''' и множество выходящих значений '''Y''', такие что каждому входу '''x<sub>j</sub>''' соответствует '''y<sub>j</sub>''' - выход, '''j = 1..m'''. Необходимо по этим данным построить ADALINE, которая допускает наименьшее количество ошибок на этой обучающей выборке.
Обучение ADALINE заключается в подборе "наилучших" значений вектора весов '''w'''. Какие значение весов лучше определяет
Обучение ADALINE заключается в подборе "наилучших" значений вектора весов '''w'''. Какие значение весов лучше определяет
-
''функционал потерь''.В ADALINE используется функционал, предложенный Видроу и Хоффом, '''L(a,x) = (a - y)<sup>2</sup>'''. Необходимо минимизировать
+
''функционал потерь''.В 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 с Stochastic Gradient ===
 
-
Схема обучения ADALINE соответствует схеме обучения линейного классификатора методом [[Метод стохастического градиента|стохастического градиента]] c линейной функцией активации '''φ(z) = z''' и квадратичной функцией потерь '''L(a,x) = (a - y)<sup>2</sup>'''.
 
 +
===Схема обучение 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/>
<references/>
 +
 +
[[Категория:Нейронные сети]]
 +
[[Категория:Линейные классификаторы]]
 +
[[Категория:Линейная регрессия]]

Текущая версия

Данная статья является непроверенным учебным заданием.
Студент: Участник:Головин Антон
Преподаватель: Участник:Константин Воронцов
Срок: 6 января 2010

До указанного срока статья не должна редактироваться другими участниками проекта MachineLearning.ru. По его окончании любой участник вправе исправить данную статью по своему усмотрению и удалить данное предупреждение, выводимое с помощью шаблона {{Задание}}.

См. также методические указания по использованию Ресурса MachineLearning.ru в учебном процессе.


Адаптивный линейный элемент(Адаптивный линейный нейрон или ADALINE[1]) - частный случай линейного классификатора или искусственной нейронной сети с одним слоем. Был предложен Видроу[1] и Хоффом[1] в 1960 году, развивая математическую модель нейрона МакКаллока–Питтса.

Содержание

Общая схема работы ADALINE

Схема работы ADALINE несколько напоминает работу биологического нейрона:

модель работы нейрона
модель работы нейрона[1]

На вход подаётся вектор импульсов xn ,состоящий из n числовых признаков. Внутри нейрона импульсы складываются с некоторыми весами wj, j = 1..n и, если суммарный импульс S(x) =\textstyle\sum_{j=1}^n w_jx_j превысит порог активации 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):
Q(w) \, = \, \sum_{i=1}^m (a(x_i, w) -    y_i)^2 \to \min_w
Применим метод градиентного спуска, тогда следующее значение будет иметь вид: w \, {:=} \, w \, - \, \eta \nabla Q(w) =  w -  \eta \( (w,x) - y)*x ,где \eta - темп обучения.


Схема обучение ADALINE

Вход:

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

Выход:

  • Вектор весов w

Тело:

  1. Инициализировать веса w_j \; j = 0, \dots, n;
  2. Инициализировать начальную оценку функционала:
    Q \, {:=} \, \sum_{i=1}^m (a(x_i, w) - y_i)^2;
  3. Повторять:
    1. Выбрать объект x_i из X^l (например, случайным образом);
    2. Вычислить ошибку:
      \varepsilon_i \, {:=} \, ((x_i, w)- y_i)^2;
    3. Сделать шаг градиентного спуска:
      w \, {:=} w -  \eta \( (x_i, w) - y_i)*x_i;
    4. Оценить значение функционала:
      Q \, {:=} \, (1 \, - \, \lambda)Q \, + \, \lambda\varepsilon_i;
  4. Пока значение Q не стабилизируется и/или веса w не перестанут изменяться.


Связь обучения ADALINE с Stochastic Gradient

Схема обучения ADALINE соответствует схеме обучения линейного классификатора методом стохастического градиента c линейной функцией активации φ(z) = z и квадратичной функцией потерь L(a,x) = (a - y)2.


Личные инструменты