Size: a a a

Язык программирования Julia / Julia programming language

2021 April 03

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
А вообще, у меня очень позитивный опыт с forwarddiff. Дифференцирует почти что угодно :)
источник

AM

Aleksey Maksimov in Язык программирования Julia / Julia programming language
Alexander Plavin
Формально - автодифференциронивание должно работать для почти любого разумного кода. Но для достижения хорошей точности и эффективности строить всё на основе только самых базовых арифметических операций часто не получается. Приходится задавать хотя бы некоторые дополнительные функции в виде примитивов, т.е. явным образом реализовывать производные для них. Примеры: производные всяких sin/cos/exp задаётся аналитически, а не вычисляется автоматически - хотя это в принципе возможно, ведь эти функции реализованы через базовую арифметику. Алгоритмы типа fft или решателей уравнений тоже часто имеет смысл вручную аналитически дифференцировать.
"Алгоритмы типа fft или решателей уравнений тоже часто имеет смысл вручную аналитически дифференцировать"
так вот я как раз про это и спрашивал. Я не понимаю, как такое аналитически дифференцируется. Есть какие-то ссылки?
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
аналитически = вручную найти производную
я для nonuniform fft так делал когда-то, благо производная его считается тривиально
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
но говорят что и для итеративных алгоритмов бывает автодифф хорошо работает
источник

AM

Aleksey Maksimov in Язык программирования Julia / Julia programming language
Ок, спасибо. Тогда сам опробую
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
а у вас прям сложный хитрый алгоритм, для которого нужна производная?
источник

AM

Aleksey Maksimov in Язык программирования Julia / Julia programming language
Alexander Plavin
а у вас прям сложный хитрый алгоритм, для которого нужна производная?
Кажется, что так. Пока что все gradient-free методы работали существенно хуже, а с численными градиентами случаются проблемы, когда шаг дифференцирования начинает сильно влиять и приходится его ручками подгонять. Хотелось бы как-то автоматизировать процесс
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
ничего не мешает попробовать
если переменных, по которым нужен градиент, мало (до ~100), то forwarddiff в самый раз - у него лучше всего совместимость
источник

AM

Aleksey Maksimov in Язык программирования Julia / Julia programming language
Да, это как раз мой случай. Спасибо, опробую
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Кто-то где-то кстати утверждал, что численный градиент и dual numbers (forward diff) работают по одному и тому же принципу, только у forward diff нет проблем с выбором шага.
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Хотя могу и ошибаться.
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
да, это по своей сути одно и то же
forward diff для одной переменной почти эквивалентен f(x + eps*im) / (eps*im) для маленького eps
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
только вместо im*im = -1 в dual numbers задано e*e=0
поэтому и нет выбора шага как такового
источник

AP

Alexander Plavin in Язык программирования Julia / Julia programming language
а вот reverse diff это прямо совсем другая вещь, там сложнее всё
поэтому forward чаще работает, и для небольшого количества переменных быстрее
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
+
источник

ЕП

Евгений Погребняк... in Язык программирования Julia / Julia programming language
PS
lets move to a private chat
Спасибо, что помогаете молодому человеку. Наш Джулиа чат - прекрасен!
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Началась AMA сессия

https://t.co/n7SqPuwypR
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Аааа... Разноцветные стектрейсы как лучшая фича 1.6 :-/
источник

АО

Андрей Оськин... in Язык программирования Julia / Julia programming language
Мейсон упал в моих глазах :-))
источник

ف

فواد اسماعیلی... in Язык программирования Julia / Julia programming language
Thansk to all of you
Specially
@elgatorix
My problem was becouse of the version of Julia(maybe becouse of hardware! Or sth else)
I have installed 1.4.1 version
It worked
источник