sab123: (Default)
[personal profile] sab123
Это на данный момент не столько рассказ, сколько сборник ссылок, которые мне хочется прочитать в подробностях, но пока руки не дошли:

"The Road Less Scheduled "
https://neurips.cc/virtual/2024/poster/96925

"Adam with model exponential moving average is effective for nonconvex optimization"
https://neurips.cc/virtual/2024/poster/93230

"Remove that Square Root: A New Efficient Scale-Invariant Version of AdaGrad"
https://neurips.cc/virtual/2024/poster/96023

"Unraveling the Gradient Descent Dynamics of Transformers"
https://neurips.cc/virtual/2024/poster/94737

"Deep Learning Through A Telescoping Lens: A Simple Model Provides Empirical Insights On Grokking, Gradient Boosting & Beyond"
https://neurips.cc/virtual/2024/poster/95420

"On Convergence of Adam for Stochastic Optimization under Relaxed Assumptions"
https://neurips.cc/virtual/2024/poster/93100

"SGD vs GD: Rank Deficiency in Linear Networks"
https://neurips.cc/virtual/2024/poster/95034

"A Continuous-time Stochastic Gradient Descent Method for Continuous Data"
https://neurips.cc/virtual/2024/poster/98309

"How Diffusion Models Learn to Factorize and Compose"
https://neurips.cc/virtual/2024/poster/95399

"Where Do Large Learning Rates Lead Us?"
https://neurips.cc/virtual/2024/poster/95929

"Don't Compress Gradients in Random Reshuffling: Compress Gradient Differences "
https://neurips.cc/virtual/2024/poster/96110

"The Implicit Bias of Adam on Separable Data"
https://neurips.cc/virtual/2024/poster/93086

Ну и про наше, где тоже есть такой аспект (в приложении, поскольку он не основной), краткий пересказ простыми словами, и там же ссылка на собственно статью:
https://babkin-cep.blogspot.com/2024/12/triceps-and-realseudo-at-neurips.html
https://babkin-cep.blogspot.com/2024/12/lasso-ista-fista.html
https://babkin-cep.blogspot.com/2024/12/realseudo-and-evaluation-of-activation.html
с дополнительными подробностями в
https://babkin-cep.blogspot.com/2023/02/arrested-bouncing-in-floatneuralnet.html
https://babkin-cep.blogspot.com/2023/10/comparing-floatneuralnet-options.html

Вкратце что меня заинтересовало:

Есть проблема того, как выбрать скорость тренировки нейросетей (т.е. шаг, с которым прилагать градиент при backpropagation). Если выбрать слишком маленький шаг, процесс идет очень медленно, да к тому же и застревает в локальных оптимумах, если выбрать слишком большой, то начинается расхождение и все погибает. Более того, оказывается, что его выгодно менять в процессе обучения - начинать с большого, и потом уменьшать. По какому именно принципу уменьшать - называется scheduling, и для него есть варианты алгоритмов от фиксированного закона до адаптивных. И люди это активно исследуют.

Во многом оно соответствует тому, что я видел в своих экспериментах: говоря по-простому, причина для уменьшения шага в том, что по мере прослеживания градиентов назад по слоям, они уменьшаются, и в начале тренировки давление градиентов должно быть настолько сильным, чтобы активно двигать самый нижний слой. А потом он более-менее устаканивается и для более верхних слоев надо меньше давление, потому что до них доходят более крупные градиенты. У меня раньше возникала идея попробовать разные шаги по слоям, но я до ее опробования так пока и не добрался, и вроде ничего аналогичного тут не видел.

В чем собственно сложность с движением слоев: по мере того как веса двигаются, иногда они меняют знак. Так вот, фокус в том, что эффект градиента на вес попорционален модулю веса, то есть чем ближе вес к нулю, тем медленнее он двигается (и если попадет в ноль, то там застрянет навсегда). Поэтому единственный способ поменять знак - сделать достаточно большой шаг, чтобы перепрыгнуть область, слишком близкую к нулю.

Но, как ни странно, люди исследуют еще и непрерывное (а не дискретное) движение по градиентам - я не понимаю, в чем выгода такого подхода, возможно он математически красивее. Это значит, что у них спуск будет гарантированно застревать в нулях. И таки да, подтверждают, что застревает. Преодолевают это двумя способами - моментный спуск, где сохраняется инерция и ноль проскакивается на ней, и добавление малых случайных флюктуаций. И таки да, я тоже пробовал делать и то и другое даже на дискретном спуске. Еще я сейчас вспомнил, что пробовал туннелирование, когда при попадании в малую зону вокруг нуля значение выскакивает из этой зоны наружу, продолжая движение в ту же сторону - это тоже работает, но спросить настоящих ученых, пользуются ли они таким, я забыл.

У меня была проблема в том, что момент сочетался только с нестохастическим спуском. И по сравнению с нестохастическим спуском мой алгоритм для момента и шедулинга работает очень хорошо, однако при стохастическом спуске можно брать шаг в сотню раз больше и он оказывается еще лучше (хотя на первой паре сотен шагов мой вариант и его побеждает). Однако, посмотрев на что люди делают, наверное можно тупо брать для производства момента средний градиент от стохастического шага. Надо будет попробовать. И/или другой вариант - если скорость моментного нестохастического спуска падает, пробовать сделать пару сотен шагов стохастически и потом опять моментом.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

June 2025

S M T W T F S
1 2 3 4 567
8 9101112 1314
15 16 171819 2021
22 2324252627 28
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 30th, 2025 07:15 am
Powered by Dreamwidth Studios