Сердце машины Оригинал, автор: Цзян Сыюань.
Это волшебная статья: кажется, что предыдущая послойная нейронная сеть внезапно стала непрерывной, и обратному распространению больше не нужно передавать вперед бит за битом и обновлять параметры слой за слоем.
В Neruips 2018, недавно закончившемся NERUIPS 2018, Чен Тяньци из Университета Торонто стал лучшим автором. Они предложили модель, названную родным дифференциальным уравнением, которая представляет собой новый тип глубинной нейронной сети. Нормальное дифференциальное уравнение лапши не предназначено для исправления существующей архитектуры, которая полностью моделирует моделирование данных в непрерывном режиме с другой точки зрения. Согласно объяснению Чена Тяньци, сердце машины представит читателям новое семейство этой захватывающей нейронной сети.
В интервью Heart of the Machine профессор Дэвид Дювено, наставник Чэнь Тяньци, высоко отозвался об ученике. Профессор Дювено считает, что Чэнь Тяньци является не только учеником со сверхспособностями к пониманию, но и очень серьезным и тщательным в изучении проблем. Он сказал: «Тяньци любит придумывать новые идеи, и иногда он дает обратную связь через неделю после моего предложения: «Учитель, метод, который вы предложили ранее, не очень разумен. Но я разработал другой разумный метод, и я также сделал это». Профессор Дюсено отметил, что популярность искусственного интеллекта не ослабевает, и способность профессоров находить отличных докторантов в основном такая же, как проблема «курица или яйцо», и профессора из лучших школ обычно могут набирать Как докторант, «мне посчастливилось встретить такого отличника, как Чэнь Тяньци, в начале моей карьеры».
Эта статья в основном знакомит с тщательным мышлением и интуитивным пониманием дифференциальных уравнений Бога, Многие расширенные концепции не объясняются подробно, например, модель непрерывного потока, которая значительно снижает вычислительную сложность и официальную реализацию кода PyTorch. В этой статье основное внимание уделяется сравнению ODEnet и остаточной сети, Мы можем не только понять, как перейти от знакомой ResNet к ODEnet через эту часть, но также понять процесс прямого распространения и характеристики новой модели.
Во-вторых, в статье больше внимания уделяется процессу обратного распространения ODEnet, то есть тому, как непосредственно получить градиент путем решения обыкновенного дифференциального уравнения. Эта часть сильно отличается от традиционного обратного распространения, поэтому лучше сначала разобраться с обратным распространением, а затем посмотреть исходный код. Стоит отметить, что обратное распространение ODEnet имеет только постоянную стоимость памяти.
Адрес реализации PyTorch в ODEnet:GitHub.com/сделай его злым/to…
Адрес бумаги ODEnet:АР Вест V.org/ABS/1806.07…
Основная структура статьи представлена ниже:
Обыкновенные дифференциальные уравнения
От остаточных сетей к дифференциальным уравнениям
От дифференциальных уравнений к остаточным сетям
Сравнение сетей
Бог обыкновенных дифференциальных уравнений
Как сделать обратное распространение
Непрерывный нормализованный поток
Теорема о замене переменных
Обыкновенные дифференциальные уравнения
На самом деле, когда я впервые прочитал эту статью, у меня все еще были некоторые сомнения, потому что многие понятия нам не знакомы. Поэтому, если вы хотите понять эту модель, то школьникам сначала нужно вспомнить дифференциальные уравнения на большие числа. Вооружившись такой концепцией, мы можем легко сериализовать иерархии нейронных сетей и построить полные регулярные дифференциальные уравнения.
Обыкновенное дифференциальное уравнение - это уравнение, которое содержит только одну независимую переменную x, неизвестную функцию f (x) и производную неизвестной функции f'(x), поэтому f'(x) = 2x также является обыкновенным дифференциальным уравнением. . Но чаще ее можно выразить как df(x)/dx = g(f(x), x), где g(f(x), x) представляет некоторое выражение, состоящее из f(x) и x, это формула является ключом к расширению общей нейронной сети, и позже мы обсудим, как эта формула сериализует иерархию нейронной сети.
Обычно для обыкновенных дифференциальных уравнений мы хотим решить неизвестное f(x), например, общее решение f'(x) = 2x есть f(x)=x^2 + C, где C представляет собой произвольную константу. В инженерии чаще используются численные решения, то есть при заданном начальном значении f(x_0) мы надеемся решить конечное значение f(x_1), так что нам не нужно решать полное f(x), мы нужно только подходить к нему шаг за шагом.
Теперь вернемся к знакомой нейронной сети, будь то полносвязная, рекуррентная или сверточная сеть по сути, все они похожи на очень сложную составную функцию, а количество составов равно глубине иерархии. Например, двухслойная полносвязная сеть может быть выражена как Y=f(f(X, θ1), θ2), поэтому каждый слой нейронной сети подобен универсальному функциональному аппроксимату.
Поскольку целое представляет собой составную функцию, легко принять метод вывода составной функции: цепное правило и передать градиент от функции самого внешнего слоя к функции внутреннего слоя побитно, и каждый раз он передается на слой функций, затем параметр θ этого слоя может быть обновлен. Теперь проблема в том, что нам нужно сохранить активации всех слоев после прямого прохода и использовать эти активации при обратном распространении градиентов по пути вычислений. Это очень интенсивно использует память и, таким образом, ограничивает процесс обучения глубоких моделей.
Регулярное дифференциальное уравнение Бога идет другим путем, используя нейронную сеть для параметризации производной скрытого состояния вместо прямой параметризации скрытого состояния, как обычно. Производная параметризованного скрытого состояния здесь похожа на построение непрерывной иерархии и параметров, а не дискретной иерархии. Следовательно, параметры также являются непрерывным пространством, и нам не нужно распространять градиенты и обновлять параметры иерархически. В целом, нейронные дифференциальные уравнения не сохраняют никаких промежуточных результатов во время прямого распространения, поэтому они требуют только приблизительно постоянных затрат памяти.
От остаточных сетей к дифференциальным уравнениям
остаточная сетьЭто особый вид сверточной сети, который решает проблему обратного распространения градиента через остаточные соединения, то есть, когда нейронная сеть очень глубокая, градиент все еще может эффективно передаваться обратно на вход. На рисунке ниже показана структура остаточного модуля в исходной статье.Вывод остаточного блока объединяет входную информацию и выходную информацию операции внутренней свертки.Это остаточное соединение или отображение идентичности указывает на то, что глубокая модель не может быть по крайней мере ниже мелководной сети Точность. Десятки или сотни таких остаточных модулей складываются в очень глубокую остаточную нейронную сеть.
Если мы более формально выразим вышеприведенный остаточный модуль в виде следующего уравнения:
где h_t — выходное значение скрытой единицы на уровне t, а f — нейронная сеть, параметризованная θ_t. Это уравнение представляет собой весь остаточный модуль приведенного выше рисунка, если мы перепишем его в виде невязки, т.е. h_t+1 - h_t = f(h_t, θ_t). Тогда мы видим, что нейронная сеть f параметризует невязку между скрытыми слоями, а f также напрямую не параметризует скрытый слой.
ResNet предполагает, что иерархия дискретна, а интервал от уровня t до уровня t+1 не определен. Так что, если в середине есть определение? Разве остаточные члены h_t0 - h_t1 не должны быть настолько малы, что близки к бесконечно малым? Здесь мы игнорируем знаменатель, то есть остаточный член должен быть выражен как (h_t+1 - h_t )/1, а 1 в знаменателе означает, что разница между двумя дискретными уровнями равна 1. Итак, еще раз рассматривая определение между слоями, мы обнаружим, что остаточный член в итоге будет сходиться к производной скрытого слоя по t, и нейронная сеть фактически параметризуется этой производной.
Поэтому, если мы добавим больше слоев между слоями и в конечном итоге будем добавлять бесконечные слои, нейронная сеть будет непрерывной. Можно сказать, что остаточная сеть на самом деле является эйлеровой дискретизацией непрерывного преобразования, что является частным случаем.Мы можем формально выразить это непрерывное преобразование как обыкновенное дифференциальное уравнение:
С точки зрения определения производных изменение скрытого состояния dh(t) может быть смоделировано нейронной сетью, поскольку изменение t имеет тенденцию быть бесконечно малым. Когда t изменяется от начальной точки до конечной, изменение h(t) наконец представляет собой результат прямого распространения. Таким образом, использование нейронной сети для параметризации производной скрытого слоя действительно сериализует иерархию нейронной сети.
Теперь, если можно получить численное решение этого обыкновенного дифференциального уравнения, то оно эквивалентно завершению прямого распространения. В частности, если h(0)=X является входным изображением, то выход скрытого слоя h(T) в момент завершения является результатом логического вывода. Это задача обыкновенных дифференциальных уравнений с начальным значением, которая может быть решена непосредственно с помощью решателя обыкновенных дифференциальных уравнений типа «черный ящик» (ODE Solver). Такие решатели контролируют численные ошибки, поэтому мы всегда можем найти компромисс между вычислительной мощностью и точностью модели.
Формально теперь необходимо преобразовать уравнение (2) для нахождения численного решения, то есть найти конечное состояние h(t_1) по заданному начальному состоянию h(t_0) и нейронной сети:
Как показано выше, численное решение обыкновенного дифференциального уравнения h(t_1) требует интегрирования нейронной сети f от t_0 до t_1. Мы можем использовать решатель ODE для решения этого значения, которое имеет очень зрелое решение в области математической физики, нам нужно использовать его только как инструмент черного ящика.
От дифференциальных уравнений к остаточным сетям
Как упоминалось ранее, остаточная сеть является частным случаем частых дифференциальных уравнений Бога.Можно сказать, что остаточная сеть является дискретизацией метода Эйлера. Метод Эйлера для решения обыкновенных дифференциальных уравнений двести или триста лет назад был очень интуитивным, то есть h(t + ∆t) = h(t) + ∆t×f(h(t), t). Всякий раз, когда скрытый слой делает небольшой шаг Δt вдоль t, новое состояние скрытого слоя h(t + Δt) должно приблизительно делать небольшой шаг в существующем направлении. Если идти от t_0 к t_1 такими маленькими шагами, то будет найдено численное решение ОДУ.
Если каждый раз делать ∆t равным 1, то дискретизированный метод Эйлера эквивалентен выражению остаточного блока h(t+1) = h(t) + f(h(t), t). Однако метод Эйлера — это лишь самый простой метод решения обыкновенных дифференциальных уравнений, он будет давать небольшую ошибку на каждом шаге, и эта ошибка будет накапливаться. За почти сто лет математики построили множество современных методов решения ОДУ, которые не только гарантируют сходимость к истинному решению, но и контролируют уровень ошибки.
Сеть ОДУ, построенная такими исследователями, как Чен Тяньци, использует адаптивный решатель ОДУ, который не перемещает фиксированный размер шага, как метод Эйлера, а выбирает подходящий размер шага в соответствии с заданной устойчивостью к ошибкам, чтобы приблизиться к реальному решению. Как показано на рисунке ниже, остаточная сеть слева определяет дискретную последовательность конечных преобразований, которые представляют собой дискретные уровни от 0 до 1 и до 5 и выполняют нелинейное преобразование через функцию активации на каждом уровне. Кроме того, черное местоположение оценки можно рассматривать как нейрон, который выполняет преобразование на входе, чтобы исправить переданное значение. Сеть ОДУ справа определяет векторное поле, скрытое состояние будет иметь непрерывный переход, а черные точки оценки также будут автоматически корректироваться в соответствии с допустимой ошибкой.
Сравнение сетей
В устном докладе Дэвида он показал разницу между ResNet и ODEnet в двух псевдокодах. Основной процесс ResNet показан следующим образом, где f можно рассматривать как сверточный слой, а ResNet — всю архитектуру модели. В сверточном слое f h — это карта объектов, выводимая предыдущим слоем, а t определяет текущий сверточный слой. Тело цикла в ResNet — это остаточное соединение, поэтому сеть имеет в общей сложности T остаточных модулей и, наконец, возвращает выходное значение T-слоя.
def f(h, t, θ):
return nnet(h, θ_t)
def resnet(h):
for t in [1:T]:
h = h + f(h, t, θ)
return h
По сравнению с обычным ResNet следующий псевдокод является относительно новым. Во-первых, f определяется как нейронная сеть, как и раньше, но теперь ее параметр θ представляет собой целое, и t также необходимо подать в нейронную сеть как независимый параметр, что показывает, что между уровнями также существует определение, это непрерывный Интернет. Всю ODEnet не нужно строить дискретные уровни с помощью циклов, нужно только найти h в момент времени t_1 с помощью решателя ODE.
def f(h, t, θ):
return nnet([h, t], θ)
def ODEnet(h, θ):
return ODESolver(f, h, t_0, t_1, θ)
В дополнение к различным процессам расчета исследователи, такие как Чен Тяньци, также проверили влияние этих двух моделей в MNSIT. Они используют ResNet с 6 остаточными модулями и ODEnet с решателем ODE вместо этих остаточных модулей. Ниже показано влияние, количество параметров, объем памяти и вычислительная сложность различных сетей в MNSIT.
MLP одного скрытого слоя цитируется из исследования LeCun 1998 года, и его скрытый слой имеет всего 300 нейронов, но ODEnet может достичь значительно лучших результатов с аналогичными количествами параметров. В приведенной выше таблице L представляет количество слоев нейронной сети, а тильда L представляет количество оценок в ODE Solver, что может приблизительно представлять «глубину уровня» ODEnet. Стоит отметить, что ODEnet имеет только постоянный уровень использования памяти, а это означает, что независимо от того, насколько увеличивается глубина уровня, его использование памяти сильно не изменится.
Бог обыкновенных дифференциальных уравнений
По аналогии с ResNet мы в основном поняли процесс прямого распространения ODEnet. Сначала введите данные Z(t_0), мы можем нелинейно преобразовать ввод с помощью функции непрерывного преобразования (нейронной сети), чтобы получить f. Затем ODESolver интегрирует f и добавляет начальное значение, чтобы получить окончательный результат вывода. Как показано ниже, остаточная сеть представляет собой не что иное, как замену решателя ODE дискретным остаточным соединением.
В прямом распространении ODEnet также имеет несколько очень важных свойств, то есть количество слоев модели и контроль ошибок модели. Прежде всего, поскольку это непрерывная модель, у нее нет четкого количества слоев, поэтому мы можем использовать аналогичную метрику только для определения «глубины» модели.Автор использует количество оценок ODE Solver в качестве глубину в этой статье.
Во-вторых, глубина напрямую связана с контролем ошибок, и ODEnet может определить глубину модели, контролируя допуск ошибок. Поскольку решатель ОДУ может гарантировать, что истинное решение обыкновенного дифференциального уравнения аппроксимируется в пределах допустимой ошибки, изменение допустимой ошибки может изменить поведение нейронной сети. В общем, снижение устойчивости к ошибкам решателя ODE увеличит количество оценок функции, что сродни увеличению «глубины» модели. Регулировка допуска к ошибкам позволяет нам найти компромисс между точностью и вычислительными затратами, поэтому мы можем использовать высокую точность во время обучения, чтобы лучше изучить нейронную сеть, и можем приспособиться к более низкой точности во время логического вывода в соответствии с фактическими расходами вычислительной среды.
Как показано на приведенном выше рисунке оригинальной статьи, цифра указывает на то, что модель может быть гарантированно находящейся в пределах диапазона ошибок, и по мере уменьшения ошибки количество оценок функции для прямого распространения увеличивается. На рисунке b показано количество вычислений в зависимости от относительного времени вычислений. D-график показывает, что количество оценок функции адаптивно увеличивается с обучением, указывая на то, что сложность модели увеличивается по мере обучения.
Рисунок c интересен, он показывает, что количество вычислений функции при прямом распространении примерно вдвое превышает количество вычислений при обратном распространении, что просто означает, что метод сопряженной чувствительности при обратном распространении не только эффективен с точки зрения памяти, но и более эффективен в вычислительном отношении, чем прямая передача интегратор.Обратное распространение велико. В основном это связано с тем, что сопряженную чувствительность не нужно передавать каждой оценке функции в прямом проходе по очереди, то есть градиент передается от заднего к переднему слой за слоем, не проходя через глубину модели.
обратное распространение
Джесси Бетанкур, сокурсник, рассказал о сердце машины: «Тянь Ци лучше всего умеет терпеливо объяснять». Сторона обязательно найдет время, чтобы четко и подробно объяснить проблему. Обратное распространение ODEnet — это такая проблема, которую нужно терпеливо объяснять.
Обратное распространение ODEnet несколько отличается от обычного обратного распространения, поэтому нам может потребоваться внимательно просмотреть исходную статью и соответствующее доказательство в приложении, чтобы получить более глубокое понимание. Кроме того, автор дает PyTorch-реализацию ODEnet, и через нее мы также можем понять детали реализации.
Как заявляют авторы, основная техническая трудность при обучении непрерывной иерархической сети заключается в обратном распространении градиентов через решатель ODE. На самом деле очень интуитивно понятно передавать градиент обратно по пути вычисления прямого распространения, но использование памяти будет относительно большим, а числовую ошибку невозможно контролировать. Решение автора состоит в том, чтобы рассматривать решатель ODE с прямым распространением как операцию черного ящика, в которой градиенты сложны или не требуются для передачи, просто «обойти».
Автор использует метод расчета градиента, называемый сопряженным методом, чтобы «обойти» решатель ОДУ при прямом распространении, то есть модель вычисляет градиент с помощью второго расширенного решателя ОДУ при обратном распространении, который может аппроксимировать путь вычисления из переданных градиентов. возвращаются решателем ODE и, таким образом, доступны для дальнейших обновлений параметров. Этот подход, как показано на рисунке c выше, не только требует больших вычислительных ресурсов и памяти, но также точно контролирует числовую ошибку.
В частности, если нашфункция потерьесть L(), а его входные данные являются выходными данными решателя ОДУ:
Наш первый шаг — найти производную L по z(t) или то, как изменение потерь модели зависит от изменения скрытого состояния z(t). Производная функции потерь от L до z(t_1) может предоставить запись для расчета градиента всей модели. Автор называет эту производную сопряженной a(t) = -dL/z(t), что фактически эквивалентно градиенту скрытого слоя.
В традиционном обратном распространении, основанном на цепном правиле, нам нужно передать градиенты из последнего слоя, взяв производную от предыдущего слоя. В непрерывной ODEnet нам нужно вывести ранее полученное a (t) против непрерывного t. Поскольку a (t) является производной потери L в скрытое состояние z (t), это то же самое, что и традиционная цепочка , Понятие распространения в правиле формулы в основном то же самое. Следующая формула показывает производную от a(t), которая может передать градиент вперед вдоль последовательных t, а в приложении B.1 представлен конкретный процесс вывода этой формулы.
После получения градиентов каждого скрытого состояния мы можем взять их производные по параметрам и обновить параметры. Также в ODEnet после получения градиента скрытого состояния производная потерь по параметру может быть получена после взятия производной и интегрирования параметра Причина, по которой здесь требуется интегрирование, заключается в том, что «уровень» t непрерывен . Это уравнение может быть выражено как:
Подводя итог, мы можем интуитивно понять процесс обратного распространения ODEnet как три шага, то есть сначала найти запись градиента, сопровождающую a(t_1), а затем найти скорость изменения a(t) da(t)/dt, чтобы мы могли найти Get a(t) в разное время. Наконец, с помощью a(t) и z(t) мы можем найти градиент потерь по отношению к параметрам и обновить параметры. Конечно, это лишь краткое интуитивное понимание, а более полный процесс обратного распространения показан в Алгоритме 1 оригинальной статьи.
Как сделать обратное распространение
В Алгоритме 1 исследователи, такие как Чен Тяньци, показали, как использовать другой OED Solver для получения различных градиентов и обновления количества обратного распространения за один раз. Чтобы понять алгоритм 1, сначала нам нужно ознакомиться с выражением ODESolver. Например, при прямом распространении ODEnet процесс решения может быть выражен как ODEsolver(z(t_0), f, t_0, t_1, θ). Эта эволюция является интегралом от f по t, и цель ODESolver состоит в том, чтобы найдите z(t_1) путем интегрирования.
Алгоритм 1 также можно понять таким образом, наша цель состоит в том, чтобы использовать ODESolver для нахождения z(t_0) из z(t_1), a(t_0) из a(t_1) в соответствии с уравнением 4 и из 0 в соответствии с уравнением 5. дл/дθ. Наконец, нам нужно только обновить нейронную сеть f(z(t), t, θ) с помощью dL/dθ, чтобы завершить весь процесс обратного распространения.
Как показано выше, если задан начальный параметр θ, вперед начальное время t_0 и конечное время t_1, конечное состояние z(t_1) и запись градиента ∂L/∂z(t_1). Затем мы можем объединить все три интеграла вместе, чтобы решить все величины одновременно, поэтому мы можем определить начальное состояние s_0, которое является начальным значением для решения обыкновенного дифференциального уравнения.
Обратите внимание, что первое начальное значение z(t_1), фактически при прямом распространении, от z(t_0) до z(t_1), вычислялось один раз, но модель не сохраняет результаты расчета, поэтому имеется только константа уровень стоимости памяти. Кроме того, при вычислении a(t) необходимо знать соответствующее значение z(t), например, для ∂L/∂z(t_0) необходимо знать значение z(t_0). Если мы не можем сохранить промежуточное состояние, мы также можем вычислить промежуточное состояние в обратном порядке от z(t_1) до z(t_0). Этот процесс вычисления в основном такой же, как и прямой процесс, то есть z(t_0) получается из z(t_1) путем эволюции со скоростью изменения f.
После определения s_0 нам нужно определить, как начальное состояние «эволюционирует» до конечного состояния.Подынтегральными функциями предыдущих уравнений (3), (4) и (5), которые определяют эти эволюции, являются aug_dynamics (в алгоритме 1) . ) Функция определена.
где f(z(t), t, θ) умножается от t_1 до t_0 как z(t_0), первое обыкновенное дифференциальное уравнение должно обеспечивать условия для второго. А -a(t)*∂L/∂z(t) от t_1 до t_0 есть a(t_0), что аналогично производной функции потерь в традиционной нейронной сети до первого скрытого слоя, всего a( t) Это эквивалентно градиенту скрытого слоя. Только получив градиенты всех скрытых слоев на пути интегрирования, мы можем дополнительно решить градиент функции потерь по параметрам.
Таким образом, первое и второе обыкновенные дифференциальные уравнения с обратным распространением обуславливают третье дифференциальное уравнение, a(t) и z(t). Наконец, интегрирование -a(t)*∂f(z(t), t, θ)/∂θ от t_1 до t_0 дает dL/dθ. С помощью всего одного интеграла мы больше не передаем градиенты слой за слоем и не обновляем параметры, специфичные для этого слоя.
Шаги для завершения обратного распространения просты, как показано в псевдокоде ниже. Сначала определите метод эволюции каждой переменной, а затем объедините его с состоянием инициализации и передайте в ODESolver.
def f_and_a([z, a], t):
return[f, -a*df/da, -a*df/dθ]
[z0, dL/dx, dL/dθ] =
ODESolver([z(t1), dL/dz(t), 0], f_and_a, t1, t0)
Непрерывный нормализованный поток
Этот вид непрерывного преобразования обладает очень важным свойством, то есть можно легко и быстро вычислить самую основную теорему о замене переменных в модели потока. В четвертом разделе статьи авторы строят новую обратимую модель плотности на основе таких результатов вывода, которая преодолевает недостатки моделей нормализованного потока, таких как Glow, и непосредственно обучается с помощью оценки максимального правдоподобия.
Теорема о замене переменных
Для теоремы о замене переменных в оценке плотности вероятности мы можем начать с одномерного случая. Учитывая случайную величину z и ее функцию плотности вероятности z ~ π (z), мы хотим построить новую случайную величину, используя функцию отображения x = f (z). Функция f обратима, т. е. z=g(x), где f и g — обратные функции друг друга. Теперь возникает вопрос, как вывести неизвестную функцию плотности вероятности p(x) новой переменной?
По определению интегральный член ∫π(z)dz представляет собой сумму площадей бесконечно малых прямоугольников, где интегральный элемент Δz — это ширина целого маленького прямоугольника, а высота маленького прямоугольника в позиции z — это значение определяется функцией плотности вероятности π(z) . Если мы используем f^−1(x) для представления функции, обратной f(x), при замене переменных z=f^−1(x) должно подчиняться Δz/Δx=(f^−1(x) )′ . Теорема о замене переменных для нескольких переменных может быть обобщена для одной переменной, где det ∂f/∂z — якобиан функции f:
Как правило, использование теоремы о подстановке переменных требует вычисления определителя матрицы Якоби ∂f/∂z, что является основным ограничением.Недавняя исследовательская работа оценивала способность выражения и вычислительную стоимость скрытого слоя нормализованной модель потока. Но исследователи обнаружили, что замена дискретных уровней непрерывными преобразованиями упрощает расчет, нам нужно только вычислить след матрицы Якоби. Основная теорема 1 состоит в следующем:
В обычной теореме о подстановке переменных функция преобразования f (или нейронная сеть) распределения должна быть обратимой, а сделать обратимую нейронную сеть очень сложно. В теореме таких исследователей, как Чен Тяньци, независимо от того, какая нейронная сеть f, нет проблемы, она естественно обратима, поэтому применение этой модели непрерывной модели конвекции должно быть очень удобным.
Как показано ниже, случайная величина z(t_0) и ее распределение могут эволюционировать в z(t_1) и ее распределение посредством непрерывного преобразования:
Кроме того, модель непрерывного потока имеет много свойств и преимуществ, но здесь она не распространяется. Полное доказательство теоремы 1 о подстановке переменных находится в Приложении A, а заинтересованные читатели могут обратиться за подробностями к оригинальной статье.
Наконец, регулярное дифференциальное уравнение представляет собой совершенно новую основу, и многие методы, кроме моделей потоков, обладают новыми свойствами при изменении непрерывных преобразований, которые может быть трудно получить в случае дискретной активации. Возможно, в будущем будет много исследований этой новой модели, и непрерывная нейронная сеть станет более разнообразной.