....а мудрость его все возрастала, причиняя ему страдание полнотой своей. Ф. Ницше, " Так говорил Заратустра"
В этой лекции рассматривается новый тип обучения нейросетей - обучение без учителя (или для краткости - самообучение), когда сеть самостоятельно формирует свои выходы, адаптируясь к поступающим на ее входы сигналам. Как и прежде, такое обучение предполагает минимизацию некоторого целевого функционала. Задание такого функционала формирует цель, в соответствии с которой сеть осуществляет преобразование входной информации.
В отсутствие внешней цели, "учителем" сети могут служить лишь сами данные, т. е. имеющаяся в них информация, закономерности, отличающие входные данные от случайного шума. Лишь такая избыточность позволяет находить более компактное описание данных, что, согласно общему принципу, изложенному в предыдущей лекции, и является обобщением эмпирических данных. Сжатие данных, уменьшение степени их избыточности, использующее существующие в них закономерности, может существенно облегчить последующую работу с данными, выделяя действительно независимые признаки. Поэтому самообучающиеся сети чаще всего используются именно для предобработки "сырых" данных. Практически, адаптивные сети кодируют входную информацию наиболее компактным при заданных ограничениях кодом.
Длина описания данных пропорциональна, во-первых, разрядности данных $$b$$ (т. е. числу бит), определяющей возможное разнообразие принимаемых ими значений, и, во-вторых, размерности даных $$d$$, т. е. числу компонент входных векторов $$x^\alpha$$. Соответственно, можно различить два предельных типа кодирования, использующих противоположные способы сжатия информации:
(рис 4.1) Два типа сжатия информации. Понижение размерности (a) позволяет описывать данные меньшим числом компонент. Кластеризация или квантование (b) позволяет снизить разнообразие данных, уменьшая число бит, требуемых для описания данныхВозможно также объединение обоих типов кодирования. Например, очень богат приложениями метод топографических карт (или
Как и в случае с персептронами начать изучение нового типа обучения лучше с простейшей сети, состоящей из одного нейрона.
Рассмотрим какие возможности по адаптивной обработке данных имеет единичный нейрон, и как можно сформулировать правила его обучения.
В силу локальности
В простейшей постановке нейрон с одним выходом и d входами обучается на наборе d-мерных данных $$\{x^\alpha\}$$. В этой лекции мы сосредоточимся, в
основном, на обучении
(рис 4.2) Сжатие информации линейным нейроном
Амплитуда этого выхода после соответствующего обучения (т. е. выбора весов по набору примеров $$\{x^\alpha\}$$ ) может служить индикатором того, насколько данный вход соответствует обучающей выборке. Иными словами, нейрон может стать индикатором принадлежности входной информации к заданной группе примеров.
Правило обучения отдельного нейрона-индикатора по-необходимости локально, т. е. базируется только на информации непосредственно доступной самому нейрону - значениях его входов и выхода. Это правило, носящее имя канадского ученого Хебба, играет фундаментальную роль в нейрокомпьютинге, ибо содержит как в зародыше основные свойства самоорганизации нейронных сетей.
Согласно Хеббу (Hebb, 1949), изменение весов нейрона при предъявлении ему примера пропорционально его входам и выходу:$$\Delta w^\tau_j=\eta y^\tau x_j^\tau,$$ или в векторном виде:$$\Delta w^\tau=\eta y^\tau x^\tau.$$
Если сформулировать обучение как задачу оптимизации, мы увидим, что обучающийся по Хеббу нейрон стремится увеличить амплитуду своего выхода:$$\langle\Delta w\rangle=-\eta\frac{\partial{E}}{\partial{w}}, E\left\{w,x^\alpha \right\}=-\frac{1}{2}\langle(w\cdot x)^2\rangle=-\frac{1}{2}\langle y^2\rangle,$$ где усреднение проводится по обучающей выборке $$\{x^\alpha\}$$. Вспомним, что обучение с учителем, напротив, базировалось на идее уменьшения среднего квадрата отклонения от эталона, чему соответствует знак минус в обучении по дельта-правилу. В отсутствие эталона минимизировать нечего: минимизация амплитуды выхода привела бы лишь к уменьшению чувствительности выходов к значениям входов. Максимизация амплитуды, напротив, делает нейрон как можно более чувствительным к различиям входной информации, т. е. превращает его в полезный индикатор.
Указанное различие в целях обучения носит принципиальный характер, т. к. минимум ошибки $$E(w)$$ в данном случае отсутствует. Поэтому обучение по Хеббу в том виде, в каком оно описано выше, на практике не применимо, т. к. приводит к неограниченному возрастанию амплитуды весов.
От этого недостатка, однако, можно довольно просто избавиться, добавив член, препятствующий возрастанию весов. Так, правило обучения
Ойа:$$\Delta w^\tau_j=\eta y^\tau(x^\tau_j-y^\tau w_j),$$
или в векторном виде:$$\Delta w^\tau=\eta y^\tau(x^\tau-y^\tau w),$$
максимизирует чувствительность выхода нейрона при ограниченной амплитуде весов. В этом легко убедиться, приравняв среднее изменение
весов нулю. Умножив затем правую часть на w, видим, что в равновесии: $$0=\langle y^2 \rangle (1-|w|^2)$$. Таким образом, веса обученного нейрона расположены на
гипер-сфере: $$|w|=1$$.
(рис 4.3) При обучении по правилу Ойа, вектор весов нейрона располагается на гипер-сфере в направлении, максимизирующем проекцию входных векторов
Отметим, что это правило обучения по существу эквивалентно дельта-правилу, только обращенному назад - от входов к выходам (т. е. при замене $$x\leftrightarrow y$$ ). Нейрон как бы старается воспроизвести значения своих входов по заданному выходу. Тем самым, такое обучение стремится максимально повысить чувствительность единственного выхода-индикатора к многомерной входной информации, являя собой пример оптимального сжатия информации.
Эту же ситуацию можно описать и по-другому. Представим себе персептрон с одним (здесь - линейным) нейроном на скрытом слое,
в котором число входов и выходов совпадает, причем веса с одинаковыми индексами в обоих слоях одинаковы. Будем учить этот персептрон
воспроизводить в выходном слое значения своих выходов. При этом, дельта-правило обучения верхнего (а тем самым и нижнего) слоя примет
вид правила Ойа:$$\Delta w^\alpha\infty y^\alpha(x^\alpha-\mbox{\~{x}}^\alpha)=y^\alpha(x^\alpha-y^\alpha w).$$
(рис 4.4) Автоассоциативная сеть с узким горлом - аналог правила обучения Ойа
Таким образом, существует определенная параллель между самообучающимися сетями и т. н. автоассоциативными сетями, в которых учителем для выходов являются значения входов. Подобного рода нейросети с узким горлом также способны осуществлять сжатие информации.
Единственный нейрон осуществляет предельное сжатие многомерной информации, выделяя лишь одну скалярную характеристику многомерных данных. Каким бы оптимальным ни было сжатие информации, редко когда удается полностью охарактеризовать многомерные данные всего одним признаком. Однако, наращиванием числа нейронов можно увеличить выходную информацию. В этом разделе мы обобщим найденное ранее правило обучения на случай нескольких нейронов в самообучающемся слое, опираясь на отмеченную выше аналогию с автоассоциативными сетями.
Итак, пусть теперь на том же наборе d-мерных данных $$\{x^\alpha\}$$ обучается m линейных нейронов:$$y_i=\sum^d_{j=1}w_{ij}x_j\equiv\sum^d_{j=1}\equiv w_i\cdot x
(i=1,\ldots,m).$$
(рис 4.5) Слой линейных нейроновМы хотим, чтобы амплитуды выходных нейронов были набором независимых индикаторов, максимально полно отражающих информацию о многомерном
входе сети.
Если мы просто поместим несколько нейронов в выходной слой и будем обучать каждый из них независимо от других, мы добьемся лишь многократного дублирования одного и того же выхода. Очевидно, что для получения нескольких содержательных признаков на выходе исходное правило обучения должно быть каким-то образом модифицировано - за счет включения взаимодействия между нейронами.
В нашей трактовке правила обучения отдельного нейрона, последний пытается воспроизвести значения своих входов по амплитуде своего
выхода. Обобщая это наблюдение, логично было бы предложить правило, по которому значения входов восстанавливаются по всей выходной
информации. Следуя этой линии рассуждений получаем правило Ойа для
Такое обучение эквивалентно сети с узким горлом из скрытых линейных нейронов, обученной воспроизводить на выходе значения
своих входов.
(рис 4.6) Автоассоциативная сеть с узким горлом - аналог правила обучения Ойа
Скрытый слой такой сети, так же как и слой Ойа, осуществляет оптимальное кодирование входных данных, и содержит максимально возможное при данных ограничениях количество информации.
Вывод о способности нейронных сетей самостоятельно выделять наиболее значимые признаки в потоках информации, обучаясь по очень простым локальным правилам, важен с общенаучной точки зрения. Изучение этих механизмов помогает глубже понять как функционирует мозг. Однако есть ли в описанных выше нейроалгоритмах какой-нибудь практический смысл?
Действительно, для этих целей существуют хорошо известные алгоритмы стандартного статистического анализа. В частности, анализ главных компонент также выделяет основные признаки, осуществляя оптимальное линейное сжатие информации. Более того, можно показать, что сжатие информации слоем Ойа эквивалентно анализу главных компонент . Это и не удивительно, поскольку оба метода оптимальны при одних и тех же ограничениях.
Однако стандартный анализ главных компонент дает решение в явном виде, через последовательность матричных операций, а не
итерационно, как в случае
Конечно же есть, по крайней мере по двум причинам:
Иногда,даже простая замена линейной
Однако нас здесь интересуют не конкретные алгоритмы, а, скорее, общие принципы выделения значимых признаков, на которых имеет смысл остановиться несколько более подробно.
Наглядной демонстрацией полезности нелинейного анализа главных компонент является следующий простой пример (см. рис 4.7(рис 4.7) Анализ главных компонент дает линейное подпространство, минимизирующее отклонение данных (a). Он не способен, однако, выявить одномерный характер распределения данных в случае (b). Для их одномерной параметризации нужны нелинейные координаты
Он показывает, что в общем случае нас интересует нелинейное преобразование $$y=F(w,x)$$, $$F:R^d\Rightarrow R^m (d > m)$$, сохраняющее максимальное количество
информации о распределении данных в обучающей выборке $$\{x^\alpha\}$$ и являющееся наиболее сжатым представлением этих данных. Такое представление
данных, не поддающееся дальнейшему сжатию, обладает максимальной энтропией, т.е. их статистическое распределение не отличимо от
случайного шума. Таким образом, в общем случае целевой функцией при сжатии данных является максимизация энтропии: $$\max H(y)$$. Естественно, при
этом предполагается ограниченность диапазона изменения выходов, например: $$y\in [0,1]^m$$ во избежании неограниченного роста
Весьма общим подходом к понижению размерности является использование нелинейных автоассоциативных сетей. В общем случае они должны содержать как минимум три скрытых слоя нейронов. Средний слой - узкое горло, будет в результате обучения выдавать сжатое представление данных . Первый скрытый слой нужен для осуществления произвольного нелинейного кодирования, а последний - для нахождения соответствующего декодера (рис 4.8(рис 4.8) Понижение размерности с помощью автоассоциативных сетей. Минимизация ошибки воспроизведения сетью своих входов эквивалентна оптимальному кодированию в узком горле сети
Задачей автоассоциативных сетей, как уже говорилось, является воспроизведение на выходе сети значений своих входов. Вторая половина сети - декодер - при этом опирается лишь на кодированную информацию в узком горле сети. Качество воспроизведения данных по их кодированному представлению измеряется условной энтропией $$H(x|y)$$. Чем она меньше, тем меньше неопределенность, т. е. лучше воспроизведение. Нетрудно показать, что минимизация неопределенности эквивалентна максимизации энтропии кодирования:$$\min H(x|y)=\min \{H(x,y)-H(y)\}=\max H(y).$$
Действительно, механическая процедура кодирования не вносит дополнительной неопределенности, так что совместная энтропия входов и их кодового представления равна энтропии самих входов $$H(x,y)=H(x)+H(y|x)=H(x)$$ и, следовательно, не зависит от параметров сети.
Привлекательной чертой такого подхода к сжатию информации является его общность. Однако многочисленные локальные минимумы и трудоемкость обучения существенно снижают его практическую ценность.
Более компактные схемы сжатия обеспечивает метод предикторов.
Условие максимизации совместной энтропии выходов можно переписать в виде:$$\max H(y)=\max\langle -\log P(y)\rangle=\\=\max\langle -\log P(y_m|y_{m-1}\ldots y_1)-\ldots -\log P(y_2|y_1)-\log P(y_1)\rangle$$ Условные вероятности, входящие в это выражение, характеризуют разброс предсказаний каждого выхода, основанного на знании других выходов, стоящих справа от горизонтальной черты. Предположим, что мы используем дополнительные сети-предикторы, по одной для каждого выхода, специально обучаемые такому предсказанию (рис 4.9(рис 4.9) Выделение независимых компонент с использованием предикторов
Обозначим $$\hat{y}_k $$. выход сети-предиктора, предсказывающей значение переменной $$y_k$$.. Целевой функцией такой сети будет минимизация ошибки предсказания:$$\min\langle(y_k-\hat{y}_k)^2\rangle.$$ Отталкиваясь от значений $$\hat{y}_k$$, основная сеть будет, напротив, максимизировать отклонение от предсказаний, ставя себе целью:$$\max\langle\sum_k-\log P(y_k|y_{k-1}\ldots y_1)=\max\langle(y_k-\hat{y}_k)^2\rangle .$$
Таким образом, во взаимном соревновании основная и дополнительные сети обеспечивают постепенное выявление статистически независимых признаков, осуществляющих оптимальное кодирование.
Размер сетей-предикторов определяется количеством выходов сети m, так что их суммарный объем, как правило, много меньше,
чем размер декодера в автоассоциативной сети, определяемый числом входов d. В этом и состоит основное преимущество данного подхода.
Предикторы вводят связи между признаками, обеспечивающие их статистическую независимость. В частном случае линейных предикторов дополнительные сети вырождаются в латеральные связи между нейронами последнего слоя. Эти связи обучаются таким образом, чтобы выходы нейронов этого слоя были некоррелированы.
Между тем, можно предложить и такую схему латеральных связей, которая, наоборот, обеспечивает максимальную коррелированность выходов. Допустим, например, что выход каждого нейрона подается на его вход с положительным весом, а на вход остальных нейронов слоя - с отрицательным. Тем самым, каждый нейрон будет усиливать свой выход и подавлять активность остальных. При логистической функции активации, препятствующей бесконечному росту, победителем в этой борьбе выйдет нейрон с максимальным первоначальным значением выхода. Его значение возрастет до единицы, а активность остальных нейронов затухнет до нуля.
Такие соревновательные слои нейронов также можно использовать для сжатия информации, но это сжатие будет основано на совершенно других принципах.
В начале данной лекции мы упомянули два главных способа уменьшения избыточности: снижение размерности данных и уменьшение их разнообразия при той же размерности. До сих пор речь шла о первом способе. Обратимся теперь к второму. Этот способ подразумевает другие правила обучения нейронов.
В Хеббовском и производных от него алгоритмах обучения активность выходных нейронов стремится быть по возможности более независимой друг от друга. Напротив, в соревновательном обучении, к рассмотрению которого мы приступаем, выходы сети максимально скоррелированы: при любом значении входа активность всех нейронов, кроме т.н. нейрона-победителя одинакова и равна нулю. Такой режим функционирования сети называется победитель забирает все.
Нейрон-победитель (с индексом $$i^{\ast}$$ ), свой для каждого входного вектора, будет служить прототипом этого вектора. Поэтому победитель выбирается так, что его вектор весов $$w_{i^{\ast}}$$, определенный в том же d-мерном пространстве, находится ближе к данному входному вектору , чем у всех остальных нейронов: $$|w_{i^{\ast}}-x|\leq|w_i-x|$$ для всех i. Если, как это обычно и делается (вспомним слой Ойа), применять правила обучения нейронов, обеспечивающие одинаковую нормировку всех весов, например, $$|w_i|=1$$, то победителем окажется нейрон, дающий наибольший отклик на данный входной стимул: $$w_{i^{\ast}}\cdot x\geq w_i\cdot x, \forall i$$. Выход такого нейрона усиливается до единичного, а остальных - подавляется до нуля.
Количество нейронов в соревновательном слое определяет максимальное разнообразие выходов и выбирается в соответствии с требуемой степенью детализации входной информации. Обученная сеть может затем классифицировать входы: нейрон-победитель определяет к какому классу относится данный входной вектор.
В отличие от обучения с учителем, самообучение не предполагает априорного задания структуры классов. Входные векторы должны быть разбиты по категориям (кластерам) согласуясь с внутренними закономерностями самих данных. В этом и состоит задача обучения соревновательного слоя нейронов.
Базовый алгоритм обучения соревновательного слоя остается неизменым:$$\Delta w^\tau_i=\eta y_i^\tau\left(x^\tau-\sum_k y_k^\tau w_k\right)$$ поскольку задача сети также осталась прежней - как можно точнее отразить входную информацию в выходах сети. Отличие появляется лишь из-за нового способа кодирования выходной информации. В соревновательном слое лишь один нейрон-победитель имеет ненулевой (единичный) выход. Соответственно, в согласии с выписанным выше правилом, лишь его веса корректируются по предъявлении данного примера, причем для победителя правило обучения имеет вид:$$\Delta w^\tau_{i^{\ast}}=\eta\left(x^\tau-w_{i^{\ast}}\right)$$
Описанный выше базовый алгоритм обучения на практике обычно несколько модифицируют, т. к. он, например, допускает существование т. н. мертвых нейронов, которые никогда не выигрывают, и, следовательно, бесполезны. Самый простой способ избежать их появления - выбирать в качестве начальных значений весов случайно выбранные в обучающей выборке входные вектора.
Такой способ хорош еще и тем, что при достаточно большом числе прототипов он способствует равной "нагрузке" всех нейронов-прототипов. Это соответствует максимизации энтропии выходов в случае соревновательного слоя. В идеале каждый из нейронов соревновательного слоя должен одинаково часто становились победителем, чтобы априори невозможно было бы предсказать какой из них победит при случайном выборе входного вектора из обучающей выборки.
Наиболее быструю сходимость обеспечивает пакетный (batch)
Записав правило соревновательного обучения в градиентном виде: $$\langle\Delta w\rangle=-\eta\frac{\partial{E}}{\partial{w}}$$, легко убедиться, что оно минимизирует квадратичное отклонение входных векторов от их прототипов - весов нейронов-победителей:$$E=\frac{1}{2}\sum_\alpha\left|x^\alpha-w^\alpha_{\ast}\right|.$$
Иными словами, сеть осуществляет кластеризацию данных: находит такие усредненные прототипы, которые минимизируют ошибку огрубления данных. Недостаток такого варианта кластеризации очевиден - "навязывание" количества кластеров, равного числу нейронов. В идеале сеть сама должна находить число кластеров, соответствующее реальной кластеризации векторов в обучающей выборке. Адаптивный подбор числа нейронов осуществляют несколько более сложные алгоритмы, такие, например, как растущий нейронный газ.
Идея последнего подхода состоит в последовательном увеличении числа нейронов-прототипов путем их "деления". Общую ошибку сети можно записать как сумму индивидуальных ошибок каждого нейрона:$$E=\frac{1}{2}\sum_k E=\frac{1}{2}\sum_{\alpha\in C_k}\left|x^\alpha-w^k\right|^2$$
Естественно предположить, что наибольшую ошибку будут иметь нейроны, окруженные слишком большим числом примеров и/или имеющие слишком большую ячейку. Такие нейроны и являются, в первую очередь, кандидатами на "почкование" (см. рис 4.10(рис 4.10) Деление нейрона с максимальной ошибкой в "растущем нейронном газе"
Соревновательные слои нейронов широко используются для квантования данных (
Сжатие данных в этом случае достигается за счет того, что каждый прототип можно закодировать меньшим числом бит, чем соответствующие ему вектора данных. При наличии прототипов для идентификации любого из них достаточно лишь $$\log_2 m$$. бит, вместо bd бит описывающих произвольный входной вектор.
В этой лекции мы рассмотрели два разных типа обучения, основанные на разных принципах кодирования информации выходным слоем нейронов. Логично теперь сравнить их по степени вычислительной сложности и выяснить когда выгоднее применять понижение размерности, а когда - квантование входной информации.
Как мы видели, алгоритм обучения сетей, понижающих размерность, сводится к обычному обучению с учителем, сложность которого была оценена ранее. Такое обучение требует $$\sim PW^2$$ операций, где $$W$$ - число синаптических весов сети, а $$P$$ - число обучающих примеров. Для однослойной сети с $$d$$ входами и $$m$$ выходными нейронами число весов равно $$W\approx dm$$ и сложность обучения $$C$$ можно оценить как $$C_1\sim Pd^2m^2=Pd^4/K^2$$, где $$K=d/m$$ - коэффициент сжатия информации.
Кластеризация или квантование требуют настройки гораздо большего количества весов - из-за неэффективного способа кодирования. Зато такое избыточное кодирование упрощает алгоритм обучения. Действительно, квадратичная функция ошибки в этом случае диагональна, и в принципе достижение минимума возможно за $$O(1)$$ шагов (например в пакетном режиме), что в данном случае потребует $$\sim PW$$ операций. Число весов, как и прежде, равно $$W\approx dm$$, но степень сжатия информации в данном случае определяется по-другому: $$K=db/\log_2 m$$. Сложность обучения как функция степени сжатия запишется в виде: $$C_2\sim Pdm \sim Pd2^{db/K}$$.
При одинаковой степени сжатия, отношение сложности квантования к сложности данных снижения размерности запишется в виде:$$\frac{C_2}{C_1}\sim \frac{K^22^{db/K}}{d^3}$$
Рисунок 4.11 показывает области параметров, при которых выгоднее применять тот или иной способ сжатия
информации.
(рис 4.11) Области, где выгоднее использовать понижение размерности или квантование
Наибольшее сжатие возможно методом квантования, но из-за экспоненциального роста числа кластеров, при большой размерности данных выгоднее использовать понижение размерности. Максимальное сжатие при понижении размерности равно $$K_{1,\max}=d$$, тогда как квантованием можно достичь сжатия $$K_{2,\max}=bd$$ (при двух нейронах-прототипах). Область недостижимых сжатий $$K>bd$$ показана на рисунке серым.
В качестве примера рассмотрим типичные параметры сжатия изображений в формате JPEG. При этом способе сжатия изображение
разбивается на квадраты со стороной $$8\times 8$$ пикселей, которые и являются входными векторами, подлежащими сжатию. Следовательно, в данном
случае $$d=8\times 8=64$$. Предположим, что картинка содержит $$2^8=256$$ градаций серого цвета, т. е. точность представления данных $$b=8$$. Тогда координата абсциссы на
приведенном выше графике будет $$d/b^2=1$$. Как следует из графика при любых допустимых степенях сжатия в данном случае оптимальным с точки
зрения вычислительных затрат является снижение
Однако, при увеличении размеров элементарного блока, появляется область высоких степеней сжатия, достижимых лишь с использованием квантования. Скажем, при $$d=64\times 64=4096$$, когда $$d/b^2=64$$, в соответствии с графиком (см. рисунок 4.11), квантование следует применять для сжатия более $$K/b^3\approx2$$, т. е. $$K>10^3$$.
Один из вариантов модификации базового правила обучения соревновательного слоя состоит в том, чтобы обучать не только нейрон-победитель, но и его "соседей", хотя и с меньшей скоростью. Такой подход - "подтягивание" ближайших к победителю нейронов - применяется в топографических картах Кохонена. В силу большой практической значимости этой нейросетевой архитектуры, остановимся на ней более подробно.
До сих пор нейроны выходного слоя были неупорядочены: положение нейрона-победителя в соревновательном слое не имело ничего общего с координатами его весов во входном пространстве. Оказывается, что небольшой модификацией соревновательного обучения можно добиться того, что положение нейрона в выходном слое будет коррелировать с положением прототипов в многомерном пространстве входов сети: близким нейронам будут соответствовать близкие значения входов. Тем самым, появляется возможность строить топографические карты чрезвычайно полезные для визуализации многомерной информации. Обычно для этого используют соревновательные слои в виде двумерных сеток. Такой подход сочетает квантование данных с отображением, понижающим размерность. Причем это достигается с помощью всего лишь одного слоя нейронов, что существенно облегчает обучение.
В 1982 году финский ученый Тойво Кохонен (Kohonen, 1982) предложил ввести в базовое правило соревновательного обучения информацию о расположении нейронов в выходном слое. Для этого нейроны выходного слоя упорядочиваются, образуя одно- или двумерные решетки. Т. е. теперь положение нейронов в такой решетке маркируется векторным индексом $$i$$. Такое упорядочение естественым образом вводит расстояние между нейронами $$|i-j|$$ в слое. Модифицированное Кохоненом правило соревновательного обучения учитывает расстояние нейронов от нейрона-победителя:$$\Delta w^\tau_i=\eta\Lambda (|i-i^{\ast}|)(x^\tau-w_i).$$
Функция соседства $$\Lambdai(|-i^{\ast}|)$$ равна единице для нейрона-победителя с индексом $$i^{\ast}$$ и постепенно спадает с расстоянием, например по закону $$\Lambda(a)=\exp(-a^2/\sigma^2)$$. Как темп обучения $$\eta$$, так и радиус взаимодействия нейронов $$\sigma$$ постепенно уменьшаются в процессе обучения, так что на конечной стадии обучения мы возвращаемся к базовому правилу адаптации весов только нейронов-победителей.
В отличие от "газоподобной" динамики обучения при индивидуальной подстройке прототипов (весов нейронов), обучение
по Кохонену напоминает натягивание эластичной сетки прототипов на массив данных из обучающей выборки. По мере обучения эластичность
сети постепенно увеличивается, чтобы не мешать окончательной тонкой подстройке весов.
(рис 4.12) Двумерная топографическая карта набора трехмерных данных. Каждая точка в трехмерном пространстве попадает в свою ячейку сетки имеющую координату ближайшего к ней нейрона из двумерной карты
В результате такого обучения мы получаем не только квантование входов, но и упорядочивание входной информации в виде одно- или двумерной карты. Каждый многомерный вектор имеет свою координату на этой сетке, причем чем ближе координаты двух векторов на карте, тем ближе они и в исходном пространстве. Такая топографическая карта дает наглядное представление о структуре данных в многомерном входном пространстве, геометрию которого мы не в состоянии представить себе иным способом. Визуализация многомерной информации является главным применением карт Кохонена.
Заметим, что в согласии с общим житейским принципом "бесплатных обедов не бывает", топографические карты сохраняют
отношение близости лишь локально: близкие на карте области близки и в исходном пространстве, но не наоборот
(рисунок 4.13). В общем случае не существует отображения, понижающего размерность и сохраняющего
отношения близости глобально.
(рис 4.13) Пример одномерной карты двумерных данных. Стрелкой показана область нарушения непрерывности отображения: близкие на плоскости точки отображаются на противоположные концы карты
Удобным инструментом визуализации данных является раскраска топографических карт, аналогично тому, как это делают на обычных
географических картах. Каждый признак данных порождает свою раскраску ячеек карты - по величине среднего значения этого признака у
данных, попавших в данную ячейку.
(рис 4.14) Раскраска топографической карты, индуцированная i-ой компонентой входных данных
Собрав воедино карты всех интересующих нас признаков, получим топографический атлас, дающий интегральное представление о структуре многомерных данных. Далее в этой книге мы рассмотрим практическое применение этой методики к анализу балансовых отчетов и предсказанию банкротств.
Самообучающиеся сети, рассмотренные в этой лекции, широко используются для предобработки данных, например при распознавании образов в
пространстве очень большой размерности. В этом случае для того, чтобы процедура обучения с учителем была эффективна, требуется сначала
сжать входную информацию тем или иным способом: либо выделить значимые признаки, понизив размерность, либо произвести квантование
данных. Первый путь просто понижает число входов персептрона. Второй же способ требует отдельного рассмотрения, поскольку лежит в
основе очень популярной архитектуры - сетей радиального базиса (
Сеть радиального базиса напоминают персептрон с одним скрытым слоем, осуществляя нелинейное отображение $$R^d\Rightarrow R^m$$: $$y=\sum_i h_i\phi(w_i,x)$$, являющееся линейной комбинацией базисных функций. Но в отличие от персептронов, где эти функции зависели от проекций на набор гиперплоскостей $$\sigma(wx)$$, в сетях радиального базиса используются функции (чаще всего - гауссовы), зависящие от расстояний до опорных центров:$$y=\sum_i h_i\phi_i\left(\left|w_i-x\right|\right), \phi_i(z)=e^{-z^2/\sigma^2_i}.$$
Как тот, так и другой набор базисных функций обеспечивают возможность аппроксимации любой непрерывной функции с произвольной точностью. Основное различие между ними в способе кодирования информации на скрытом слое. Если персепторны используют глобальные переменные (наборы бесконечных гиперплоскостей), то сети радиального базиса опираются на компактные шары, окружающие набор опорных центров (рис 4.15(рис 4.15) Глобальная (персептроны) и локальная (сети радиального базиса) методы аппроксимации
В первом случае в аппроксимации в окрестности любой точки участвуют все нейроны скрытого слоя, во втором - лишь ближайшие. Как следствие такой неэффективности, в последнем случае количество опорных функций, необходимых для аппроксимации с заданной точностью, возрастает экспоненциально с размерностью пространства. Это основной недостаток сетей радиального базиса. Основное же их преимущество над персептронами - в простоте обучения.
Относительная автономность базисных функций позволяет разделить обучение на два этапа. На первом этапе обучается первый - соревновательный - слой сети, осуществляя квантование данных. На втором этапе происходит быстрое обучение второго слоя матричными методами, т. к. нахождение коэффициентов второго слоя представляет собой линейную задачу.
Подобная возможность раздельного обучения слоев является основным достоинством сетей радиального базиса. В целом же, области применимости персептронов и сетей радиального базиса коррелируют с найденными выше областями эффективности квантования и понижения размерности (см. рисунок 4.11).
В этой лекции мы познакомились со вторым из двух главных типов обучения - обучением без учителя. Этот
....а мудрость его все возрастала, причиняя ему страдание полнотой своей. Ф. Ницше, " Так говорил Заратустра"
В этой лекции рассматривается новый тип обучения нейросетей - обучение без учителя (или для краткости - самообучение), когда сеть самостоятельно формирует свои выходы, адаптируясь к поступающим на ее входы сигналам. Как и прежде, такое обучение предполагает минимизацию некоторого целевого функционала. Задание такого функционала формирует цель, в соответствии с которой сеть осуществляет преобразование входной информации.
В отсутствие внешней цели, "учителем" сети могут служить лишь сами данные, т. е. имеющаяся в них информация, закономерности, отличающие входные данные от случайного шума. Лишь такая избыточность позволяет находить более компактное описание данных, что, согласно общему принципу, изложенному в предыдущей лекции, и является обобщением эмпирических данных. Сжатие данных, уменьшение степени их избыточности, использующее существующие в них закономерности, может существенно облегчить последующую работу с данными, выделяя действительно независимые признаки. Поэтому самообучающиеся сети чаще всего используются именно для предобработки "сырых" данных. Практически, адаптивные сети кодируют входную информацию наиболее компактным при заданных ограничениях кодом.
Длина описания данных пропорциональна, во-первых, разрядности данных $$b$$ (т. е. числу бит), определяющей возможное разнообразие принимаемых ими значений, и, во-вторых, размерности даных $$d$$, т. е. числу компонент входных векторов $$x^\alpha$$. Соответственно, можно различить два предельных типа кодирования, использующих противоположные способы сжатия информации:
(рис 4.1) Два типа сжатия информации. Понижение размерности (a) позволяет описывать данные меньшим числом компонент. Кластеризация или квантование (b) позволяет снизить разнообразие данных, уменьшая число бит, требуемых для описания данныхВозможно также объединение обоих типов кодирования. Например, очень богат приложениями метод топографических карт (или
Как и в случае с персептронами начать изучение нового типа обучения лучше с простейшей сети, состоящей из одного нейрона.
Рассмотрим какие возможности по адаптивной обработке данных имеет единичный нейрон, и как можно сформулировать правила его обучения.
В силу локальности
В простейшей постановке нейрон с одним выходом и d входами обучается на наборе d-мерных данных $$\{x^\alpha\}$$. В этой лекции мы сосредоточимся, в
основном, на обучении
(рис 4.2) Сжатие информации линейным нейроном
Амплитуда этого выхода после соответствующего обучения (т. е. выбора весов по набору примеров $$\{x^\alpha\}$$ ) может служить индикатором того, насколько данный вход соответствует обучающей выборке. Иными словами, нейрон может стать индикатором принадлежности входной информации к заданной группе примеров.
Правило обучения отдельного нейрона-индикатора по-необходимости локально, т. е. базируется только на информации непосредственно доступной самому нейрону - значениях его входов и выхода. Это правило, носящее имя канадского ученого Хебба, играет фундаментальную роль в нейрокомпьютинге, ибо содержит как в зародыше основные свойства самоорганизации нейронных сетей.
Согласно Хеббу (Hebb, 1949), изменение весов нейрона при предъявлении ему примера пропорционально его входам и выходу:$$\Delta w^\tau_j=\eta y^\tau x_j^\tau,$$ или в векторном виде:$$\Delta w^\tau=\eta y^\tau x^\tau.$$
Если сформулировать обучение как задачу оптимизации, мы увидим, что обучающийся по Хеббу нейрон стремится увеличить амплитуду своего выхода:$$\langle\Delta w\rangle=-\eta\frac{\partial{E}}{\partial{w}}, E\left\{w,x^\alpha \right\}=-\frac{1}{2}\langle(w\cdot x)^2\rangle=-\frac{1}{2}\langle y^2\rangle,$$ где усреднение проводится по обучающей выборке $$\{x^\alpha\}$$. Вспомним, что обучение с учителем, напротив, базировалось на идее уменьшения среднего квадрата отклонения от эталона, чему соответствует знак минус в обучении по дельта-правилу. В отсутствие эталона минимизировать нечего: минимизация амплитуды выхода привела бы лишь к уменьшению чувствительности выходов к значениям входов. Максимизация амплитуды, напротив, делает нейрон как можно более чувствительным к различиям входной информации, т. е. превращает его в полезный индикатор.
Указанное различие в целях обучения носит принципиальный характер, т. к. минимум ошибки $$E(w)$$ в данном случае отсутствует. Поэтому обучение по Хеббу в том виде, в каком оно описано выше, на практике не применимо, т. к. приводит к неограниченному возрастанию амплитуды весов.
От этого недостатка, однако, можно довольно просто избавиться, добавив член, препятствующий возрастанию весов. Так, правило обучения
Ойа:$$\Delta w^\tau_j=\eta y^\tau(x^\tau_j-y^\tau w_j),$$
или в векторном виде:$$\Delta w^\tau=\eta y^\tau(x^\tau-y^\tau w),$$
максимизирует чувствительность выхода нейрона при ограниченной амплитуде весов. В этом легко убедиться, приравняв среднее изменение
весов нулю. Умножив затем правую часть на w, видим, что в равновесии: $$0=\langle y^2 \rangle (1-|w|^2)$$. Таким образом, веса обученного нейрона расположены на
гипер-сфере: $$|w|=1$$.
(рис 4.3) При обучении по правилу Ойа, вектор весов нейрона располагается на гипер-сфере в направлении, максимизирующем проекцию входных векторов
Отметим, что это правило обучения по существу эквивалентно дельта-правилу, только обращенному назад - от входов к выходам (т. е. при замене $$x\leftrightarrow y$$ ). Нейрон как бы старается воспроизвести значения своих входов по заданному выходу. Тем самым, такое обучение стремится максимально повысить чувствительность единственного выхода-индикатора к многомерной входной информации, являя собой пример оптимального сжатия информации.
Эту же ситуацию можно описать и по-другому. Представим себе персептрон с одним (здесь - линейным) нейроном на скрытом слое,
в котором число входов и выходов совпадает, причем веса с одинаковыми индексами в обоих слоях одинаковы. Будем учить этот персептрон
воспроизводить в выходном слое значения своих выходов. При этом, дельта-правило обучения верхнего (а тем самым и нижнего) слоя примет
вид правила Ойа:$$\Delta w^\alpha\infty y^\alpha(x^\alpha-\mbox{\~{x}}^\alpha)=y^\alpha(x^\alpha-y^\alpha w).$$
(рис 4.4) Автоассоциативная сеть с узким горлом - аналог правила обучения Ойа
Таким образом, существует определенная параллель между самообучающимися сетями и т. н. автоассоциативными сетями, в которых учителем для выходов являются значения входов. Подобного рода нейросети с узким горлом также способны осуществлять сжатие информации.
Единственный нейрон осуществляет предельное сжатие многомерной информации, выделяя лишь одну скалярную характеристику многомерных данных. Каким бы оптимальным ни было сжатие информации, редко когда удается полностью охарактеризовать многомерные данные всего одним признаком. Однако, наращиванием числа нейронов можно увеличить выходную информацию. В этом разделе мы обобщим найденное ранее правило обучения на случай нескольких нейронов в самообучающемся слое, опираясь на отмеченную выше аналогию с автоассоциативными сетями.
Итак, пусть теперь на том же наборе d-мерных данных $$\{x^\alpha\}$$ обучается m линейных нейронов:$$y_i=\sum^d_{j=1}w_{ij}x_j\equiv\sum^d_{j=1}\equiv w_i\cdot x
(i=1,\ldots,m).$$
(рис 4.5) Слой линейных нейроновМы хотим, чтобы амплитуды выходных нейронов были набором независимых индикаторов, максимально полно отражающих информацию о многомерном
входе сети.
Если мы просто поместим несколько нейронов в выходной слой и будем обучать каждый из них независимо от других, мы добьемся лишь многократного дублирования одного и того же выхода. Очевидно, что для получения нескольких содержательных признаков на выходе исходное правило обучения должно быть каким-то образом модифицировано - за счет включения взаимодействия между нейронами.
В нашей трактовке правила обучения отдельного нейрона, последний пытается воспроизвести значения своих входов по амплитуде своего
выхода. Обобщая это наблюдение, логично было бы предложить правило, по которому значения входов восстанавливаются по всей выходной
информации. Следуя этой линии рассуждений получаем правило Ойа для
Такое обучение эквивалентно сети с узким горлом из скрытых линейных нейронов, обученной воспроизводить на выходе значения
своих входов.
(рис 4.6) Автоассоциативная сеть с узким горлом - аналог правила обучения Ойа
Скрытый слой такой сети, так же как и слой Ойа, осуществляет оптимальное кодирование входных данных, и содержит максимально возможное при данных ограничениях количество информации.
Вывод о способности нейронных сетей самостоятельно выделять наиболее значимые признаки в потоках информации, обучаясь по очень простым локальным правилам, важен с общенаучной точки зрения. Изучение этих механизмов помогает глубже понять как функционирует мозг. Однако есть ли в описанных выше нейроалгоритмах какой-нибудь практический смысл?
Действительно, для этих целей существуют хорошо известные алгоритмы стандартного статистического анализа. В частности, анализ главных компонент также выделяет основные признаки, осуществляя оптимальное линейное сжатие информации. Более того, можно показать, что сжатие информации слоем Ойа эквивалентно анализу главных компонент . Это и не удивительно, поскольку оба метода оптимальны при одних и тех же ограничениях.
Однако стандартный анализ главных компонент дает решение в явном виде, через последовательность матричных операций, а не
итерационно, как в случае
Конечно же есть, по крайней мере по двум причинам:
Иногда,даже простая замена линейной
Однако нас здесь интересуют не конкретные алгоритмы, а, скорее, общие принципы выделения значимых признаков, на которых имеет смысл остановиться несколько более подробно.
Наглядной демонстрацией полезности нелинейного анализа главных компонент является следующий простой пример (см. рис 4.7(рис 4.7) Анализ главных компонент дает линейное подпространство, минимизирующее отклонение данных (a). Он не способен, однако, выявить одномерный характер распределения данных в случае (b). Для их одномерной параметризации нужны нелинейные координаты
Он показывает, что в общем случае нас интересует нелинейное преобразование $$y=F(w,x)$$, $$F:R^d\Rightarrow R^m (d > m)$$, сохраняющее максимальное количество
информации о распределении данных в обучающей выборке $$\{x^\alpha\}$$ и являющееся наиболее сжатым представлением этих данных. Такое представление
данных, не поддающееся дальнейшему сжатию, обладает максимальной энтропией, т.е. их статистическое распределение не отличимо от
случайного шума. Таким образом, в общем случае целевой функцией при сжатии данных является максимизация энтропии: $$\max H(y)$$. Естественно, при
этом предполагается ограниченность диапазона изменения выходов, например: $$y\in [0,1]^m$$ во избежании неограниченного роста
Весьма общим подходом к понижению размерности является использование нелинейных автоассоциативных сетей. В общем случае они должны содержать как минимум три скрытых слоя нейронов. Средний слой - узкое горло, будет в результате обучения выдавать сжатое представление данных . Первый скрытый слой нужен для осуществления произвольного нелинейного кодирования, а последний - для нахождения соответствующего декодера (рис 4.8(рис 4.8) Понижение размерности с помощью автоассоциативных сетей. Минимизация ошибки воспроизведения сетью своих входов эквивалентна оптимальному кодированию в узком горле сети
Задачей автоассоциативных сетей, как уже говорилось, является воспроизведение на выходе сети значений своих входов. Вторая половина сети - декодер - при этом опирается лишь на кодированную информацию в узком горле сети. Качество воспроизведения данных по их кодированному представлению измеряется условной энтропией $$H(x|y)$$. Чем она меньше, тем меньше неопределенность, т. е. лучше воспроизведение. Нетрудно показать, что минимизация неопределенности эквивалентна максимизации энтропии кодирования:$$\min H(x|y)=\min \{H(x,y)-H(y)\}=\max H(y).$$
Действительно, механическая процедура кодирования не вносит дополнительной неопределенности, так что совместная энтропия входов и их кодового представления равна энтропии самих входов $$H(x,y)=H(x)+H(y|x)=H(x)$$ и, следовательно, не зависит от параметров сети.
Привлекательной чертой такого подхода к сжатию информации является его общность. Однако многочисленные локальные минимумы и трудоемкость обучения существенно снижают его практическую ценность.
Более компактные схемы сжатия обеспечивает метод предикторов.
Условие максимизации совместной энтропии выходов можно переписать в виде:$$\max H(y)=\max\langle -\log P(y)\rangle=\\=\max\langle -\log P(y_m|y_{m-1}\ldots y_1)-\ldots -\log P(y_2|y_1)-\log P(y_1)\rangle$$ Условные вероятности, входящие в это выражение, характеризуют разброс предсказаний каждого выхода, основанного на знании других выходов, стоящих справа от горизонтальной черты. Предположим, что мы используем дополнительные сети-предикторы, по одной для каждого выхода, специально обучаемые такому предсказанию (рис 4.9(рис 4.9) Выделение независимых компонент с использованием предикторов
Обозначим $$\hat{y}_k $$. выход сети-предиктора, предсказывающей значение переменной $$y_k$$.. Целевой функцией такой сети будет минимизация ошибки предсказания:$$\min\langle(y_k-\hat{y}_k)^2\rangle.$$ Отталкиваясь от значений $$\hat{y}_k$$, основная сеть будет, напротив, максимизировать отклонение от предсказаний, ставя себе целью:$$\max\langle\sum_k-\log P(y_k|y_{k-1}\ldots y_1)=\max\langle(y_k-\hat{y}_k)^2\rangle .$$
Таким образом, во взаимном соревновании основная и дополнительные сети обеспечивают постепенное выявление статистически независимых признаков, осуществляющих оптимальное кодирование.
Размер сетей-предикторов определяется количеством выходов сети m, так что их суммарный объем, как правило, много меньше,
чем размер декодера в автоассоциативной сети, определяемый числом входов d. В этом и состоит основное преимущество данного подхода.
Предикторы вводят связи между признаками, обеспечивающие их статистическую независимость. В частном случае линейных предикторов дополнительные сети вырождаются в латеральные связи между нейронами последнего слоя. Эти связи обучаются таким образом, чтобы выходы нейронов этого слоя были некоррелированы.
Между тем, можно предложить и такую схему латеральных связей, которая, наоборот, обеспечивает максимальную коррелированность выходов. Допустим, например, что выход каждого нейрона подается на его вход с положительным весом, а на вход остальных нейронов слоя - с отрицательным. Тем самым, каждый нейрон будет усиливать свой выход и подавлять активность остальных. При логистической функции активации, препятствующей бесконечному росту, победителем в этой борьбе выйдет нейрон с максимальным первоначальным значением выхода. Его значение возрастет до единицы, а активность остальных нейронов затухнет до нуля.
Такие соревновательные слои нейронов также можно использовать для сжатия информации, но это сжатие будет основано на совершенно других принципах.
В начале данной лекции мы упомянули два главных способа уменьшения избыточности: снижение размерности данных и уменьшение их разнообразия при той же размерности. До сих пор речь шла о первом способе. Обратимся теперь к второму. Этот способ подразумевает другие правила обучения нейронов.
В Хеббовском и производных от него алгоритмах обучения активность выходных нейронов стремится быть по возможности более независимой друг от друга. Напротив, в соревновательном обучении, к рассмотрению которого мы приступаем, выходы сети максимально скоррелированы: при любом значении входа активность всех нейронов, кроме т.н. нейрона-победителя одинакова и равна нулю. Такой режим функционирования сети называется победитель забирает все.
Нейрон-победитель (с индексом $$i^{\ast}$$ ), свой для каждого входного вектора, будет служить прототипом этого вектора. Поэтому победитель выбирается так, что его вектор весов $$w_{i^{\ast}}$$, определенный в том же d-мерном пространстве, находится ближе к данному входному вектору , чем у всех остальных нейронов: $$|w_{i^{\ast}}-x|\leq|w_i-x|$$ для всех i. Если, как это обычно и делается (вспомним слой Ойа), применять правила обучения нейронов, обеспечивающие одинаковую нормировку всех весов, например, $$|w_i|=1$$, то победителем окажется нейрон, дающий наибольший отклик на данный входной стимул: $$w_{i^{\ast}}\cdot x\geq w_i\cdot x, \forall i$$. Выход такого нейрона усиливается до единичного, а остальных - подавляется до нуля.
Количество нейронов в соревновательном слое определяет максимальное разнообразие выходов и выбирается в соответствии с требуемой степенью детализации входной информации. Обученная сеть может затем классифицировать входы: нейрон-победитель определяет к какому классу относится данный входной вектор.
В отличие от обучения с учителем, самообучение не предполагает априорного задания структуры классов. Входные векторы должны быть разбиты по категориям (кластерам) согласуясь с внутренними закономерностями самих данных. В этом и состоит задача обучения соревновательного слоя нейронов.
Базовый алгоритм обучения соревновательного слоя остается неизменым:$$\Delta w^\tau_i=\eta y_i^\tau\left(x^\tau-\sum_k y_k^\tau w_k\right)$$ поскольку задача сети также осталась прежней - как можно точнее отразить входную информацию в выходах сети. Отличие появляется лишь из-за нового способа кодирования выходной информации. В соревновательном слое лишь один нейрон-победитель имеет ненулевой (единичный) выход. Соответственно, в согласии с выписанным выше правилом, лишь его веса корректируются по предъявлении данного примера, причем для победителя правило обучения имеет вид:$$\Delta w^\tau_{i^{\ast}}=\eta\left(x^\tau-w_{i^{\ast}}\right)$$
Описанный выше базовый алгоритм обучения на практике обычно несколько модифицируют, т. к. он, например, допускает существование т. н. мертвых нейронов, которые никогда не выигрывают, и, следовательно, бесполезны. Самый простой способ избежать их появления - выбирать в качестве начальных значений весов случайно выбранные в обучающей выборке входные вектора.
Такой способ хорош еще и тем, что при достаточно большом числе прототипов он способствует равной "нагрузке" всех нейронов-прототипов. Это соответствует максимизации энтропии выходов в случае соревновательного слоя. В идеале каждый из нейронов соревновательного слоя должен одинаково часто становились победителем, чтобы априори невозможно было бы предсказать какой из них победит при случайном выборе входного вектора из обучающей выборки.
Наиболее быструю сходимость обеспечивает пакетный (batch)
Записав правило соревновательного обучения в градиентном виде: $$\langle\Delta w\rangle=-\eta\frac{\partial{E}}{\partial{w}}$$, легко убедиться, что оно минимизирует квадратичное отклонение входных векторов от их прототипов - весов нейронов-победителей:$$E=\frac{1}{2}\sum_\alpha\left|x^\alpha-w^\alpha_{\ast}\right|.$$
Иными словами, сеть осуществляет кластеризацию данных: находит такие усредненные прототипы, которые минимизируют ошибку огрубления данных. Недостаток такого варианта кластеризации очевиден - "навязывание" количества кластеров, равного числу нейронов. В идеале сеть сама должна находить число кластеров, соответствующее реальной кластеризации векторов в обучающей выборке. Адаптивный подбор числа нейронов осуществляют несколько более сложные алгоритмы, такие, например, как растущий нейронный газ.
Идея последнего подхода состоит в последовательном увеличении числа нейронов-прототипов путем их "деления". Общую ошибку сети можно записать как сумму индивидуальных ошибок каждого нейрона:$$E=\frac{1}{2}\sum_k E=\frac{1}{2}\sum_{\alpha\in C_k}\left|x^\alpha-w^k\right|^2$$
Естественно предположить, что наибольшую ошибку будут иметь нейроны, окруженные слишком большим числом примеров и/или имеющие слишком большую ячейку. Такие нейроны и являются, в первую очередь, кандидатами на "почкование" (см. рис 4.10(рис 4.10) Деление нейрона с максимальной ошибкой в "растущем нейронном газе"
Соревновательные слои нейронов широко используются для квантования данных (
Сжатие данных в этом случае достигается за счет того, что каждый прототип можно закодировать меньшим числом бит, чем соответствующие ему вектора данных. При наличии прототипов для идентификации любого из них достаточно лишь $$\log_2 m$$. бит, вместо bd бит описывающих произвольный входной вектор.
В этой лекции мы рассмотрели два разных типа обучения, основанные на разных принципах кодирования информации выходным слоем нейронов. Логично теперь сравнить их по степени вычислительной сложности и выяснить когда выгоднее применять понижение размерности, а когда - квантование входной информации.
Как мы видели, алгоритм обучения сетей, понижающих размерность, сводится к обычному обучению с учителем, сложность которого была оценена ранее. Такое обучение требует $$\sim PW^2$$ операций, где $$W$$ - число синаптических весов сети, а $$P$$ - число обучающих примеров. Для однослойной сети с $$d$$ входами и $$m$$ выходными нейронами число весов равно $$W\approx dm$$ и сложность обучения $$C$$ можно оценить как $$C_1\sim Pd^2m^2=Pd^4/K^2$$, где $$K=d/m$$ - коэффициент сжатия информации.
Кластеризация или квантование требуют настройки гораздо большего количества весов - из-за неэффективного способа кодирования. Зато такое избыточное кодирование упрощает алгоритм обучения. Действительно, квадратичная функция ошибки в этом случае диагональна, и в принципе достижение минимума возможно за $$O(1)$$ шагов (например в пакетном режиме), что в данном случае потребует $$\sim PW$$ операций. Число весов, как и прежде, равно $$W\approx dm$$, но степень сжатия информации в данном случае определяется по-другому: $$K=db/\log_2 m$$. Сложность обучения как функция степени сжатия запишется в виде: $$C_2\sim Pdm \sim Pd2^{db/K}$$.
При одинаковой степени сжатия, отношение сложности квантования к сложности данных снижения размерности запишется в виде:$$\frac{C_2}{C_1}\sim \frac{K^22^{db/K}}{d^3}$$
Рисунок 4.11 показывает области параметров, при которых выгоднее применять тот или иной способ сжатия
информации.
(рис 4.11) Области, где выгоднее использовать понижение размерности или квантование
Наибольшее сжатие возможно методом квантования, но из-за экспоненциального роста числа кластеров, при большой размерности данных выгоднее использовать понижение размерности. Максимальное сжатие при понижении размерности равно $$K_{1,\max}=d$$, тогда как квантованием можно достичь сжатия $$K_{2,\max}=bd$$ (при двух нейронах-прототипах). Область недостижимых сжатий $$K>bd$$ показана на рисунке серым.
В качестве примера рассмотрим типичные параметры сжатия изображений в формате JPEG. При этом способе сжатия изображение
разбивается на квадраты со стороной $$8\times 8$$ пикселей, которые и являются входными векторами, подлежащими сжатию. Следовательно, в данном
случае $$d=8\times 8=64$$. Предположим, что картинка содержит $$2^8=256$$ градаций серого цвета, т. е. точность представления данных $$b=8$$. Тогда координата абсциссы на
приведенном выше графике будет $$d/b^2=1$$. Как следует из графика при любых допустимых степенях сжатия в данном случае оптимальным с точки
зрения вычислительных затрат является снижение
Однако, при увеличении размеров элементарного блока, появляется область высоких степеней сжатия, достижимых лишь с использованием квантования. Скажем, при $$d=64\times 64=4096$$, когда $$d/b^2=64$$, в соответствии с графиком (см. рисунок 4.11), квантование следует применять для сжатия более $$K/b^3\approx2$$, т. е. $$K>10^3$$.
Один из вариантов модификации базового правила обучения соревновательного слоя состоит в том, чтобы обучать не только нейрон-победитель, но и его "соседей", хотя и с меньшей скоростью. Такой подход - "подтягивание" ближайших к победителю нейронов - применяется в топографических картах Кохонена. В силу большой практической значимости этой нейросетевой архитектуры, остановимся на ней более подробно.
До сих пор нейроны выходного слоя были неупорядочены: положение нейрона-победителя в соревновательном слое не имело ничего общего с координатами его весов во входном пространстве. Оказывается, что небольшой модификацией соревновательного обучения можно добиться того, что положение нейрона в выходном слое будет коррелировать с положением прототипов в многомерном пространстве входов сети: близким нейронам будут соответствовать близкие значения входов. Тем самым, появляется возможность строить топографические карты чрезвычайно полезные для визуализации многомерной информации. Обычно для этого используют соревновательные слои в виде двумерных сеток. Такой подход сочетает квантование данных с отображением, понижающим размерность. Причем это достигается с помощью всего лишь одного слоя нейронов, что существенно облегчает обучение.
В 1982 году финский ученый Тойво Кохонен (Kohonen, 1982) предложил ввести в базовое правило соревновательного обучения информацию о расположении нейронов в выходном слое. Для этого нейроны выходного слоя упорядочиваются, образуя одно- или двумерные решетки. Т. е. теперь положение нейронов в такой решетке маркируется векторным индексом $$i$$. Такое упорядочение естественым образом вводит расстояние между нейронами $$|i-j|$$ в слое. Модифицированное Кохоненом правило соревновательного обучения учитывает расстояние нейронов от нейрона-победителя:$$\Delta w^\tau_i=\eta\Lambda (|i-i^{\ast}|)(x^\tau-w_i).$$
Функция соседства $$\Lambdai(|-i^{\ast}|)$$ равна единице для нейрона-победителя с индексом $$i^{\ast}$$ и постепенно спадает с расстоянием, например по закону $$\Lambda(a)=\exp(-a^2/\sigma^2)$$. Как темп обучения $$\eta$$, так и радиус взаимодействия нейронов $$\sigma$$ постепенно уменьшаются в процессе обучения, так что на конечной стадии обучения мы возвращаемся к базовому правилу адаптации весов только нейронов-победителей.
В отличие от "газоподобной" динамики обучения при индивидуальной подстройке прототипов (весов нейронов), обучение
по Кохонену напоминает натягивание эластичной сетки прототипов на массив данных из обучающей выборки. По мере обучения эластичность
сети постепенно увеличивается, чтобы не мешать окончательной тонкой подстройке весов.
(рис 4.12) Двумерная топографическая карта набора трехмерных данных. Каждая точка в трехмерном пространстве попадает в свою ячейку сетки имеющую координату ближайшего к ней нейрона из двумерной карты
В результате такого обучения мы получаем не только квантование входов, но и упорядочивание входной информации в виде одно- или двумерной карты. Каждый многомерный вектор имеет свою координату на этой сетке, причем чем ближе координаты двух векторов на карте, тем ближе они и в исходном пространстве. Такая топографическая карта дает наглядное представление о структуре данных в многомерном входном пространстве, геометрию которого мы не в состоянии представить себе иным способом. Визуализация многомерной информации является главным применением карт Кохонена.
Заметим, что в согласии с общим житейским принципом "бесплатных обедов не бывает", топографические карты сохраняют
отношение близости лишь локально: близкие на карте области близки и в исходном пространстве, но не наоборот
(рисунок 4.13). В общем случае не существует отображения, понижающего размерность и сохраняющего
отношения близости глобально.
(рис 4.13) Пример одномерной карты двумерных данных. Стрелкой показана область нарушения непрерывности отображения: близкие на плоскости точки отображаются на противоположные концы карты
Удобным инструментом визуализации данных является раскраска топографических карт, аналогично тому, как это делают на обычных
географических картах. Каждый признак данных порождает свою раскраску ячеек карты - по величине среднего значения этого признака у
данных, попавших в данную ячейку.
(рис 4.14) Раскраска топографической карты, индуцированная i-ой компонентой входных данных
Собрав воедино карты всех интересующих нас признаков, получим топографический атлас, дающий интегральное представление о структуре многомерных данных. Далее в этой книге мы рассмотрим практическое применение этой методики к анализу балансовых отчетов и предсказанию банкротств.
Самообучающиеся сети, рассмотренные в этой лекции, широко используются для предобработки данных, например при распознавании образов в
пространстве очень большой размерности. В этом случае для того, чтобы процедура обучения с учителем была эффективна, требуется сначала
сжать входную информацию тем или иным способом: либо выделить значимые признаки, понизив размерность, либо произвести квантование
данных. Первый путь просто понижает число входов персептрона. Второй же способ требует отдельного рассмотрения, поскольку лежит в
основе очень популярной архитектуры - сетей радиального базиса (
Сеть радиального базиса напоминают персептрон с одним скрытым слоем, осуществляя нелинейное отображение $$R^d\Rightarrow R^m$$: $$y=\sum_i h_i\phi(w_i,x)$$, являющееся линейной комбинацией базисных функций. Но в отличие от персептронов, где эти функции зависели от проекций на набор гиперплоскостей $$\sigma(wx)$$, в сетях радиального базиса используются функции (чаще всего - гауссовы), зависящие от расстояний до опорных центров:$$y=\sum_i h_i\phi_i\left(\left|w_i-x\right|\right), \phi_i(z)=e^{-z^2/\sigma^2_i}.$$
Как тот, так и другой набор базисных функций обеспечивают возможность аппроксимации любой непрерывной функции с произвольной точностью. Основное различие между ними в способе кодирования информации на скрытом слое. Если персепторны используют глобальные переменные (наборы бесконечных гиперплоскостей), то сети радиального базиса опираются на компактные шары, окружающие набор опорных центров (рис 4.15(рис 4.15) Глобальная (персептроны) и локальная (сети радиального базиса) методы аппроксимации
В первом случае в аппроксимации в окрестности любой точки участвуют все нейроны скрытого слоя, во втором - лишь ближайшие. Как следствие такой неэффективности, в последнем случае количество опорных функций, необходимых для аппроксимации с заданной точностью, возрастает экспоненциально с размерностью пространства. Это основной недостаток сетей радиального базиса. Основное же их преимущество над персептронами - в простоте обучения.
Относительная автономность базисных функций позволяет разделить обучение на два этапа. На первом этапе обучается первый - соревновательный - слой сети, осуществляя квантование данных. На втором этапе происходит быстрое обучение второго слоя матричными методами, т. к. нахождение коэффициентов второго слоя представляет собой линейную задачу.
Подобная возможность раздельного обучения слоев является основным достоинством сетей радиального базиса. В целом же, области применимости персептронов и сетей радиального базиса коррелируют с найденными выше областями эффективности квантования и понижения размерности (см. рисунок 4.11).
В этой лекции мы познакомились со вторым из двух главных типов обучения - обучением без учителя. Этот
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.