Изменения

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

Рекурсивные нейронные сети

1114 байт добавлено, 19:43, 4 сентября 2022
м
rollbackEdits.php mass rollback
Рекурсивная нейронная сеть — сеть {{---}} тип глубокой нейронной сети, сформированный при применении одних и тех же наборов весов рекурсивно через структуру в виде дерева, чтобы сделать скалярное или структурированное предсказание над входными данными переменного размера через обход дерева в топологическом порядке.<ref name=definition>[https://neurohive.io/ru/osnovy-data-science/7-arhitektur-nejronnyh-setej-nlp/ 7 архитектур нейронных сетей для решения задач NLP]</ref>
==Применение==
Модели рекурсивных сетей используют иерархические структуры образцов при обучении, поэтому они преуспели в следующих областях:
*Обработка естественного языка. В Модели используются для предсказания тональности предложения <ref name=Socher>[https://www-nlp.stanford.edu/~socherrpubs/EMNLP2013_RNTNSocherLinNgManning_ICML2011.pdf Richard Socher et al, Cliff Chiung-Yu Lin, Andrew Y. Ng, Christopher D. Manning.(2013c)Parsing Natural Scenes and Natural Language with Recursive Neural Networks] они используются для предсказания тональности предложения</ref>:
[[File:NLP via RvNN.png|400px|frameless]]
*Обработка изображений с природными ландшафтами (<ref name=Socher2>[https://www-nlp.stanford.edu/pubs/SocherLinNgManning_ICML2011.pdf Richard Socher et al, Cliff Chiung-Yu Lin, Andrew Y. Ng, Christopher D. Manning.(2011)Parsing Natural Scenes and Natural Language with Recursive Neural Networks])</ref>.
[[File:Parsing Natural Scenes Images RvNN.png|500px|frameless]]
При обучении последовательных структур и деревьев в задачах обработки естественного языка, фразы и предложения моделируются через векторное представление слов. 
Базовая структура сети является бинарным деревом, состоящим из родительского компонента (корня), и дочерних компонентов (листьев) Каждая группа . Каждый компонент - набор нейронов, размер которого зависит от сложности входных данных. Входная последовательность данных подаются подаётся на листья, а корень использует классификатор для определения класса и меры (score)
Рекурсивная нейронная сеть использует следующую формулу для вычисления родительского вектора:
<math>p_{1} = f\left(W[b ; c]+ bias\right)</math>
*<math>b, c</math> {{---}} дочерние векторы
*<math>W</math> —   {{---}} обученная матрица весов, <math>W \in R^{d \times 2d}</math>
*<math>f</math> {{---}} нелинейную функция активации типа гиперболического тангенса
*<math>bias</math> - cмещение, оно может быть добавлено в качестве дополнительного столбца к <math>W</math>, если к конкатенации входных векторов добавляется 1.
Родительские векторы должны иметь одинаковую размерность, чтобы быть рекурсивно совместимыми и использоваться в качестве входных данных для следующей композиции.
Последующие шаги получают на вход score меру предыдущего корня и следующее слово последовательности, таким образом пока в сети не будет сформировано дерево со всеми словами в последовательности.
Деревья могут иметь разную структуру, выбор лучшей подструктуры дерева для сети основывается на их мере. Мера дерева - сумма мер на каждом узле:
<math>label_{p} = softmax(W^{label}p)</math>
Здесь <math>W^{label}</math> {{---}} матрица классификаций. Основной задачей и разницей между моделями будет вычисление скрытых векторов <math>p_i\in R^{d}</math> снизу вверх.
===Алгоритм обратного распространения ошибки===
[[File:RNN.png|450px|thumb|[http://colah.github.io/posts/2015-08-Understanding-LSTMs/ RNN и ее развернутое представление]]]
Рекуррентная нейронная сеть представляет собой рекурсивную сеть со специфической структурой - в виде линейной цепочки. Рекурсивные сети работают на структурах общего типа, включающих иерархию, рекуррентные сети работают исключительно на линейной прогрессии во времени, связывая предыдущий момент времени со следующим через скрытый нейронный слой.<ref name=RNN>[https://ru.wikipedia.org/wiki/Рекурсивные_нейронные_сети Рекурсивные нейронные сети. Википедия]</ref>
==Примеры кода==
Опишем здесь пример построения сети, опустив построение дерева.
[https://github.com/yc930401/RecNN-pytorch Полный листинг кода для]анализа тональности текста на PyTorch ] (из статьи [https://nlp.stanford.edu/~socherr/EMNLP2013_RNTN.pdf Socher et al.(2013c)])
class RNTN(nn.Module):
== Cм. также ==
*[[:Рекуррентные_нейронные_сети|Рекуррентные нейронные сети]]
 
== Примечания ==
<references />
== Источники ==
*[https://nlp.stanford.edu/~socherr/EMNLP2013_RNTN.pdf] - Richard Socher, Alex Perelygin, Jean Y. Wu, Jason Chuang, Christopher D. Manning, Andrew Y. Ng, Christopher Potts. Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank. Stanford University, Stanford*[http://cs224d.stanford.edu/lectures/CS224d-Lecture10.pdf] - Richard Socher. Wrap up: LSTMs and Recursive Neural Networks*[https://ru.wikipedia.org/wiki/%D0%A0%D0%B5%D0%BA%D1%83%D1%80%D1%81%D0%B8%D0%B2%D0%BD%D1%8B%D0%B5_%D0%BD%D0%B5%D0%B9%D1%80%D0%BE%D0%BD%D0%BD%D1%8B%D0%B5_%D1%81%D0%B5%D1%82%D0%B8] - Рекурсивные нейронные сети. Википедия [[Категория: Машинное обучение]] [[Категория: Нейронные сети]]
1632
правки

Навигация