Ваш курс по нейронкам самый лучший. Материал воспринимается очень легко. Только у вас в видео по нейронкам есть математические формулы (отдельное спасибо Вам за это), с ними намного понятнее все становится.
Спасибо, очень интересно, но дьявол в деталях Нужно разобраться как сделать этот дропаут для нескольких слоев и как будет происходить градиентный спуск и коррекция весов. Обязательно закодить самому это, а потом сравнить с тем что получится в керас
В этом примере если увеличить число эпох с 50 до 300, то графики loss и val_loss точно так же разойдутся как и без dropout'а. Отсюда пара вопросов: нужно ли ограничивать число эпох при обучении нейросетей, если происходит переобучение? Или же наоборот - если при увеличении эпох происходит переобучение, то это сигнал о том, что данная архитектура сети не предназначена для решения поставленной задачи, и ее надо менять?
Да, при расхождении следует прерывать процесс обучения и если при этом качество работы сети удовлетворительное, то переобучать не нужно, можно эксплуатировать.
Вопрос автору: скажите, пожалуйста, а можно ли уменьшить эффект переобучения за счет увеличения обучающей выборки? К примеру в примере с распознаванием цифр, если бы мы просто увеличили обучающую выборку в 2 раза (разумеется новыми уникальными изображениями цифр), это привело бы к снижению переобучения?
В целом так делают - только вот где взять выборку в 2 раза большую. Поэтому используют имеющуюся выборку с трансформациями - а вариантов там много - просто сдвиги, повороты, отражения по вертикали/горизонтали (цифрам отражения не помогут, а вот если ты распознаешь пиццу - то самое то), маштабирование, цветовые и яркостные манипуляции, добавление шумовых эффектов... etc Это все позволяет увеличить уникалюную выборку. Но дальше будут скорее всего свертки, и там есть другой механизм усреднения - так называемый max pool/ Я уверен что автор это покажет в следующих сериях
Спасибо за ваши видео, очень понятный курс. Есть небольшой вопрос, что за цифры в логах пишутся при обучении сети: Epoch 1/5 157/157. Что такое 157? При изменении размера батча они тоже меняются, но если у нас батч 32, то значит и там должно быть 32 из 32, по идее. Да и как я понял, батч это грубо говоря просто часть от всей эпохи, соответственно все равно при обучении у нас должно пройти 5000 изображений, просто взятые группами по 32. Вижу что 50 эпох проходит, т.е. 5000 по 50 раз прогналось через сеть, почему пишет 157?
Этого не скажу, переобучение зависит от множества параметров и не только числа слоев. Но есть исследования, котореые показывают, что как правило, увеличение числа слоев с сохранением числа нейронов лучше для задач классификации, чем если бы использовался только один слой с тем же числом нейронов. Возможно, исходя из этого, переобучение будет чаще возникать при увеличении слоев (при том же числе нейронов). Но это лишь гипотеза.
Интересно, дропаут не всегда работает например в силу того что отключение узлов происходит случайным образом? То есть правильно ли я понимаю, что возможная такая ситуация: допустим мы решили написать сеть которая определяет есть ли кот на фото. Обучающую выборку мы формировали фоткая котов в парках, в результате чего на фото часто оказывались фонари и скамейки (это шум). Тогда может оказаться так, что веса связанные со скамейками и фонарями дают существенный вклад и на фото где нет кота но есть много фонарей и скамеек мы можем получить что якобы кот есть. Если же мы будем использовать дропаут, то есть вероятность что узлы отвечающие за скамейки и фонари будут часто "угасать" в процессе обучения и тем самым мы добьемся того что вклад этих узлов будет минимизирован. Но как вы сказали дропаут работает не всегда, и если например случайно получится так что чаще всего "угасать" будут узлы отвечающие за определение данных кота то может возникнуть ситуация где дропаут не сработает. А при предыдущем раскладе все получится т.к данные кота на фото почти не "угасали" а вместо этого "угасали" узлы отвечающие за пиксели фонарей и скамеек. Верно ли я описал то почему именно дропаут может иногда работать а иногда нет?
Думаю, нет. Дропаут увеличивает обобщающие способности на тех данных, что мы предъявляем сети. Если коты часто на фоне фонарей, то это недостаток обучающей выборки и дропаут здесь не спасет. Он лишь инструмент от переобучения - слишком точной подстройки разделяющей плоскости под обучающие данные - не более того.
@@selfedu_rus Спасибо! Под обобщающими способностями подразумевается то, что если например нам на картинке нужно распознать стул, и предположим каждый узел отвечает за распознавание определенной части стула, например, ножек стула, сиденья, спинки. Например отключая узел который связан с распознаванием спинки мы "говорим" сети: смотри, вот тебе ножки и сиденье и это тоже стул (но без спинки) и так далее отключаем то один то другой признак и "заставляем" сеть давать нам правильный ответ даже тогда, когда на картинке присутствуют не все признаки предмета. Примерно так можно понимать обобщение через дропаут?
@@КоляВасильев-о5и Не совсем, это означает, что качество распознавания в реальных условиях оказывается сравнимым с качеством на обучающей выборке. Как в деталях при этом работает нейросеть, какие признаки учитывает или не учитывает - отдельный вопрос.
@@selfedu_rus Да, этот эффект "качество распознавания в реальных условиях оказывается сравнимым с качеством на обучающей выборке" я наблюдал, это то к чему может приводить использование дропаута. Спасибо!
@@selfedu_rus В целом осталось непонятным то как именно дропаут работает и почему иногда работает а иногда нет. На просторах интернета наткнулся на мнение, что на практике дропаут может работать, но его теоретически полное обоснование нам неизвестно. Скажите пожалуйста, что вы думаете по этому поводу?
оооо кжаись начинаю поинмать... т.е. случайно отброшенные нейроны... это тоже самое, в принципе , что и аугументация? например в цветной фотграфии наделать чёрных квадратиков мелких в рандомных местах... да?
Я думаю не совсем. Если наделать черных квадратиков - это потеря входной информации, а отключение нейронов - это необходимость другим брать на себя все функции по классификации, то есть, становиться более универсальными и, тем самым, нейронная сеть приобретает лучшие обобщающие способности.
@@selfedu_rus интересен эффект от совмещения этих действий.. завтра доберусь до сверточных сетей, у меня всего 3000 фоток собак и кошек.. мало в задании, придётся аугументацию делать и идея отключения нейронов интуитивно кажется рабочей. Может тогда лучше засочетается с пятнами изменения яркости, например. Интересно. Я понял ваше мнение, спасибо.
Доброго времени суток уважаемый автор канала! Подскажите пожалуйста если нейронная сеть обучается очень долго ( несколько дней), можно ли как то приостанавливать процесс обучения и выходить из программы, а после запускать программу снова чтобы обучения продолжилось? Помогите пожалуйста, очень нужно!
да, см. описание callback функций процесса обучения, там все можно сделать (и описание по Tensorflow, по моему даже в моем плейлисте есть что то про это)
Здравствуйте. Ответьте пожалуйста, как исключение нейронов устраняет переобучение? Понятно что dropout ускоряет процесс обучения, понятно что dropout учит сеть работать не со всеми нейронами. Но как это помогает избежать переобучения непонятно.
Здравствуйте. В видео говорится, что временное исключение части нейронов способствует повышению их обобщающих способностей. В этом главная фикша Dropout.
Хотел задать вопрос, прошу прощения если он окажется глупым, Возможно ли дообучить уже обученную нейронную сеть, например у нас появились новые данные, и мы хотим дообучить ее на новых данных, при этом не начиная процесс обучения с самого начала??? или же придется начинать все сначала??
Вы просто мастер, так доступно и лаконично объясняете, признаться, захватило сразу же и помогло в продвижении. Благодарю!
Ваш курс по нейронкам самый лучший. Материал воспринимается очень легко.
Только у вас в видео по нейронкам есть математические формулы (отдельное спасибо Вам за это), с ними намного понятнее все становится.
положительный отзыв, я сейчас обучаюсь на курсах по нейросетям, и очень хотел бы чтобы там были такие преподаватели
Огромное спасибо, более понятного обьяснения не найти)
спасиб за формулы!
будто в инст вернулся на пары тервера😅
Спасибо, очень интересно, но дьявол в деталях
Нужно разобраться как сделать этот дропаут для нескольких слоев и как будет происходить градиентный спуск и коррекция весов.
Обязательно закодить самому это, а потом сравнить с тем что получится в керас
Спасибо за курс, но очень хотелось бы продолжения по Autokeras
С формулами как всегда все усложнено, достаточно сумму выходов вкл. нейронов * на коэф. - отношения всех нейронов к включенным.
А ещё проще сказать, что вместо выключенных нейронов подставляются средние значения включенных нейронов, как я понимаю это и происходит.
Рассмешил пример с "Мозг человека устроен так...", после того как вгляделся и перечитал)
Спасибо
Интересно, а можно определить вероятность p как переменную и с оптимизировать по ней? таким образом подобрав оптимальное значение...
Спасибо!
Я не понимаю почему , но даже с 500 нейронами и выборкой в 5000 показатель валидации держишься в районе 65
поправочка: на график наверно не показатель качества, а размер ошибки?
В этом примере если увеличить число эпох с 50 до 300, то графики loss и val_loss точно так же разойдутся как и без dropout'а. Отсюда пара вопросов: нужно ли ограничивать число эпох при обучении нейросетей, если происходит переобучение? Или же наоборот - если при увеличении эпох происходит переобучение, то это сигнал о том, что данная архитектура сети не предназначена для решения поставленной задачи, и ее надо менять?
Да, при расхождении следует прерывать процесс обучения и если при этом качество работы сети удовлетворительное, то переобучать не нужно, можно эксплуатировать.
Вопрос автору: скажите, пожалуйста, а можно ли уменьшить эффект переобучения за счет увеличения обучающей выборки? К примеру в примере с распознаванием цифр, если бы мы просто увеличили обучающую выборку в 2 раза (разумеется новыми уникальными изображениями цифр), это привело бы к снижению переобучения?
теоретически возможно, но сложно, лучше менять структуру НС
В целом так делают - только вот где взять выборку в 2 раза большую. Поэтому используют имеющуюся выборку с трансформациями - а вариантов там много - просто сдвиги, повороты, отражения по вертикали/горизонтали (цифрам отражения не помогут, а вот если ты распознаешь пиццу - то самое то), маштабирование, цветовые и яркостные манипуляции, добавление шумовых эффектов... etc Это все позволяет увеличить уникалюную выборку. Но дальше будут скорее всего свертки, и там есть другой механизм усреднения - так называемый max pool/ Я уверен что автор это покажет в следующих сериях
7:15 почему сумма меньше? Если отброшенные слагаемые меньше нуля, то сумма станет больше.
Поясните, пожалуйста, в комментариях.
да, верно, просто другая, спасибо!
Спасибо за ваши видео, очень понятный курс.
Есть небольшой вопрос, что за цифры в логах пишутся при обучении сети:
Epoch 1/5
157/157. Что такое 157? При изменении размера батча они тоже меняются, но если у нас батч 32, то значит и там должно быть 32 из 32, по идее. Да и как я понял, батч это грубо говоря просто часть от всей эпохи, соответственно все равно при обучении у нас должно пройти 5000 изображений, просто взятые группами по 32. Вижу что 50 эпох проходит, т.е. 5000 по 50 раз прогналось через сеть, почему пишет 157?
Спасибо! Это вроде число мини-батчей в обучающей выборке.
@@selfedu_rus вроде сходится. Очень жаль, что с каждым следующим видео количество просмотров уменьшается, не все видимо готовы осилить этот курс)
Вопрос автору: а изменение числа скрытых слоёв нейронки без изменения общего кол-ва нейронов как повлияет на переоблучение?
Этого не скажу, переобучение зависит от множества параметров и не только числа слоев. Но есть исследования, котореые показывают, что как правило, увеличение числа слоев с сохранением числа нейронов лучше для задач классификации, чем если бы использовался только один слой с тем же числом нейронов. Возможно, исходя из этого, переобучение будет чаще возникать при увеличении слоев (при том же числе нейронов). Но это лишь гипотеза.
Интересно, дропаут не всегда работает например в силу того что отключение узлов происходит случайным образом? То есть правильно ли я понимаю, что
возможная такая ситуация: допустим мы решили написать сеть которая определяет есть ли кот на фото. Обучающую выборку мы формировали фоткая котов в парках, в результате чего на фото часто оказывались фонари и скамейки (это шум).
Тогда может оказаться так, что веса связанные со скамейками и фонарями дают существенный вклад и на фото где нет кота но есть много фонарей и скамеек мы можем
получить что якобы кот есть. Если же мы будем использовать дропаут, то есть вероятность что узлы отвечающие за скамейки и фонари будут часто "угасать" в процессе обучения и тем самым мы добьемся того что вклад этих узлов будет минимизирован. Но как вы сказали дропаут работает не всегда, и если например случайно получится так что чаще всего "угасать" будут узлы отвечающие за определение данных кота то может возникнуть ситуация где дропаут не сработает. А при предыдущем раскладе все получится т.к данные кота на фото почти не "угасали" а вместо этого "угасали" узлы отвечающие за пиксели фонарей и скамеек.
Верно ли я описал то почему именно дропаут может иногда работать а иногда нет?
Думаю, нет. Дропаут увеличивает обобщающие способности на тех данных, что мы предъявляем сети. Если коты часто на фоне фонарей, то это недостаток обучающей выборки и дропаут здесь не спасет. Он лишь инструмент от переобучения - слишком точной подстройки разделяющей плоскости под обучающие данные - не более того.
@@selfedu_rus Спасибо! Под обобщающими способностями подразумевается то, что если например нам на картинке нужно распознать стул, и предположим каждый узел отвечает за распознавание определенной части стула, например, ножек стула, сиденья, спинки. Например отключая узел который связан с распознаванием спинки мы "говорим" сети: смотри, вот тебе ножки и сиденье и это тоже стул (но без спинки) и так далее отключаем то один то другой признак и "заставляем" сеть давать нам правильный ответ даже тогда, когда на картинке присутствуют не все признаки предмета. Примерно так можно понимать обобщение через дропаут?
@@КоляВасильев-о5и Не совсем, это означает, что качество распознавания в реальных условиях оказывается сравнимым с качеством на обучающей выборке. Как в деталях при этом работает нейросеть, какие признаки учитывает или не учитывает - отдельный вопрос.
@@selfedu_rus Да, этот эффект "качество распознавания в реальных условиях оказывается сравнимым с качеством на обучающей выборке" я наблюдал, это то к чему может приводить использование дропаута. Спасибо!
@@selfedu_rus В целом осталось непонятным то как именно дропаут работает и почему иногда работает а иногда нет. На просторах интернета наткнулся на мнение, что на практике дропаут может работать, но его теоретически полное обоснование нам неизвестно. Скажите пожалуйста, что вы думаете по этому поводу?
оооо кжаись начинаю поинмать... т.е. случайно отброшенные нейроны... это тоже самое, в принципе , что и аугументация? например в цветной фотграфии наделать чёрных квадратиков мелких в рандомных местах... да?
Я думаю не совсем. Если наделать черных квадратиков - это потеря входной информации, а отключение нейронов - это необходимость другим брать на себя все функции по классификации, то есть, становиться более универсальными и, тем самым, нейронная сеть приобретает лучшие обобщающие способности.
@@selfedu_rus интересен эффект от совмещения этих действий.. завтра доберусь до сверточных сетей, у меня всего 3000 фоток собак и кошек.. мало в задании, придётся аугументацию делать и идея отключения нейронов интуитивно кажется рабочей. Может тогда лучше засочетается с пятнами изменения яркости, например. Интересно. Я понял ваше мнение, спасибо.
Доброго времени суток уважаемый автор канала!
Подскажите пожалуйста если нейронная сеть обучается очень долго ( несколько дней), можно ли как то приостанавливать процесс обучения и выходить из программы, а после запускать программу снова чтобы обучения продолжилось?
Помогите пожалуйста, очень нужно!
да, см. описание callback функций процесса обучения, там все можно сделать (и описание по Tensorflow, по моему даже в моем плейлисте есть что то про это)
отлично
конечным "судьёй" же является тестовая выборка?
как ведёт себя модель с дропаут и без него с тестовой выборкой
вы можете это сами проверить, ссылка на программу под видео )
Сергей вы прекрасный учитель, почему не выложите на coursera, udemy? Очень мало полезных курсов там
Спасибо! Сейчас прорабатываю курс по Python для Stepik
Здравствуйте. Ответьте пожалуйста, как исключение нейронов устраняет переобучение? Понятно что dropout ускоряет процесс обучения, понятно что dropout учит сеть работать не со всеми нейронами. Но как это помогает избежать переобучения непонятно.
Здравствуйте. В видео говорится, что временное исключение части нейронов способствует повышению их обобщающих способностей. В этом главная фикша Dropout.
Хотел задать вопрос, прошу прощения если он окажется глупым, Возможно ли дообучить уже обученную нейронную сеть, например у нас появились новые данные, и мы хотим дообучить ее на новых данных, при этом не начиная процесс обучения с самого начала??? или же придется начинать все сначала??
нужно сохранять состояние НС (в файл), а потом, позже, загрузить и продолжить обучение. Это и есть дообучение.
А ты не путаешь переобучение с выбором неправильной архитектуры нейронной сети?
нет )
полтора процента дропаут прибавил) я имею ввиду нормальную, а не ломаную версию этого занятия
+
Увольнять таких директоров, и лишать права работать в образовательных структурах.
Метод борьбы с занудством
10102024