background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Dropout - метод борьбы с переобучением нейронной сети | #11 нейросети на Python"

input logo icon
Теги видео
|

Теги видео

нейросеть
нейронная сеть
neural network
нейронка
neural networks
машинное обучение
искусственный интеллект
deep learning
НС
dropout
dropout keras
dropout layer
дропаут
уроки
tutorial
для начинающих
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:04
здраствуйте дорогие друзья на этом
00:00:06
занятии мы с вами рассмотрим довольно
00:00:08
распространенный метод борьбы с
00:00:10
переобучению который называется dropout
00:00:13
узнаем когда зачем и почему его следует
00:00:16
применять на практике ну что такое
00:00:19
переобучения думаю вы помните я уже
00:00:21
приводил вот такой пример с разделяющей
00:00:23
гипер плоскостью например когда у нас да
00:00:25
есть два класса образов они
00:00:27
линейные раздели бы и правильная линия
00:00:30
правильная разделяющая плоскость она
00:00:32
представляет собой вот такую линию
00:00:34
а если в нейронной сети слишком много
00:00:37
нейронов то вместо прямой линии
00:00:39
строить вот такая вот кривая из-за этого
00:00:41
возникает дополнительная ошибки это и
00:00:43
есть эффект переобучения или вот еще
00:00:46
может такой пример привести мозг
00:00:49
среднестатистического человек устроен
00:00:50
так что мы можем нормально воспринимать
00:00:53
слова даже из-за буковой крапивник
00:00:55
порядку но кроме первой буквы и
00:00:57
последний так вот если нейронная сеть
00:01:00
имеет большое число нейронов то она
00:01:03
подстраивается отпадать слова подать
00:01:05
буквы буквально по буквам из-за этого
00:01:09
могут возникать проблемы с восприятием
00:01:11
такого текста
00:01:12
но сеть с небольшим числом нейронов
00:01:14
который воспринимает слово целиком
00:01:16
сохранить способность к обобщению и
00:01:18
правильному распознаванию то есть
00:01:21
процесс переобучения это очень
00:01:23
негативный эффект и с ним всегда следует
00:01:25
бороться
00:01:26
но как в процессе обучения мы можем
00:01:28
понять происходит переобучение или нет
00:01:31
мы об этом тоже уже говорили на одном из
00:01:33
предыдущих занятий и отмечали что один
00:01:36
из критериев
00:01:37
это увеличение расхождения в точности
00:01:40
выходных значений между данными
00:01:43
обучающей выборке от обучающий выборка
00:01:46
она вот так ведет себя кривая точности а
00:01:49
это значение критерии качества для
00:01:51
выборки валидация и в момент когда они
00:01:54
начинают расходиться то это явный
00:01:57
признак эффекта переобучения и отсюда мы
00:01:59
получаем первую рекомендацию по борьбе с
00:02:02
переобучения если наблюдается такое то
00:02:05
расхождение в точности выходных значений
00:02:07
между обучающий проверочной выборками то
00:02:10
процесс обучения следует остановить вот
00:02:12
в этом месте
00:02:13
и уменьшить число не родов или просто
00:02:15
остановись посмотрите как вообще
00:02:17
работает не роли сеть может быть этого
00:02:18
будет достаточно но если мы пытаемся
00:02:21
бороться переобучение уменьшая число
00:02:23
нейронов
00:02:24
то это иногда приводит к худшим
00:02:27
показателем качества то есть вот этот
00:02:29
показатель качества тюб обучающе
00:02:31
множестве доходит вот допустим него
00:02:33
досюда него до этого уровня
00:02:35
останавливайте где эти вот здесь от
00:02:37
из-за того что число нейронов стало
00:02:38
меньше переобучение да никто все хорошо
00:02:41
но тем ни менее показатель качества он
00:02:43
не достаточно низкий поэтому хотелось бы
00:02:46
с одной стороны
00:02:47
сохранить количество число нейронов но с
00:02:50
другой стороны как-то уменьшить этот
00:02:53
эффект переобучения чтобы нейронной сети
00:02:55
сохранял свои обобщающие способности как
00:02:58
это сделать вот здесь нам на помощь как
00:03:01
раз приходит этот алгоритм который
00:03:03
получил название dropout по-русски он
00:03:05
читается так
00:03:06
dropout цель этого метода снизить
00:03:09
специализацию каждого отдельного нейрона
00:03:11
и сделать из них специалистов более
00:03:14
широкого профиля именно в этом корень
00:03:17
проблема переобучения но как уменьшить
00:03:19
специализацию сохраняя прежние число
00:03:22
нейронов очень просто давать снова представим что
00:03:26
в некой школе работает учителя по
00:03:28
различным предметам химии биологии
00:03:30
истории математики физики географии и
00:03:32
информатики
00:03:33
это их специализация затем в какой-то
00:03:36
момент времени директор школа заботился
00:03:40
их приверженностью только одной
00:03:42
дисциплине и решил расширить горизонт их
00:03:45
деятельности он заставил учитель по
00:03:47
химии проводить иногда
00:03:49
занятие по физике оучи себе по физике
00:03:51
иногда занятий по химия также менялись
00:03:54
местами между собой учителя по
00:03:56
информатике и математике
00:03:58
ну и вот эти вот три учителя по биологии
00:04:00
и истории география в итоге
00:04:03
учителям волей-неволей пришлось изучить
00:04:06
смежные дисциплины и расширить свою
00:04:08
специализацию теперь директор школы был
00:04:11
доволен и знал что если какой-то
00:04:13
отдельный учитель заболеет его будет тем
00:04:15
заменить теперь осталось понять как
00:04:18
проделать тот же самый фокус с нейронами
00:04:21
нейронной сети как в процессе обучения
00:04:23
им сказать чтобы они брали на себя funk
00:04:26
и других нейронов решение просто до
00:04:29
гениальности на каждой итерации обучение
00:04:32
нейронной сети часть не родов следует
00:04:35
отбросить с некой вероятность p
00:04:38
ну это как бы эффект того что какой-то
00:04:40
учитель заболел вот этот нейрон который
00:04:42
был отброшен от эти нейрон который были
00:04:44
отброшены как бы заболели и остальные
00:04:47
оставшиеся нейроны волей-неволей должны
00:04:49
брать на себя их функцию причем другой
00:04:52
момент времени на следующей операции
00:04:54
обучения с этой же вероятностью п будут
00:04:57
отброшены уже другие нейроны ну например
00:04:59
вот этот нейрон вот этот урон а вот эти
00:05:02
которые были тогда отброшены они
00:05:04
наоборот встанут строй и будет работать
00:05:07
то есть отбрасывать 100 одни нейрон то
00:05:09
другие той с определенной вероятностью
00:05:10
мы выключаем определенной нейроны
00:05:14
нейронной сети в результате общее число
00:05:17
нейронов остается прежним но их
00:05:19
специализация расширяется в этом суть
00:05:22
алгоритма dropout и в этом алгоритм
00:05:25
dropout отбрасывание отдельных нейронов
00:05:27
вот эта вероятность и п происходит на
00:05:30
каждой итерации изменения весовых
00:05:32
коэффициентов то есть если мы меняем
00:05:34
весовой коэффициент в пределах мини бача
00:05:36
то перед началом каждого мини бача с
00:05:39
вероятностью п отбрасывается какие-то
00:05:41
нейрону ну допустим вот эти вот который
00:05:43
здесь отмечен the teeth крестиком после
00:05:45
этого мы переобучить или вот эти вот
00:05:47
весовой коэффициент это все изменили их
00:05:49
в пределах мини батчат и потом с началом
00:05:52
нового мини бачимо от брассом какие-то
00:05:54
другие не рода то есть вероятность p мы
00:05:56
находим нейрона который отбрасываем и
00:05:58
опять в пределах мини бача работает
00:06:00
нейронной сети с этими отброшен
00:06:02
нейронами если у нас обучение происходит каждое
00:06:05
наблюдение каждое входное наблюдение то
00:06:08
выключение нейронов происходит после
00:06:11
каждого наблюдения то есть как только вы
00:06:13
сделали это рация обучения нейронной
00:06:15
сети мы начинаем отбрасывать другие
00:06:17
нейроны обучили опять отбрасываю нейроны
00:06:20
обучили опять отбрасываем нерона и так
00:06:22
далее то есть переключаемых каждый раз
00:06:24
вот в этом принцип работы алгоритм drop
00:06:27
out но здесь есть один тонкий момент
00:06:29
смотрите когда мы отключаем какие-то
00:06:32
нейроны вот например вот здесь это
00:06:34
рисунок такое это приведет
00:06:35
то исходная сумма которая у нас вот
00:06:38
образовался здесь на входе каждого
00:06:40
нейрона если бы они не были отброшены
00:06:42
она была бы вот такой вот
00:06:44
x то есть мы просуммировали все вот эти
00:06:46
вот связи умножить на вот эти вот
00:06:48
выходные значения из каждого нейрона
00:06:50
предыдущего слоя и у нас получился такой
00:06:52
от суммы которую сюда вот у нас подается
00:06:54
проходит через функция активации
00:06:56
получается выходное значение нейрон но
00:06:59
когда мы отбрасываем некие нейроны то у
00:07:02
нас получается уже другая сумма
00:07:04
и костюм и эта сумма эксклю она
00:07:07
соответственно будет вот такое ну если
00:07:09
мы отбросим вот эти первые два нейрона
00:07:10
то оно будет вот такой вот как вы
00:07:13
понимаете вот это вот эксклю будет
00:07:15
меньше чем x
00:07:17
а это значит что и выходное значение вот
00:07:20
на этом nero не будет получаться уже
00:07:22
другим тоже когда он будет проходить
00:07:24
через функций активация а может даже не
00:07:26
сработать и соответственно нас будет
00:07:28
какой другой значение вообще говоря
00:07:30
нейронная сеть в этом случае будет
00:07:32
выдавать не корректные результаты
00:07:34
поэтому вот эти вот это вот сумму
00:07:36
которую нас здесь вот получается при
00:07:38
отбрасывании вот этих вот нейронов нужно
00:07:41
корректировать
00:07:42
как это сделать вы смотреть предположим
00:07:45
что нас в слое нейронной сети н нейронов
00:07:48
в данном случае n равна 5
00:07:50
и нам нужно вычислить сколько в среднем
00:07:52
будет
00:07:53
выключенных нейронов вот понятие в
00:07:56
среднем в теории вероятности это есть
00:07:59
математическое ожидание и мы вычисляем
00:08:02
математическое ожидание
00:08:03
я сейчас поясню что означает эта формула
00:08:06
вот здесь от величины x и
00:08:08
и п.и. они означают следующее по и это
00:08:11
вероятность выключение нейрона ну то о
00:08:14
чем и говорит сам начале а x и
00:08:16
это случайная величина который принимает
00:08:19
1 то есть это число нейронов
00:08:20
которым применяется этот вероятность p
00:08:23
то есть вероятность p применять каждому
00:08:25
отдельному нейрону поэтому x и всегда
00:08:28
равна единице тогда подставляют все это
00:08:31
вот в эту формулу выше у нас получается
00:08:33
следующее это будет математическое
00:08:35
ожидание от сумма вот этих вот
00:08:37
вероятностей ну и так как у нас всего
00:08:40
вот здесь вот н нейронов то на спрос
00:08:42
получается н умноженное на p это и есть
00:08:45
средние число
00:08:47
выключенных нейронов в текущем слое
00:08:50
нейронной сети то есть мы общее число
00:08:52
нейронов
00:08:53
умножаем на вероятность выключенных
00:08:56
нейронов и получается вот этого средние
00:08:58
значения noise а ты сам противоположное
00:09:00
число число включенных неровных то есть
00:09:03
среднее число включенных нейронов это
00:09:06
будет просто n минус n умноженное на p
00:09:09
но это очевидно если мы вынесем за
00:09:11
скобки здесь будет единица минус единице
00:09:14
минус п обозначим через u и у нас
00:09:16
получается
00:09:17
enter это среднее число включенных
00:09:20
нейронов то есть по сути дела за стю это
00:09:23
вероятность того что нейрон будет
00:09:24
включен и вот как раз зная вот эти две
00:09:27
величины
00:09:28
н т и н чём мы можем понять на сколько в
00:09:33
среднем вот этот сигнал будет меньше вот
00:09:36
этого сигнала
00:09:37
то есть мы можем найти их отношения
00:09:40
отношения будет следующим то есть
00:09:42
отношение к скука x будет
00:09:44
пропорционально
00:09:45
and у деленный на n-ное или н мы здесь
00:09:48
сокращаем просто остается тек то есть
00:09:50
вот это вот отношения и костю деленный
00:09:52
на x пропорционально вот этот величию то
00:09:55
есть вероятности того что нейрон будет
00:09:57
включен то есть 11 линий рода будет
00:10:00
включен и вот из этого выражения как раз
00:10:02
исследует что вот этот величину и костю
00:10:04
мы должны умножить на единицы деленный
00:10:08
на те чтобы она стал пропорционально вот
00:10:11
этой величине x так как будто бы у нас
00:10:14
все нейроны нейронной сети включены
00:10:16
то есть если вот это вот эксклю умножим
00:10:18
на единицу деленный на чью-то у нас вот
00:10:21
этот сигнал становится пропорциональным
00:10:24
сопоставимом вот с этим сигналам x то
00:10:27
есть так как будто бы у нас все нейроны
00:10:29
включены и мы ничего не отбрасывали
00:10:31
и тогда выход нейронной сети в целом
00:10:34
будет соответствовать ее нормальной
00:10:37
работе во многих фреймом орках алгоритм
00:10:40
dropout реализовано вот именно так
00:10:42
суммарный сигнал на входах нейронах
00:10:44
масштабируется эмулирует поведение
00:10:47
полной сети со всеми нейронами но и
00:10:50
благодаря этому в среднем выходной
00:10:52
сигнал сети соответствуют истинным
00:10:54
значением при эксплуатации это когда же
00:10:57
нам следует используется алгоритм drop
00:10:59
out
00:11:00
ну смотрите рекомендации здесь такая
00:11:02
если наблюдается переобучение нашей
00:11:04
нейронной сети и сокращение числа
00:11:07
нейронов по каким-то причинам не
00:11:08
допустимо то следует попробовать этот
00:11:11
алгоритм dropout но здесь остается
00:11:13
открытый вопрос как выбирать вот этот
00:11:16
вероятность p
00:11:17
авторы этого подхода рекомендует для
00:11:20
нейронов скрытого слоя начинается
00:11:22
значение п 0,5
00:11:24
ну и от себя добавлю что затем при
00:11:28
необходимости можно попробовать и другие
00:11:30
значения 0,4 или 0,3 также следует иметь
00:11:35
ввиду что это не абсолютное средства то
00:11:38
есть dropout это не абсолютное средство
00:11:40
борьбы с при обучении она может помочь а
00:11:42
может и не помочь
00:11:44
то есть если эффекта нет the ocean lodge
00:11:47
просто отказаться искать другие пути
00:11:49
выхода из сложившейся ситуации и
00:11:52
добавлять его в нейронную сеть следует
00:11:54
только в том случае если нас
00:11:57
действительно возникли проблемы с
00:11:58
переобучения то есть нам нужно просто в
00:12:00
начале обучить нейроны съесть
00:12:02
попробовать обучить и роли сеть без
00:12:04
всяких drop out of но если мы замечаем
00:12:06
переобучение тогда его можно добавить
00:12:09
посмотреть возможно он нам поможет то
00:12:12
есть вот такой алгоритм действий давайте
00:12:15
посмотрим как вот этот метод dropout
00:12:16
можно использовать пакетики раз для
00:12:19
демонстрации его работы я смоделировал
00:12:21
искусстве например переобучение
00:12:24
распознавание цифр то взял программу из
00:12:26
8 урока где мы распознавали цифры
00:12:28
немножко ее модифицировал что именно я
00:12:31
изменил смотрите вот здесь вот но вот dropout
00:12:35
уже стоит мы вот так уберем сейчас я
00:12:37
поясню как и что здесь делается и взял
00:12:40
пять тысяч наблюдений и за нашей
00:12:42
обучающей выборке то есть обучающий
00:12:44
выбор кстати из 60 тысяч наблюдений а
00:12:47
всего из пяти тысяч и далее мы
00:12:49
использование рону сеть из трехсот
00:12:51
нейронов это явно много то есть тут явно
00:12:54
должно быть переобучение ну и
00:12:56
соответственно мы обучаем это нейронная
00:12:58
сеть вот статьи вот оптимизаторам то
00:13:01
есть здесь все стандартно и давайте
00:13:03
посмотрим как это все будет выглядеть я
00:13:05
запущу вот этот процесс обучения ну да
00:13:08
довольно быстро все обучается смотрите
00:13:10
что у нас получилось график для выборки
00:13:13
редакции это оранжевый график и для
00:13:16
обучающего множества начинает
00:13:18
расходиться то есть это вот как раз вот
00:13:20
призрак эффект переобучению давайте
00:13:23
попробуем его с ним побороться с помощью
00:13:25
алгоритма dropout притчи вот этот
00:13:27
оранжевый графика он доходит до уровне
00:13:29
где-то 3,2 здесь да и потом начинает
00:13:32
уходить отсюда вот выше мы это запомним
00:13:35
то есть вот этот уровень 0,2 даже чуть
00:13:38
побольше это нижняя . вот для этого оранжевого
00:13:41
графика то есть по сути дела когда
00:13:43
начинаем эксплуатируйте рону сеть то ее
00:13:46
качество будет вот на этом уровне теперь
00:13:48
мы добавим вот этот слой dropout то есть
00:13:51
вот он добавляется таким образом просто
00:13:53
пишем dropout соответственно здесь в
00:13:55
начале мы его должны импортировать как
00:13:57
слой и соответственно здесь от моего так
00:13:59
прописан 08 это сотряс и вероятность p
00:14:03
вот о которой мы говорили только что
00:14:05
08 конечно большая вероятность то есть
00:14:07
мы 80 процентов нейрона будем
00:14:09
отбрасывать специального такое значение чтобы вот
00:14:11
сейчас я буду показывать как dropout
00:14:13
влияет на обучение нейронной сети ну и
00:14:16
соответствовать он это dropout будет
00:14:18
применяться к тому слой после которого
00:14:21
стоит то есть вот к этому слою и там где
00:14:23
300 нейронов все остальные слои будут
00:14:25
без всяких drop out of то есть dropout
00:14:27
ставить после того слоя к которому он
00:14:29
применяется ну и давайте опять запустим
00:14:32
процесс обучения и посмотрим что у нас в
00:14:35
итоге получится вот пошел процесс
00:14:37
обучения 50 эпох сейчас мы подождем до
00:14:40
конца когда все пройдет и смотрите у нас
00:14:43
есть качество обучения также находится
00:14:45
где-то на уровне 0,2
00:14:47
но вот эти вот графики они и уже не так
00:14:50
расходятся можешь сказать даже не
00:14:51
расходится вот этот выбор к валидация
00:14:53
она находится например на одном и том же
00:14:55
уровне это вот как раз
00:14:57
эффект работы алгоритма dropout то есть
00:15:00
он не позволяет нейронам слишком сильно
00:15:02
специализироваться и тем самым устраняет
00:15:05
эффект переобучения и нашей нейроны сеть
00:15:08
и отделение ран и становится как бы
00:15:10
нейронами более широкой специализации ну
00:15:13
и соответственно нас получается такой
00:15:15
уже пологий оранжевый график то есть мы
00:15:18
несколько снизили вот этот эффект
00:15:20
переобучение благодаря использованию вот
00:15:23
это вот метода dropout конечно это
00:15:25
довольно искусственной
00:15:26
гипертрофированный пример но он наглядно
00:15:29
демонстрирует эффект уменьшения степени
00:15:31
специализация отдельных нейронов и
00:15:34
повышение качества обучения при
00:15:36
сохранении общего числа нейронов
00:15:38
нейронной сети вот что из себя
00:15:40
представляет алгоритм dropout и вот так
00:15:43
кто не работает
00:15:44
[музыка]

Описание:

Узнаете принцип работы Dropout (дропаут) для борьбы с переобучением сети. Рекомендации его использования. Пример реализации в Keras. Телеграм-канал: https://t.me/machine_learning_selfedu Инфо-сайт: http://proproprogs.ru/ lesson 11. Dropout.py: https://github.com/selfedu-rus/neural-network

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Dropout - метод борьбы с переобучением нейронной сети | #11 нейросети на Python"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Dropout - метод борьбы с переобучением нейронной сети | #11 нейросети на Python" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Dropout - метод борьбы с переобучением нейронной сети | #11 нейросети на Python"?mobile menu icon

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

mobile menu iconКак скачать видео "Dropout - метод борьбы с переобучением нейронной сети | #11 нейросети на Python" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Dropout - метод борьбы с переобучением нейронной сети | #11 нейросети на Python"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Dropout - метод борьбы с переобучением нейронной сети | #11 нейросети на Python"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

  • Нисколько. Наши сервисы абсолютно бесплатны для всех пользователей. Здесь нет PRO подписок, нет ограничений на количество или максимальную длину скачиваемого видео.