LSTM - долгая краткосрочная память | #23 нейросети на Python

Поделиться
HTML-код
  • Опубликовано: 29 окт 2024

Комментарии • 32

  • @86Blind
    @86Blind 3 года назад +17

    Сколько не смотрел на эту тему обучающих видео, данное объяснение самое лучшее и самое понятное. Прекрасная подача материала !

  • @mezhpro
    @mezhpro Год назад +4

    Поздравляю Вас со 100к подписчиков!!!

  • @cantwaitforit
    @cantwaitforit Год назад +2

    Как всегда на высшем уровне!

  • @ds_sss_rank
    @ds_sss_rank 5 месяцев назад +3

    Это лучшее что я видел

  • @diglydigly3903
    @diglydigly3903 9 месяцев назад +1

    Супер понятно, спасибо большое

  • @ДенисЩербина-щ9к
    @ДенисЩербина-щ9к 6 месяцев назад

    Добрый вечер, хотел бы уточнить один момент.
    на 10:57 Вы выводите формулу Ct
    Ct = Ft * Ct-1 + at +Ct-1
    Но ведь по рисункам мы сначала забываем ненужное - это как раз Ft*Ct-1 , а потом добавляем нужное новое, но это как раз at. Не понимаю зачем у Вас там написано at+Ct-1
    Т.е. формула должна быть
    Ct = Ft * Ct-1 + at естественно * и + поэлементно.
    Подскажите, пожалуйста как все таки правильно будет?

  • @КоляВасильев-о5и
    @КоляВасильев-о5и 3 года назад +1

    Спасибо за урок! Можете пожалуйста ответить: почему то, что мы выучили до этого, нам вдруг может понадобится "забыть"? По правде говоря пример в конце видео выглядит не совсем развернутым. Так же непонятно, почему новый контент нужно умножать на оценочный вектор (в целом понимаю что из нового нам не все может быть нужно, но конкретный пример пока придумать не получается). Так же не получается придумать пример того, как может улучшить ситуацию оценочный вектор на выходе. Если не трудно, можете пожалуйста привести пример предложения/набора предложений, в рамках которого все эти вентили имели бы смысл? Так же непонятно с какой целью "память" нормируется через tanh, какая в этом есть необходимость?

  • @ДаниилГригорьев-о6ы
    @ДаниилГригорьев-о6ы 4 года назад +2

    Спасибо! А я правильно понимаю, что невозможно совместить LSTM и переменное кол-во входных данных как для RNN?
    Или фиксированный входной объем не проблема в силу наличия состояния для LSTM?

    • @selfedu_rus
      @selfedu_rus  4 года назад +2

      Ячейки LSTM работают по тому же принципу, что и нейроны в RNN, поэтому теоретически можно подавать переменное число данных (я имею в виду переменное множество входных векторов x1, x2, ..., xN). Но в Keras заранее указываются все размерности, поэтому если данных нет, то пишем нули ))

  • @grigogiyreznichenko2033
    @grigogiyreznichenko2033 2 года назад +1

    Если там происходит конкатенация на входе, то как формируется обратная связь? Выход же подаётся на вход. Таким образом размерность вектора будет расти

    • @lit1041
      @lit1041 Год назад +1

      Там, где происходит конкатенация, вектора подаётся напрямую в полносвязный слой, а он уже преобразует входный вектор в определённую размерность. Вообще, её можно воспринимать так, как будто бы на вход полносвязного слоя подаётся два вектора с необходимыми данными, как будто бы два входа.

  • @dubinin_s
    @dubinin_s 4 года назад +33

    Чувствую, что скоро ИИ также будет друг другу объяснять как устроены нейроны у людей: "На следующем занятии мы разберем как эти кожаные мешки учатся говорить и почему это происходит так долго, а не за пару часов"))

    • @selfedu_rus
      @selfedu_rus  4 года назад +11

      Смех, смехом, а такие попытки уже делаются: одна нейронная сеть учится проектировать другую. Или, нейросеть, которая пишет программы. Так что, вы недалеки от истины ))

    • @dubinin_s
      @dubinin_s 4 года назад +4

      @@selfedu_rus Это скорее итерический смех, тк когда начинаешь думать, о том как прогрессирует эта область, фильм "Терминатор" становится совсем не фантастическим, а документальным. Уже выпускают процессоры с архитектурой специально заточенной под определенную нейронку. Вот и получается, что нейронки из обычных наборов чисел в компьютере превращаются в маленький кремневый мозг)

    • @darkwingduck3152
      @darkwingduck3152 3 года назад +1

      @@dubinin_s , Пусть оладушки мне готовит. Учиться только у лучшей - у бабушки. А то чудо-техника и без оладушек - некондиция какая-то! :)

    • @endlessvd
      @endlessvd Год назад

      ​@@selfedu_rusэто уже реальность. Bing на мощностях GPT-4 легко мне написал LTSM нейросеть с нуля на С++ где то в 300 строк кода, и причем с первой попытки все работает и компилируется. Так что нейросеть написала другую нейросеть

    • @_sort_
      @_sort_ Год назад +1

      ​​@@endlessvdНу, просто написать код это довольно тривиальная задача для НС. А вот добиться полного и абсолютного понимания работы архитектуры(не просто написать заученные определения из документации) это сложно. Надеюсь в будущем увидим настоящий, исскуственный интелект, ибо каноничный и действительно думающий и похожий на человеческий интелект еще не изобретен.

  • @ravenalbatros
    @ravenalbatros 2 года назад +1

    Объединение векторов это типа конкатенация?

  • @anadre86
    @anadre86 2 года назад

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

  • @ХристианБелов
    @ХристианБелов Год назад +1

    А почему LSTM была "рабочей лошадкой" до 2017 года. Появилось что-то другое?

    • @selfedu_rus
      @selfedu_rus  Год назад

      да, более простой блок GRU дает часто схожие результаты, но обучается быстрее (по объему вычислений)

    • @ХристианБелов
      @ХристианБелов Год назад

      @@selfedu_rus Можете подсказать, нейросеть на базе LSTM или GRU использует только один или несколько таких блоков?

    • @selfedu_rus
      @selfedu_rus  Год назад

      @@ХристианБелов один, схема здесь proproprogs.ru/neural_network/kak-delat-sentiment-analiz-rekurrentnoy-lstm-setyu (в конце текста)

    • @lit1041
      @lit1041 Год назад +3

      @@selfedu_rus В 2017 году появилась архитектура трансформер - совершенно новый уровень обработки последовательностей с помощью нейронных сетей. Его мощность была настолько велика, что все LSTM и GRU отбросились в прошлый век.

    • @ESHS-pc6rm
      @ESHS-pc6rm 6 месяцев назад

      @@selfedu_rus Сергей, спасибо что делаете такое больше дело. Очень прошу, помогите с проблемой. Сломал всю голову. Делаю рекуррентную сеть по приницпу энкодер-декодер. Т.е. на вход и выход подаются последовательности разной длины. при тренировке сети пишу: results = model.fit({'encoder_input':x, 'decoder_input':y1}, y2, epochs=1) и обучение проходит без проблем. Т.е. сеть построена правильно, но когда я отправляю данные в predict выдает ошибку разной длины. res = model.predict([{'encoder_input':x[0], 'decoder_input':y1[0]}]) ошибка "Data cardinality is ambiguous: x sizes: 7, 10 Make sure all arrays contain the same number of samples."

  • @alexeysavostin
    @alexeysavostin Год назад +1

    Знак операции "сумма по модулю 2" сбивает с толку....

  • @svorg8741
    @svorg8741 3 года назад

    А ссылочку на статью, откуда все взял забыл оставить.