МНОГОСЛОЙНЫЕ НЕЙРОННЫЕ СЕТИ. ОБУЧЕНИЕ. Backpropogation: ОБРАТНОЕ РАСПРОСТРАНЕНИЕ ОШИБКИ

  Рет қаралды 24,334

Алгоритмы Программирования

Алгоритмы Программирования

Күн бұрын

Пікірлер: 110
@SuperParadine
@SuperParadine 7 жыл бұрын
Самое понятное видео по нейронным сетям, которое я видел - у автора талант!
@Industrialvrn
@Industrialvrn 4 жыл бұрын
просто автор понимает что рассказывает
@dmitrymitrofanov3920
@dmitrymitrofanov3920 4 жыл бұрын
Смотрел все , от ФизТеха до Вышки и ШАДа, но это лучшее объяснение , браво автор!!
@sergeyglazkov1817
@sergeyglazkov1817 4 жыл бұрын
Огромное спасибо, за 15 минут понял больше чем за полгода обучения в университете
@АнтонБ-х9у
@АнтонБ-х9у 6 жыл бұрын
Наконец-то я понял этот алгоритм! Спасибо.
@akshinyolcuyev8729
@akshinyolcuyev8729 3 жыл бұрын
Я перерыл весь интернет , не смог найти ясное обьяснение обратного пропагандирования, спасибо тебе!!!
@Lammax2012
@Lammax2012 Жыл бұрын
Благодарю. Наконец-то путное объяснение этого алгоритма.
@valeriusmegamozg
@valeriusmegamozg 6 жыл бұрын
Парень ты охрененен! Я перелопатил кучу лекций на английском и русском языках, посмотрел лекции MIT и никто не объяснил лучше, короче и понятнее чем ты. Спасибо большое! (Английский знаю отлично)
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 6 жыл бұрын
Спасибо! Для связи со мной можно написать мне вконтакте. Ссылка в описании.
@Industrialvrn
@Industrialvrn 4 жыл бұрын
@@АлгоритмыПрограммирования чтобы видео было проще можно было выбрать проще функцию активации ... тогда бы ваще былобы просто. тем не менее один из самых адекватных рассказов в интернетах
@nighthunter28
@nighthunter28 4 жыл бұрын
@@Industrialvrn куда уже проще сигмойды?
@Industrialvrn
@Industrialvrn 4 жыл бұрын
@@nighthunter28 сигмоиду обратно пока он начинает считать это требует больше размышлений и замыливает смысл, еслибы функция активации была линейная какаянть, обратное распространение считалось бы очень просто просто коэфициентом и тогда былобы сразу понятнее гораздо и наглядность бы существенно возрасла. а так нужно думать как её считать, что с ней делать и т.п. это несколько размывает смысл ...
@nighthunter28
@nighthunter28 4 жыл бұрын
@@Industrialvrn ну дифференцировать все-равно нужно, какая разница будет там число или y*(y-1). или тебе про принцип градиентного спуска? так это не сюда, а в матанализ, в соответствующий раздел.
@m-stat
@m-stat 4 жыл бұрын
Я так долго искал понятное объяснения обратного распространения ошибки в сетях со скрытыми слоями, что уже думал и не найду. Спасибо ещё и за то, что видео не привязано к конкретному языку программирования.
@AlexAlex-vw3bm
@AlexAlex-vw3bm 5 жыл бұрын
Наконец то нашел, кто все доходчиво и понятно объяснил, спасибо большое автор! Пили еще!)
@alex_step_
@alex_step_ 2 жыл бұрын
К сожалению автор на этом остановился. А жаль.
@rudinandrey
@rudinandrey 7 жыл бұрын
супер, по моему лучшее видео из виденных мной по обратному распространению ошибки :) спасибо большое. все досконально разобрано.
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 7 жыл бұрын
Действительно) Подробней уж некуда) В следующем видео расскажу как это запрограммировать, но для умеющих программировать, уже всё должно быть понятно что дальше делать) А новичкам расскажу в новой части)
@randomdude-kr4in
@randomdude-kr4in 7 жыл бұрын
Пожалуй это лучшее видео, которое я видел по многослойным перцептронам. Автору большое спасибо за старания!
@DeeDee23
@DeeDee23 4 жыл бұрын
Наконец кто то обьяснил нормально про метод распространение ошибкии обучение сетей! Большое спасибо
@Тима-щ2ю
@Тима-щ2ю 4 жыл бұрын
Супер видео. Наверное,надо было начать знакомство с нейросетями с него. Потому что,тут объясняют некоторые важные аспекты,которые трудно сразу понять из других источников. Например я знал про существование обратного распространения ошибки,и думал что это сложно,потому что не понимал. А посмотрев видео все стало на свои места и я теперь могу самостоятельно экспериментировать с нейронками, потому что знаю как использовать этот процесс и сделать сеть обучаемой. Отдельно спасибо за объяснение на пальцах-там где числовой пример.
@SuperWolchara
@SuperWolchara 4 жыл бұрын
Это божественно!
@МишкинаДеревня
@МишкинаДеревня 6 жыл бұрын
Спасибо большое! У вас самое понятное видео по машинному обучению. Жду новых видео по видам и типам сетей если можно )
@DmitryMikutsky
@DmitryMikutsky 5 жыл бұрын
Отлично раздевал! Как раз дописываю этот метод и были вопросы. Теперь все заработало!
@ddrdeveloper
@ddrdeveloper 7 жыл бұрын
изложено быстро и четко!
@kitusis244
@kitusis244 4 жыл бұрын
Прошло 3 года, а это виде всё так же спасает перед экзаменами =)
@ClosiusBeg
@ClosiusBeg 6 жыл бұрын
Огромное спасибо!! Респект огромный!
@olexandrpanov5987
@olexandrpanov5987 5 жыл бұрын
огромное спасибо автору за видео! Очень понятно и доступно для новичков в теме!
@VeryAngryRacoon
@VeryAngryRacoon 5 жыл бұрын
Пойду в храм за Вас свечку поставлю, наконец хорошее объяснение
@Philip_Just
@Philip_Just 4 жыл бұрын
спасибо чувак, за отличный пример хотя с непривычки всё равно сложно
@Mirage_2142
@Mirage_2142 7 жыл бұрын
Спасибо за видео, все очень хорошо разобрано. Хотелось бы еще увидеть видео по рекурентным сетям.
@LibertyGamesMatch3
@LibertyGamesMatch3 6 жыл бұрын
В расчете w10 - ошибка округления, должно быть 0,127 ,а не 0,128 (также w2 = 0,339). А вообще очень круто, спасибо
@corigneum-d5p
@corigneum-d5p 6 жыл бұрын
Есть предложение для новых видео: выпусти обучение языку Rust пошагово. Видео будет актуально, т. к. в интеренете их нет, язык молодой.
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 6 жыл бұрын
Хорошо. Зрители и подписчики, ставьте лайк под этим комментарием, если вам это тоже актуально. При высокой потребности - обязательно сниму видео
@Skreepan
@Skreepan 4 жыл бұрын
Хорошо объяснил, спасибо! Подписался и поставил палец вверх! Жду новых видео по нейронке!
@Blade_Ruiner
@Blade_Ruiner 2 жыл бұрын
Все уроки по обратной ошибке поделились на два лагеря: у одних ошибка - это "Что получилось" минус "Что ожидалось", у других - наоборот. Приходится работать с двумя вариантами и долгими ночами искать верный.
@TheMuska006
@TheMuska006 Жыл бұрын
d = y - e; корректнее, если есть квадрат как у целевой, то там без разницы
@olexandrpanov5987
@olexandrpanov5987 5 жыл бұрын
сколько я всего пересмотрел и перечитал - не работало. а тут за 15 минут все растолковали, и ЗАРАБОТАЛА СЕТОШКА
@user-ye4ky7uu7d
@user-ye4ky7uu7d 5 жыл бұрын
Спасибо! ☺
@imai_official
@imai_official 5 жыл бұрын
Автор молодец хорошо объяснил много уроков смотрел объясняет не как ты бро ты крут когда новый видос выпустишь как можно с тобой связятся???
@alex_step_
@alex_step_ 2 жыл бұрын
Я так понял, что есть как минимум два алгоритма "обратного оаспространения ошибки"? В этом способе ошибка вычисляется как ожидаемый результат минус фактический. Есть ещё другой, где наоборот из ответа сети вычитается эталон. Со вторым я разобрался, а этот способ встретил в книге Тарика Рашида "Создаём нейронную сеть" и не смог понять. Попробую разобраться по этому видео.
@sulaymonhursanov932
@sulaymonhursanov932 6 жыл бұрын
Когда выйдет следующий урок?
@nighthunter28
@nighthunter28 Жыл бұрын
проще сразу корректировать веса нейронов и вычислять новое значение ошибки, чем суммировать общую ошибку по всем связанным нейронам. ну эт кому как нравится. но нужно знать оба варинта.
@imai_official
@imai_official 5 жыл бұрын
Бро ты вообще крос еще видео. Когда же будет новый выпуск
@vazgenmkrtchyan9390
@vazgenmkrtchyan9390 4 жыл бұрын
классное видеьо. а скажи пожалуйста как расчитать ошибку если выходов например 3
@РусланАсташенко
@РусланАсташенко 4 жыл бұрын
Дифференцирование - какое интересное слово :))
@workerwatch3473
@workerwatch3473 3 жыл бұрын
Вот реально, единственное нормальное объяснение принципа работы нейросети с обратным распространением ошибки на русском. Даже в книжке Рашид Т. "Создаем нейронную сеть", на порядок сложнее понять, хотя казалось бы там все разжевано.
@sledleo
@sledleo Жыл бұрын
Все было понятно, пока не начались производные и дендриты...
@VitaliGajdabrus
@VitaliGajdabrus 6 жыл бұрын
Пытался 2 раза "Поддержи ничего не платя!..." - пишет что неправильно введён код... :( Когда ждать следующий урок по нейронным сетям? Ведь курс по нейронным сетям, судя по просмотрам, самый популярный. И у Вас талант подачи материала...
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 6 жыл бұрын
Спасибо! Не всегда этот сервис срабатывает, бывает нужно несколько попыток чтобы правильно засчитались цифры с картинки. По нейронным сетям будет видео, предположительно через пару видео, чтобы чередовать темы
@VitaliGajdabrus
@VitaliGajdabrus 6 жыл бұрын
Проверил - сервис "поддержи" работает... :)
@DmitryMikutsky
@DmitryMikutsky 5 жыл бұрын
Есть вопросы по обучению сверхточных сетей. Как правильно корректировать веса в ядре к сверточному слою и слою подвыборки.
@ИванЗадорный-ъ2и
@ИванЗадорный-ъ2и 6 жыл бұрын
Вопрос по формулам. Используется формула производной типа F*(1-F). В этой формуле, чем ближе к 0 или 1, тем меньший результат. Наибольший результат при F = 0,5. Сигмоида на выходе сильно меняет результат, когда на входе происходят изменения в районе близкие к 0,5, если на входе результат ближе к 0 или 1, то на выходе изменений практически нет. Казалось бы, чем ближе выход нейрона к 0 или 1, тем сильнее надо корректировать веса, подходящие к нему. А у Вас как раз наоборот, если выход нейрона близок к 1 или 0 , то коррекция весов происходит мелкими шагами. Всё зависает на этом месте. Если выход нейрона около 0,5, то коррекция весов происходит большими шагами, но ведь здесь как раз небольшое изменение входа приводит к сильному изменению выхода и лучше делать мелкие шаги. Также в формуле для коррекции весов используется умножение на значение входа. Для чего это делается? Так и не смог понять смысл этого действия. Попробовал выбросить из формулы производную и значение входа, всё прекрасно работает, обучение происходит быстрее.
@Industrialvrn
@Industrialvrn 4 жыл бұрын
быстро обучаешь, быстро переобучаешь. быстро обучаешь и перелетаешь минимум и при неправильной функции можно прыгать вокруг минимум долго, усердно и бесполезно ... по сему ... все хорошо, но Relu часто определяет
@РусланАсташенко
@РусланАсташенко 4 жыл бұрын
Как будет выглядеть функция активации у обученной нейронной сети? В функции которую показываете вы, есть елемент " E "- который является правильным ответом, но при входе рабочих данных у нас нет правильного ответа, наша сеть сама должна его найти, что тогда будет в функции активации на месте "E "? Надеюсь я понятно написал :)).
@РусланАсташенко
@РусланАсташенко 4 жыл бұрын
Понял, е - это константа 2.71828
@Тестовыйаккаунт-ь4д
@Тестовыйаккаунт-ь4д 4 жыл бұрын
в вычислениях нейронов почему-то нет смещений, как и корректировки их при обучении. Ошибка вроде как считается квадратичной еще.
@RiffoBLG
@RiffoBLG 6 жыл бұрын
На всех видео разбирают функцию активации сигмоид, как обучать функцию RELU, либо softplus, допустим прогноз цены либо какого то большого числа?
@boeing666
@boeing666 7 жыл бұрын
А по программной реализации вы снимете видео ? :)
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 7 жыл бұрын
Хорошо) Постараюсь)
@dmitryshepelev8125
@dmitryshepelev8125 6 жыл бұрын
А почему в примере не пересчитывались значения функции активаций после пересчета весов?
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 6 жыл бұрын
Пересчет весов осуществляется для входных сигналов. После пересчета весов, функции активации - это выходные сигналы. А они будут активированы только на следующем обучающем примере.
@KarapuZ1000
@KarapuZ1000 7 жыл бұрын
спасибо автору! лучшего контента не нашел) один только вопрос есть)) входные и выходные параметры могут быть только 0 и 1? или же любые числа от 0 до 1?
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 7 жыл бұрын
Могут быть разные, но различающиеся данные лучше разделять диапазоном побольше. Например, вход 0,05 и 0,10 по вашей задумке должны быть разными входами, а в сети, они могут и не различиться.
@KarapuZ1000
@KarapuZ1000 7 жыл бұрын
спасибо!)
@corigneum-d5p
@corigneum-d5p 6 жыл бұрын
а у меня вопрос: как именно анализировать или подбирать скорость обучения? есть какие-нибудь методы ?
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 6 жыл бұрын
Пока еще не разобрался в этом вопросе. Скорость выхода видео по этой теме практически соответствует моим текущим знаниям по сетям. Но обязательно сообщу как более подробнее разберусь
@АлександрОстапов-ф9п
@АлександрОстапов-ф9п 6 жыл бұрын
Могу посоветовать Вам книгу "создаем нейронную сеть" автор тарик рашид. В ней все доступно (на пальцах) объясняется.
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 6 жыл бұрын
Спасибо!
@СашкаБелый-ч6м
@СашкаБелый-ч6м 5 жыл бұрын
Опечатка на 10:22 - там S2 должна быть ровна -0.34, а у вас написано просто 0.34
@LibertyGamesMatch3
@LibertyGamesMatch3 6 жыл бұрын
Михаил, подскажите пожалуйста книгу по нейронным сетям из которой вы брали материал
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 6 жыл бұрын
Я глубоко сети еще не изучал. Непосредственно этот алгоритм я изучил с помощью статьи: galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html Также мне посоветовали (один из подписчиков), книгу Ташик Рашид "Создаем нейронную сеть". Но в ней я пока не дошел до этого момента, что упоминается в статье. Можешь посмотреть оба источника. Книга, по крайней мере по началу, что я прочитал несколько десятков страниц, очень доступно объясняет.
@farka1880
@farka1880 4 жыл бұрын
Лайк
@usertwgetrukwwr9669
@usertwgetrukwwr9669 4 жыл бұрын
А что если у нейросети несколько выходов а не один , тоже так же все ?
@ashotmanukyan8530
@ashotmanukyan8530 6 жыл бұрын
вопрос к автору, не понял до конца как вычислить корректировку веса если он не изменился?, если не трудно можно пример. Спасибо
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 6 жыл бұрын
Проверьте скорость обучения и измените округление до больше го числа значащих цифр. Как в видео за один проход веса могут измениться только на тысячную долю, хотя для удобства отображения я взял два знака. Также посмотрите, может значения выдаваемое нейроном равно нулю и поэтому изменения не происходит. Именно для этого необходимо создать каждому нейрону дополнительный вход "1" с собственным весом. Посмотрите также и этот момент в видео.
@alexandergugushvili7791
@alexandergugushvili7791 5 жыл бұрын
Всё вроде понятно а я всё никак не пойму как же это всё работает и как это писать в виде кода.
@valeriusmegamozg
@valeriusmegamozg 6 жыл бұрын
Дай номер счёта в банке я скину туда денюжку, эллектронных кошелков у меня нет и открывать не хочу
@farenoy6848
@farenoy6848 4 жыл бұрын
Блин , не могу понять. Написал на c# весь этот алгоритм. С одним скрытым слоем сеть +- работает , но когда добавляю 2 и более скрытых слоёв после цикла обучения ответ сети , не зависимо от входных нейронов , выходит всегда ~0.5. Кто знает в каком направлении копать , буду рад любому совету.
@masson22
@masson22 3 жыл бұрын
разобрался ?
@farenoy6848
@farenoy6848 3 жыл бұрын
@@masson22 да, у меня в алгоритме была ошибка). И скрытые слои требуют очень много данных для обучения
@masson22
@masson22 3 жыл бұрын
@@farenoy6848 слушай, помоги пожалуйста. Что если выходов у сети более 1? Как считать и распространять ошибку? Скажем, у меня 10 выходных нейронов. Правильный ответ это 1 из 10. В таком случае нужно распространять сумму всех ошибок выходного слоя? Или для каждого выходного нейрона отдельно (как показано на видео)? Никак не могу разобраться..
@dytell6299
@dytell6299 6 жыл бұрын
А как найти ошибку если у меня не один выход а например 2?
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 6 жыл бұрын
На каждом выходе у тебя будет свой эталон. Сколько выходов - столько и эталонов, соответственно столько же и ошибок. И дальше эта ошибка распространяется по той части структуры сети (!), которая связана с этим выходом. Можно считать что выходы предпоследнего слоя в примере будем считать уже окончательными выходами (не объединяются в единственном выходном нейроне) - там как раз столько ошибок, сколько нейронов в этом слое.
@dytell6299
@dytell6299 6 жыл бұрын
Ага спасибо большое лайк поставил :D
@TonyStark-gk6kt
@TonyStark-gk6kt 5 жыл бұрын
@@АлгоритмыПрограммирования Я не понимаю почему но там если 2 и более выходов то они не могут бить разние! они дублируютса. Обучение(input [0,1],[1,1],[1,0],[0,0] output( [0,1],[1,1],[1,0],[0,0] ) ) і после обучения выдает что то по типу ,input [0,1],[1,1],[1,0],[0,0] output( [0.5,0.5],[0.9,0.9],[0.5,0.5],[0.5,0.5]. то есть разных выходов не бывает! можете помочь а то уже 2 дня бюсь над етим!! :(
@alexey_pryadko
@alexey_pryadko 4 жыл бұрын
А где берутся весы скрытого слоя?
@lenaelf5054
@lenaelf5054 2 жыл бұрын
весы с потолка навешал
@ВикторияБабынцева
@ВикторияБабынцева 6 жыл бұрын
Дружище где 3-е видео?
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 6 жыл бұрын
Видео будет. Просто чередую с другими темами. Работа над созданием каждого видео занимает от 20 часов и больше, а времени не так много к сожалению.
@АлександрОстапов-ф9п
@АлександрОстапов-ф9п 6 жыл бұрын
Не получилось скачать материалы к уроку
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 6 жыл бұрын
Проверил, скачивает. Внутри есть ехсеl-файл с формулами. Когда перешел по ссылке, было предупреждение о том что файл может быть вредным. Возможно у вас блокирует скачивание именно по этому
@АлександрОстапов-ф9п
@АлександрОстапов-ф9п 6 жыл бұрын
Сейчас скачал. Всё получилось, СПАСИБО!
@Тудисюди-э7з
@Тудисюди-э7з 3 жыл бұрын
в начале ясно а вот с обратной ошибкой поплыл
@afonshinMegaPetuh
@afonshinMegaPetuh 4 жыл бұрын
реализовал алгоритм на java и нехрена , учится со скоростью улитки,в итоге я так и неждался
@Qwerty0.1
@Qwerty0.1 7 жыл бұрын
Запили сверточную нейросеть На делфи
@ddrdeveloper
@ddrdeveloper 7 жыл бұрын
Возьми и сделай сам, автор и так постарался, сделал такой материал.
@Qwerty0.1
@Qwerty0.1 7 жыл бұрын
Дмитрий Калюжный это все пустой звук. Праактика примеры... только это имеет смысл... на моем канале есть видео с сылками на исходники персептрона и многослоной сетки!
@ddrdeveloper
@ddrdeveloper 7 жыл бұрын
интереснее же самостоятельно создать, понять и прощупать. нежели на готовом...
@Qwerty0.1
@Qwerty0.1 7 жыл бұрын
Дмитрий Калюжный - ты скажи своим детям чтобы в школу не ходили, пусть сами с нуля все создают... Ну а нормальным людям, даны учебники практика, это как раз то что можно щупать...
@ddrdeveloper
@ddrdeveloper 7 жыл бұрын
Каждому свое.
@torhristos115
@torhristos115 3 жыл бұрын
Спасибо большое объяснение! Написал свою трехслоку на чистом java! Желающим могу скинуть код. Sharhan86@bk.ru
@ivankuznetsov5618
@ivankuznetsov5618 4 жыл бұрын
Комментарий
@saharvkusni6209
@saharvkusni6209 7 жыл бұрын
Блять , как давно 2 слоя -это многослойная сеть ?
@АлгоритмыПрограммирования
@АлгоритмыПрограммирования 7 жыл бұрын
Многослойная - 2 и более слоёв
ОСНОВЫ ПРОГРАММИРОВАНИЯ ИСКУССТВЕННЫХ НЕЙРОННЫХ СЕТЕЙ
23:32
Алгоритмы Программирования
Рет қаралды 24 М.
Обратное распространение ошибки
21:53
Дмитрий Коробченко
Рет қаралды 58 М.
Cool Parenting Gadget Against Mosquitos! 🦟👶 #gen
00:21
TheSoul Music Family
Рет қаралды 33 МЛН
А что бы ты сделал? @LimbLossBoss
00:17
История одного вокалиста
Рет қаралды 11 МЛН
МЕТОД МОНТЕ-КАРЛО. КАК ВЫЧИСЛИТЬ ПЛОЩАДЬ КЛЕНОВОГО ЛИСТА?
9:45
Алгоритмы Программирования
Рет қаралды 19 М.
Старейшая нерешённая задача [Veritasium]
30:08
Обратное распространение. Лекция 12.
1:37:00
Евгений Разинков
Рет қаралды 1,3 М.
Самое простое объяснение нейросети
16:30
Программный Кот
Рет қаралды 125 М.
Нейросеть. Самый детальный гайд.
32:23
Уже Наступило
Рет қаралды 245 М.
Cool Parenting Gadget Against Mosquitos! 🦟👶 #gen
00:21
TheSoul Music Family
Рет қаралды 33 МЛН