Обратное распространение ошибки. Backpropagation. Многослойный персептрон (пример на пальцах).

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

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

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

    Спасибо за видео, очень полезно и интересно

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

    Нашёл ошибку. Тайминг = 10:59.
    !!!
    Т.е. не -0.47284736 как у автора, а -0.047284736. Ноль пропущен после запятой.
    Но что интересно, дальше в таблице данные по сумматорам и функции активации занесены правильно. Значит автор пропустил ноль просто при создании презентации, но не при расчётах.
    Т.о. для первой комбинации (2,1,3 на входе и 1 на выходе) на последнем нейроне функция активации действительно вернёт 0.495983613 .
    ЗЫ. Спасибо за видео, достаточно доходчиво. Многие уроки в сети страдают тем, что нет примеров с наглядными расчётами - лишь голая теория...

  • @Ooovander
    @Ooovander 5 лет назад +4

    Прекрасное видео! Очень понятное объяснение принципа работы персептрона))
    Жду следующий урок! Давай быстрее))
    Тоже хочу запрограммировать нейронную сеть. Хочу попробовать научить сеть распознавать объект на изображении, но я в этом новичок и мне нужен пример..((

    • @RomanMamedov333
      @RomanMamedov333  5 лет назад

      Спасибо, Андрей! Уже готовлю материал по следующему уроку, скоро выпущу.

    • @ifreekazoid
      @ifreekazoid 4 года назад

      @@RomanMamedov333 Ждем, ждем....
      Шел восьмой месяц....

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

    Спасибо за видео. Два вопроса.
    1. Зачем в примере выполняется forward propagation для обучающих примеров 2-4 с использованием изначальных значений весовых коэффициентов (11:58-13:09)? Если я правильно понял, перед тем, как проводить обратное распространение ошибки для второго и следующих за ним обучающих примеров (начиная с 15:57) проводится повторный расчёт выходов нейронов с использованией скорректированных весовых кожффициентов. А результаты первых вычисления значений нейронов для этих примеров нигде не используются. Я что-то пропустил?
    2. Почему в нижней формуле на 7:02 для значения дельты (то есть абослютной ошибки значения S) разница y-d умножается, а не делится на производную y по s? Я встречал эту формулу в нескольких источниках именно в таком виде, но никак не могу отделаться от мысли, что правильно будет [дельта * (производная y по s) = y-d], а не [дельта = (y-d)*(производная y по s)]. Может быть я неправильно понимаю физический смысл дельты?

  • @alexandersmirnov4274
    @alexandersmirnov4274 6 месяцев назад

    почему при расчете функции потерь вы делите сумму разности квадратов на 2 а не на количество в обучающей выборке равное 4?

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

    Вы в следующем видео (по реализации mlp на js) привели 2 рекомендации:
    1) В первом слое должно быть нейронов в 2 раза больше количества входов
    2) Общее количество нейронов не должно быть равно или больше количества примеров в обучающей выборке - иначе сеть переучится.
    А у вас
    нет таких же полезных рекомендаций отдельно для задач классификации, отдельно для задач прогнозирования? Например, сколько должно быть выходных нейронов в том и другом случае, какие лучше алгоритмы обучения использовать (наискорейший спуск, наискорейший спуск с моментами, Левенберга-Марквардта, эвристические)?

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

      На самом деле это все индивидуальные случаи. Но к примеру с классификацией можно на выходе иметь количество нейронов равное количеству классов. Но все же это больше индивидуальный подход к решению конкретной задачи.

  • @mortaele2494
    @mortaele2494 4 года назад

    Подскажите пожалуйста,а в чем закономерность входных и выходных данных в обучающей выборке?

    • @RomanMamedov333
      @RomanMamedov333  4 года назад

      В данном видео или в целом при обучении?

    • @mortaele2494
      @mortaele2494 4 года назад

      В данном видео

    • @RomanMamedov333
      @RomanMamedov333  4 года назад

      ​@@mortaele2494 В данном видео нет никакой связи между входным вектором и требуемым выходом, я писал их произвольно, просто для учебного примера. В этом и заключается основная суть обучения нейронных сетей с учителем. Мы в нейронных сетях обучения с учителем, заставляем их находить взаимосвязи во входном воздействии так, как это необходимо нам. По этой причине я могу позволить себе поставить произвольные значения. А вот в сетях с обучением без учителя, они самостоятельно находят закономерности во входных воздействиях и мы туда влезть не можем .

  • @AK-nu4oc
    @AK-nu4oc 3 года назад +1

    В s1,0 пропущен 0 после запятой

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

    Спасибо за видео!
    ruclips.net/video/dDDLyxWuZvA/видео.html
    Не пропущено ли здесь в расчетах умножение на 1/2?

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

      Спасибо за комментарий! Укажите пожалуйста тайм-код предполагаемой ошибки.

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

      @@RomanMamedov333 13:20

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

      @@nicknick4167 Да, я понял в чем вопрос. Нет там все в порядке. Вы даже можете пересчитать (0.495983613−1)^2+(0.496019059−0.5)^2+(0.495941273−1)^2+(0.496047431−0.5)^2 будет равно 0.508139189 и если умножить это число на 0.508139189×(1÷2) тогда получится ответ 0.254069595. Я не стал выносить эту операцию в расчеты потому, что пришлось бы переносить на новую строчку, либо уменьшать шрифт. Но ни того, ни другого я делать не хотел потому, что и так мелкий шрифт и много строк. Слева представлена формула, в которой есть данное умножение и я посчитал этого достаточным для восприятия информации. Но если вдруг, у кого-то возникнет вопрос касательно этого повода, тогда они увидят Ваш комментарий и все поймут. :)

  • @logius84
    @logius84 5 лет назад +2

    Сложна, сильна многа цифар
    но всё равно смотреть интересно))

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

    Мой мозг умер.

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

    Спасибо за видео. Но по мне здесь:ruclips.net/video/t-Jpm1axBko/видео.html более наглядно и проще показано, возможно там ошибки. Если есть то рад узнать критику, дабы узнать истину. Я так понял что способы расчётов выражениях у вас отличаются. И теперь думаю кто из вас прав в итоге). Но всё равно спасибо. =)

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

      Спасибо за комментарий! Принципы алгоритма обратного распространения ошибки едины, просто при некоторых случаях их можно представлять по разному. Данное видео я делал с позиции того, чтобы показать, в простой и наглядной форме как работает данный алгоритм. По этому считаю, что критика чужого труда будет является не совсем корректной с моей стороны. Если то видео нагляднее и понятнее, значит, к сожалению, мне не удалось достичь поставленной цели.

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

      @@RomanMamedov333 Думаю достичь поставленной цели в принципе удалось. Просто нужна хоть какая та мат подготовка перед просмотром(но это не точно =)). А касательно того видео, почему там было проще понять, может быть расчёты разбиты на более мелкие итерации. Различие в расчётах которое я заметил(надеюсь не ошибся) при нахождении ошибок весов сети, вы сразу домножили производную функции активации, а он это делал только при пересчёте весов. Но я это понял не сразу, только после того как пересмотрел несколько раз ваше и его видео. Поэтому может мне показалось сложнее, но всё равно спасибо. Но вот не касаемо даже вашего видео а вообще темы, то единственно что я до сих пор не понял это про нейроны сдвига, и про константный вход нейрона со своим весом который равен как правило 1. Надеюсь оно у вас есть в других видео, я просто только недавно попал на ваш канал. Ещё раз спасибо.

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

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

  • @ЕвгенийБорисов-е1ч
    @ЕвгенийБорисов-е1ч 9 месяцев назад +1

    Господи что вы употребляете нейронщики - не можете по человечески обьяснить такую простую вещь - показываете миллион значений и формул - вы как будто сговарились

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

      Жизнь - это череда интеллектуальных препятствий, которые необходимо преодолеть. Так уж сложилось, что сегодня вашим препятствием является понимание нейроных сетей. Успокойтесь, переварите информацию и продолжайте просматривать, пока не перейдете планку понимания. Затем все эти нейросети будут казаться не сложнее чем школьная арифметика.