2025-01-04

sab123: (Default)
2025-01-04 12:08 am

тенденции

Из Линкедина опять стали присылать статистику опубликованных работ (как я в итоге понял, это видимо не вообще, а по введенному мной когда-то "стоячему поиску"):

прошлая неделя: -6% до 2.5K
позапрошлая неделя: -7% до 2.7K
2 недели назад: -2% до 3K
3 недели назад: +3% (не написано количество)

Может, конечно, это у них к праздникам сморщилось. Или опять пошел активный падеж.
sab123: (Default)
2025-01-04 05:25 am

парадокс

Постом https://lafeber.dreamwidth.org/219684.html навеяло:

А ведь при монархии (разновидностью которой является диктатура) вполне может быть больше свобод, чем при даже самой настоящей демократии. Если монархия просвещенная, и все что требует, это - платить налог в разумных пределах, уважать вышестоящего феодала, и не делать злодеяний, а в остальном делайте что хотите, то это оставит гораздо больше свободы, чем при демократии, помешанной на издании правил и регуляций. Не говоря уже про ненастоящую демократию. Свобода - это в первую очередь означает возможность делать что хочешь как минимум пока оно не касается других, и самому разгребать последствия. Антонимом к свободе является социализм/коммунизм, где на каждое действие требуется предварительное получение религиозного благословления от теократа соответствующего уровня.
sab123: (Default)
2025-01-04 07:04 am

исследования нутрей нейросетей

Это на данный момент не столько рассказ, сколько сборник ссылок, которые мне хочется прочитать в подробностях, но пока руки не дошли:

"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, и для него есть варианты алгоритмов от фиксированного закона до адаптивных. И люди это активно исследуют.

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

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

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

У меня была проблема в том, что момент сочетался только с нестохастическим спуском. И по сравнению с нестохастическим спуском мой алгоритм для момента и шедулинга работает очень хорошо, однако при стохастическом спуске можно брать шаг в сотню раз больше и он оказывается еще лучше (хотя на первой паре сотен шагов мой вариант и его побеждает). Однако, посмотрев на что люди делают, наверное можно тупо брать для производства момента средний градиент от стохастического шага. Надо будет попробовать. И/или другой вариант - если скорость моментного нестохастического спуска падает, пробовать сделать пару сотен шагов стохастически и потом опять моментом.