Рекурсивные нейронные сети — различия между версиями
(→Cм. также) |
|||
Строка 4: | Строка 4: | ||
==Применение== | ==Применение== | ||
− | Модели рекурсивных сетей используют иерархические структуры образцов при обучении | + | Модели рекурсивных сетей используют иерархические структуры образцов при обучении, поэтому они преуспели в следующих областях: |
− | |||
*Обработка естественного языка. | *Обработка естественного языка. | ||
*Обработка изображений с природными ландшафтами | *Обработка изображений с природными ландшафтами | ||
Строка 11: | Строка 10: | ||
==Описание== | ==Описание== | ||
[[Файл:JBw4cyCl4yE.jpg|thumbnail|Архитектура простой рекурсивной сети]] | [[Файл:JBw4cyCl4yE.jpg|thumbnail|Архитектура простой рекурсивной сети]] | ||
− | + | При обучении последовательных структур и деревьев в задачах обработки естественного языка, фразы и предложения моделируются через векторное представление слов. | |
− | Базовая структура сети является бинарным деревом, состоящим из родительского компонента ( | + | Базовая структура сети является бинарным деревом, состоящим из родительского компонента (корня), и дочерних компонентов (листьев) Каждая группа - набор нейронов, размер которого зависит от сложности входных данных. Входная последовательность данных подаются на листья, а корень использует классификатор для определения класса и меры (score) |
Рекурсивная нейронная сеть использует следующую формулу для вычисления родительского вектора: | Рекурсивная нейронная сеть использует следующую формулу для вычисления родительского вектора: | ||
Строка 19: | Строка 18: | ||
<math>p_{1,2} = f\left(W[b ; c]\right)</math> | <math>p_{1,2} = f\left(W[b ; c]\right)</math> | ||
− | <math>b, c</math> - дочерние векторы | + | *<math>b, c</math> - дочерние векторы |
− | <math>W</math> — обученная матрица весов, <math>W \in R^{(d \times 2d)}</math> | + | *<math>W</math> — обученная матрица весов, <math>W \in R^{(d \times 2d)}</math> |
− | <math>f</math> - нелинейную функция активации типа гиперболического тангенса | + | *<math>f</math> - нелинейную функция активации типа гиперболического тангенса |
− | Последующие шаги получают на вход score предыдущего корня и следующее слово последовательности, таким образом пока в сети не будет | + | Последующие шаги получают на вход score предыдущего корня и следующее слово последовательности, таким образом пока в сети не будет сформировано дерево со всеми словами в последовательности. |
− | Деревья могут иметь разную структуру, выбор лучшей подструктуры дерева для сети основывается на их мере | + | Деревья могут иметь разную структуру, выбор лучшей подструктуры дерева для сети основывается на их мере. Мера дерева - сумма мер на каждом узле: |
− | |||
− | Мера дерева - сумма мер на каждом узле: | ||
<math>s(x,y) = \sum\limits_{n \in nodes(y)}s_n</math> | <math>s(x,y) = \sum\limits_{n \in nodes(y)}s_n</math> | ||
− | После выбора структуры сеть классифицирует части последовательности. Вероятность принадлежности к классу вектора p вычисляется классификатором с помощью функции Softmax. | + | После выбора структуры, сеть классифицирует части последовательности. Вероятность принадлежности к классу вектора p вычисляется классификатором с помощью функции Softmax. |
=Рекурсивные и рекуррентные нейронные сети= | =Рекурсивные и рекуррентные нейронные сети= | ||
[[File:RNN.png|450px|thumb|[http://colah.github.io/posts/2015-08-Understanding-LSTMs/ RNN и ее развернутое представление]]] | [[File:RNN.png|450px|thumb|[http://colah.github.io/posts/2015-08-Understanding-LSTMs/ RNN и ее развернутое представление]]] | ||
− | Рекуррентная нейронная сеть представляет собой рекурсивную сеть со специфической структурой - в виде линейной цепочки. Рекурсивные сети работают на структурах общего типа, включающих иерархию, рекуррентные сети работают исключительно на линейной прогрессии во времени, связывая предыдущий момент времени со следующим через скрытый нейронный слой . | + | Рекуррентная нейронная сеть представляет собой рекурсивную сеть со специфической структурой - в виде линейной цепочки. Рекурсивные сети работают на структурах общего типа, включающих иерархию, рекуррентные сети работают исключительно на линейной прогрессии во времени, связывая предыдущий момент времени со следующим через скрытый нейронный слой. |
==Примеры кода== | ==Примеры кода== |
Версия 20:52, 7 апреля 2020
Рекурсивная нейронная сеть — тип глубокой нейронной сети, сформированный при применении одних и тех же наборов весов рекурсивно через структуру в виде дерева, чтобы сделать скалярное или структурированное предсказание над входными данными переменного размера через обход дерева в топологическом порядке.
Содержание
Применение
Модели рекурсивных сетей используют иерархические структуры образцов при обучении, поэтому они преуспели в следующих областях:
- Обработка естественного языка.
- Обработка изображений с природными ландшафтами
Описание
При обучении последовательных структур и деревьев в задачах обработки естественного языка, фразы и предложения моделируются через векторное представление слов.
Базовая структура сети является бинарным деревом, состоящим из родительского компонента (корня), и дочерних компонентов (листьев) Каждая группа - набор нейронов, размер которого зависит от сложности входных данных. Входная последовательность данных подаются на листья, а корень использует классификатор для определения класса и меры (score)
Рекурсивная нейронная сеть использует следующую формулу для вычисления родительского вектора:
- - дочерние векторы
- — обученная матрица весов,
- - нелинейную функция активации типа гиперболического тангенса
Последующие шаги получают на вход score предыдущего корня и следующее слово последовательности, таким образом пока в сети не будет сформировано дерево со всеми словами в последовательности.
Деревья могут иметь разную структуру, выбор лучшей подструктуры дерева для сети основывается на их мере. Мера дерева - сумма мер на каждом узле:
После выбора структуры, сеть классифицирует части последовательности. Вероятность принадлежности к классу вектора p вычисляется классификатором с помощью функции Softmax.
Рекурсивные и рекуррентные нейронные сети
Рекуррентная нейронная сеть представляет собой рекурсивную сеть со специфической структурой - в виде линейной цепочки. Рекурсивные сети работают на структурах общего типа, включающих иерархию, рекуррентные сети работают исключительно на линейной прогрессии во времени, связывая предыдущий момент времени со следующим через скрытый нейронный слой.
Примеры кода
Примеры кода на TensorFlow:
- https://github.com/bogatyy/cs224d/tree/master/assignment3
- https://gist.github.com/anj1/504768e05fda49a6e3338e798ae1cddd