Расслабиться! Flux - это библиотека машинного обучения, которая не делает вас Tensor!

Что такое Flux?

Fl ux - это библиотека машинного обучения для мультипарадигмального быстрого языка статистического программирования Julia, разработанного MIT. Основная функция Flux - использование градиентов кода Julia. Другими словами, Flux может принимать другую функцию Julia и набор аргументов и возвращать градиент. Flux - действительно крутой пакет, потому что он может делать много вещей, которые может делать Tensorflow от Google, но в пакете «Разработано пользователями». Кроме того, Flux имеет то преимущество, что он написан на Julia. Хотя это также означает, что Flux страдает теми же недостатками, что и другие пакеты Julia, обмен определенно не ужасен.

Если вы действительно хотите взглянуть на Flux, у меня есть вводное руководство по пакетной обработке и обучению сверточной нулевой сети в Flux.

Что такое Tensorflow?

Tensorflow - классический инструмент в наборе инструментов для анализа данных. Люди, которые вообще не программируют, даже знают, что такое Tensorflow, и на это есть веские причины:

Tensorflow потрясающий.

Tensorflow был разработан командой Google Brain Team и выпущен по лицензии Apache в ноябре 2015 года. Tensorflow поддерживает градиентные модели, лежащие в основе множества современных алгоритмов машинного обучения, в том числе используемых Google, Nvidia, QualComm, Lenovo и еще сотни. Tensorflow стал основным продуктом не только Python, но и машинного обучения в целом.

Что мне нравится в Flux

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

Юлия

Как вы, возможно, уже знаете, Flux для Джулии. Написание на Julia дает Flux огромное преимущество перед пакетами, написанными на Python. Julia - гораздо более быстрый язык и, на мой взгляд, у него лучший синтаксис, чем у Python (что является моим личным предпочтением).

Однако это требует значительного компромисса. Julia, по большей части, все еще относительно новый язык, и у него нет такой базы пользователей, как у Python. В этой ситуации Джулия теряет большую часть поддержки, которую несет с собой такой огромный язык, как Python. Это означает, что, хотя Flux может быть в некоторой степени лучшим решением, он может быть не обязательно во всех случаях. Это потому, что бывает очень сложно найти ответы на любую икоту, с которой вы столкнетесь. В первую очередь может быть трудно найти документацию, чтобы научиться использовать язык и пакеты, хотя ситуация постоянно улучшается.

Классный синтаксис!

Я уже говорил, что синтаксис Джулии мне нравится больше, чем Python. Хотя это чисто субъективно, не субъективно то, насколько изменчивым может быть язык Julia, и вместе с этим появляется совершенно другой и действительно крутой способ создания градиентных моделей внутри Julia:

Синтаксические выражения

Они действительно классные, и если вы хотите разглядеть Юлию, вам обязательно стоит взглянуть на них как следует. В основном они используются в двух конкретных сценариях:

  • Зацикливание
f(w) = v = v + 5 for v in w
  • Функциональные операции
f(w) = w + 5 - 6

Однако синтаксические выражения в Julia можно использовать сотнями других способов, которые все интересны и делают программиста проще и интуитивно понятнее.

Но как это вписывается в Flux?

Flux полностью использует преимущества этих универсальных выражений и использует их как основу для всей библиотеки. Просто взгляните на этот пример из документации Flux:

julia> using Flux
julia> f(x) = 3x^2 + 2x + 1;  
julia> df(x) = gradient(f, x)[1]; # df/dx = 6x + 2  julia>
df(2) 14  
julia> d2f(x) = gradient(df, x)[1]; # d²f/dx² = 6  
julia> d2f(2) 6

Что мне нравится в Tensorflow

Tensorflow имеет собственное языковое преимущество совершенно по-другому, Python является одновременно очень универсальным языком в том смысле, что большинство других языков высокого уровня могут взаимодействовать с ним, а также тем, что он основан на C. а Джулия, однако, определенно пользуется популярностью у Tensorflow и Python.

Легко найти помощь

Преимущество использования всего популярного; Так же, как спрос растет вместе с предложением, удобство использования растет вместе с пользователями. Чем больше людей используют продукт, тем больше разговоров о нем происходит, и это абсолютно необходимо для документирования таких инструментов, как Tensorflow или Flux.

Соблюдает правила

Я могу предположить, что большая проблема, с которой специалисты по обработке данных столкнутся при попытке использовать Flux, заключается в том, что многие вещи выполняются совсем не так, как где-либо еще. Flux использует синтаксис, очень специфичный для языка, который не соответствует типичной типизации высокоуровневого кода ML. Однако по другую сторону преграды находится Tensorflow, который придерживается прямо противоположного подхода и стремится соответствовать тому, что уже установлено внутри машинного обучения.

Преподобный

Без сомнения, Tensorflow пользуется дурной славой. Это имеет смысл, потому что Tensorflow не только существует в отрасли дольше, но и поддерживается гигантским информационным гигантом Google. В конце концов, для бизнеса с миллионами разработчиков, которые используют инструменты для поддержки и улучшения программного обеспечения, намного проще, чем нескольким сопровождающим Github, у которых даже есть повседневная работа, на которую они должны пойти.

Заключение

Я считаю, что Flux действительно крутой, и мне очень нравится работать над ним. Tensorflow занимает особое место в моем сердце, но было бы определенно интересно увидеть, как больше людей используют Flux для своих моделей. У Flux есть несколько действительно крутых идей, которые он предлагает, и, хотя это делает его уникальным, он также приходит с ужасно незнакомым использованием. Заменит ли Flux Tensorflow? Скорее всего, нет и не может, но может ли Flux заменить вам Tensorflow?

Да!

Джулия, безусловно, еще ребенок, и многие пакеты балансируют на грани того, чтобы быть достаточно инклюзивными, чтобы на них можно было положиться, но, несмотря на ее юный возраст, Джулия определенно выделяется как отличный язык для настоящего и будущего в Data Science. Кто знает? Через десять-пятнадцать лет мы, скорее всего, увидим всплеск использования Julia, а вместе с ним и Flux.