Size: a a a

Kotlin Community

2020 November 18

AN

Alexander Nozik in Kotlin Community
OlegKrikun
Ещёб кто коротенько объяснил что это за ебобо (ещё не вчитывался, но картинки адовые)
Я после лекции расскажу, если напомните. Но вообще можете посмотреть доклад брендана с последнего котлинконфа
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Это для датасатанистов
не только
источник

O

OlegKrikun in Kotlin Community
Спасибочки
источник

AN

Alexander Nozik in Kotlin Community
OlegKrikun
Спасибочки
Так вот. Суть в том, что в математических задача часто нужно знать не только саму функцию, но и ее производную. Например это важно для задач оптимизации, которые важны для анализа данных и машинного обучения. Проблема в том, что обычная числовая функция свою производную не знает и ее надо считать численно или передавать руками при создании функции. Второе - лень (тем более, что может понадобиться вторая производная), а первое приводит к существенному увеличению времени счета и к погрешностям численного дифференцирования. При этом, для любых не слишком заумных функций производную можно  посчитать аналитически на основе ее символьного представления. Теперь встает вопрос, как внутри программы получить это символьное представление, чтобы его продифференцировать. Есть несколько путей. Можно на языковом уровне накрутить алгебраические контексты, в которых математические операции преобразуются в дифференцируемые операции:
https://github.com/mipt-npm/kmath/blob/abe68a4fb6239701ebd0f581b6fafb9047de91e7/kmath-core/src/commonTest/kotlin/kscience/kmath/expressions/SimpleAutoDiffTest.kt#L38
а вот тут даже пример, к которому сразу оптимизация приделана: https://github.com/mipt-npm/kmath/blob/abe68a4fb6239701ebd0f581b6fafb9047de91e7/kmath-commons/src/test/kotlin/kscience/kmath/commons/optimization/OptimizeTest.kt#L58-L61.

Есть могучая либа для автодифа, к которой @commandertvis пилит коннектор: https://github.com/breandan/kotlingrad. Почитайте, там просто офигенная дока.

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

AN

Alexander Nozik in Kotlin Community
Типирование тензоров по размеру - это другая задача. Смысл в том, чтобы матрицу 3х4 нельзя было умножить на матрицу 2х2. На это опять же есть решения и у Брендана (кодогенерация размерностей аля Асмодей) и у меня (минорная рефлексия с синглетонами).
источник

RI

Ruslan Ibragimov in Kotlin Community
Telegram
Alexander Nozik in Kotlin Community
Так вот. Суть в том, что в математических задача часто нужно знать не только саму функцию, но и ее производную. Например это важно для задач оптимизации, которые важны для анализа данных и машинного обучения. Проблема в том, что обычная числовая функция свою производную не знает и ее надо считать численно или передавать руками при создании функции. Второе - лень (тем более, что может понадобиться вторая производная), а первое приводит к существенному увеличению времени счета и к погрешностям численного дифференцирования. При этом, для любых не слишком заумных функций производную можно  посчитать аналитически на основе ее символьного представления. Теперь встает вопрос, как внутри программы получить это символьное представление, чтобы его продифференцировать. Есть несколько путей. Можно на языковом уровне накрутить алгебраические контексты, в которых математические операции преобразуются в дифференцируемые операции:
https://github.com/mipt-npm/kmath/blob/abe68a4fb6239701ebd0f581b6fafb9047de91e7/kmath-core/src…
источник

AN

Alibek Nurgaliyev in Kotlin Community
немного оффтоп вопрос, как вы вставляете куски кода, что у них другой шрифт?
источник

Na

Neon an Děv 8) in Kotlin Community
Alibek Nurgaliyev
немного оффтоп вопрос, как вы вставляете куски кода, что у них другой шрифт?
о чем это вы?
источник

AN

Alibek Nurgaliyev in Kotlin Community
например вот сообщение с кодом и просто текстом:
источник

Na

Neon an Děv 8) in Kotlin Community
а
источник

Na

Neon an Děv 8) in Kotlin Community
выделяете текст и жмёте правой кнопкой мышей
источник

Na

Neon an Děv 8) in Kotlin Community
и там форматирование
источник

AN

Alibek Nurgaliyev in Kotlin Community
ааа все, спасибо большое!
источник

GO

GGorAA Official in Kotlin Community
Всем привет,

Появилась проблема с запуском приложения на Kotlin(бекенд на ktor, но не суть). Выдает мне ошибку на скрине. Хотя, если собирать приложение, то все работает.

Кто сталкивался, и как чинить? build.gradle.kts сейчас кину
источник

GO

GGorAA Official in Kotlin Community
источник

D

Denys in Kotlin Community
GGorAA Official
Всем привет,

Появилась проблема с запуском приложения на Kotlin(бекенд на ktor, но не суть). Выдает мне ошибку на скрине. Хотя, если собирать приложение, то все работает.

Кто сталкивался, и как чинить? build.gradle.kts сейчас кину
Это не полный лог. Нужно выбрать корневой елемент слева
источник

GO

GGorAA Official in Kotlin Community
источник

GO

GGorAA Official in Kotlin Community
И вот build.gradle.kts
https://pastebin.com/5D08imZz
источник

D

Denys in Kotlin Community
А запуск со --stacktrace что говорит?
источник

GO

GGorAA Official in Kotlin Community
источник