Слайд 2Отличительные особенности
Множественная диспетчеризация. Множественная диспетчеризация означает, что вариант определенной функции, который будет
исполнен, определяется всем набором типов параметров этой функции.JIT-компиляция. Это технология, которая позволяет увеличить производительность путём компиляции байт-кода в машинный.
Метапрограммированиею. Это когда мы в программе создаем программы и на ходу их запускаем. Это мощный метод, который позволяет сделать много разных интересных вещей. Классический пример — Django ORM, в котором создаются поля с помощью метаклассов.
Параллелизация. Позволяет производить несколько вычислений параллельно друг другу, что в разы сокращает время выполнения программы.
Слайд 3Технологии машинного обучения
Flux
В данном языке он обычно используется как уровень абстракции для
создания нейронных сетей. Flux.jl входит в число моих любимых пакетов, и он был одним из первых, с которыми я познакомился, начиная работу с Julia. Его огромным преимуществом является не вероятно маленький размер.
Легковесность Flux позволяет прекрасно использовать его на серверах, так как он не займет много места, и его запросто можно поместить в крошечные виртуальные среды при помощи Pkg.
Слайд 4Технологии машинного обучения
Merlin.jl
Merlin — еще один фреймворк для глубокого обучения, предназначенный для
создания нейронных сетей. При выполнении многих операций он опережает Flux, но это совсем не означает, что он всегда будет быстрее.
Как и в случае с Flux, Merlin имеет встроенную GPU поддержку с CUDA. Модели Merlin обычно отличаются от моделей Flux способностью к более быстрому развертыванию. Если вы планируете развернуть API, использующее нейронную сеть, при помощи Genie и Julia, стоить выбрать Merlin. Помимо всех выше перечисленных превосходных достоинств, он также включает маленькую дистрибутивную библиотеку.
Слайд 5Технологии машинного обучения
KNet.jl
В отличие от Flux и Merlin, пакет Knet немного тяжелее.
Кроме этого, он написан не чисто на Julia, но и на других языках, таких как C и MATLAB, выполняющихся под кодом Julia.
Следует отметить, что только очень малая часть Knet, а именно 1,8%, написана на C и MATLAB. Остается добавить, что Knet лучше подойдет новичкам, поскольку очень прост в использовании. Knet был создан в университете Коч (Стамбул). Вследствие чего, данный пакет, похоже, намного лучше поддерживается, чем большинство его аналогов
Слайд 6Технологии машинного обучения
Lathe
Lathe сопровождается довольно большой библиотекой статистики, включающей хи-квадрат тесты, байесовскую
статистику, t-тесты, f-тесты и даже малоизвестные тесты по критерию знаков. Более того, в него также включена проверка с модулем статистики, в котором есть метрики точности для непрерывных и категориальных прогнозов. И наконец, Lathe.jl включает небольшую скромную библиотеку дистрибутивов.
Данный пакет также написан на чистом Julia и имеет довольно основательную документацию. Можно сказать, что если Flux — это нечто иное, как TensorFlow для Julia, то Lathe — это ее Sklearn. А значит, он весьма содержателен и предоставляет все необходимые инструменты для работы. Более того, благодаря простоте в использовании, Lathe будет легко освоить даже начинающим.
Слайд 7Волновое уравнение гиперболического типа
Волновое уравнение гиперболического типа имеет следующий вид:
Описывает одномерные линейные
волны без дисперсии. Например, колебания струны, звук в жидкости (газе) или электромагнитные волны в вакууме (в последнем случае уравнение должно быть записано в векторном виде).
Слайд 8Волновое уравнение гиперболического типа
Простейшей разностной схемой, аппроксимирующей данное уравнение, является явная пятиточечная
схема :
Эта схема, получившая название «крест», имеет второй порядок точности по времени и по пространственной координате и является трехслойной по времени.
Слайд 9Волновое уравнение гиперболического типа
Пример программной части решения волнового уравнения гиперболического типа:
Слайд 10Волновое уравнение гиперболического типа
Пример программной части решения волнового уравнения гиперболического типа:
Слайд 11Волновое уравнение гиперболического типа
Пример программной части решения волнового уравнения гиперболического типа:
Слайд 12Волновое уравнение гиперболического типа
Пример программной части решения волнового уравнения гиперболического типа:
Слайд 13Волновое уравнение гиперболического типа
Пример программной части решения волнового уравнения гиперболического типа:
Слайд 14Волновое уравнение гиперболического типа
Чтобы построить поверхность, воспользуемся PyPlot'ом не как окружением Plots,
а непосредственно:
Слайд 15Статьи с arxiv.org
https://arxiv.org/abs/2103.00915
https://arxiv.org/abs/2010.07516
https://arxiv.org/abs/1209.5145
https://arxiv.org/abs/2103.09948