Ссылка не мой доклад на ODS-овский Data Fest 2023:
https://www.youtube.com/watch?v=Npm-awHtfeM
В нём я по-немножку затрагиваю множество тем, большинство из которых не поместились в отведённые пол часа:
- Визуализация траектории обучения,
- ошибки в pytorch
- Дисперсия граджиентов и диаграмма градиентов вообще.
- Влиянеи импульса (momentum) на ход обучения нейросети.
- Размеры batch как фактор сглаживания дисперсии градиентов в всети
- дополнительный momentum для bias-ов (в нём заключается половина пользы от ).
- И другие тонкости манипулирования импульсами.
https://www.youtube.com/watch?v=Npm-awHtfeM
В нём я по-немножку затрагиваю множество тем, большинство из которых не поместились в отведённые пол часа:
- Визуализация траектории обучения,
- ошибки в pytorch
- Дисперсия граджиентов и диаграмма градиентов вообще.
- Влиянеи импульса (momentum) на ход обучения нейросети.
- Размеры batch как фактор сглаживания дисперсии градиентов в всети
- дополнительный momentum для bias-ов (в нём заключается половина пользы от ).
- И другие тонкости манипулирования импульсами.
YouTube
Влад Голощапов - Моментум истины: Не всем известные свойства оптимизаторов с импульсом - SGD,Adam..
Моментум истины: Не всем известные свойства оптимизаторов с импульсом - SGD, Adam и т.д., напомнившие о себе ошибкой в torch.optim.SGD и визуализация внутреннего состояния обучения
Data Fest 2023:
https://ods.ai/events/datafestonline2023
Трек "Random DS/ML":…
Data Fest 2023:
https://ods.ai/events/datafestonline2023
Трек "Random DS/ML":…
8_Влад_Голощапов_Data_Fest_Siberia_2023_Затухание_градиентов.pptx
49.9 MB
Плохо всё делать в последний момент и невыспавшимся. 😩. В презентации допущена важная ошибка, там где показано как получить медианы градиентов одной строкой я, собственно .grad забыл добавить. Правильная строчка выглядит вот так:
[(n,p.grad.view(-1)[p .grad.view(-1)!=0].abs().log10().median().item()) for n, p in model.named_parameters()]
Исправленная презентация прилагается.
[(n,p.grad.view(-1)[p .grad.view(-1)!=0].abs().log10().median().item()) for n, p in model.named_parameters()]
Исправленная презентация прилагается.
👍6
https://www.youtube.com/live/i55749ii9xk?si=ayBGJlmzl-xpIFJU&t=23355
Ссылка на второй доклад. Если вы здесь, значит его уже видели, но, возможно, тут в комментариях можно обсудить всякое, что было в докладе.
Ссылка на второй доклад. Если вы здесь, значит его уже видели, но, возможно, тут в комментариях можно обсудить всякое, что было в докладе.
YouTube
Data Fest Siberia 4, Академпарк, 7 октября
Трансляция четвертого оффлайн Феста в Сибири!
Полное расписание мероприятия доступны на ODS.AI:
https://ods.ai/events/datafestsiberia4/schedule
NB: время указано по Новосибирску (GMT+7)!
Вступить в сообщество:
https://ods.ai/
Соцсети Data Fest:
ht…
Полное расписание мероприятия доступны на ODS.AI:
https://ods.ai/events/datafestsiberia4/schedule
NB: время указано по Новосибирску (GMT+7)!
Вступить в сообщество:
https://ods.ai/
Соцсети Data Fest:
ht…
👍1
Я там в презентации говорил, что точно тот же самый фокус можно проделать и с сигмоидной активацией, но в слайдах её не было. Вот вам 116 слоёв с TanH. Множитель подобрал с третьей попытки, то есть пришлось минуту повозиться. Скорость со второй попытки. Вспомнил что сеть стала толще, а активация капризнее, снизил скорость Адам-а и вуаля.
This media is not supported in your browser
VIEW IN TELEGRAM
А вот если скорость выбрать неправильно, то при сигмоиде градиент драматически и быстро, обрушивается и уже никогда не вернётся к красивым значениям.
Подбор гиперпараметров.png
61.4 KB
На докладе я упомянул, что быстрое падение градиента при слишком большой скорости можно использовать для подбора гиперпараметров.
На картинке одна и та же толстенная нейросеть в 116 слоёв, в которой все параметры помножены на 1.8 чтобы градиент не затухал. Я учил её по 6 эпох (хватило бы и парочки) и после каждой эпохи записывал на сколько упал медианный градиент на первой матрице параметров (не абсолютное значение, которое серьёзно скачет, а именно по сравнению с прошлой эпохой), а так же как изменилось accuracy за шесть эпох обучения. Видно, что по мере снижения скорости градиент начинает рушиться всё менее стремительно, пока в какой-то момент колебания градиента не становятся сильно важнее тернда, а сеть не начинает успешно учиться. Прорыв происходит при 6.3е-06, а максимум прироста наблюдается на 1.26e-06
И это прям сильно быстрее, чем прогонять весь цикл обучения.
На картинке одна и та же толстенная нейросеть в 116 слоёв, в которой все параметры помножены на 1.8 чтобы градиент не затухал. Я учил её по 6 эпох (хватило бы и парочки) и после каждой эпохи записывал на сколько упал медианный градиент на первой матрице параметров (не абсолютное значение, которое серьёзно скачет, а именно по сравнению с прошлой эпохой), а так же как изменилось accuracy за шесть эпох обучения. Видно, что по мере снижения скорости градиент начинает рушиться всё менее стремительно, пока в какой-то момент колебания градиента не становятся сильно важнее тернда, а сеть не начинает успешно учиться. Прорыв происходит при 6.3е-06, а максимум прироста наблюдается на 1.26e-06
И это прям сильно быстрее, чем прогонять весь цикл обучения.
👍1