Разница между образцами, временными шагами и особенностями в нейронной сети


17

Я просматриваю следующий блог по нейронной сети LSTM: http://machinelearningmastery.com/understanding-stateful-lstm-recurrent-neural-networks-python-keras/

Автор изменяет входной вектор X как [выборки, временные шаги, особенности] для различной конфигурации LSTM.

Автор пишет

Действительно, последовательности букв являются временными шагами одного признака, а не одним временным шагом отдельных признаков. Мы дали больше контекста для сети, но не больше последовательности, как ожидалось

Что это значит?

Ответы:


16

Я нашел это чуть ниже [samples, time_steps, features], которые вас интересуют.

X = numpy.reshape(dataX, (len(dataX), seq_length, 1))

Образцы - это длина (dataX) или количество имеющихся у вас точек данных.

Временные шаги - это эквивалентно количеству временных шагов, которые вы запускаете в своей текущей нейронной сети. Если вы хотите, чтобы в вашей сети было 60 символов, это число должно быть 60.

Особенности - это количество функций на каждом временном шаге. Если вы обрабатываете изображения, это количество пикселей. В этом случае, кажется, у вас есть 1 функция на шаг по времени.


1
Можете ли вы объяснить разницу между: X = numpy.reshape (dataX, (len (dataX), 3, 1)) и X = numpy.reshape (dataX, (len (dataX), 1, 3)) Как это влияет истм?
Vipul Jain

1
(len (dataX), 3, 1) запускает LSTM в течение 3 итераций, вводя входной вектор формы (1,). (len (dataX), 1, 3) запускает LSTM за 1 итерацию. Это означает, что даже бесполезно иметь повторяющиеся соединения, поскольку не может быть обратной связи с предыдущими итерациями. В этом случае входная форма для RNN имеет форму (3,)
Joonatan Samuel

«(len (dataX), 3, 1) запускает LSTM в течение 3 итераций», не используем ли мы эпоху для этого. означает ли это то же самое, что и эпоха = 3?
Vipul Jain

1
Одна эпоха в грубом переводе означает, что мы обучались один раз для каждой точки данных в нашем наборе данных. Во время обучения просмотр примеров len (dataX) считается за 1 эпоху. Однако RNN принимают данные последовательно. На каждом тренировочном примере вы должны передавать данные в течение нескольких итераций. Например, у меня есть слово «машина», и на каждой итерации я передаю ему одну букву, позволяю завершить вычисление, а затем передаю следующую букву. Для завершения обработки слова «машина» необходимо 3 итерации для обработки всего слова буква за буквой.
Joonatan Samuel

@JoonatanSamuel привет, я знаю, что прошло много времени, но у меня много проблем с пониманием той же темы. Ваш ответ очень ясен, но я все еще немного сбит с толку. Представьте, что у нас был временной ряд, описывающий продажи в каждом месяце в течение нескольких лет (скажем). Представьте себе len (data) = 3000, например data.shape = (3000,1), поэтому мы записали 3000 месяцев. Предсказание следующего : Если я хочу использовать N предыдущего наблюдения, чтобы предсказать следующее (только следующее!), Какой должна быть форма входных данных для LSTM? Например, если мы хотим использовать t-n,..., t-2, t-1для прогнозирования t.
Euler_Salter

0

Слишком поздно, но на всякий случай; Образец может относиться к отдельным примерам обучения. Следовательно, переменная «batch_size» - это количество отсчетов, которые вы отправили в нейронную сеть. То есть сколько разных примеров вы подаете одновременно в нейронную сеть.

TimeSteps - это тики времени. Сколько времени занимает каждый из ваших образцов. Например, выборка может содержать 128 временных шагов, где каждый временной шаг может быть 30-й секунды для обработки сигнала. В обработке естественного языка (NLP) шаг времени может быть связан с символом, словом или предложением, в зависимости от настройки.

Характеристики - это просто количество измерений, которые мы вводим на каждом временном шаге. Например, в НЛП слово может быть представлено 300 объектами, используя word2vec. В случае обработки сигнала, давайте представим, что ваш сигнал 3D. То есть у вас есть сигналы X, Y и Z, такие как измерения акселерометра на каждой оси. Это означает, что для каждого образца будет отправлено 3 функции на каждом временном шаге.

По Гийому


0

Мой ответ с примером: ["привет, это xyz", "как дела", "великий человек ..."]

в данном случае «[образцы, временные шаги, особенности]» означает:

  • образец: 3, потому что в списке 3 элемента
  • временные шаги: здесь вы можете взять max_length = 4 length («привет, это xyz») = 4; длина («как дела») = 4; length ("великий человек ...") = 2 (после удаления пунктуации "."). Причина того, что это временные шаги, заключается в том, что в первом элементе «привет, это xyz» ==> t0 («привет»), t1 («это»), t2 («есть») и t3 («xyz»)
  • Особенности: размер вложения для каждого слова. например, «привет»: массив 50D, «this»: массив 50D и т. д.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.