Чтобы понять, как работает РНС, лучше всего представить функционирование сети во времени, как на рис. 33, который показывает РНС с рис. 32 в каждый из восьми последовательных моментов времени. Ради простоты я показала все рекуррентные связи в скрытом слое единственной пунктирной стрелкой от одного шага времени к другому. В каждый момент времени уровни активации скрытых ячеек представляют собой составленный сетью код того фрагмента предложения, который она увидела к этому моменту. Продолжая обрабатывать слова, сеть совершенствует этот код. За последним словом в предложении следует специальный символ END, который, подобно точке, сообщает сети, что предложение закончилось. Обратите внимание, что это люди добавляют символ END в конец каждого предложения, перед тем как давать текст сети.
Рис. 32. A – схема традиционной нейронной сети; B – схема рекуррентной нейронной сети, где уровни активации скрытых ячеек в конкретный момент времени учитываются также в следующий момент
В каждый момент времени выходная ячейка этой сети обрабатывает уровни активации скрытых ячеек (“код”), чтобы определить степень уверенности сети в том, что входное предложение (то есть часть предложения, полученная сетью к этому шагу времени) имеет
Рис. 33. Работа рекуррентной нейронной сети с рис. 32 на последовательности восьми моментов времени
Поскольку сеть перестает кодировать предложение, только встречая символ END, система теоретически может кодировать предложения любой длины в последовательность чисел – уровней активации скрытых ячеек – фиксированной длины. По очевидным причинам такие сети часто называют
Получая набор предложений, которым люди присвоили метку “позитивная” или “негативная” в зависимости от тональности, сеть-кодер обучается на этих примерах с помощью метода обратного распространения ошибки. Но я пока не объяснила важную вещь. Входными сигналами нейронных сетей должны быть
Простая схема кодирования слов цифрами
Прежде чем описывать возможные схемы кодирования слов цифрами, мне нужно ввести понятие
Допустим, в лексиконе нашей сети будет 20 тысяч слов. Простейший способ закодировать слова числами – присвоить каждому слову в словаре произвольный номер от 1 до 20 000. Затем дать нейронной сети 20 тысяч входных сигналов, по одному на каждое слово лексикона. На каждом шаге времени “включаться” будет лишь один из входных сигналов – тот, который соответствует входному слову. Скажем, слову