Вопрос или проблема
Мне не понятно понятие нескольких ячеек в LSTM.
Если у меня есть слой LSTM с 64 ячейками, как ячейки будут применяться к каждому временном шагу при разворачивании.
Мое понимание состоит в том, что каждый временной шаг будет применяться при разворачивании ко всем ячейкам.
Итак, если развертывание равно 5, все пять временных шагов будут применены в общей сложности к 5*64.
Это правильно?
все пять временных шагов будут применены в общей сложности к 5*64.
У меня нет репутации для комментариев, но я не уверен, что вы имеете в виду под “в общей сложности”. Если вы имеете в виду общее количество раз, когда ячейка в слое LSTM обновляется, тогда вы правы.
Да, на каждом временном шаге каждая ячейка в слое LSTM обновляется, однако важно отметить, что веса в многоклеточных слоях LSTM передаются иначе, чем в одноклеточных слоях LSTM. То, что может быть трудно понять, это то, что на каждом временном шаге ячейки LSTM не передают скрытые веса только своей ячейке на следующем временном шаге. Диаграммы, такие как эти, могут быть вводящими в заблуждение, потому что они показывают ячейки памяти только с скрытыми весами, соединяющимися с их собственными ячейками. На самом деле ячейка памяти имеет скрытый вес для каждой ячейки в этом слое. Это облегчает вычисления для слоев LSTM, поскольку скрытые веса теперь могут быть представлены в виде матриц.
Ответ или решение
Понимание концепции многоклеточных LSTM (долгосрочная краткосрочная память) может быть сложным, особенно когда речь идет о развертывании (unrolling) сети. Рассмотрим, как это работает на примере LSTM слоя с 64 ячейками.
Что такое развертывание (Unrolling) в LSTM?
Развертывание LSTM описывает процесс, при котором временные шаги рекурсивно разворачиваются во времени, так что каждая ячейка обрабатывает входные данные на каждом временном шаге. Если мы имеем LSTM слой с 64 ячейками и 5 временными шагами, процесс будет происходить следующим образом:
-
Каждый временной шаг: В LSTM каждой из 64 ячеек применяется функция активации, которая получает входные данные, предшествующее состояние и скрытое состояние. Это происходит в каждом временном шаге.
-
Обработка данных: При развертывании LSTM слоя на 5 временных шагов, каждая из 64 ячеек обрабатывает данные для каждого: первого, второго, третьего, четвертого и пятого временного шагов. Таким образом, на каждом временном шаге все 64 ячейки участвуют в обработке.
-
Общие вычисления: Итак, если у вас 5 временных шагов и 64 ячейки, то действительно, на каждом временном шаге происходят 64 операции, и в сумме это дает 5 х 64 = 320 операций за пять временных шагов. Однако требуется обратить внимание на то, что это не означает, что каждая ячейка обрабатывает входные данные отдельно; на самом деле, они совместно работают с матрицами весов.
Работа с весами в многоклеточных LSTM
Каждая ячейка LSTM имеет свои веса, которые корректируются на основе входных данных и состояния памяти. Однако важно понимать, что эти веса не применяются только для соединений между каждой ячейкой и её “следующей” ячейкой в последовательности.
Матричные операции
При наличии 64 ячеек и 5 временных шагов, матрицы весов используются для представления взаимодействий между всеми ячейками. Весовые матрицы объединяют информацию от предыдущих временных шагов, и таким образом, каждое обновление состояния происходит не только на основе информации от одной ячейки, но и с учётом всех ячеек в слое.
Это значительно упрощает вычисления, так как операции можно представлять более компакто в виде операций с матрицами, что является ключевым аспектом для глубокого обучения и оптимизации работы с большими данными.
Заключение
Ваша интерпретация работы LSTM верна в том, что каждая ячейка обновляется на каждом временном шаге, и у вас будут 320 операций в сумме, если рассматривать 5 временных шагов. Тем не менее, основное внимание следует уделить пониманию того, как разветвляются связи между ячейками: каждая ячейка участвует в обработке данных и переопределении весов на каждом шаге, образуя сложную систему, способную модифицировать память и скрытые состояния.
Если у вас есть дополнительные вопросы о LSTM или других аспектах машинного обучения, не стесняйтесь спрашивать.