vak: (Default)
[personal profile] vak
Покажу красивые рисуночки, а подробности в статье:

"The boundary of neural network trainability is fractal" (PDF)

Абстракт: "Некоторые фракталы — например, те, что связаны с множествами Мандельброта и квадратичными множествами Жюлиа — вычисляются путем итерации функции и определения границы между гиперпараметрами, для которых результирующий ряд расходится или остается ограниченным. Обучение нейронной сети аналогичным образом включает итерацию функции обновления (например, повторные шаги градиентного спуска), что может привести к сходящемуся или расходящемуся поведению и может быть чрезвычайно чувствительно к небольшим изменениям гиперпараметров. Мотивированные этими сходствами, мы экспериментально изучаем границу между гиперпараметрами нейронной сети, которые приводят к стабильному или расходящемуся обучению. Мы обнаружили, что эта граница является фрактальной более чем на десять порядков масштаба во всех протестированных конфигурациях."

Deep linear full batch (fractal dim 1.17)



ReLU full batch (fractal dim 1.20)



tanh dataset set size 1 (fractal dim 1.41)



tanh minibatch (fractal dim 1.55)



tanh full batch (fractal dim 1.66)

Date: 2025-01-06 23:31 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi
Какая идейка! (И как-то бесперспективно получается.)

Date: 2025-01-07 00:24 (UTC)
sab123: (Default)
From: [personal profile] sab123
При обучении нейронных сетей выбирают достаточно малый шаг, чтобы не получить фрактал. Но да, проблема выбора размера шага - сложная.

Date: 2025-01-07 07:10 (UTC)
kondybas: (Default)
From: [personal profile] kondybas
нужно нейросеть обучить на обучение нейросетей.

Date: 2025-01-07 08:21 (UTC)
kondybas: (Default)
From: [personal profile] kondybas
С человеками, кстати, прямое следствие ложности тезиса об єгалите. Люди не равні от рождения, и довольно глупо пихать их под унифицированній пресс образования (как єто делают упоротіе финні). Из некоторіх получается ожидаемое, но большинство просто плющит без особой пользі.

Date: 2025-01-07 00:21 (UTC)
sab123: (Default)
From: [personal profile] sab123
Тут на самом деле (а) ничего такого прям неизвестного и (б) видимо его шаги ОЧЕНЬ большие. Мало того, что шаг 1e+1 и даже 1e-1 громадный, но надо еще и не забывать, что при стохастическом спуске шаг еще и по сути умножается на количество примеров в проходе (или с батчами, на количество батчей). С очень большиим шагами мы на каждом шаге проскакиваем очень много локальных минимумов, и скорее всего глобальный минимум тоже, и приземляется неизвестно где. И тут все очень сильно зависит от того, где мы приземлились. Если в этом месте градиент оказывается маленький, мы можем его умножить на большой размер шага, и теперь скорее всего опять проскочить глобальный минимум и приземлиться назад где-то возле того, откуда начали предыдущий шаг. Если градиент большой, то мы выскакиваем вообще в дебри. То есть, схождение или расхождение сводится к тому, получается ли нам удерживаться на более-менее том же расстоянии от минимума, где мы начали, или мы начинаем отдаляться все дальше и дальше. То есть, да, велик элемент случайности того, в какую точку мы попадем, и получается фрактальность. Если делать не всего пару сотен шагов, а хотя бы несколько тысяч, то скорее всего ВСЕ его примеры на таком шаге разойдутся. Фактальность сводится только к тому, на каком шаге мы наконец-то случайно попадем в неудачную точку.

Интересный момент заключатся в том, что если постепенно увеличивать размер шага, то позывы к расхождению делаются видны даже на размере шага, где расхождения еще нет. Они видны на графике ошибки. Если шаг достаточно маленький, график ошибки сидержит мелкие зигзаги, но ошибка плавно уменьшается по мере шагов. Когда шаг растет, амплитуда зигзагов ошибки увеличивается, и это - прямой сигнал, что мы близки к расхождению. Зигзаги означают маленькие расхождения, которым не удается вырасти до полного расхождения