Глава 9. Глубокое обучение для последовательностей и текста
341
9.1. Вторая попытка прогноза погоды:
знакомство с RNN
Модели, созданные нами для задачи Jenaweather в главе 8, игнорировали инфор
мацию о порядке элементов. В этом разделе мы объясним, почему это важно и как
учесть эту информацию с помощью RNN. Благодаря этому сможем в задаче пред
сказания температуры добиться более высокой степени безошибочности.
9.1.1. Почему плотные слои
не способны моделировать упорядоченность
Поскольку в предыдущей главе мы уже подробно описывали набор данных Jena
weather, здесь разговор об этом наборе данных и соответствующей задаче машинного
обучения будет коротким. Задача состоит в предсказании температуры через 24 часа
после определенного момента времени на основе показаний 14 метеорологических
приборов (температура, атмосферное давление, скорость ветра и т. д.) за десять
предшествующих этому моменту дней. Показания приборов сняты с интервалом
десять минут, но мы субдискретизируем их в шесть раз, до одного показания в час,
ради уменьшения размера модели и длительности обучения. Таким образом, форма
тензора признаков каждого обучающего примера данных —
[240,
14]
, где
240
— чис
ло интервалов измерений за десять дней, а
14
— количество показаний приборов.
Пытаясь решить эту задачу с помощью моделей линейной регрессии и MLP
в предыдущей главе, мы схлопывали двумерные входные признаки до одномерных
с помощью слоя
tf.layers.flatten
(см. листинг 8.2 и рис. 8.2). Шаг схлопывания
нужен, поскольку и в линейном регрессоре, и в MLP для обработки входных данных
используются плотные слои, для которых входные данные должны быть одномер
ными (для отдельного входного примера). Поэтому информация о всех временн
ы
х
шагах перемешивается таким образом, что перестает иметь значение, какой шаг
первый, а какой — следующий за ним, какой шаг следует за каким, насколько уда
лены друг от друга два шага и т. д. Иными словами, при схлопывании двумерного
тензора формы
[240,
14]
в одномерный тензор формы
[3360]
порядок этих 240 ша
гов перестает играть роль, главное, чтобы на этапах обучения и вывода все было
одинаково. Убедиться в этом экспериментально вы можете, решая упражнение 1,
размещенное в конце данной главы. А с теоретической точки зрения подобную
нечувствительность к порядку элементов данных можно представить следующим
образом. В основе плотного слоя лежит набор линейных уравнений, в каждом из
которых каждый входной признак [
x
1
,
x
2
…
x
n
] умножается на настраиваемый коэф
фициент из ядра [
k
1
,
k
2
…
k
n
]:
y
=
f
(
k
1
x
1
+
k
2
x
2
+ … +
k
n
x
n
).
(9.1)
На рис. 9.1 приведена наглядная схема работы плотного слоя: ведущие от вход
ных элементов к выходу слоя пути визуально симметричны друг другу, отражая
342
Do'stlaringiz bilan baham: |