Julia, или эффективное программирование общего назначения, для решения задач машинного обучения и статистических данных

封面
  • 作者: 1, 1
  • 隶属关系:
    1. Поволжский государственный университет телекоммуникаций и информатики
  • 期: 卷 1 (2022)
  • 页面: 428-429
  • 栏目: Электроника и радиоэлектроника
  • URL: https://journals.eco-vector.com/osnk-sr/article/view/107779
  • ID: 107779

如何引用文章

全文:

详细

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

Цель — изучить эффективное программирование общего назначения.

Методы. Создание нового языка программирования предполагает новые возможности. Каждый изобретатель планирует избавиться от недостатков предыдущих видов, но сохранить их достоинства. Таким же принципом руководствовались создатели Julia. Вместо замены какого-то конкретного языка, они хотели превзойти всех предыдущих. Говоря о Julia невозможно не сказать про достоинства данного языка [2]. Они считаются его визитной карточкой и тем самым он во многом превосходит многие предыдущие виды. Данными плюсами являются:

  • скорость (этот язык разрабатывался для достаточно высокой производительности);
  • общность (язык программирования облегчает выражение многих функциональных шаблонов);
  • технологичность (Julia превосходна в вычислениях и прекрасно подходит для математики);
  • динамичность (язык программирования поддерживает достаточно динамичную типизацию и ведет себя как язык сценариев).

Результаты. Одно из преимуществ данного языка программирования можно увидеть на примере вычисления первых 10 000 простых чисел. Сравнение будет произведено между Python и Julia. На двух взятых кодах будет протестирована скорость выполнения выше прописанной задачи (см. таблицу).

 

Таблица. Код программирования Python и Julia

Python

Julia

def n_primes(n:int)->list:

primes = []

i = 2

while len(primes) < n:

prime_bool = True

for j in range(2,i//2+1):

if i%j == 0:

prime_bool = False

if prime_bool == True:

primes.append(i)

i += 1

return primes

function n_primes(n::Int64)

primes = Int64[]

i::Int64 = 2

while size(primes)[1] < n

prime_bool::Bool = true

for j = 2:i÷2

if i%j == 0

prime_bool = false

end

…….

end

>> @time n_primes(10000)

Тестирование этих двух кодов показало, что, выполняя аналогичную функцию, Python делает это в разы медленнее, а конкретнее 2 мин 47 с, в то время как Julia это делает за 8 с. В настоящее время Julia широко применяется в машинном обучении. В основном она фокусируется на таких областях как: компьютерное зрение, графическая аналитика, обработка естественного языка и сигналов [3]. Язык программирования повсеместно применяется в статистических вычислениях, анализе данных и многом другом. Открытый код дает ему массу возможностей, которые он прекрасно использует. Важно отметить, что Julia имеет все возможные библиотеки машинного обучения для решения всевозможных задач, примерами которых могут быть:

  • Mocha.jl (пакет глубокого обучения, написанный полностью на Julia. Он может взаимодействовать с основными функциональными возможностями без необходимости включать внешние зависимости);
  • SciKitLearn.jl (оболочка написана на Julia для библиотеки Python);
  • указанные библиотеки являются лишь примером из большого списка библиотек машинного обучения, используемых Julia.

Выводы. Несомненно, Julia — это молодой, но довольно перспективный язык программирования. Нельзя сказать, что это аналог всеми любимого Python [4]. Тем не менее можно отметить, что на мировом рынке появляется стоящий конкурент. Julia имеет свои недостатки, как и абсолютно любой язык программирования, но масштаб преимуществ заставляет задуматься о будущем решения задач машинного обучения и статистических данных.

全文:

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

Цель — изучить эффективное программирование общего назначения.

Методы. Создание нового языка программирования предполагает новые возможности. Каждый изобретатель планирует избавиться от недостатков предыдущих видов, но сохранить их достоинства. Таким же принципом руководствовались создатели Julia. Вместо замены какого-то конкретного языка, они хотели превзойти всех предыдущих. Говоря о Julia невозможно не сказать про достоинства данного языка [2]. Они считаются его визитной карточкой и тем самым он во многом превосходит многие предыдущие виды. Данными плюсами являются:

  • скорость (этот язык разрабатывался для достаточно высокой производительности);
  • общность (язык программирования облегчает выражение многих функциональных шаблонов);
  • технологичность (Julia превосходна в вычислениях и прекрасно подходит для математики);
  • динамичность (язык программирования поддерживает достаточно динамичную типизацию и ведет себя как язык сценариев).

Результаты. Одно из преимуществ данного языка программирования можно увидеть на примере вычисления первых 10 000 простых чисел. Сравнение будет произведено между Python и Julia. На двух взятых кодах будет протестирована скорость выполнения выше прописанной задачи (см. таблицу).

 

Таблица. Код программирования Python и Julia

Python

Julia

def n_primes(n:int)->list:

primes = []

i = 2

while len(primes) < n:

prime_bool = True

for j in range(2,i//2+1):

if i%j == 0:

prime_bool = False

if prime_bool == True:

primes.append(i)

i += 1

return primes

function n_primes(n::Int64)

primes = Int64[]

i::Int64 = 2

while size(primes)[1] < n

prime_bool::Bool = true

for j = 2:i÷2

if i%j == 0

prime_bool = false

end

…….

end

>> @time n_primes(10000)

 

Тестирование этих двух кодов показало, что, выполняя аналогичную функцию, Python делает это в разы медленнее, а конкретнее 2 мин 47 с, в то время как Julia это делает за 8 с. В настоящее время Julia широко применяется в машинном обучении. В основном она фокусируется на таких областях как: компьютерное зрение, графическая аналитика, обработка естественного языка и сигналов [3]. Язык программирования повсеместно применяется в статистических вычислениях, анализе данных и многом другом. Открытый код дает ему массу возможностей, которые он прекрасно использует. Важно отметить, что Julia имеет все возможные библиотеки машинного обучения для решения всевозможных задач, примерами которых могут быть:

  • Mocha.jl (пакет глубокого обучения, написанный полностью на Julia. Он может взаимодействовать с основными функциональными возможностями без необходимости включать внешние зависимости);
  • SciKitLearn.jl (оболочка написана на Julia для библиотеки Python);
  • указанные библиотеки являются лишь примером из большого списка библиотек машинного обучения, используемых Julia.

Выводы. Несомненно, Julia — это молодой, но довольно перспективный язык программирования. Нельзя сказать, что это аналог всеми любимого Python [4]. Тем не менее можно отметить, что на мировом рынке появляется стоящий конкурент. Julia имеет свои недостатки, как и абсолютно любой язык программирования, но масштаб преимуществ заставляет задуматься о будущем решения задач машинного обучения и статистических данных.

×

作者简介

Поволжский государственный университет телекоммуникаций и информатики

Email: monasovas83@gmail.com

студентка, группа ИСТ-91, факультет информационных систем и технологий

俄罗斯联邦, Самара

Поволжский государственный университет телекоммуникаций и информатики

编辑信件的主要联系方式.
Email: xeniya-luna@list.ru

научный руководитель, кандидат технических наук, доцент; доцент кафедры информационных систем и технологий

俄罗斯联邦, Самара

参考

  1. Bezanson J., Edelman A., Karpinski S., Shah V.B. Julia: A Fresh Approach to Numerical Computing // SIAM review. 2017. Vol. 59, No. 1. doi: 10.1137/141000671
  2. Lauwens B., Downey A.B. Think Julia: how to think like a computer scientist. O’Reilly Media Inc., 2019. 450 p.
  3. geeksforgeeks.org [Электронный ресурс]. Introduction to Machine Learning in Julia // GeeksforGeeks. Доступ по ссылке: https://www.geeksforgeeks.org/introduction-to-machine-learning-in-julia/
  4. Bezanson J., Karpinski S., Shah V.B., Edelman A. Julia: A Fast Dynamic Language for Technical Computing // arXiv. 2012. Vol. 1. doi: 10.48550/arXiv.1209.5145

补充文件

附件文件
动作
1. JATS XML

版权所有 © Монасова А.С., Захарова О.И., 2022

Creative Commons License
此作品已接受知识共享署名 4.0国际许可协议的许可
##common.cookie##