Оптимальное прореживание нейронных сетей

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

(Перенаправлено с OBD)
Перейти к: навигация, поиск

Содержание

Оптимальное прореживание нейронных сетей (англ. optimal brain surgery) — метод упрощения структуры регрессионной модели, например, нейронной сети. Основная идея прореживания (англ. pruning) заключается в том, что те элементы модели или те нейроны сети, которые оказывают малое влияние на ошибку аппроксимации, можно исключить из модели без значительного ухудшения качества аппроксимации.

История метода

Метод второго порядка (использующий анализ чувствительности, основанный на вычислении вторых производных) был предложен ЛеКюном в 1990 году[1] и назывался «optimal brain damage». Затем он был развит Хассиби[1] и получил название «optimal brain surgery».

Несколько ранее были предложены методы прореживания[1] и скелетонизации[1] нейронных сетей, основанные просто на удалении элементов с наименьшими весами (методы нулевого порядка).

Наконец, в том же 1990 году А. Н. Горбанём был предложен эффективный метод, основанный на анализе первых производных в ходе обучения градиентными методами и не требующий отдельного дифференцирования.[1] Кроме задачи удаления элементов решались также другие проблемы упрощения: уменьшение разрядности весов и сигналов (огрубление), упрощение функций активации нейронов, получение интерпретируемого знания и т. д. Вся совокупность подходов получила также название «контрастирование нейронных сетей». Описание основных показателей чувствительности представлено в обзоре.[1]

Е. М. Миркес в проекте «Идеального нейрокомпьютера» на основе подхода Горбаня и опыта разработки прикладного программного обеспечения ввёл элемент «Контрастёр», построил библиотеку его основных функций и разработал язык описания.[1]

Для подготовки нейронной сети к упрощению оказывается полезным ввести в оценку её работы, минимизируемую при обучении, штрафные слагаемые (англ. penalty), штрафующие за сложность. Эти алгоритмы введены в книге А. Н. Горбаня[1]. Такой подход был впоследствии переоткрыт и положен в основу теории структурного обучения Ишикавы и Зурады.[1][1]

Описание метода второго порядка

Рассмотрим регрессионную модель y_n=f(\mathbf{w},\x_n)+\nu, в которой \x — независимая переменная, y — зависимая переменная, \mathbf{w} — параметры регрессионной модели f, и \nu — аддитивная случайная величина. Задана регрессионная выборка — множество пар D=\{(\mathbf{x}_n, y_n)\}, n=1,\ldots,N. Для построения регрессии требуется найти такие параметры \mathbf{w}^{MP}, которые доставляли бы наименьшее значение функции ошибки E_D.

Найдем локальную аппроксимацию функции E_D в окрестности точки  \mathbf{w}^{MP} с помощью разложения в ряд Тейлора:

E_D(\mathbf{w}+\Delta\mathbf{w}) = E_D(\mathbf{w}) + \mathbf{g}^T(\mathbf{w})\Delta\mathbf{w} + \frac{1}{2}\Delta\mathbf{w}^TH\Delta\mathbf{w} +o(\|\mathbf{w}\|^3),

где \mathbf{w} — возмущение вектора параметров \mathbf{w}, \mathbf{g} — градиент \frac{\partial E_D}{\partial \mathbf{w}}, и H=H(\mathbf{w}) — матрица вторых производных (матрица Гессе) \frac{\partial^2 E_D}{\partial \mathbf{w}^2}.

Предполагается, что функция E_D(\mathbf{w}) достигает своего минимума при значении параметров \mathbf{w}=\mathbf{w}^{MP} и ее поверхность квадратична. Таким образом, предыдущее выражение можно упростить и представить в виде

\Delta E_D = E_D(\mathbf{w}+\Delta\mathbf{w})-E_D(\mathbf{w}) = \frac{1}{2}\Delta\mathbf{w}^TH\Delta\mathbf{w}.

Пусть исключение элемента модели есть исключение одного параметра модели, w_i. Исключенный параметр будем считать равным нулю. Это самое сильное ограничение, не позволяющее применять данный метод для регрессионных моделей произвольного вида. Исключение элемента эквивалентно выражению \Delta w_i+w_i=0, иначе

\mathbf{e}_i^T\Delta\mathbf{w}+w_i=0,

где \mathbf{e}_i — вектор, i-й элемент которого равен единице, все остальные элементы равны нулю.

Для нахождения исключаемого элемента требуется минимизировать квадратичную форму \Delta\mathbf{w}^TH\Delta\mathbf{w} относительно \Delta\mathbf{w} при ограничениях \mathbf{e}_i^T\Delta \mathbf{w}+w_i=0, для всех значений i. Индекс i, который доставляет минимум квадратичной форме, задает номер исключаемого элемента:

i = \arg\min_i(\min_{\Delta\mathbf{w}} (\Delta\mathbf{w}^TH\Delta\mathbf{w} | \mathbf{e}_i^T\Delta\mathbf{w}+w_i=0)).

Задача условной минимизации решается с помощью введения Лагранжиана

S=\Delta\mathbf{w}^TH\Delta\mathbf{w}-\lambda(\mathbf{e}_i^T\Delta\mathbf{w}+w_i),

в котором \lambda — множитель Лагранжа. Дифференцируя Лагранжиан по приращению параметров и приравнивая его к нулю получаем (для каждого индекса i параметра w_i)

\Delta\mathbf{w}=-\frac{w_i}{[H^{-1}]_{ii}}H^{-1}\mathbf{e}_i.

Этому значению вектора приращений параметров соответствует минимальное значение Лагранжиана

L_i=\frac{w_i^2}{2[H^{-1}]_{ii}}.

Полученное выражение называется мерой выпуклости функции ошибки E_D при изменении параметра w_i.

Функция L_i зависит от квадрата параметра w_i. Это что говорит о том, что параметр с малым значением скорее всего будет удален из модели. Однако если величина [H^{-1}]_{ii} достаточно мала, это означает, что данный параметр оказывает существенное влияние на качество аппроксимации модели.

Алгоритм

Задана выборка D, модель f(\mathbf{w},\x), функция ошибки E_D. Для упрощения структуры регрессионной модели выполняем следующие шаги.

  1. Настраиваем модель, получаем параметры \mathbf{w}^{MP}=\arg\min(E_D(\mathbf{w}|f,D)).
  2. Для приращения \mathbf{w}^{MP}+\Delta\mathbf{w} решаем оптимизационную задачу, находим для каждого индекса i минимальное значение Лагранжиана L_i.
  3. Выбираем среди L_i минимальное, отсекаем элемент модели, соответствующий i-му параметру.
  4. Добавляем к вектору параметров \mathbf{w}^{MP}, вектор приращений \Delta\mathbf{w}, соответствующий отсеченому параметру.
  5. Получаем упрощенную модель. Модель перенастраивать не требуется.
  6. Процедуру можно повторять до тех пор, пока значение ошибки не превзойдет заранее заданное.

Смотри также

  1. Регрессионный анализ
  2. Регрессионная модель
  3. Нелинейная регрессия
  4. Прореживание двухслойной нейронной сети (пример)

Литература

  1. Хайкин С. Нейронные сети, полный курс. 2е издание, испр. - М: Вильямс. 2008. - 1103 с. ISBN 978-5-8459-0890-2
  2. Миркес Е. М., Нейрокомпьютер. Проект стандарта.- Новосибирск: Наука, Сибирская издательская фирма РАН, 1999. - 337 с. ISBN 5-02-031409-9
  3. Горбань А. Н., Обучение нейронных сетей. М.: изд. СССР-США СП «Параграф», 1990. 160 с.

Примечания

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