Практика обратного распространения ошибки

Sdílet
Vložit
  • čas přidán 16. 11. 2020
  • Запишетесь на полный курс Машинного обучения на Python по адресу support@ittensive.com
  • Věda a technologie

Komentáře • 29

  • @ValikzantMusic
    @ValikzantMusic Před rokem +3

    Вот это правда хорошее объяснение. Другие какие то буквы непонятные показывают, словно я их с рождения должен знать, а тут ещё до объяснения каждую букву описали. Супер. Спасибо :)

  • @sombra4303
    @sombra4303 Před 2 lety +5

    Вот реально, лайн и подписка. Из 5-6 видео про обратную ошибку, вы единственный, кто объяснил понятно и я наконец-то понял. Большое человеческое вам спасибо !)

  • @bananchik3125
    @bananchik3125 Před 3 měsíci +1

    Здорово, понял на буквах объяснение, но на цифрах всегда полезно посмотреть

  • @azizbeknurmatov9823
    @azizbeknurmatov9823 Před 3 lety +1

    спасибо самый людший угок у тебя. Спасибо что обучаеш бесплатно

  • @apristen
    @apristen Před 3 lety +3

    как работает нейросеть понимал, как обратное распространение общий принцип тоже вроде понимал.
    но только сейчас понял _в деталях_ как это происходит! спасибо!
    важно тут что понять (идея): ошибку с выходного нейрона (если несколько - с каждого) ОБРАТНО распространяем _пропорционально весам синапсов_ от предыдущего слоя к этому слою ну и производной ф-ции активации (в ReLU это 1, поэтому вообще не фигурирует в формуле и так просто стало).
    p.s. я походу не понимал из-за сигмоида, с ReLU где производная равна 1 стало всё понятно! :-)

  • @ceo-s
    @ceo-s Před rokem

    Всё понял. Спасибо!

  • @QScientist
    @QScientist Před 9 měsíci

    супер, это самое лучшее и наглядное объяснение которые я видел, а видел я много. Есть оромная куча видео и ссылок в интернете и даже курсов красивых с кучей элементов в них, с кучей подписчиков, но заминающихся именно на этом моменте и не рассказывающих в таких деталях. Тут есть ответы на многие глубокие вопросы. В качестве улучшений хотел бы отметить, что у вас нет производной тут (точнее есть и равна единице, но если бы активация была бы не Relu, то нужно было бы ее учитывать), но к сожалению этого не сказано. Идеально было бы написать общую матричную формулу, которую можно потом подставить в numpy или pytorch, в которой используются понятные обозначения и пояснить как тут применяется chain rule.

  • @levkornev1013
    @levkornev1013 Před rokem

    Спасибо большое, просто огромнейшее, понял только Ваше объяснение происходящего. Пишу нейронку по классификации(входные данные- вектор размером 75000), без вас - никак))

  • @user-oq4si8nh9h
    @user-oq4si8nh9h Před 3 lety +2

    То есть, если у нас несколько выходных нейронов, то ошибкой будет (сумма произведения весов на соответствующие им выходы) * производную активационной функции?

  • @user-qd5zh2qi9j
    @user-qd5zh2qi9j Před rokem +1

    А почему дельта_3 используется в корректировке весов и w_36, и w_13? А если в сети будет несколько скрытых слоёв, то дельта_3 будет использовать при корректировки весов во всех слоях?

  • @memhispeedrun7368
    @memhispeedrun7368 Před rokem

    Хотел бы уточнить: какое значение аргумента подставляется в производную функции? Результат в нейроне? (4:55)

  • @Blade_Ruiner
    @Blade_Ruiner Před rokem

    Все уроки по обратной ошибке поделились на два лагеря: у одних ошибка - это "Что получилось" минус "Что ожидалось", у других - наоборот. Приходится работать с двумя вариантами и долгими ночами искать верный.

    • @ittensive
      @ittensive  Před rokem

      Если ошибка равна нулю, то не важно, с какой стороны мы к нулю пришли: справа или слева

    • @QScientist
      @QScientist Před 9 měsíci +1

      просто у одних потом стоит минус в поправке, а у других плюс, поэтому как не бери в итоге получим одно и тоже

  • @sultanidza
    @sultanidza Před 3 lety +1

    Спасибо! Только я не совсем понял, как именно в dW24 получилось -0.336. Мы делим самый большой вес на 2? Не понял логику действия.

    • @ittensive
      @ittensive  Před 3 lety +4

      dw24 = d4 * w24 * p2 * LR = -1.12 * 2 * 2 * 0.1 = -0.448 (чуть меньше, чем для dw23). Видимо, в вычисления прокралась ошибка :)

  • @vitall789
    @vitall789 Před 2 lety +1

    Почему расчетная формула изменения весов для скрытого в выходной слой, не включила умножение на входящее значения предыдущего нейрона. В то время как формула из первого слоя (входного) в скрытый это учитывает? Это намеренная ошибка? Просто если не учитывать силу сигнала какого-то слоя, то эти веса будут изменяться пропорционально, что прекратит балансировку на этом уровне - это именно актуально для RELU, для сигмойды из-за производной такая балансировка происходит, так как присутствует в т.ч. умножение на входящий сигнал!

    • @ittensive
      @ittensive  Před 2 lety

      Сила сигнала учтена в значении самого нейрона (ведь в него может входить много сигналов, учесть все можно только через взвешенную сумму)

  • @user-xl9kd9mo4v
    @user-xl9kd9mo4v Před 2 lety

    Если это вычисление повторять много раз то ошибка стремится к 0, а не 0,5

  • @vasilvasiliev6491
    @vasilvasiliev6491 Před 2 lety

    А разве ошибка не будет равна квадрату разницы полученного и желаемого значения навыходе последнего нейрона?

    • @velicumsov
      @velicumsov Před 2 měsíci

      это будет квадратичная ошибка

  • @uralsochi
    @uralsochi Před 11 měsíci

    Можно побольше формул

  • @sensirexfirst
    @sensirexfirst Před 3 lety

    вроде как формулу изменения веса не должна включать значение самого вес

    • @ittensive
      @ittensive  Před 3 lety +1

      вес участвует в передаваемом "объеме" данных: функция активация от (значение на предыдущем слое * вес связи). Поэтому когда считаем изменение веса, в обратную сторону (распространение ошибки), то учитывается вес связи.

    • @vitall789
      @vitall789 Před 2 lety

      "формула изменения веса не должна включать значение самого веса" - Да вы правы, так происходит с линейной функцией в библиотеке FANN к примеру (хотя кажется это совершенно нелогично), дельта-ошибка тупо умножается на пред. входящее значение и на лёрнинг рэйт (это все прибавляется к весу), а уже сама ошибка умножается на вес до его изменения, только для передачи ее обратно на вход.
      Это лишает здравого смысла использования линейных функций в начальных слоях.

  • @user-fs9qn5zt1r
    @user-fs9qn5zt1r Před 3 lety

    А разве ошибка не должна быть среднеквадратичной?

    • @ittensive
      @ittensive  Před 3 lety +1

      Среднеквадоратичной от чего? Мы же рассчитываем индивидуальные значения функции и производных, там нет группировки (нет и среднего, поэтому)

    • @jetbrain9115
      @jetbrain9115 Před rokem

      ​@@ittensive Среднеквадратичное нужно когда матрицами послойно вычисляют, видимо.