Оптимальное прореживание нейронных сетей
Материал из MachineLearning.
Оптимальное прореживание нейронных сетей (англ. optimal brain surgery) — метод упрощения структуры регрессионной модели, например, нейронной сети. Основная идея прореживания (англ. pruning) заключается в том, что те элементы модели или те нейроны сети, которые оказывают малое влияние на ошибку аппроксимации, можно исключить из модели без значительного ухудшения качества аппроксимации.
История метода
Метод второго порядка (использующий анализ чувствительности, основанный на вычислении вторых производных) был предложен ЛеКюном в 1990 году[1] и назывался «optimal brain damage». Затем он был развит Хассиби[1] и получил название «optimal brain surgery».
Несколько ранее и одновременно были предложены методы прореживания[1] и скелетонизации[1] нейронных сетей, основанные просто на удалении элементов с наименьшими весами (методы нулевого порядка).
Наконец, в том же 1990 году был предложен эффективный метод, основанный на анализе первых производных в ходе обучения и не требующий отдельного дифференцирования.[1] Кроме задачи удаления элементов решались также другие проблемы упрощения: уменьшение разрядности весов и сигналов (огрубление), получение интерпретируемого знания и т. д. Вся совокупность подходов получила также название «контрастирование нейронных сетей».
Описание основных показателей чувствительности представлено а обзоре А. Н. Горбаня с соавторами.[1]
Е. М. Миркес в проекте «Идеального нейрокомпьютера» ввёл элемент «Контрастёр», описал его основные функции и построил язык описания.[1]
Описание метода второго порядка
Рассмотрим регрессионную модель , в которой — независимая переменная, — зависимая переменная, — параметры регрессионной модели , и — аддитивная случайная величина. Задана регрессионная выборка — множество пар , . Для построения регрессии требуется найти такие параметры , которые доставляли бы наименьшее значение функции ошибки .
Найдем локальную аппроксимацию функции в окрестности точки с помощью разложения в ряд Тейлора:
где — возмущение вектора параметров , — градиент , и — матрица вторых производных (матрица Гессе) .
Предполагается, что функция достигает своего максимума при значении параметров и ее поверхность квадратична. Таким образом, предыдущее выражение можно упростить и представить в виде
Пусть исключение элемента модели есть исключение одного параметра модели, . Исключенный параметр будем считать равным нулю. Это самое сильное ограничение, не позволяющее применять данный метод для регрессионных моделей произвольного вида. Исключение элемента эквивалентно выражению , иначе
где — вектор, -й элемент которого равен единице, все остальные элементы равны нулю.
Для нахождения исключаемого элемента требуется минимизировать квадратичную форму относительно при ограничениях , для всех значений . Индекс , который доставляет минимум квадратичной форме, задает номер исключаемого элемента:
Задача условной минимизации решается с помощью введения Лагранжиана
в котором — множитель Лагранжа. Дифференцируя Лагранжиан по приращению параметров и приравнивая его к нулю получаем (для каждого индекса параметра )
Этому значению вектора приращений параметров соответствует минимальное значение Лагранжиана
Полученное выражение называется мерой выпуклости функции ошибки при изменении параметра .
Функция зависит от квадрата параметра . Это что говорит о том, что параметр с малым значением скорее всего будет удален из модели. Однако если величина достаточно мала, это означает, что данный параметр оказывает существенное влияние на качество аппроксимации модели.
Алгоритм
Задана выборка , модель , функция ошибки . Для упрощения структуры регрессионной модели выполняем следующие шаги.
- Настраиваем модель, получаем параметры .
- Для приращения решаем оптимизационную задачу, находим для каждого индекса минимальное значение Лагранжиана .
- Выбираем среди минимальное, отсекаем элемент модели, соответствующий -му параметру.
- Добавляем к вектору параметров , вектор приращений , соответствующий отсеченому параметру.
- Получаем упрощенную модель. Модель перенастраивать не требуется.
- Процедуру можно повторять до тех пор, пока значение ошибки не превзойдет заранее заданное.
Смотри также
Литература
- Хайкин С. Нейронные сети, полный курс. М: Вильямс. 2006.
- Миркес Е. М., Нейрокомпьютер. Проект стандарта.- Новосибирск: Наука, Сибирская издательская фирма РАН, 1998 .- 337 с.