Глава 9. Глубокое обучение для последовательностей и текста
381
z
z
Ahmed Z.
How to Visualize Your Recurrent Neural Network with Attention in Keras //
Medium, 29 June 2017:
http://mng.bz/6w2e
.
z
z
В примере преобразования дат мы описали методику декодирования на основе
функции
argMax()
. Такой подход часто называют методикой
«жадного» декодиро-
вания
(greedy decoding), поскольку на каждом шаге выделяется выходной символ
с максимальной вероятностью. Одним из популярных альтернативных подходов
является
декодирование с поиском по лучу
(beamsearch decoding), в котором ис
следуется более широкий диапазон возможных выходных последовательностей
для определения наилучшей. Прочитать об этом методе можно здесь:
Brownlee
Jason.
How to Implement a Beam Search Decoder for Natural Language Processing,
5 Jan. 2018:
https://machinelearningmastery.com/beam-search-decoder-natural-language-
processing/
.
z
z
Raaijmakers S.
Deep Learning for Natural Language Processing, Manning Publications:
www.manning.com/books/deep-learning-for-natural-language-processing
.
Упражнения
1. Попробуйте поменять порядок элементов данных для различных непоследова
тельных данных. Убедитесь, что подобная перестановка не влияет на значения
потерь и показатели (например, безошибочность) моделирования (не считая слу
чайных колебаний вследствие инициализации весовых параметров случайными
значениями). Сделайте это для следующих двух задач.
• В примере ирисов Фишера (из главы 3) поменяйте порядок четырех числовых
признаков (длина чашелистиков, ширина чашелистиков, длина лепестков
и ширина лепестков), внеся изменения в строку:
shuffledData.push(data[indices[i]]);
в файле
iris/data.js
репозитория tfjsexamples. В частности, измените по
рядок упомянутых четырех элементов в
data[indices[i]]
. Сделать это можно
с помощью вызовов методов
slice()
и
concat()
JavaScriptмассива. Учтите,
что менять порядок следует одинаково для всех примеров данных. Можете
написать JavaScriptфункцию для переупорядочения.
• Попробуйте переупорядочить 240 временн
ы
х шагов
и
14 числовых признаков
(показаний метеорологических приборов) для линейного регрессора и MLP,
разработанных нами для задачи Jenaweather. Если точнее, для этого можно
внести изменения в функцию
nextBatchFn()
из файла
jena-weather/data.js
.
Проще всего реализовать переупорядочение — в строке:
samples.set(value, j, exampleRow, exampleCol++);
где можно изменить индекс
exampleRow
на новое значение с помощью функ
ции, выполняющей фиксированную перестановку элементов, и аналогичным
образом изменить
exampleCol
.
382
Do'stlaringiz bilan baham: |