Многослойные нейронные сети
Метод обратного распространения ошибок
                         Сети Кохонена




       Искусственные нейронные сети

                             К. В. Воронцов
                           vokov@forecsys.ru


      Этот курс доступен на странице вики-ресурса
        http://www.MachineLearning.ru/wiki
    «Машинное обучение (курс лекций, К.В.Воронцов)»



                               17 апреля 2012


      К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети   1 / 39
Многослойные нейронные сети
      Метод обратного распространения ошибок
                               Сети Кохонена

Содержание


  1   Многослойные нейронные сети
       Проблема полноты
       Вычислительные возможности нейронных сетей
       Многослойная нейронная сеть
  2   Метод обратного распространения ошибок
       Алгоритм BackProp
       Эвристики для улучшения сходимости
       Эвристики для оптимизации структуры сети
  3   Сети Кохонена
        Модели конкурентного обучения
        Карты Кохонена
        Гибридные сети: кластеризация + регрессия


            К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети   2 / 39
Многослойные нейронные сети               Проблема полноты
    Метод обратного распространения ошибок              Вычислительные возможности нейронных сетей
                             Сети Кохонена              Многослойная нейронная сеть

Напоминание: линейная модель нейрона МакКаллока-Питтса

  fj : X → R, j = 1, . . . , n — числовые признаки;
                                                            n
                a(x, w ) = σ w , x            =σ                 wj fj (x) − w0 ,
                                                           j=1

  где w0 , w1 , . . . , wn ∈ R — веса признаков;
  σ(s) — функция активации (в частности, sign).

   x 1 ‚‚‚‚‚‚
              w1 ‚‚‚
   x 2 ’’’’’w2 ’’’’)-
                  ‚
                                  σ               / a
            ... lll5
   ···         l
          llwn               M
      llll
   xn                   w0
              −1



             К. В. Воронцов (www.ccas.ru/voron)         Искусственные нейронные сети            3 / 39
Многослойные нейронные сети          Проблема полноты
    Метод обратного распространения ошибок         Вычислительные возможности нейронных сетей
                             Сети Кохонена         Многослойная нейронная сеть

Линейные алгоритмы классификации и регрессии

  Задача классификации: Y = {±1}, a(x, w ) = sign w , xi ;
                                         ℓ
                               ℓ
                   Q(w ; X ) =                L    w , xi yi → min;
                                                                     w
                                        i=1
                                                    Mi (w )


  Задача регрессии: Y = R, a(x, w ) = σ( w , xi );
                                    ℓ
                           ℓ                                    2
                Q(w ; X ) =                  σ( w , xi ) − yi       → min;
                                                                         w
                                   i=1


  Насколько богатый класс функций реализуется нейроном?
  А сетью (суперпозицией) нейронов?



          К. В. Воронцов (www.ccas.ru/voron)       Искусственные нейронные сети            4 / 39
Многослойные нейронные сети            Проблема полноты
    Метод обратного распространения ошибок           Вычислительные возможности нейронных сетей
                             Сети Кохонена           Многослойная нейронная сеть

Нейронная реализация логических функций

  Функции И, ИЛИ, НЕ от бинарных переменных x 1 и x 2 :
                          x1 ∧ x2 = x1 + x2 −                    3
                                                                 2   >0 ;
                            1      2                             1
                          x ∨x =          x1     +   x2   −      2   >0 ;
                                   1                     1
                                ¬x =      −x 1       +   2   >0 ;

   x 1 „„„1„„                                                И
             „„„*                                            1

   x 2 1 jjj4/                  / (x 1 ∧ x 2 )
            j
      j 3/2
      j
   −1                                                        0
                                                                 0          1

   x 1 „„„1„„                                                ИЛИ
             „„„*                                            1

   x 2    1      4/             / (x 1 ∨ x 2 )
              jjjj
      j 1/2
      j
   −1                                                        0
                                                                 0          1

           К. В. Воронцов (www.ccas.ru/voron)        Искусственные нейронные сети            5 / 39
Многослойные нейронные сети          Проблема полноты
    Метод обратного распространения ошибок         Вычислительные возможности нейронных сетей
                             Сети Кохонена         Многослойная нейронная сеть

Логическая функция XOR (исключающее ИЛИ)

  Функция x 1 ⊕ x 2 = [x 1 = x 2 ] не реализуема одним нейроном.
  Два способа реализации:
      Добавлением нелинейного признака:
      x 1 ⊕ x 2 = x 1 + x 2 − 2x 1 x 2 − 1 > 0 ;
                                          2
      Сетью (двухслойной суперпозицией) функций И, ИЛИ, НЕ:
      x 1 ⊕ x 2 = (x 1 ∨ x 2 ) − (x 1 ∧ x 2 ) − 1 > 0 .
                                                2

   @ABC
   GFED‚
    x 1 W ‚‚
                                                                 1-й способ
                                                                 1
         WW 1‚‚‚‚
           W       (
            1W            ‚‚
              WW ll6
               ll            +1‚‚
           l1l WW¥¥B              (                              0
   @ABC‚
   GFEDl
      2
    x ‚ ‚ ¥¥WW                                 / (x 1 ⊕ x 2 )       0        1
            1 ‚‚‚
               ¥¥ ‚             ll6     P                        2-й способ
             ¥¥ (         ll−1                                   1
          1/2
                 l6
                  l
        ¥¥l3/2l
        ¥                             1/2
   @ABC
   GFED
    −1
          l                 @ABC
                            GFED
                             −1
                                                                 0
                                                                     0        1

           К. В. Воронцов (www.ccas.ru/voron)      Искусственные нейронные сети            6 / 39
Многослойные нейронные сети        Проблема полноты
    Метод обратного распространения ошибок       Вычислительные возможности нейронных сетей
                             Сети Кохонена       Многослойная нейронная сеть

Любую ли функцию можно представить нейросетью?


  Утверждение
  Любая булева функция представима в виде ДНФ,
  следовательно, и в виде двухслойной сети.

  Решение тринадцатой проблемы Гильберта:
  Теорема (Колмогоров, 1957)
  Любая непрерывная функция n аргументов на единичном кубе
  [0, 1]n представима в виде суперпозиции непрерывных функций
  одного аргумента и операции сложения:
                                               2n+1         n
                     1    2          n
                f (x , x , . . . , x ) =              hk         ϕik (x i ) ,
                                               k=1         i=1

  где hk , ϕik — непрерывные функции, и ϕik не зависят от f .

          К. В. Воронцов (www.ccas.ru/voron)     Искусственные нейронные сети            7 / 39
Многослойные нейронные сети      Проблема полноты
    Метод обратного распространения ошибок     Вычислительные возможности нейронных сетей
                             Сети Кохонена     Многослойная нейронная сеть

Любую ли функцию можно представить нейросетью?

  Теорема (Вейерштрасс)
  Любую непрерывную функцию n переменных можно
  равномерно приблизить полиномом с любой точностью.

  Определение
  Набор функций F называется разделяющим точки
  множества X , если для любых различных x, x ′ ∈ X
  существует функция f ∈ F такая, что f (x) = f (x ′ ).

  Теорема (Стоун, 1948)
  Пусть X — компактное пространство, C (X ) — алгебра
  непрерывных на X вещественных функций, F — кольцо
  в C (X ), содержащее константу (1 ∈ F ) и разделяющее точки
  множества X . Тогда F плотно в C (X ).
          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети            8 / 39
Многослойные нейронные сети      Проблема полноты
    Метод обратного распространения ошибок     Вычислительные возможности нейронных сетей
                             Сети Кохонена     Многослойная нейронная сеть

Любую ли функцию можно представить нейросетью?


  Определение
  Набор функций F ⊆ C (X ) называется
  замкнутым относительно функции ϕ : R → R,
  если для любого f ∈ F выполнено ϕ(f ) ∈ F .

  Теорема (Горбань, 1998)
  Пусть X — компактное пространство, C (X ) — алгебра
  непрерывных на X вещественных функций, F — линейное
  подпространство в C (X ), замкнутое относительно нелинейной
  непрерывной функции ϕ, содержащее константу (1 ∈ F )
  и разделяющее точки множества X . Тогда F плотно в C (X ).




          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети            9 / 39
Многослойные нейронные сети      Проблема полноты
    Метод обратного распространения ошибок     Вычислительные возможности нейронных сетей
                             Сети Кохонена     Многослойная нейронная сеть

Любую ли функцию можно представить нейросетью?

  Выводы:
      С помощью линейных операций и одной нелинейной
      функции активации ϕ можно вычислять любую
      непрерывную функцию с любой желаемой точностью.
      Однако эти теоремы ничего не говорят о числе слоёв
      нейронной сети и о числе нейронов в каждом слое.
  Практические рекомендации:
      Двух-трёх слоёв обычно достаточно.
      Можно достраивать нейроны в произвольных местах сети
      по необходимости, вообще не заботясь о числе слоёв.




          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети           10 / 39
Многослойные нейронные сети           Проблема полноты
     Метод обратного распространения ошибок          Вычислительные возможности нейронных сетей
                              Сети Кохонена          Многослойная нейронная сеть

Многослойная нейронная сеть

  Пусть для общности Y = RM , для простоты слоёв только два.
  входной слой,                   скрытый слой,                             выходной слой,
   n признаков                     H нейронов                                M нейронов

    @ABC ‚
    GFED‚ w11
      x1 i                          /          σ1 ‚‚ w11                    /         σ1   / a1
                                l5                i                    l5
            ii 1h ‚‚
              w
                     ‚‚‚ ll  llly F              ii 1m ‚‚
                                                    w
                                                           ‚‚‚ l    lll y F
      . . . w1Hii lllll yyy . . .
                         ‚                          w1Mii llllll yyyy . . .
                                                               ‚‚‚
              wj1
                    ii ‚‚‚‚
                  lll i yyyy‚‚‚                         ll ii yy‚‚‚‚‚
                                                         i         y
                                                    wh1
            l
     ?= l wjh
     89:; ‚             iiy       )              llw
                                                  l          iiy
                                                               y          )
       xj ‚             yyi           /       σh ‚‚ hm        yi              /       σm   / am
              wjH ‚‚  yy iiillll5 A
                     y ‚ lli                        whM ‚‚y yy iiillll5 A
                   y‚ ‚
      . . . wn1 y llll‚ iii . . .
                         ‚‚                             yy ‚‚llllliii . . .
                                                              ‚‚‚
                y                                   w y
             ywnh lll
              y             ‚‚‚ i                  yH1llll ‚‚‚‚‚i   i
            y
           yl                  ‚‚)               yywHm                 ‚)
     ?= nH
     89:;
      xn
           lw                           /        ll
                                              σH wHM                            /     σM   / aM
                                          :                                       :
               w01                                     w01
               w0h                                     w0m

    @ABC
    GFED
     −1
              w0H
                                              @ABC
                                              GFED
                                               −1
                                                      w0M




             К. В. Воронцов (www.ccas.ru/voron)      Искусственные нейронные сети            11 / 39
Многослойные нейронные сети       Алгоритм BackProp
    Метод обратного распространения ошибок      Эвристики для улучшения сходимости
                             Сети Кохонена      Эвристики для оптимизации структуры сети

Напоминание: Алгоритм SG (Stochastic Gradient)

  Задача минимизации суммарных потерь:
                                     ℓ
                      Q(w ) :=            L (w , xi , yi ) → min .
                                                               w
                                    i=1

  Вход: выборка X ℓ ; темп обучения η; параметр λ;
  Выход: веса w ≡ wjh , whm ∈ RH(n+M+1)+M ;
   1: инициализировать веса w и текущую оценку Q(w );
   2: повторять
   3:   выбрать объект xi из X ℓ (например, случайно);
   4:   вычислить потерю Li := L (w , xi , yi );
   5:   градиентный шаг: w := w − η∇L (w , xi , yi );
   6:   оценить значение функционала: Q := (1 − λ)Q + λLi ;
   7: пока значение Q и/или веса w не стабилизируются;



          К. В. Воронцов (www.ccas.ru/voron)    Искусственные нейронные сети               12 / 39
Многослойные нейронные сети        Алгоритм BackProp
    Метод обратного распространения ошибок       Эвристики для улучшения сходимости
                             Сети Кохонена       Эвристики для оптимизации структуры сети

Задача дифференцирования суперпозиции функций

  Выходные значения сети am (xi ), m = 1..M на объекте xi :

                      H                                                J
    m                             h                  h
   a (xi ) = σm            whm u (xi ) ;           u (xi ) = σh             wjh fj (xi ) .
                     h=0                                              j=0

  Пусть для конкретности Li (w ) — средний квадрат ошибки:
                                          M
                                      1                          2
                       Li (w ) =                am (xi ) − yim .
                                      2
                                          m=1

  Промежуточная задача: найти частные производные

                              ∂Li (w )            ∂Li (w )
                                       ;                   .
                               ∂am                 ∂u h


          К. В. Воронцов (www.ccas.ru/voron)     Искусственные нейронные сети                13 / 39
Многослойные нейронные сети            Алгоритм BackProp
    Метод обратного распространения ошибок           Эвристики для улучшения сходимости
                             Сети Кохонена           Эвристики для оптимизации структуры сети

Быстрое вычисление градиента

  Промежуточная задача: частные производные
                  ∂Li (w )
                           = am (xi ) − yim = εim
                    ∂am
  — это ошибка на выходном слое;
                           M                                     M
            ∂Li (w )              m
                     =          a (xi ) −    yim     ′
                                                    σm whm   =         εm σm whm = εh
                                                                        i
                                                                           ′
                                                                                    i
             ∂u h
                         m=1                                     m=1
  — назовём это ошибкой на выходном слое. Похоже, что εh i
  вычисляется по εm , если запустить сеть «задом наперёд»:
                  i
                                        ε1 σ ′
                               w
                                    jjj i 1
                          jjjj h1
                          t
   εh   o                j„„„„            ...
    i
                               whM „ „
                                    „
                                         εM σ M
                                          i
                                              ′


               К. В. Воронцов (www.ccas.ru/voron)    Искусственные нейронные сети               14 / 39
Многослойные нейронные сети          Алгоритм BackProp
    Метод обратного распространения ошибок         Эвристики для улучшения сходимости
                             Сети Кохонена         Эвристики для оптимизации структуры сети

Быстрое вычисление градиента

  Теперь, имея частные производные Li (w ) по am и u h ,
  легко выписать градиент Li (w ) по весам w :

  ∂Li (w )   ∂Li (w ) ∂am
           =                = εm σm u h (xi ), m = 1..M, h = 0..H;
                                i
                                    ′
   ∂whm       ∂am ∂whm
  ∂Li (w )   ∂Li (w ) ∂u h
           =               = εh σh fj (xi ), h = 1..H, j = 0..n;
                              i
                                  ′
   ∂wjh       ∂u h ∂wjh

  Алгоритм обратного распространения ошибки BackProp:

  Вход: X ℓ = (xi , yi )ℓ ⊂ Rn × RM ; параметры H, λ, η;
                        i=1
  Выход: синаптические веса wjh , whm ;
   1:   ...


              К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети               15 / 39
Многослойные нейронные сети       Алгоритм BackProp
    Метод обратного распространения ошибок      Эвристики для улучшения сходимости
                             Сети Кохонена      Эвристики для оптимизации структуры сети

Алгоритм BackProp

   1:   инициализировать веса wjh , whm ;
   2:   повторять
   3:     выбрать объект xi из X ℓ (например, случайно);
   4:     прямой ход:
                      J          j
          uih := σh   j=0 wjh xi , h = 1..H;
                       H
          aim := σm                 h     m     m     m
                       h=0 whm ui , εi := ai − yi , m = 1..M;
          Li := M (εm )2 ;
                    m=1 i
   5:     обратный ход:
          εh := M εm σm whm , h = 1..H;
           i       m=1 i
                           ′

   6:     градиентный шаг:
          whm := whm − ηεm σm uih , h = 0..H, m = 1..M;
                            i
                                 ′
                         h σ ′ x j , j = 0..n, h = 1..H;
          wjh := wjh − ηεi h i
   7:     Q := (1 − λ)Q + λLi ;
   8:   пока Q не стабилизируется;

           К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети               16 / 39
Многослойные нейронные сети      Алгоритм BackProp
    Метод обратного распространения ошибок     Эвристики для улучшения сходимости
                             Сети Кохонена     Эвристики для оптимизации структуры сети

Алгоритм BackProp: преимущества и недостатки

  Преимущества:
      эффективность: градиент вычисляется за время,
      сравнимое со временем вычисления самой сети;
      метод легко обобщается на любые σ, L ;
      возможно динамическое (потоковое) обучение;
      на сверхбольших выборках не обязательно брать все xi ;
      возможность распараллеливания;

  Недостатки — все те же, свойственные SG:
      возможна медленная сходимость;
      застревание в локальных минимумах;
      проблема переобучения;
      подбор комплекса эвристик является искусством;

          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети               17 / 39
Многослойные нейронные сети      Алгоритм BackProp
    Метод обратного распространения ошибок     Эвристики для улучшения сходимости
                             Сети Кохонена     Эвристики для оптимизации структуры сети

Стандартные эвристики для метода SG

  Применимы все те же эвристики, что и в обычном SG:
      инициализация весов;
      порядок предъявления объектов;
      оптимизация величины градиентного шага;
      регуляризация (сокращение весов);

  Кроме того, появляются новые проблемы:
      выбор функций активации в каждом нейроне;
      выбор числа слоёв и числа нейронов;
      выбор значимых связей;




          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети               18 / 39
Многослойные нейронные сети      Алгоритм BackProp
    Метод обратного распространения ошибок     Эвристики для улучшения сходимости
                             Сети Кохонена     Эвристики для оптимизации структуры сети

Ускорение сходимости

  1. Более тщательный подбор начального приближения.
  Нейроны настраиваются как отдельные линейные алгоритмы
      либо по случайной подвыборке X ′ ⊆ X ℓ ;
      либо по случайному подмножеству входов;
      либо из различных случайных начальных приближений;
  тем самым обеспечивается различность нейронов.
  2. Выбивание из локальных минимумов (jogging of weights).
  3. Адаптивный градиентный шаг (метод скорейшего спуска).
  4. Метод сопряжённых градиентов и chunking — разбиение
                        ℓ
  суммы Q(w ) =             Li (w ) на блоки (chunks).
                      i=1



          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети               19 / 39
Многослойные нейронные сети      Алгоритм BackProp
    Метод обратного распространения ошибок     Эвристики для улучшения сходимости
                             Сети Кохонена     Эвристики для оптимизации структуры сети

Диагональный метод Левенберга-Марквардта

  Метод Ньютона-Рафсона (второго порядка):
                                                    −1
                        w := w − η Li′′ (w )             Li′ (w ),
                         ∂ 2 Li (w )                                                          2
  где Li′′ (w ) =       ∂wjh ∂wj ′ h′   — гессиан, размера H(n+M+1)+M .
  Эвристика. Считаем, что гессиан диагонален:
                                                           −1
                                        ∂ 2 Li (w )             ∂Li (w )
               wjh := wjh − η                  2
                                                    +µ                   ,
                                           ∂wjh                  ∂wjh
  η — темп обучения,
  µ — параметр, предотвращающий обнуление знаменателя.
  Отношение η/µ есть темп обучения на ровных участках
  функционала Li (w ), где вторая производная обнуляется.



          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети               20 / 39
Многослойные нейронные сети      Алгоритм BackProp
    Метод обратного распространения ошибок     Эвристики для улучшения сходимости
                             Сети Кохонена     Эвристики для оптимизации структуры сети

Динамическое наращивание сети

    1   обучение при заведомо недостаточном числе нейронов H;
    2   после стабилизации Q(w ) — добавление нового нейрона
        и его инициализация путём обучения
             либо   по случайной подвыборке X ′ ⊆ X ℓ ;
             либо   по объектам с наибольшими значениями потерь;
             либо   по случайному подмножеству входов;
             либо   из различных случайных начальных приближений;
    3   снова итерации BackProp;

  Эмпирический опыт: Общее время обучения обычно лишь
  в 1.5–2 раза больше, чем если бы в сети сразу было нужное
  количество нейронов. Полезная информация, накопленная
  сетью, не теряется при добавлении новых нейронов.



          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети               21 / 39
Многослойные нейронные сети          Алгоритм BackProp
    Метод обратного распространения ошибок         Эвристики для улучшения сходимости
                             Сети Кохонена         Эвристики для оптимизации структуры сети

Прореживание сети (OBD — Optimal Brain Damage)

  Пусть w — локальный минимум Q(w ), тогда
  Q(w ) можно аппроксимировать квадратичной формой:
                    Q(w + δ) = Q(w ) + 1 δ т Q ′′ (w )δ + o( δ 2 ),
                                       2
                         ∂ 2 Q(w )                                                         2
  где Q ′′ (w ) =       ∂wjh ∂wj ′ h′   — гессиан, размера H(n+M+1)+M .

  Эвристика. Пусть гессиан Q ′′ (w ) диагонален, тогда
                               n    H          2 Q(w )       H   M
               ′′                        2 ∂                            2    ∂ 2 Q(w )
        δ Q (w )δ =
         т
                                        δjh       2
                                                         +             δhm        2
                                                                                       .
                                               ∂wjh                           ∂whm
                             j=0 h=1                         h=0 m=0

  Хотим обнулить вес: wjh + δjh = 0. Как изменится Q(w )?
  Определение. Значимость (salience) веса wjh — это изменение
                                                                             2
  функционала Q(w ) при его обнулении: Sjh = wjh ∂ ∂w 2 ) .
                                               2 Q(w
                                                                                 jh



             К. В. Воронцов (www.ccas.ru/voron)    Искусственные нейронные сети               22 / 39
Многослойные нейронные сети      Алгоритм BackProp
    Метод обратного распространения ошибок     Эвристики для улучшения сходимости
                             Сети Кохонена     Эвристики для оптимизации структуры сети

Прореживание сети (OBD — Optimal Brain Damage)

                                                                    ∂2Q    ∂2Q
    1   В BackProp вычислять вторые производные                        2 ,
                                                                    ∂wjh ∂whm2 .

    2   Если процесс минимизации Q(w ) пришёл в минимум,то
             упорядочить все веса по убыванию Sjh ;
             удалить N связей с наименьшей значимостью;
             снова запустить BackProp.
    3   Если Q(w , X ℓ ) или Q(w , X k ) существенно ухудшился,
        то вернуть последние удалённые связи и выйти.

  Отбор признаков с помощью OBD — аналогично.
                                                        H
  Суммарная значимость признака: Sj =                       Sjh .
                                                      h=1
  Эмпирический опыт: результат постепенного прореживания
  обычно лучше, чем BackProp изначально прореженной сети.


          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети               23 / 39
Многослойные нейронные сети      Алгоритм BackProp
    Метод обратного распространения ошибок     Эвристики для улучшения сходимости
                             Сети Кохонена     Эвристики для оптимизации структуры сети

Резюме по многослойным сетям

      Нейрон = линейная классификация или регрессия.
      Нейронная сеть = суперпозиция нейронов с нелинейной
      функцией активации. Двух-трёх слоёв достаточно для
      решения очень широкого класса задач.
      BackProp = быстрое дифференцирование суперпозиций.
      Позволяет обучать сети практически любой конфигурации.
      Некоторые меры по улучшению сходимости и качества:
             регуляризация
             перетасовка объектов
             инициализация нейронов как отдельных алгоритмов
             адаптивный градиентный шаг
             метод сопряжённых градиентов и chunking
             динамическое наращивание
             прореживание (OBD)


          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети               24 / 39
Многослойные нейронные сети      Модели конкурентного обучения
    Метод обратного распространения ошибок     Карты Кохонена
                             Сети Кохонена     Гибридные сети: кластеризация + регрессия

Постановка задачи кластеризации (обучения без учителя)

  Дано:
  X = Rn — пространство объектов;
  Y = {1, . . . , M} — множество кластеров, M фиксировано;
  X ℓ = {xi }ℓ — обучающая выборка объектов;
             i=1
  ρ : X × X → R+ — метрика.
  Требуется:
  построить алгоритм кластеризации a : X → Y .
  Предлагается:
      ввести центры кластеров wm ∈ Rn , m = 1, . . . , M;
      относить объект x ∈ X к ближайшему кластеру
      (правило жёсткой конкуренции WTA — Winner Takes All):
                                a(x) = arg min ρ(x, wm ).
                                               m∈Y


          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети            25 / 39
Многослойные нейронные сети       Модели конкурентного обучения
    Метод обратного распространения ошибок      Карты Кохонена
                             Сети Кохонена      Гибридные сети: кластеризация + регрессия

Метод стохастического градиента

  Минимизация среднего внутрикластерного расстояния:
                          ℓ
              ℓ  1
     Q(w ; X ) =              ρ2 (xi , wa(xi ) ) → min,     w = (w1 , . . . , wM );
                 2                                  w
                        i=1

  Пусть метрика евклидова, ρ2 (xi , wm ) = wm − xi                    2.

                                        ℓ
                  ∂Q(w ; X ℓ )
                               =            (wm − xi ) a(xi ) = m .
                    ∂wm
                                      i=1

  Градиентный шаг в методе SG: для случайного xi ∈ X ℓ
                    wm := wm + η(xi − wm ) a(xi ) = m
  (если xi относится к кластеру m, то wm сдвигается в сторону xi ).


          К. В. Воронцов (www.ccas.ru/voron)    Искусственные нейронные сети            26 / 39
Многослойные нейронные сети        Модели конкурентного обучения
    Метод обратного распространения ошибок       Карты Кохонена
                             Сети Кохонена       Гибридные сети: кластеризация + регрессия

Сеть Кохонена (сеть с конкурентным обучением)

  Структура алгоритма — двухслойная нейронная сеть:

                            a(x) = arg min ρ(x, wm ) :
                                               m∈Y


                 @ABC
                 GFED w1 / ρ(x, w1 )
                  x1 c 1
                       c
                       c             ?   vvv
                          1               vvv
                        wMc
                             cc             
                  ···                             arg
                             ccc · · ·
                                                                  / a(x)
                                              8 min
                         wn       cc        rrr
                      1          c   rrr
                 @ABC wM / ρ(x, wM )
                 GFED n
                  xn

  Градиентное правило обучения напоминает перцептрон:
             если a(xi ) = m, то wm := wm + η(xi − wm ).

          К. В. Воронцов (www.ccas.ru/voron)     Искусственные нейронные сети            27 / 39
Многослойные нейронные сети      Модели конкурентного обучения
     Метод обратного распространения ошибок     Карты Кохонена
                              Сети Кохонена     Гибридные сети: кластеризация + регрессия

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

  Вход: выборка X ℓ ; темп обучения η; параметр λ;
  Выход: центры кластеров w1 , . . . , wM ∈ Rn ;
   1:   инициализировать центры wm , m = 1, . . . , M;
   2:   инициализировать текущую оценку функционала:
                ℓ
        Q :=         ρ2 (xi , wa(xi ) );
               i=1
   3: повторять
   4:   выбрать объект xi из X ℓ (например, случайно);
   5:   вычислить кластеризацию: m := arg min ρ(xi , wm );
                                                            m∈Y
   6:   градиентный шаг: wm := wm + η(xi − wm );
   7:   оценить значение функционала:
        Q := (1 − λ)Q + λρ2 (xi , wm );
   8: пока значение Q и/или веса w не стабилизируются;


           К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети            28 / 39
Многослойные нейронные сети      Модели конкурентного обучения
    Метод обратного распространения ошибок     Карты Кохонена
                             Сети Кохонена     Гибридные сети: кластеризация + регрессия

Жёсткая и мягкая конкуренция

  Правило жёсткой конкуренции WTA (winner takes all):

        wm := wm + η(xi − wm ) a(xi ) = m ,                  m = 1, . . . , M,
  Недостатки правила WTM:
      медленная скорость сходимости;
      некоторые wm могут никогда не выбираться.

  Правило мягкой конкуренции WTM (winner takes most):

       wm := wm + η(xi − wm ) K ρ(xi , wm ) ,                 m = 1, . . . , M,
  где ядро K (ρ) — неотрицательная невозрастающая функция.
  Теперь центры всех кластеров смещаются в сторону xi ,
  но чем дальше от xi , тем меньше величина смещения.


          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети            29 / 39
Многослойные нейронные сети         Модели конкурентного обучения
    Метод обратного распространения ошибок        Карты Кохонена
                             Сети Кохонена        Гибридные сети: кластеризация + регрессия

Карта Кохонена (Self Organizing Map, SOM)

  Y = {1, . . . , M} × {1, . . . , H} — прямоугольная сетка кластеров.
  Каждому узлу (m, h) приписан нейрон Кохонена wmh ∈ Rn .
  Наряду с метрикой ρ(xi , x) на X вводится метрика на сетке Y :

             r (mi , hi ), (m, h) =             (m − mi )2 + (h − hi )2 .
  Окрестность(mi , hi ):
                        H    ◦     ◦        ◦     ◦ ◦
                                                   “           ◦    ◦
                                                i • ‚i
                                            u
                             ◦     ◦       ¥•    •         • SA ◦   ◦
                                       
                                                  mi h i
                             ◦     ◦ )1 A •      • d • )1 ◦         ◦
                                                    d
                                                    d 
                                           S           mh
                             ◦     ◦         • • •¥ ◦
                                             i                      ◦
                                               ‚ “ i u
                                                  •
                         1   ◦     ◦        ◦    ◦         ◦   ◦    ◦
                             1                                      M

          К. В. Воронцов (www.ccas.ru/voron)      Искусственные нейронные сети            30 / 39
Многослойные нейронные сети      Модели конкурентного обучения
    Метод обратного распространения ошибок     Карты Кохонена
                             Сети Кохонена     Гибридные сети: кластеризация + регрессия

Обучение карты Кохонена

  Вход: X ℓ — обучающая выборка; η — темп обучения;
  Выход: wmh ∈ Rn — векторы весов, m = 1..M, h = 1..H;
                              1    1
   1: wmh := random − 2MH , 2MH — инициализация весов;
   2: повторять
   3:   выбрать объект xi из X ℓ случайным образом;
   4:   WTA: вычислить координаты кластера:
        (mi , hi ) := a(xi ) ≡ arg min ρ(xi , wmh );
                                   (m,h)∈Y
   5:   для всех (m, h) ∈ Окрестность(mi , hi )
   6:     WTM: сделать шаг градиентного спуска:
          wmh := wmh + η(xi − wmh ) K r ((mi , hi ), (m, h)) ;
   7: пока кластеризация не стабилизируется;




          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети            31 / 39
Многослойные нейронные сети      Модели конкурентного обучения
    Метод обратного распространения ошибок     Карты Кохонена
                             Сети Кохонена     Гибридные сети: кластеризация + регрессия

Интерпретация карт Кохонена

  Два типа графиков — цветных карт M × H:
      Цвет узла (m, h) — локальная плотность в точке (m, h) —
      среднее расстояние до k ближайших точек выборки;
      По одной карте на каждый признак:
      цвет узла (m, h) — значение j-й компоненты вектора wm,h .

  Пример:
  Задача UCI house-votes (US Congress voting patterns)
  Объекты — конгрессмены;
  Признаки — вопросы, выносившиеся на голосование;
  Есть целевой признак {демократ,республиканец}.




          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети            32 / 39
Многослойные нейронные сети      Модели конкурентного обучения
    Метод обратного распространения ошибок     Карты Кохонена
                             Сети Кохонена     Гибридные сети: кластеризация + регрессия

Интерпретация карт Кохонена (пример)




          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети            33 / 39
Многослойные нейронные сети      Модели конкурентного обучения
    Метод обратного распространения ошибок     Карты Кохонена
                             Сети Кохонена     Гибридные сети: кластеризация + регрессия

Достоинства и недостатки карт Кохонена

  Достоинства:
      Возможность визуального анализа многомерных данных.

  Недостатки:
      Субъективность. Карта зависит не только от кластерной
      структуры данных, но и. . .
      — от свойств сглаживающего ядра;
      — от (случайной) инициализации;
      — от (случайного) выбора xi в ходе итераций.
      Искажения. Близкие объекты исходного пространства
      могут переходить в далёкие точки на карте, и наоборот.

  Рекомендуется только для разведочного анализа данных.



          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети            34 / 39
Многослойные нейронные сети          Модели конкурентного обучения
    Метод обратного распространения ошибок         Карты Кохонена
                             Сети Кохонена         Гибридные сети: кластеризация + регрессия

Кусочно-постоянная непараметрическая регрессия

  Задача восстановления регрессии:
    X ℓ = {xi , yi }ℓ , yi ∈ R.
                    i=1

  Основная идея — применить WTA-кластеризацию:
   1) разбить выборку на M кластеров c центрами wm :
                            c(x) = arg min ρ(x, wm );
                                       m=1,...,M

    2) на каждом кластере построить регрессию-константу:
                                               M
                      a(x) = vc(x) =               vm c(x) = m .
                                           m=1


  Требуется: по выборке X ℓ найти центры wm и уровни vm .


          К. В. Воронцов (www.ccas.ru/voron)       Искусственные нейронные сети            35 / 39
Многослойные нейронные сети         Модели конкурентного обучения
    Метод обратного распространения ошибок        Карты Кохонена
                             Сети Кохонена        Гибридные сети: кластеризация + регрессия

Кусочно-постоянная непараметрическая регрессия

  Настройка центров wm сетью Кохонена — WTA.
  Задача настройки уровней vm решается аналитически:
                                    ℓ
                         1                              2
                 Q(v ) =                  a(xi ) − yi       → min;
                         2                                     v
                                   i=1
                               ℓ
                  ∂Q
                      =                 a(xi ) − yi c(xi ) = m = 0.
                  ∂vm
                             i=1

  Подставляя сюда a(xi ) = vm , получаем среднее yi по кластеру:
                                          ℓ
                                          i=1 yi c(xi ) = m
                           vm =             ℓ
                                                                   .
                                            i=1 c(xi ) = m




          К. В. Воронцов (www.ccas.ru/voron)      Искусственные нейронные сети            36 / 39
Многослойные нейронные сети        Модели конкурентного обучения
    Метод обратного распространения ошибок       Карты Кохонена
                             Сети Кохонена       Гибридные сети: кластеризация + регрессия

Кусочно-гладкая непараметрическая регрессия

  Усложнение: теперь функция a(x) должна быть гладкой.
  Основная идея — применить WTM-кластеризацию:
  1) «мягкая» кластеризация на M кластеров c центрами wm :
                  cm (x) = K ρ(x, wm ) ,               m = 1, . . . , M;
  2) формула Надарая-Ватсона сглаживает ответы vm ,
  но не по ℓ объектам, а по M центрам кластеров wm :
                                           M
                                                 vm cm (x)
                                          m=1
                               a(x) =       M
                                                              .
                                                     cm (x)
                                               m=1


  Требуется: по выборке X ℓ найти центры wm и уровни vm .

          К. В. Воронцов (www.ccas.ru/voron)     Искусственные нейронные сети            37 / 39
Многослойные нейронные сети             Модели конкурентного обучения
    Метод обратного распространения ошибок            Карты Кохонена
                             Сети Кохонена            Гибридные сети: кластеризация + регрессия

Кусочно-гладкая непараметрическая регрессия

  Настройка центров wm сетью Кохонена — WTM:
                                   ℓ        M
                             1                                         2
                Q(w ) =                          cm (xi ) wm − xi          → min;
                             2                                                  w
                                  i=1 m=1
                              ℓ
              ∂Q(w )
                     =             cm (xi )(wm − xi );
               ∂wm
                             i=1

  Настройка уровней vm линейным нейроном:
                                            ℓ
                                   1                            2
                     Q(v ) =                     a(xi ) − yi        → min;
                                   2                                   v
                                           i=1
                                       ℓ
                   ∂Q(v )                        cm (xi )
                          =                      M
                                                                a(xi ) − yi ;
                    ∂vm                          s=1 cs (xi )
                                   i=1

          К. В. Воронцов (www.ccas.ru/voron)          Искусственные нейронные сети            38 / 39
Многослойные нейронные сети      Модели конкурентного обучения
    Метод обратного распространения ошибок     Карты Кохонена
                             Сети Кохонена     Гибридные сети: кластеризация + регрессия

Кусочно-гладкая непараметрическая регрессия

  Веса слоя Кохонена wm и веса линейного слоя vm
  на каждой итерации SG обновляются независимо:

                   wm := wm + η1 (xi − wm )K ρ(x, wm ) ;
                    vm := vm − η2 (a(xi ) − yi )K ρ(x, wm ) ;

  Достоинства этого метода:
      регрессия учитывает кластерную структуру выборки;
      повышается эффективность вычисления a(x).




          К. В. Воронцов (www.ccas.ru/voron)   Искусственные нейронные сети            39 / 39

К.В. Воронцов "Нейронные сети (продолжение)"

  • 1.
    Многослойные нейронные сети Методобратного распространения ошибок Сети Кохонена Искусственные нейронные сети К. В. Воронцов vokov@forecsys.ru Этот курс доступен на странице вики-ресурса http://www.MachineLearning.ru/wiki «Машинное обучение (курс лекций, К.В.Воронцов)» 17 апреля 2012 К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 1 / 39
  • 2.
    Многослойные нейронные сети Метод обратного распространения ошибок Сети Кохонена Содержание 1 Многослойные нейронные сети Проблема полноты Вычислительные возможности нейронных сетей Многослойная нейронная сеть 2 Метод обратного распространения ошибок Алгоритм BackProp Эвристики для улучшения сходимости Эвристики для оптимизации структуры сети 3 Сети Кохонена Модели конкурентного обучения Карты Кохонена Гибридные сети: кластеризация + регрессия К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 2 / 39
  • 3.
    Многослойные нейронные сети Проблема полноты Метод обратного распространения ошибок Вычислительные возможности нейронных сетей Сети Кохонена Многослойная нейронная сеть Напоминание: линейная модель нейрона МакКаллока-Питтса fj : X → R, j = 1, . . . , n — числовые признаки; n a(x, w ) = σ w , x =σ wj fj (x) − w0 , j=1 где w0 , w1 , . . . , wn ∈ R — веса признаков; σ(s) — функция активации (в частности, sign). x 1 ‚‚‚‚‚‚ w1 ‚‚‚ x 2 ’’’’’w2 ’’’’)- ‚ σ / a ... lll5 ··· l llwn M llll xn w0 −1 К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 3 / 39
  • 4.
    Многослойные нейронные сети Проблема полноты Метод обратного распространения ошибок Вычислительные возможности нейронных сетей Сети Кохонена Многослойная нейронная сеть Линейные алгоритмы классификации и регрессии Задача классификации: Y = {±1}, a(x, w ) = sign w , xi ; ℓ ℓ Q(w ; X ) = L w , xi yi → min; w i=1 Mi (w ) Задача регрессии: Y = R, a(x, w ) = σ( w , xi ); ℓ ℓ 2 Q(w ; X ) = σ( w , xi ) − yi → min; w i=1 Насколько богатый класс функций реализуется нейроном? А сетью (суперпозицией) нейронов? К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 4 / 39
  • 5.
    Многослойные нейронные сети Проблема полноты Метод обратного распространения ошибок Вычислительные возможности нейронных сетей Сети Кохонена Многослойная нейронная сеть Нейронная реализация логических функций Функции И, ИЛИ, НЕ от бинарных переменных x 1 и x 2 : x1 ∧ x2 = x1 + x2 − 3 2 >0 ; 1 2 1 x ∨x = x1 + x2 − 2 >0 ; 1 1 ¬x = −x 1 + 2 >0 ; x 1 „„„1„„ И „„„* 1 x 2 1 jjj4/ / (x 1 ∧ x 2 ) j j 3/2 j −1 0 0 1 x 1 „„„1„„ ИЛИ „„„* 1 x 2 1 4/ / (x 1 ∨ x 2 ) jjjj j 1/2 j −1 0 0 1 К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 5 / 39
  • 6.
    Многослойные нейронные сети Проблема полноты Метод обратного распространения ошибок Вычислительные возможности нейронных сетей Сети Кохонена Многослойная нейронная сеть Логическая функция XOR (исключающее ИЛИ) Функция x 1 ⊕ x 2 = [x 1 = x 2 ] не реализуема одним нейроном. Два способа реализации: Добавлением нелинейного признака: x 1 ⊕ x 2 = x 1 + x 2 − 2x 1 x 2 − 1 > 0 ; 2 Сетью (двухслойной суперпозицией) функций И, ИЛИ, НЕ: x 1 ⊕ x 2 = (x 1 ∨ x 2 ) − (x 1 ∧ x 2 ) − 1 > 0 . 2 @ABC GFED‚ x 1 W ‚‚ 1-й способ 1 WW 1‚‚‚‚ W ( 1W ‚‚ WW ll6 ll +1‚‚ l1l WW¥¥B ( 0 @ABC‚ GFEDl 2 x ‚ ‚ ¥¥WW / (x 1 ⊕ x 2 ) 0 1 1 ‚‚‚ ¥¥ ‚ ll6 P 2-й способ ¥¥ ( ll−1 1 1/2 l6 l ¥¥l3/2l ¥ 1/2 @ABC GFED −1 l @ABC GFED −1 0 0 1 К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 6 / 39
  • 7.
    Многослойные нейронные сети Проблема полноты Метод обратного распространения ошибок Вычислительные возможности нейронных сетей Сети Кохонена Многослойная нейронная сеть Любую ли функцию можно представить нейросетью? Утверждение Любая булева функция представима в виде ДНФ, следовательно, и в виде двухслойной сети. Решение тринадцатой проблемы Гильберта: Теорема (Колмогоров, 1957) Любая непрерывная функция n аргументов на единичном кубе [0, 1]n представима в виде суперпозиции непрерывных функций одного аргумента и операции сложения: 2n+1 n 1 2 n f (x , x , . . . , x ) = hk ϕik (x i ) , k=1 i=1 где hk , ϕik — непрерывные функции, и ϕik не зависят от f . К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 7 / 39
  • 8.
    Многослойные нейронные сети Проблема полноты Метод обратного распространения ошибок Вычислительные возможности нейронных сетей Сети Кохонена Многослойная нейронная сеть Любую ли функцию можно представить нейросетью? Теорема (Вейерштрасс) Любую непрерывную функцию n переменных можно равномерно приблизить полиномом с любой точностью. Определение Набор функций F называется разделяющим точки множества X , если для любых различных x, x ′ ∈ X существует функция f ∈ F такая, что f (x) = f (x ′ ). Теорема (Стоун, 1948) Пусть X — компактное пространство, C (X ) — алгебра непрерывных на X вещественных функций, F — кольцо в C (X ), содержащее константу (1 ∈ F ) и разделяющее точки множества X . Тогда F плотно в C (X ). К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 8 / 39
  • 9.
    Многослойные нейронные сети Проблема полноты Метод обратного распространения ошибок Вычислительные возможности нейронных сетей Сети Кохонена Многослойная нейронная сеть Любую ли функцию можно представить нейросетью? Определение Набор функций F ⊆ C (X ) называется замкнутым относительно функции ϕ : R → R, если для любого f ∈ F выполнено ϕ(f ) ∈ F . Теорема (Горбань, 1998) Пусть X — компактное пространство, C (X ) — алгебра непрерывных на X вещественных функций, F — линейное подпространство в C (X ), замкнутое относительно нелинейной непрерывной функции ϕ, содержащее константу (1 ∈ F ) и разделяющее точки множества X . Тогда F плотно в C (X ). К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 9 / 39
  • 10.
    Многослойные нейронные сети Проблема полноты Метод обратного распространения ошибок Вычислительные возможности нейронных сетей Сети Кохонена Многослойная нейронная сеть Любую ли функцию можно представить нейросетью? Выводы: С помощью линейных операций и одной нелинейной функции активации ϕ можно вычислять любую непрерывную функцию с любой желаемой точностью. Однако эти теоремы ничего не говорят о числе слоёв нейронной сети и о числе нейронов в каждом слое. Практические рекомендации: Двух-трёх слоёв обычно достаточно. Можно достраивать нейроны в произвольных местах сети по необходимости, вообще не заботясь о числе слоёв. К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 10 / 39
  • 11.
    Многослойные нейронные сети Проблема полноты Метод обратного распространения ошибок Вычислительные возможности нейронных сетей Сети Кохонена Многослойная нейронная сеть Многослойная нейронная сеть Пусть для общности Y = RM , для простоты слоёв только два. входной слой, скрытый слой, выходной слой, n признаков H нейронов M нейронов @ABC ‚ GFED‚ w11 x1 i / σ1 ‚‚ w11 / σ1 / a1 l5 i l5 ii 1h ‚‚ w ‚‚‚ ll llly F ii 1m ‚‚ w ‚‚‚ l lll y F . . . w1Hii lllll yyy . . . ‚ w1Mii llllll yyyy . . . ‚‚‚ wj1 ii ‚‚‚‚ lll i yyyy‚‚‚ ll ii yy‚‚‚‚‚ i y wh1 l ?= l wjh 89:; ‚ iiy ) llw l iiy y ) xj ‚ yyi / σh ‚‚ hm yi / σm / am wjH ‚‚ yy iiillll5 A y ‚ lli whM ‚‚y yy iiillll5 A y‚ ‚ . . . wn1 y llll‚ iii . . . ‚‚ yy ‚‚llllliii . . . ‚‚‚ y w y ywnh lll y ‚‚‚ i yH1llll ‚‚‚‚‚i i y yl ‚‚) yywHm ‚) ?= nH 89:; xn lw / ll σH wHM / σM / aM : : w01 w01 w0h w0m @ABC GFED −1 w0H @ABC GFED −1 w0M К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 11 / 39
  • 12.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Напоминание: Алгоритм SG (Stochastic Gradient) Задача минимизации суммарных потерь: ℓ Q(w ) := L (w , xi , yi ) → min . w i=1 Вход: выборка X ℓ ; темп обучения η; параметр λ; Выход: веса w ≡ wjh , whm ∈ RH(n+M+1)+M ; 1: инициализировать веса w и текущую оценку Q(w ); 2: повторять 3: выбрать объект xi из X ℓ (например, случайно); 4: вычислить потерю Li := L (w , xi , yi ); 5: градиентный шаг: w := w − η∇L (w , xi , yi ); 6: оценить значение функционала: Q := (1 − λ)Q + λLi ; 7: пока значение Q и/или веса w не стабилизируются; К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 12 / 39
  • 13.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Задача дифференцирования суперпозиции функций Выходные значения сети am (xi ), m = 1..M на объекте xi : H J m h h a (xi ) = σm whm u (xi ) ; u (xi ) = σh wjh fj (xi ) . h=0 j=0 Пусть для конкретности Li (w ) — средний квадрат ошибки: M 1 2 Li (w ) = am (xi ) − yim . 2 m=1 Промежуточная задача: найти частные производные ∂Li (w ) ∂Li (w ) ; . ∂am ∂u h К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 13 / 39
  • 14.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Быстрое вычисление градиента Промежуточная задача: частные производные ∂Li (w ) = am (xi ) − yim = εim ∂am — это ошибка на выходном слое; M M ∂Li (w ) m = a (xi ) − yim ′ σm whm = εm σm whm = εh i ′ i ∂u h m=1 m=1 — назовём это ошибкой на выходном слое. Похоже, что εh i вычисляется по εm , если запустить сеть «задом наперёд»: i ε1 σ ′ w jjj i 1 jjjj h1 t εh o j„„„„ ... i whM „ „ „ εM σ M i ′ К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 14 / 39
  • 15.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Быстрое вычисление градиента Теперь, имея частные производные Li (w ) по am и u h , легко выписать градиент Li (w ) по весам w : ∂Li (w ) ∂Li (w ) ∂am = = εm σm u h (xi ), m = 1..M, h = 0..H; i ′ ∂whm ∂am ∂whm ∂Li (w ) ∂Li (w ) ∂u h = = εh σh fj (xi ), h = 1..H, j = 0..n; i ′ ∂wjh ∂u h ∂wjh Алгоритм обратного распространения ошибки BackProp: Вход: X ℓ = (xi , yi )ℓ ⊂ Rn × RM ; параметры H, λ, η; i=1 Выход: синаптические веса wjh , whm ; 1: ... К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 15 / 39
  • 16.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Алгоритм BackProp 1: инициализировать веса wjh , whm ; 2: повторять 3: выбрать объект xi из X ℓ (например, случайно); 4: прямой ход: J j uih := σh j=0 wjh xi , h = 1..H; H aim := σm h m m m h=0 whm ui , εi := ai − yi , m = 1..M; Li := M (εm )2 ; m=1 i 5: обратный ход: εh := M εm σm whm , h = 1..H; i m=1 i ′ 6: градиентный шаг: whm := whm − ηεm σm uih , h = 0..H, m = 1..M; i ′ h σ ′ x j , j = 0..n, h = 1..H; wjh := wjh − ηεi h i 7: Q := (1 − λ)Q + λLi ; 8: пока Q не стабилизируется; К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 16 / 39
  • 17.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Алгоритм BackProp: преимущества и недостатки Преимущества: эффективность: градиент вычисляется за время, сравнимое со временем вычисления самой сети; метод легко обобщается на любые σ, L ; возможно динамическое (потоковое) обучение; на сверхбольших выборках не обязательно брать все xi ; возможность распараллеливания; Недостатки — все те же, свойственные SG: возможна медленная сходимость; застревание в локальных минимумах; проблема переобучения; подбор комплекса эвристик является искусством; К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 17 / 39
  • 18.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Стандартные эвристики для метода SG Применимы все те же эвристики, что и в обычном SG: инициализация весов; порядок предъявления объектов; оптимизация величины градиентного шага; регуляризация (сокращение весов); Кроме того, появляются новые проблемы: выбор функций активации в каждом нейроне; выбор числа слоёв и числа нейронов; выбор значимых связей; К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 18 / 39
  • 19.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Ускорение сходимости 1. Более тщательный подбор начального приближения. Нейроны настраиваются как отдельные линейные алгоритмы либо по случайной подвыборке X ′ ⊆ X ℓ ; либо по случайному подмножеству входов; либо из различных случайных начальных приближений; тем самым обеспечивается различность нейронов. 2. Выбивание из локальных минимумов (jogging of weights). 3. Адаптивный градиентный шаг (метод скорейшего спуска). 4. Метод сопряжённых градиентов и chunking — разбиение ℓ суммы Q(w ) = Li (w ) на блоки (chunks). i=1 К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 19 / 39
  • 20.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Диагональный метод Левенберга-Марквардта Метод Ньютона-Рафсона (второго порядка): −1 w := w − η Li′′ (w ) Li′ (w ), ∂ 2 Li (w ) 2 где Li′′ (w ) = ∂wjh ∂wj ′ h′ — гессиан, размера H(n+M+1)+M . Эвристика. Считаем, что гессиан диагонален: −1 ∂ 2 Li (w ) ∂Li (w ) wjh := wjh − η 2 +µ , ∂wjh ∂wjh η — темп обучения, µ — параметр, предотвращающий обнуление знаменателя. Отношение η/µ есть темп обучения на ровных участках функционала Li (w ), где вторая производная обнуляется. К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 20 / 39
  • 21.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Динамическое наращивание сети 1 обучение при заведомо недостаточном числе нейронов H; 2 после стабилизации Q(w ) — добавление нового нейрона и его инициализация путём обучения либо по случайной подвыборке X ′ ⊆ X ℓ ; либо по объектам с наибольшими значениями потерь; либо по случайному подмножеству входов; либо из различных случайных начальных приближений; 3 снова итерации BackProp; Эмпирический опыт: Общее время обучения обычно лишь в 1.5–2 раза больше, чем если бы в сети сразу было нужное количество нейронов. Полезная информация, накопленная сетью, не теряется при добавлении новых нейронов. К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 21 / 39
  • 22.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Прореживание сети (OBD — Optimal Brain Damage) Пусть w — локальный минимум Q(w ), тогда Q(w ) можно аппроксимировать квадратичной формой: Q(w + δ) = Q(w ) + 1 δ т Q ′′ (w )δ + o( δ 2 ), 2 ∂ 2 Q(w ) 2 где Q ′′ (w ) = ∂wjh ∂wj ′ h′ — гессиан, размера H(n+M+1)+M . Эвристика. Пусть гессиан Q ′′ (w ) диагонален, тогда n H 2 Q(w ) H M ′′ 2 ∂ 2 ∂ 2 Q(w ) δ Q (w )δ = т δjh 2 + δhm 2 . ∂wjh ∂whm j=0 h=1 h=0 m=0 Хотим обнулить вес: wjh + δjh = 0. Как изменится Q(w )? Определение. Значимость (salience) веса wjh — это изменение 2 функционала Q(w ) при его обнулении: Sjh = wjh ∂ ∂w 2 ) . 2 Q(w jh К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 22 / 39
  • 23.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Прореживание сети (OBD — Optimal Brain Damage) ∂2Q ∂2Q 1 В BackProp вычислять вторые производные 2 , ∂wjh ∂whm2 . 2 Если процесс минимизации Q(w ) пришёл в минимум,то упорядочить все веса по убыванию Sjh ; удалить N связей с наименьшей значимостью; снова запустить BackProp. 3 Если Q(w , X ℓ ) или Q(w , X k ) существенно ухудшился, то вернуть последние удалённые связи и выйти. Отбор признаков с помощью OBD — аналогично. H Суммарная значимость признака: Sj = Sjh . h=1 Эмпирический опыт: результат постепенного прореживания обычно лучше, чем BackProp изначально прореженной сети. К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 23 / 39
  • 24.
    Многослойные нейронные сети Алгоритм BackProp Метод обратного распространения ошибок Эвристики для улучшения сходимости Сети Кохонена Эвристики для оптимизации структуры сети Резюме по многослойным сетям Нейрон = линейная классификация или регрессия. Нейронная сеть = суперпозиция нейронов с нелинейной функцией активации. Двух-трёх слоёв достаточно для решения очень широкого класса задач. BackProp = быстрое дифференцирование суперпозиций. Позволяет обучать сети практически любой конфигурации. Некоторые меры по улучшению сходимости и качества: регуляризация перетасовка объектов инициализация нейронов как отдельных алгоритмов адаптивный градиентный шаг метод сопряжённых градиентов и chunking динамическое наращивание прореживание (OBD) К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 24 / 39
  • 25.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Постановка задачи кластеризации (обучения без учителя) Дано: X = Rn — пространство объектов; Y = {1, . . . , M} — множество кластеров, M фиксировано; X ℓ = {xi }ℓ — обучающая выборка объектов; i=1 ρ : X × X → R+ — метрика. Требуется: построить алгоритм кластеризации a : X → Y . Предлагается: ввести центры кластеров wm ∈ Rn , m = 1, . . . , M; относить объект x ∈ X к ближайшему кластеру (правило жёсткой конкуренции WTA — Winner Takes All): a(x) = arg min ρ(x, wm ). m∈Y К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 25 / 39
  • 26.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Метод стохастического градиента Минимизация среднего внутрикластерного расстояния: ℓ ℓ 1 Q(w ; X ) = ρ2 (xi , wa(xi ) ) → min, w = (w1 , . . . , wM ); 2 w i=1 Пусть метрика евклидова, ρ2 (xi , wm ) = wm − xi 2. ℓ ∂Q(w ; X ℓ ) = (wm − xi ) a(xi ) = m . ∂wm i=1 Градиентный шаг в методе SG: для случайного xi ∈ X ℓ wm := wm + η(xi − wm ) a(xi ) = m (если xi относится к кластеру m, то wm сдвигается в сторону xi ). К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 26 / 39
  • 27.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Сеть Кохонена (сеть с конкурентным обучением) Структура алгоритма — двухслойная нейронная сеть: a(x) = arg min ρ(x, wm ) : m∈Y @ABC GFED w1 / ρ(x, w1 ) x1 c 1 c c ? vvv 1  vvv wMc cc ··· arg ccc · · ·  / a(x)  8 min wn cc rrr 1 c rrr @ABC wM / ρ(x, wM ) GFED n xn Градиентное правило обучения напоминает перцептрон: если a(xi ) = m, то wm := wm + η(xi − wm ). К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 27 / 39
  • 28.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Алгоритм SG (Stochastic Gradient) Вход: выборка X ℓ ; темп обучения η; параметр λ; Выход: центры кластеров w1 , . . . , wM ∈ Rn ; 1: инициализировать центры wm , m = 1, . . . , M; 2: инициализировать текущую оценку функционала: ℓ Q := ρ2 (xi , wa(xi ) ); i=1 3: повторять 4: выбрать объект xi из X ℓ (например, случайно); 5: вычислить кластеризацию: m := arg min ρ(xi , wm ); m∈Y 6: градиентный шаг: wm := wm + η(xi − wm ); 7: оценить значение функционала: Q := (1 − λ)Q + λρ2 (xi , wm ); 8: пока значение Q и/или веса w не стабилизируются; К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 28 / 39
  • 29.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Жёсткая и мягкая конкуренция Правило жёсткой конкуренции WTA (winner takes all): wm := wm + η(xi − wm ) a(xi ) = m , m = 1, . . . , M, Недостатки правила WTM: медленная скорость сходимости; некоторые wm могут никогда не выбираться. Правило мягкой конкуренции WTM (winner takes most): wm := wm + η(xi − wm ) K ρ(xi , wm ) , m = 1, . . . , M, где ядро K (ρ) — неотрицательная невозрастающая функция. Теперь центры всех кластеров смещаются в сторону xi , но чем дальше от xi , тем меньше величина смещения. К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 29 / 39
  • 30.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Карта Кохонена (Self Organizing Map, SOM) Y = {1, . . . , M} × {1, . . . , H} — прямоугольная сетка кластеров. Каждому узлу (m, h) приписан нейрон Кохонена wmh ∈ Rn . Наряду с метрикой ρ(xi , x) на X вводится метрика на сетке Y : r (mi , hi ), (m, h) = (m − mi )2 + (h − hi )2 . Окрестность(mi , hi ): H ◦ ◦ ◦ ◦ ◦ “ ◦ ◦ i • ‚i u ◦ ◦ ¥• • • SA ◦ ◦ mi h i ◦ ◦ )1 A • • d • )1 ◦ ◦ d d S mh ◦ ◦ • • •¥ ◦ i ◦ ‚ “ i u • 1 ◦ ◦ ◦ ◦ ◦ ◦ ◦ 1 M К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 30 / 39
  • 31.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Обучение карты Кохонена Вход: X ℓ — обучающая выборка; η — темп обучения; Выход: wmh ∈ Rn — векторы весов, m = 1..M, h = 1..H; 1 1 1: wmh := random − 2MH , 2MH — инициализация весов; 2: повторять 3: выбрать объект xi из X ℓ случайным образом; 4: WTA: вычислить координаты кластера: (mi , hi ) := a(xi ) ≡ arg min ρ(xi , wmh ); (m,h)∈Y 5: для всех (m, h) ∈ Окрестность(mi , hi ) 6: WTM: сделать шаг градиентного спуска: wmh := wmh + η(xi − wmh ) K r ((mi , hi ), (m, h)) ; 7: пока кластеризация не стабилизируется; К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 31 / 39
  • 32.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Интерпретация карт Кохонена Два типа графиков — цветных карт M × H: Цвет узла (m, h) — локальная плотность в точке (m, h) — среднее расстояние до k ближайших точек выборки; По одной карте на каждый признак: цвет узла (m, h) — значение j-й компоненты вектора wm,h . Пример: Задача UCI house-votes (US Congress voting patterns) Объекты — конгрессмены; Признаки — вопросы, выносившиеся на голосование; Есть целевой признак {демократ,республиканец}. К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 32 / 39
  • 33.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Интерпретация карт Кохонена (пример) К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 33 / 39
  • 34.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Достоинства и недостатки карт Кохонена Достоинства: Возможность визуального анализа многомерных данных. Недостатки: Субъективность. Карта зависит не только от кластерной структуры данных, но и. . . — от свойств сглаживающего ядра; — от (случайной) инициализации; — от (случайного) выбора xi в ходе итераций. Искажения. Близкие объекты исходного пространства могут переходить в далёкие точки на карте, и наоборот. Рекомендуется только для разведочного анализа данных. К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 34 / 39
  • 35.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Кусочно-постоянная непараметрическая регрессия Задача восстановления регрессии: X ℓ = {xi , yi }ℓ , yi ∈ R. i=1 Основная идея — применить WTA-кластеризацию: 1) разбить выборку на M кластеров c центрами wm : c(x) = arg min ρ(x, wm ); m=1,...,M 2) на каждом кластере построить регрессию-константу: M a(x) = vc(x) = vm c(x) = m . m=1 Требуется: по выборке X ℓ найти центры wm и уровни vm . К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 35 / 39
  • 36.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Кусочно-постоянная непараметрическая регрессия Настройка центров wm сетью Кохонена — WTA. Задача настройки уровней vm решается аналитически: ℓ 1 2 Q(v ) = a(xi ) − yi → min; 2 v i=1 ℓ ∂Q = a(xi ) − yi c(xi ) = m = 0. ∂vm i=1 Подставляя сюда a(xi ) = vm , получаем среднее yi по кластеру: ℓ i=1 yi c(xi ) = m vm = ℓ . i=1 c(xi ) = m К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 36 / 39
  • 37.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Кусочно-гладкая непараметрическая регрессия Усложнение: теперь функция a(x) должна быть гладкой. Основная идея — применить WTM-кластеризацию: 1) «мягкая» кластеризация на M кластеров c центрами wm : cm (x) = K ρ(x, wm ) , m = 1, . . . , M; 2) формула Надарая-Ватсона сглаживает ответы vm , но не по ℓ объектам, а по M центрам кластеров wm : M vm cm (x) m=1 a(x) = M . cm (x) m=1 Требуется: по выборке X ℓ найти центры wm и уровни vm . К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 37 / 39
  • 38.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Кусочно-гладкая непараметрическая регрессия Настройка центров wm сетью Кохонена — WTM: ℓ M 1 2 Q(w ) = cm (xi ) wm − xi → min; 2 w i=1 m=1 ℓ ∂Q(w ) = cm (xi )(wm − xi ); ∂wm i=1 Настройка уровней vm линейным нейроном: ℓ 1 2 Q(v ) = a(xi ) − yi → min; 2 v i=1 ℓ ∂Q(v ) cm (xi ) = M a(xi ) − yi ; ∂vm s=1 cs (xi ) i=1 К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 38 / 39
  • 39.
    Многослойные нейронные сети Модели конкурентного обучения Метод обратного распространения ошибок Карты Кохонена Сети Кохонена Гибридные сети: кластеризация + регрессия Кусочно-гладкая непараметрическая регрессия Веса слоя Кохонена wm и веса линейного слоя vm на каждой итерации SG обновляются независимо: wm := wm + η1 (xi − wm )K ρ(x, wm ) ; vm := vm − η2 (a(xi ) − yi )K ρ(x, wm ) ; Достоинства этого метода: регрессия учитывает кластерную структуру выборки; повышается эффективность вычисления a(x). К. В. Воронцов (www.ccas.ru/voron) Искусственные нейронные сети 39 / 39