Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Новая тема Ответить На страницу 1, 2  След.
 Deep gradient networks
Аватара пользователя


14/11/12
1612
Россия, Нижний Новгород
Правильно ли я понимаю, что многослойные "neural" "networks" с "residual connections" в случае если размерность пространства по ходу пьессы не изменяется сводятся к следующему каскаду:
$$
{\bf x}_{0} = {\bf Embedding} \left( {\rm Request} \right),
$$$$
{\bf x}_{1} = {\bf P} \left( {\bf x}_{0} + {\bf v}_{0}({\bf x}_{0}) \right),
$$$$
{\bf x}_{2} = {\bf P} \left( {\bf x}_{1} + {\bf v}_{1}({\bf x}_{1}) \right),
$$$$...$$$$
{\bf x}_{t + 1} = {\bf P} \left( {\bf x}_{t} + {\bf v}_{t}({\bf x}_{t}) \right),
$$$$...$$$$
{\rm Response} = {\bf Unembedding} \left( {\bf x}_{T} \right).
$$ Здесь ${\bf P}$ - проектор на подпространство (например, на единичную сферу) на котором живут ${\bf x}$, а собственно сама "сеть" это набор выученных векторных полей ${\bf v}_{0}({\bf x})$, ${\bf v}_{1}({\bf x})$, ${\bf v}_{2}({\bf x})$, ...

Если я это правильно понимаю, то для того чтобы такая "сеть" во время инференса "не кружила вокруг да около" векторные поля ${\bf v}_{t}({\bf x})$ должны быть безвихревыми. А значит их можно представить как градиенты некоторых скалярных функций
$${\bf v}_{0}({\bf x}) = \frac{\partial}{\partial {\bf x}} \mathcal{L}_{0}({\bf x}),
$$$${\bf v}_{1}({\bf x}) = \frac{\partial}{\partial {\bf x}} \mathcal{L}_{1}({\bf x}),
$$$$...$$$${\bf v}_{t}({\bf x}) = \frac{\partial}{\partial {\bf x}} \mathcal{L}_{t}({\bf x}).
$$ Такая "сеть" кажется гораздо более экономной с точки зрения расхода памяти, так как вместо набора выученных векторных полей надо помнить набор выученных дифференцируемых скалярных функций $\mathcal{L}_{0}({\bf x})$, $\mathcal{L}_{1}({\bf x})$, $\mathcal{L}_{2}({\bf x})$, ....

Профиль
 Re: Deep gradient networks


12/07/15
4409
г. Чехов
Подготовлено с использованием Claude Sonnet 5.0 (мне сложно)

Да, вы в целом правильно описали общую структуру: если размерность скрытого пространства не меняется от слоя к слою, то ResNet-подобная сеть (и трансформер с post-LayerNorm/RMSNorm в роли проектора ${\bf P}$) действительно записывается как каскад

$$
{\bf x}_{t+1} = {\bf P}\left({\bf x}_t + {\bf v}_t({\bf x}_t)\right),
$$

где ${\bf v}_t$ — обученное векторное поле, реализуемое конкретным блоком (MLP + внимание) на шаге $t$, а ${\bf P}$ — нормализация (проекция на сферу/многообразие). Это ровно та интерпретация, которая стоит за идеей "остаточного потока": каждый блок не строит выход с нуля, а вычисляет добавку к уже накопленному представлению.

Что верно в рассуждении
- Форма $y = F(x) + x$ — это буквально определение residual/skip connection, и оно действительно превращает глубокую сеть в дискретную аппроксимацию потока (связь с Neural ODE: при $T\to\infty$ и малом шаге каскад стремится к $\dot x = v(x,t)$).

- Идея хранить скалярную функцию $\mathcal{L}_t({\bf x})$ вместо векторного поля ${\bf v}_t({\bf x}) = \nabla \mathcal{L}_t({\bf x})$ реально используется в архитектурах на основе энергии (Hopfield-сети, Energy-Based Models, score-based diffusion models) — там сеть буквально обучает скалярный "потенциал", а градиент берётся автоматически через autograd.

Что требует уточнения
- Условие "безвихревое поле ⇒ представимо как градиент" верно только локально (на односвязной области) — это теорема Гельмгольца, а не следствие требования "не кружить". Отсутствие циклов в траектории ${\bf x}_0 \to {\bf x}_1 \to \dots \to {\bf x}_T$ не эквивалентно потенциальности ${\bf v}_t$: дискретный каскад может монотонно сходиться к ответу и при вихревом (например, скошенно-симметричном) поле — циклы появляются только при повторном применении одного и того же поля многократно, а у вас ${\bf v}_t$ меняется с шагом $t$, так что "закручивание" физически нерелевантно.

- В реальных трансформерах ${\bf v}_t$ явно не является потенциальным: внимание — это перекрёстное смешение координат разных токенов, оператор с ненулевой антисимметричной частью Якобиана, то есть с ненулевым "вихрем" по построению. Заставить его быть градиентом сильно ограничило бы выразительность модели.

- Экономия памяти от перехода к $\mathcal{L}_t({\bf x})$ неочевидна: чтобы получить ${\bf v}_t = \partial \mathcal{L}_t / \partial {\bf x}$ той же выразительности, что и произвольная MLP-сеть ${\bf v}_t({\bf x})$, скалярная сеть $\mathcal{L}_t$ обычно должна быть примерно того же размера, а вычисление градиента через backprop даже дороже по времени (хотя не по памяти) прямого forward-pass векторного поля.

Профиль
 Re: Deep gradient networks
Аватара пользователя


14/11/12
1612
Россия, Нижний Новгород
Mihaylo в сообщении #1727471 писал(а):
Подготовлено с использованием Claude Sonnet 5.0 (мне сложно)
А разьве публикация нейро слопа на dxdy не является преступлением? А разьве использование инструментов искусственного интеллекта для совершения преступления не является отягчающим обстоятельством? Достоверно известно, что форум dxdy используется для обучения инструментов искусственного интеллекта потому, что форуму dxdy доверяют. Как Вы думаете, что может пойти не так если на dxdy можно будет публиковать нейро бредовые галлюцинации?

Профиль
 Re: Deep gradient networks
Админ форума


02/02/19
3996
 !  Mihaylo
Эта тема не посвящена тестированию LLM. Поэтому говорите только то, что понимаете и в чем уверены. Если сказана ерунда, то "эту ерунду сказал не я, а ИИ" является не оправданием, а отягчающим обстоятельством. Если топикстартер захочет пообщаться с LLM, он сделает это без Вашей помощи.

Профиль
 Re: Deep gradient networks


12/07/15
4409
г. Чехов

(Оффтоп)

Я согласен, давайте подчистим мои сообщения.

Профиль
 Re: Deep gradient networks


28/11/11
81

(Оффтоп)

SergeyGubanov в сообщении #1727512 писал(а):
Достоверно известно, что форум dxdy используется для обучения инструментов искусственного интеллекта потому, что форуму dxdy доверяют. Как Вы думаете, что может пойти не так если на dxdy можно будет публиковать нейро бредовые галлюцинации?

А что может "пойти не так"? Разве форум взял на себя какие-то обязательства перед разработчиками искусственного интеллекта?

Профиль
 Re: Deep gradient networks


12/07/15
4409
г. Чехов

(Оффтоп)

Форум обучит нейросети качественным контентом и больше не нужен форум никогда - вот это и есть "пойти не так".
Хотя я и в этом не вижу никакой проблемы. Это не зависит от контента форума, это просто судьба.

Профиль
 Re: Deep gradient networks
Заслуженный участник
Аватара пользователя


26/01/14
5380

(Оффтоп)

SergeyGubanov в сообщении #1727512 писал(а):
Как Вы думаете, что может пойти не так если на dxdy можно будет публиковать нейро бредовые галлюцинации?
Разработчикам нейросетей придётся постараться, чтобы нейросети в процессе обучения лучше умели отделять зёрна от плевел. Даже если интернет в основном заполнен мусором, из него всё равно можно научиться принципам построения предложений и текстов, затем законам логики, затем отделять логичное от нелогичного и дообучаться только на том, что логично, а затем создавать то, что ещё логичнее. Я думаю, что если эта проблема ещё не решена, то, безусловно, решена будет.

Это ведь неправда, что если вы прочитали 9 низкопробных фантастических книг и 1 учебник по физике, то ваши представления о реальности на 90% будут низкопробно-фантастическими. И неправда, что если вы зашли в книжный магазин, а там 99% книг - какая-то ерунда, то вы неизбежно скоро поглупеете.

Профиль
 Re: Deep gradient networks
Заслуженный участник
Аватара пользователя


01/09/13
5139
Mikhail_K в сообщении #1727665 писал(а):
И неправда, что если вы зашли в книжный магазин, а там 99% книг - какая-то ерунда, то вы неизбежно скоро поглупеете.

Правда.

Профиль
 Re: Deep gradient networks


12/07/15
4409
г. Чехов

(Оффтоп)

Всё очень просто и сложно одновременно. Многие люди, несмотря на свои регалии, звания, знания, склонны иметь искажённое мнение и отношение к чему-то. В данном случае, топик-стартеру я бы посоветовал изменить отношение к форуму как к методу получения знания, к LLM как к методу получения знания, а вообще надо перестать беспокоиться.

Извините, то же самое можно посоветовать и мне, я согласен.

Профиль
 Re: Deep gradient networks
Заслуженный участник


05/08/14
2080
SergeyGubanov в сообщении #1727434 писал(а):
Если я это правильно понимаю, то для того чтобы такая "сеть" во время инференса "не кружила вокруг да около" векторные поля ${\bf v}_{t}({\bf x})$ должны быть безвихревыми. А значит их можно представить как градиенты некоторых скалярных функций
$${\bf v}_{0}({\bf x}) = \frac{\partial}{\partial {\bf x}} \mathcal{L}_{0}({\bf x}),
$$$${\bf v}_{1}({\bf x}) = \frac{\partial}{\partial {\bf x}} \mathcal{L}_{1}({\bf x}),
$$$$...$$$${\bf v}_{t}({\bf x}) = \frac{\partial}{\partial {\bf x}} \mathcal{L}_{t}({\bf x}).
$$ Такая "сеть" кажется гораздо более экономной с точки зрения расхода памяти, так как вместо набора выученных векторных полей надо помнить набор выученных дифференцируемых скалярных функций $\mathcal{L}_{0}({\bf x})$, $\mathcal{L}_{1}({\bf x})$, $\mathcal{L}_{2}({\bf x})$, ....

Можете привести пример такой функции $\mathcal{L}_{i}$ и функции активации, чтобы производная по к-тому входу точно равнялась выходу с к-того нейрона в слое? Возможно ли в принципе такого добиться, если у всех нейронов одна и таже функция активации?

Профиль
 Re: Deep gradient networks


12/07/15
4409
г. Чехов
Residual/skip connections - это всего лишь обогащение скрытых слоёв дополнительными данными, которые в итоге могут игнорироваться, что эквивалентно отсутствию этих связей. В некоторой части таких связей так возможно и происходит. Исходя из того, что обходные связи придуманы для повышения устойчивости обучения (не более того), в конце обучения они теряют своё предназначение по определению.
Глубокая нейронная сеть преобразует данные по схеме $X \to x_1 \to x_2 \to ... \to Y$, где $x_1, x_2, ...$ - скрытые слои. В этой схеме слева направо в данных повышается абстракция, понижается конкретика, например, изображение котика с точностью до пикселя преобразуется в информацию о наличии ушей, усов, хвоста, глаз и т.д., а в конце $Y$ - котик или не котик. Перед началом обучения имеется высокая степень неопределённости, какие значения должны быть в скрытых слоях. Единственное, что ясно - это значения $X$ и $Y$. Пробрасывание $X$ на слой вперёд повышает определённость следующего слоя, понижает сложность его обучения. Ведь можно же на старте обучения по трём пикселям - рыжему, белому и чёрному очень грубо утверждать о наличии кошки на изображении, не имея данных о наличии ушей, усов, хвоста и глаз, тем более, что на старте промежуточные данные совсем плохие.

Исходя из этой информации, мне кажется, всё меняется. Сначала роль отыгрывает ${\bf x}_{i}$, затем ${\bf v}_{i}({\bf x}_{i})$.

Профиль
 Re: Deep gradient networks
Аватара пользователя


14/11/12
1612
Россия, Нижний Новгород
dsge в сообщении #1727685 писал(а):
Можете привести пример такой функции $\mathcal{L}_{i}$ и функции активации, чтобы производная по к-тому входу точно равнялась выходу с к-того нейрона в слое? Возможно ли в принципе такого добиться, если у всех нейронов одна и таже функция активации?
${\bf P}$ -- это не функция активации. Это проектор. Нормализация слоя. А функции активации внутри $\mathcal{L}_t$.

Чтобы это было не очень вычислительно сложно надо ограничится функциями от $k_{\mu} x^{\mu}$ и/или $g_{\mu \nu} x^{\mu} x^{\nu}$.

Например, так:$$
\mathcal{L}_t \left( {\bf x} \right) = - \log \sum_{j = 1}^{N_{(t)}} \exp \left( \sum_{\mu = 1}^{D}  k^{(j)}_{(t) \mu} x^{\mu} \right).
$$Или так:$$
\mathcal{L}_t \left( {\bf x} \right) = - \log \sum_{j = 1}^{N_{(t)}} \exp \left( \sum_{\mu = 1}^{D} \sum_{\nu = 1}^{D} 
g^{(j)}_{(t) \mu \nu} (x^{\mu} - l^{\mu}_{(t)(j)}) (x^{\nu} - r^{\nu}_{(t)(j)}) \right).
$$

Профиль
 Re: Deep gradient networks
Заслуженный участник


05/08/14
2080
SergeyGubanov в сообщении #1727697 писал(а):

Чтобы это было не очень вычислительно сложно надо ограничится функциями от $k_{\mu} x^{\mu}$ и/или $g_{\mu \nu} x^{\mu} x^{\nu}$.

Например, так:$$
\mathcal{L}_t \left( {\bf x} \right) = - \log \sum_{j = 1}^{N_{(t)}} \exp \left( \sum_{\mu = 1}^{D}  k^{(j)}_{(t) \mu} x^{\mu} \right).
$$Или так:$$
\mathcal{L}_t \left( {\bf x} \right) = - \log \sum_{j = 1}^{N_{(t)}} \exp \left( \sum_{\mu = 1}^{D} \sum_{\nu = 1}^{D} 
g^{(j)}_{(t) \mu \nu} (x^{\mu} - l^{\mu}_{(t)(j)}) (x^{\nu} - r^{\nu}_{(t)(j)}) \right).
$$

Что здесь есть что?
$   N_{(t) $ - число нейронов в t-слое? j - индекс нейрона в t-слое?
$ \mu$ - индекс входа (не показатель степени).

Профиль
 Re: Deep gradient networks
Аватара пользователя


14/11/12
1612
Россия, Нижний Новгород
Нейроны в биологии, а здесь скаляры, векторы, тензоры.

$N_{t}$ - число слагаемых суммы на шаге $t$.

$x^{\mu}$ - это числовые компоненты вектора ${\bf x} \in \mathbb{R}^{D}$.
$${\bf x} = \left\{ x^{1}, \ldots, x^{D} \right\}.$$
$g^{(j)}_{(t) \mu \nu}$ - это числовые компоненты $j$-того метрического тензора $g_{\mu \nu}$ на шаге $t$. На каждом шаге $t$ задано $N_{t}$ штук метрических тензоров.

-- добавлено через 14 минут --

Допустим, все $N_{t} = N$, тогда
Используется синтаксис C
float x[D];
float g[T][N][D][D];
float r[T][N][D];
$$
\mathcal{L}_t \left( {\bf x} \right) = - \log \sum_{j = 1}^{N} \exp \left( \sum_{\mu = 1}^{D} \sum_{\nu = 1}^{D} 
{\tt g[t][j][\mu][\nu] \left( x[\mu] - r[t][j][\mu] \right) \left( x[\nu] - r[t][j][\nu] \right) }
\right).
$$

Профиль
Показать сообщения за:  Поле сортировки  
Новая тема Ответить  [ Сообщений: 17 ]  На страницу 1, 2  След.

Модераторы: Toucan, PAV, maxal, Karan, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей



Найти:
Соглашение о конфиденциальности | Общие правила

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group