Оптимальное прореживание нейронных сетей
Материал из MachineLearning.
(→Описание метода второго порядка) |
|||
(25 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | '''Оптимальное прореживание нейронных сетей''' (optimal brain surgery) — метод упрощения структуры [[регрессионная модель|регрессионной модели]], например, [[нейронная сеть|нейронной сети]]. | + | {{TOCright}} |
- | Основная идея | + | '''Оптимальное прореживание нейронных сетей''' (англ. optimal brain surgery) — метод упрощения структуры [[регрессионная модель|регрессионной модели]], например, [[нейронная сеть|нейронной сети]]. |
+ | Основная идея прореживания (англ. pruning) заключается в том, что те элементы модели или те нейроны сети, которые оказывают малое влияние на ошибку аппроксимации, | ||
можно исключить из модели без значительного ухудшения качества аппроксимации. | можно исключить из модели без значительного ухудшения качества аппроксимации. | ||
- | |||
- | |||
- | |||
- | == Описание метода == | + | == История метода == |
+ | |||
+ | ''Метод второго порядка'' (использующий '''анализ чувствительности''', основанный на вычислении вторых производных) был предложен ЛеКюном в 1990 году<ref>LeCun Y., Denker J. S., Solla S. A. [http://citeseer.ist.psu.edu/lecun90optimal.html Optimal brain damage] / Touretzky D. S. ed., Advances in Neural Information Processing Systems 2. Morgan Kaufmann, San Mateo, CA. 1990. P. 598—605. </ref> и назывался «optimal brain damage». Затем он был развит Хассиби<ref>Hassibi B., Stork D. G. [http://citeseer.ist.psu.edu/hassibi93second.html Second order derivatives for network pruning: Optimal brain surgeon] / NIPS 5. 1993.</ref> и получил название «optimal brain surgery». | ||
+ | |||
+ | Несколько ранее были предложены методы прореживания<ref>Sietsma J., Dow R.J.F., Neural net pruning — why and how. In: Proc. IJCNN'88, San Diego, CA., IEEE, Vol.1. — pp.325-333.</ref> и скелетонизации<ref>Mozer M.C., Smolensky P. Skeletonization: a technique for trimming the fat from a network via relevance assessment. In: Advances in Neural Network Information Processing Systems, Morgan Kaufmann, 1989. Vol.1, pp.107-115.</ref> нейронных сетей, основанные просто на удалении элементов с наименьшими весами (''методы нулевого порядка''). | ||
+ | |||
+ | Наконец, в том же 1990 году А. Н. Горбанём был предложен эффективный метод, основанный на анализе первых производных в ходе обучения градиентными методами и не требующий отдельного дифференцирования.<ref name="Gorban">Горбань А. Н., Обучение нейронных сетей. М.: изд. СССР-США СП «Параграф», 1990. 160 с.</ref> Кроме задачи удаления элементов решались также другие проблемы упрощения: уменьшение разрядности весов и сигналов (огрубление), упрощение функций активации нейронов, получение интерпретируемого знания и т. д. Вся совокупность подходов получила также название «''контрастирование нейронных сетей''». Описание основных показателей чувствительности представлено в обзоре.<ref>Gorban A. N., Mirkes Eu. M., Tsaregorodtsev V. G. [http://arxiv.org/abs/cond-mat/0307083 Generation of Explicit Knowledge from Empirical Data through Pruning of Trainable Neural Networks] In: Proc. IJCNN'99, Washington DC, July 1999, IEEE, Vol. 6, pp. 4393-4398.</ref> | ||
+ | |||
+ | [http://ru.wikipedia.org/wiki/Миркес Е. М. Миркес] в проекте «Идеального нейрокомпьютера» на основе подхода Горбаня и опыта разработки прикладного программного обеспечения ввёл элемент «Контрастёр», построил библиотеку его основных функций и разработал язык описания.<ref>Миркес Е. М., [http://pca.narod.ru/MirkesNeurocomputer.htm Нейрокомпьютер. Проект стандарта.]- Новосибирск: Наука, Сибирская издательская фирма РАН, 1999 .- 337 с. ISBN 5-02-031409-9 (Глава 9: «Контрастер»)</ref> | ||
+ | |||
+ | Для подготовки нейронной сети к упрощению оказывается полезным ввести в оценку её работы, минимизируемую при обучении, штрафные слагаемые (англ. penalty), штрафующие за сложность. Эти алгоритмы введены в книге А. Н. Горбаня<ref name="Gorban" />. Такой подход был впоследствии переоткрыт и положен в основу ''теории структурного обучения'' Ишикавы и Зурады.<ref>Ishikawa S., Structural learning with forgetting, Neural Networks, 1996, Vol.9, 3, 509-521.</ref><ref>Miller D. A., Zurada, J. M., A dynamical system perspective of structural learning with forgetting, IEEE Transactions on Neural Networks, Vol. 9, 3, 1998, 508-515.</ref> | ||
+ | |||
+ | == Описание метода второго порядка == | ||
Рассмотрим регрессионную модель <tex>y_n=f(\mathbf{w},\x_n)+\nu</tex>, в которой <tex>\x</tex> — [[регрессионный анализ|независимая переменная]], <tex>y</tex> — [[регрессионный анализ|зависимая переменная]], <tex>\mathbf{w}</tex> — параметры регрессионной модели <tex>f</tex>, и <tex>\nu</tex> — аддитивная [[случайная величина]]. Задана [[выборка|регрессионная выборка]] — множество пар <tex>D=\{(\mathbf{x}_n, y_n)\}</tex>, | Рассмотрим регрессионную модель <tex>y_n=f(\mathbf{w},\x_n)+\nu</tex>, в которой <tex>\x</tex> — [[регрессионный анализ|независимая переменная]], <tex>y</tex> — [[регрессионный анализ|зависимая переменная]], <tex>\mathbf{w}</tex> — параметры регрессионной модели <tex>f</tex>, и <tex>\nu</tex> — аддитивная [[случайная величина]]. Задана [[выборка|регрессионная выборка]] — множество пар <tex>D=\{(\mathbf{x}_n, y_n)\}</tex>, | ||
Строка 13: | Строка 23: | ||
Найдем локальную аппроксимацию функции <tex>E_D</tex> в окрестности точки <tex>\mathbf{w}^{MP}</tex> с помощью разложения в [[ряд Тейлора]]: | Найдем локальную аппроксимацию функции <tex>E_D</tex> в окрестности точки <tex>\mathbf{w}^{MP}</tex> с помощью разложения в [[ряд Тейлора]]: | ||
- | + | ::<tex>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),</tex> | |
- | где <tex>\mathbf{w}</tex> — возмущение вектора параметров <tex>\mathbf{w}</tex>, <tex>\mathbf{g}</tex> — градиент <tex>\frac{\partial | + | где <tex>\mathbf{w}</tex> — возмущение вектора параметров <tex>\mathbf{w}</tex>, <tex>\mathbf{g}</tex> — градиент <tex>\frac{\partial E_D}{\partial \mathbf{w}}</tex>, |
- | и <tex>H=H(\mathbf{w})</tex> — матрица вторых производных ([[матрица Гессе]]) <tex>\frac{\partial^2 | + | и <tex>H=H(\mathbf{w})</tex> — матрица вторых производных ([[матрица Гессе]]) <tex>\frac{\partial^2 E_D}{\partial \mathbf{w}^2}</tex>. |
- | Предполагается, что функция <tex>E_D(\mathbf{w})</tex> достигает своего | + | Предполагается, что функция <tex>E_D(\mathbf{w})</tex> достигает своего минимума при значении параметров <tex>\mathbf{w}=\mathbf{w}^{MP}</tex> и ее поверхность квадратична. |
Таким образом, предыдущее выражение можно упростить и представить в виде | Таким образом, предыдущее выражение можно упростить и представить в виде | ||
- | + | ::<tex>\Delta E_D = E_D(\mathbf{w}+\Delta\mathbf{w})-E_D(\mathbf{w}) = \frac{1}{2}\Delta\mathbf{w}^TH\Delta\mathbf{w}.</tex> | |
Пусть исключение элемента модели есть исключение одного параметра модели, <tex>w_i</tex>. | Пусть исключение элемента модели есть исключение одного параметра модели, <tex>w_i</tex>. | ||
Строка 25: | Строка 35: | ||
Это самое сильное ограничение, не позволяющее применять данный метод для регрессионных моделей произвольного вида. | Это самое сильное ограничение, не позволяющее применять данный метод для регрессионных моделей произвольного вида. | ||
Исключение элемента эквивалентно выражению <tex>\Delta w_i+w_i=0</tex>, иначе | Исключение элемента эквивалентно выражению <tex>\Delta w_i+w_i=0</tex>, иначе | ||
- | + | ::<tex>\mathbf{e}_i^T\Delta\mathbf{w}+w_i=0,</tex> | |
где <tex>\mathbf{e}_i</tex> — вектор, <tex>i</tex>-й элемент которого равен единице, все остальные элементы равны нулю. | где <tex>\mathbf{e}_i</tex> — вектор, <tex>i</tex>-й элемент которого равен единице, все остальные элементы равны нулю. | ||
Для нахождения исключаемого элемента требуется минимизировать квадратичную форму <tex>\Delta\mathbf{w}^TH\Delta\mathbf{w}</tex> относительно <tex>\Delta\mathbf{w}</tex> | Для нахождения исключаемого элемента требуется минимизировать квадратичную форму <tex>\Delta\mathbf{w}^TH\Delta\mathbf{w}</tex> относительно <tex>\Delta\mathbf{w}</tex> | ||
- | при ограничениях <tex>\mathbf{e}_i^T+w_i=0</tex>, для всех значений <tex>i</tex>. Индекс <tex>i</tex>, который доставляет минимум квадратичной форме, | + | при ограничениях <tex>\mathbf{e}_i^T\Delta \mathbf{w}+w_i=0</tex>, для всех значений <tex>i</tex>. Индекс <tex>i</tex>, который доставляет минимум квадратичной форме, |
задает номер исключаемого элемента: | задает номер исключаемого элемента: | ||
- | + | ::<tex>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)).</tex> | |
Задача условной минимизации решается с помощью введения [[Лагранжиан]]а | Задача условной минимизации решается с помощью введения [[Лагранжиан]]а | ||
- | + | ::<tex>S=\Delta\mathbf{w}^TH\Delta\mathbf{w}-\lambda(\mathbf{e}_i^T\Delta\mathbf{w}+w_i),</tex> | |
в котором <tex>\lambda</tex> — [[множитель Лагранжа]]. Дифференцируя Лагранжиан по приращению параметров и приравнивая его к нулю получаем | в котором <tex>\lambda</tex> — [[множитель Лагранжа]]. Дифференцируя Лагранжиан по приращению параметров и приравнивая его к нулю получаем | ||
(для каждого индекса <tex>i</tex> параметра <tex>w_i</tex>) | (для каждого индекса <tex>i</tex> параметра <tex>w_i</tex>) | ||
- | + | ::<tex>\Delta\mathbf{w}=-\frac{w_i}{[H^{-1}]_{ii}}H^{-1}\mathbf{e}_i.</tex> | |
Этому значению вектора приращений параметров соответствует минимальное значение Лагранжиана | Этому значению вектора приращений параметров соответствует минимальное значение Лагранжиана | ||
- | + | ::<tex>L_i=\frac{w_i^2}{2[H^{-1}]_{ii}}.</tex> | |
Полученное выражение называется мерой выпуклости функции ошибки <tex>E_D</tex> при изменении параметра <tex>w_i</tex>. | Полученное выражение называется мерой выпуклости функции ошибки <tex>E_D</tex> при изменении параметра <tex>w_i</tex>. | ||
Строка 60: | Строка 70: | ||
# [[Регрессионный анализ]] | # [[Регрессионный анализ]] | ||
# [[Регрессионная модель]] | # [[Регрессионная модель]] | ||
- | + | # [[Нелинейная регрессия]] | |
+ | # [[Прореживание двухслойной нейронной сети (пример)]] | ||
== Литература == | == Литература == | ||
- | # | + | # Хайкин С. Нейронные сети, полный курс. 2е издание, испр. - М: Вильямс. 2008. - 1103 с. ISBN 978-5-8459-0890-2 |
- | + | # Миркес Е. М., [http://pca.narod.ru/MirkesNeurocomputer.htm Нейрокомпьютер. Проект стандарта.]- Новосибирск: Наука, Сибирская издательская фирма РАН, 1999. - 337 с. ISBN 5-02-031409-9 | |
- | + | # Горбань А. Н., [http://lib.sibnet.ru/book/11961 Обучение нейронных сетей]. М.: изд. СССР-США СП «Параграф», 1990. 160 с. | |
+ | |||
+ | == Примечания == | ||
+ | {{список примечаний}} | ||
+ | [[Категория:Нейронные сети]] | ||
[[Категория:Регрессионный анализ]] | [[Категория:Регрессионный анализ]] | ||
[[Категория:Энциклопедия анализа данных]] | [[Категория:Энциклопедия анализа данных]] |
Текущая версия
|
Оптимальное прореживание нейронных сетей (англ. optimal brain surgery) — метод упрощения структуры регрессионной модели, например, нейронной сети. Основная идея прореживания (англ. pruning) заключается в том, что те элементы модели или те нейроны сети, которые оказывают малое влияние на ошибку аппроксимации, можно исключить из модели без значительного ухудшения качества аппроксимации.
История метода
Метод второго порядка (использующий анализ чувствительности, основанный на вычислении вторых производных) был предложен ЛеКюном в 1990 году[1] и назывался «optimal brain damage». Затем он был развит Хассиби[1] и получил название «optimal brain surgery».
Несколько ранее были предложены методы прореживания[1] и скелетонизации[1] нейронных сетей, основанные просто на удалении элементов с наименьшими весами (методы нулевого порядка).
Наконец, в том же 1990 году А. Н. Горбанём был предложен эффективный метод, основанный на анализе первых производных в ходе обучения градиентными методами и не требующий отдельного дифференцирования.[1] Кроме задачи удаления элементов решались также другие проблемы упрощения: уменьшение разрядности весов и сигналов (огрубление), упрощение функций активации нейронов, получение интерпретируемого знания и т. д. Вся совокупность подходов получила также название «контрастирование нейронных сетей». Описание основных показателей чувствительности представлено в обзоре.[1]
Е. М. Миркес в проекте «Идеального нейрокомпьютера» на основе подхода Горбаня и опыта разработки прикладного программного обеспечения ввёл элемент «Контрастёр», построил библиотеку его основных функций и разработал язык описания.[1]
Для подготовки нейронной сети к упрощению оказывается полезным ввести в оценку её работы, минимизируемую при обучении, штрафные слагаемые (англ. penalty), штрафующие за сложность. Эти алгоритмы введены в книге А. Н. Горбаня[1]. Такой подход был впоследствии переоткрыт и положен в основу теории структурного обучения Ишикавы и Зурады.[1][1]
Описание метода второго порядка
Рассмотрим регрессионную модель , в которой — независимая переменная, — зависимая переменная, — параметры регрессионной модели , и — аддитивная случайная величина. Задана регрессионная выборка — множество пар , . Для построения регрессии требуется найти такие параметры , которые доставляли бы наименьшее значение функции ошибки .
Найдем локальную аппроксимацию функции в окрестности точки с помощью разложения в ряд Тейлора:
где — возмущение вектора параметров , — градиент , и — матрица вторых производных (матрица Гессе) .
Предполагается, что функция достигает своего минимума при значении параметров и ее поверхность квадратична. Таким образом, предыдущее выражение можно упростить и представить в виде
Пусть исключение элемента модели есть исключение одного параметра модели, . Исключенный параметр будем считать равным нулю. Это самое сильное ограничение, не позволяющее применять данный метод для регрессионных моделей произвольного вида. Исключение элемента эквивалентно выражению , иначе
где — вектор, -й элемент которого равен единице, все остальные элементы равны нулю.
Для нахождения исключаемого элемента требуется минимизировать квадратичную форму относительно при ограничениях , для всех значений . Индекс , который доставляет минимум квадратичной форме, задает номер исключаемого элемента:
Задача условной минимизации решается с помощью введения Лагранжиана
в котором — множитель Лагранжа. Дифференцируя Лагранжиан по приращению параметров и приравнивая его к нулю получаем (для каждого индекса параметра )
Этому значению вектора приращений параметров соответствует минимальное значение Лагранжиана
Полученное выражение называется мерой выпуклости функции ошибки при изменении параметра .
Функция зависит от квадрата параметра . Это что говорит о том, что параметр с малым значением скорее всего будет удален из модели. Однако если величина достаточно мала, это означает, что данный параметр оказывает существенное влияние на качество аппроксимации модели.
Алгоритм
Задана выборка , модель , функция ошибки . Для упрощения структуры регрессионной модели выполняем следующие шаги.
- Настраиваем модель, получаем параметры .
- Для приращения решаем оптимизационную задачу, находим для каждого индекса минимальное значение Лагранжиана .
- Выбираем среди минимальное, отсекаем элемент модели, соответствующий -му параметру.
- Добавляем к вектору параметров , вектор приращений , соответствующий отсеченому параметру.
- Получаем упрощенную модель. Модель перенастраивать не требуется.
- Процедуру можно повторять до тех пор, пока значение ошибки не превзойдет заранее заданное.
Смотри также
- Регрессионный анализ
- Регрессионная модель
- Нелинейная регрессия
- Прореживание двухслойной нейронной сети (пример)
Литература
- Хайкин С. Нейронные сети, полный курс. 2е издание, испр. - М: Вильямс. 2008. - 1103 с. ISBN 978-5-8459-0890-2
- Миркес Е. М., Нейрокомпьютер. Проект стандарта.- Новосибирск: Наука, Сибирская издательская фирма РАН, 1999. - 337 с. ISBN 5-02-031409-9
- Горбань А. Н., Обучение нейронных сетей. М.: изд. СССР-США СП «Параграф», 1990. 160 с.