Нейросети | Урок #2 | Оптимизаторы. Что такое beta1 beta2? SGD RMSprop Adam AdamW

  Рет қаралды 2,803

magorokhoov

magorokhoov

Күн бұрын

Как работают оптимизаторы SGD, RMSprop, Adam?
Поддержать меня рублем: www.tinkoff.ru/rm/gorokhov.mi...
Наше сообщество в Telegram: t.me/+EzeAPkueYqplN2Yy
Сервер в Discord: / discord
Github: github.com/magorokhoov
1. 3Blue1Brown Neural Networks: • Neural networks
2. Перевод 3B1B: • DeepLearning
3. Красивое объяснение с визуализацией: towardsdatascience.com/a-visu...
4. Мой плейлист по нейронным сетям и PyTorch: • PyTorch и нейросети
5. Скоро будет ссылка на список полезных материалов (teletype)
0:00 - Введение (Спасибо моему студенту Даниилу Шангину за таймкоды)
2:10 - GD градиентный спуск
7:42 - SGD Стохастический градиентный спуск
18:35 - RMSprop
28:20 - Adam
36:05 - Отличия RMSprop и Adam
41:35 - Отличия Adam и AdamW
44:00 - - Конец

Пікірлер: 21
@user-hc1gm4yx6v
@user-hc1gm4yx6v Жыл бұрын
0:00 - 0:05 - Введение 0:05 - 2:10 - План и цель занятия 2:10 - 7:42 - GD градиентный спуск 7:42 -18:35 - SGD Стохастический градиентный спуск 18:35 - 28:20 - RMSprop 28:20 - 36:05 - Adam 36:05 - 41:35 - Отличия RMSprop и Adam 41:35 - 44:00 - Отличия Adam и AdamW 44:00 - 47:30 - Конец
@bysedova
@bysedova 5 ай бұрын
Как жаль, что такой ценный канал вы не развиваете активно... Очень понятно объясняете! Вообще в ML сильно и часто не хватает объяснений относительно быстрых и понятных.
@magorokhoov
@magorokhoov 3 ай бұрын
Спасибо за добрые слова! Накидайте сюда пожалуйста идеи, темы, какие темы хочется разобрать. Или мне в лс можно написать. Телеграмм: @magorokhoov
@bysedova
@bysedova 3 ай бұрын
@@magorokhoov хотелось бы увидеть про современные архитектуры, трансформеры, диффузионные модели, gpt, лама. Про оптимизацию нейронок, как свои писать, какой подход использовать для этого и чем руководствоваться. Вообще очень много тем, которые мало, где найти, когда уже перешагиваешь порог основ ML и DL.
@vadimvidyakin4788
@vadimvidyakin4788 Жыл бұрын
Привет, очень крутой у тебя материал, ты очень клево его подаешь, очень интересно смотреть, не заканчивай писать такие видосы, спасибо!
@magorokhoov
@magorokhoov Жыл бұрын
Спасибо 🙏🏻
@tkzy-ow1sc
@tkzy-ow1sc 4 ай бұрын
Огромное спасибо, я только написал свой тренировочный цикл и модель не переобучилась счастлив просто
@timon1816
@timon1816 Жыл бұрын
Кстати хотел бы посоветовать всем канал selfedu, у него есть множество полезных плейлистов, в том числе по машинному обучению и по нейронным сетям
@SS-ne5js
@SS-ne5js 3 ай бұрын
Здравствуйте! Как с вами можно связаться чтобы получить индвидуальные уроки по нейроным сеткам?
@magorokhoov
@magorokhoov 3 ай бұрын
Добрый день! Можно, @magorokhoov в телеграмме
@ApelsinArbuzov1
@ApelsinArbuzov1 Жыл бұрын
Подскажите пожалуйста. Вот к примеру в градиентном спуске, нельзя ли на уровне кода прописать запрет на обработку области с локальным минимумом, чтобы нейронка просто не обращала внимание на частный случай а обрабатывала только нужную область? Ведь это наверное эффективнее чем громоздить какие-то новые и более сложные методы, нет?
@magorokhoov
@magorokhoov Жыл бұрын
Каким образом можно написать запрет на обработку области с локальным минимумом? Какую область можно считать нужной? То есть, я не совсем понимаю, что вы имеете в виду. Пожалуйста, переформулируйте. Но я попробую ответить. Обнаружить локальный минимум - задача не из простых. Фактически, это и есть наша задача, найти локальный минимум), это задача оптимизации. Мы часто говорим о локальном минимуме, но на самом деле практически локальных минимумов не бывает, тк наш метод - стохастический. То есть для каждого мини-батча свое пространство loss, и для каждого мини-батча оно свое. В этом видео я преимущественно рассказывал об адаптивных алгоритмах, т.е с автоматической подстройкой learning rate. Я видел другие методы, в которых как бы стараются заглянуть вперед и проверить, более лучшие ли это веса, или стоит вернуться. Есть еще нормализация градиента, есть еще централизация градиента. Есть клипинг (срез). Есть еще комбинации SGD и ADAM (MAS).
@ApelsinArbuzov1
@ApelsinArbuzov1 Жыл бұрын
@@magorokhoov Мне это представлялось как-то попроще. К примеру провести 1-10 итераций. Затем по факту обнаруженных результатов назначить нечто вроде фильтра для отдельных областей (если задача и материал для обучения одни и те же) и таким образом сэкономить ресурсы на вычисление. Я извиняюсь, просто в нейронках я пока около ноля болтаюсь, просто присматриваюсь к теме и задаю другим и самому себе в частности, разные вопросы.
@magorokhoov
@magorokhoov Жыл бұрын
Я еще не могу понять, какие области и каким образом их фильтровать =) Давайте оценим, какие вычисления у нас происходят. 1. Прогоняем данные через нейросеть. Forward propagation. 2. Считаем loss (на сколько сетка ошиблась) 3. По этому loss делаем backpropagation, считаем градиенты на каждом слое сетки 4. Берем оптимизатор, на основе этих градиентов мы каким-то особым образом, особым алгоритмом (SGD, ADAM, и тд) обновляет веса сетки 5. Goto point 1, then repeat Напомню, пространство имеет огромную размерность. В сетках от 1 млн до 100 млн параметров. (чаще всего. Можно больше, можно меньше) На каком этапе вы хотите провести оптимизацию с фильтром?
@ApelsinArbuzov1
@ApelsinArbuzov1 Жыл бұрын
@@magorokhoov А после пятого пункта все полностью повторяется заново? Со всеми проверками и корректировками? Тогда логично предположить, что после пятого пункта, на основе полученных данных (ну или после 10 таких итерации) и можно поставить такой фильтр. Но это опять таки только с моей колокольни оценка.
@magorokhoov
@magorokhoov Жыл бұрын
Да, после 5 пункта все повторяется по новому. От прошлых этапов ничего не остается, кроме других весов модели, и некоторых величин в оптимизаторе (накопленные моменты в sgd и adam). Что будет делать этот фильтр?
@egor_neo
@egor_neo Жыл бұрын
В чем разница между ними на практике?
@magorokhoov
@magorokhoov Жыл бұрын
Adam отличается от RMSprop двумя чертами - скользящим средним по градиенту (beta1) и поправкой в начале обучения [m = m/(1 - beta1^t)] Поэтому, при beta1=0.0 и обучении дольше чем 1000-10000 иетраций Adam становится практически подобен RMSprop. SGD, говорят, в при более долгом обучении может давать немного лучше результат, чем Adam, но с Adam'ом сетка намного быстрее учится. Поэтому в +95% случаев используют Adam. Я ещё слышал, что RMSprop могут использовать в рекуррентных сетях. Краткий ответ: Adam - с ним нейросеть быстрее всего обучается, легче подобрать гиперпараметры (lr, beta1, beta2) RMSprop - возможно он хороший в рекуррентных сетях (я это вычитал где-то на reddit, я не проверял) SGD - максимально классический алгоритм. Сеть с ним дольше обучается, тк нету адаптивной подстройки lr. Я ещё изучаю эту тему. Она очень интересная. Есть ли ещё вопросы и пожелания? На всё постараюсь ответить
@egor_neo
@egor_neo Жыл бұрын
@@magorokhoov Вроде понятно, спасибо
PyTorch | Урок #3 | Пишем VGG с нуля
27:51
magorokhoov
Рет қаралды 2 М.
OMG🤪 #tiktok #shorts #potapova_blog
00:50
Potapova_blog
Рет қаралды 17 МЛН
Khóa ly biệt
01:00
Đào Nguyễn Ánh - Hữu Hưng
Рет қаралды 20 МЛН
Gradients and Partial Derivatives
5:24
Physics Videos by Eugene Khutoryansky
Рет қаралды 582 М.
Как работает ChatGPT: объясняем нейросети просто
39:04
RationalAnswer | Павел Комаровский
Рет қаралды 1,2 МЛН
Самое простое объяснение нейросети
16:30
Программный Кот
Рет қаралды 111 М.
Лекция. Градиентная оптимизация в Deep Learning
36:09
Про Kafka (основы)
49:23
Владимир Богдановский
Рет қаралды 366 М.
OMG🤪 #tiktok #shorts #potapova_blog
00:50
Potapova_blog
Рет қаралды 17 МЛН