Різниця між зразками, часовими кроками та особливостями нейронної мережі


17

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

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

Автор пише

Дійсно, послідовності літер є часовими кроками однієї ознаки, а не одним часовим кроком окремих ознак. Ми надали більше контексту для мережі, але не більше послідовності, як це очікувалося

Що це означає?

Відповіді:


16

Я виявив це трохи нижче [зразків, часових_шафтів, особливостей], про які ти маєш справу.

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)) lstm?
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) часовий крок може бути пов’язаний із символом, словом чи пропозицією, залежно від налаштування.

Особливості - це просто кількість розмірів, які ми подаємо на кожному етапі. Наприклад, в NLP, слово може бути представлене 300 ознаками за допомогою word2vec. У разі обробки сигналів давайте зробимо вигляд, що ваш сигнал є 3D. Тобто у вас є сигнал X, Y і Z, наприклад вимірювання акселерометра на кожній осі. Це означає, що у вас буде 3 функції, що надсилаються на кожному етапі для кожного зразка.

за Гийому


0

Моя відповідь із прикладом: ["привіт, це ксиз", "як справи", "великий чоловік ..."]

у цьому випадку "[зразки, етапи часу, особливості]" означає:

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