[open access] 一篇讨论 julia 在机器学习方面应用的论文

In this paper, we systematically review and summarize the development of the Julia programming language in the field of machine learning by focusing on the following three aspects:

(1) Machine learning algorithms developed in the Julia language.
(2) Applications of the machine learning algorithms implemented with the Julia language.
(3) Open issues that arise in the use of the Julia language in machine learning.

在本文中,我们重点关注以下三个方面,系统地回顾和总结了Julia 编程语言在机器学习领域的发展:

(1)用 Julia 语言开发的机器学习算法。
(2)使用 Julia 语言实现的机器学习算法的应用。
(3)在机器学习中使用 Julia 语言出现的未解决问题。

Julia: A Fresh Approach to Numerical Computing | SIAM Review 的被引列表发现的。

4 个赞


原文 Under a Creative Commons license by-nc-nd 4.0

5. Julia in machine learning: Open issues

5.1. Overview


5.2. A developing language

Although Julia has developed rapidly, its influence is far less than that of other popular programming languages. After several versions of updates, Julia has become relatively stable, but there are still several problems to be solved.

Julia’s grammar has changed considerably, and although these changes are for the sake of performance or ease of expression, these differences also make it difficult for different programs to work together.

One of Julia’s obvious advantages is its satisfactory efficiency; but to write efficient code, one needs to transform the method of thinking in programming and not just copy code into Julia. For people who have just come into contact with Julia, the ease of use can also cause them to ignore this problem and ultimately lead to unsatisfactory code efficiency.

可能是我没怎么用过老版的 julia,有了 1.0 后,当然是直接用最新的稳定版或 LTS 啦。

编程范式的问题,我感觉 julia 没带来太多新概念,一般来说直接写就好了,写完了再性能测试一下,照着性能建议去改,熟练了就能直接写出高效的代码。因为 julia 的 for 很给力,所以一般不会发生 matlab 不向量化就很慢的情况。

5.3. Lack of stable development tools

Currently, the commonly used editors and IDEs for the Julia language include (1) Juno (Atom Plugin), (2) Visual Studio Code (VS Code Extension), (3) Jupyter (Jupyter kernel), and (4) Jet Brains (IntelliJ IDEA Plugin). According to [137], Juno is currently the most popular editor.

These editors and IDEs are extensions based on third-party platforms, which can quickly build development environments for Julia in its early stages of development, but in the long run, this is not a wise approach. Users need to configure Julia initially, but the final experience is not satisfactory.

Programming languages such as MATLAB, Python and C/C++ each have their own IDE, which integrates the functions of code writing, analysis, compilation and debugging. Although editors and IDEs have achieved many excellent functions, it is very important to have a complete and Julia-specific IDE.

作者觉得有自己的 IDE 很重要,如果有个像 spyder / RStudio 那样的的确很不错。
不过重要的还是完善的功能,VSCode 的插件好好完善一下我感觉就行了。
想要真正的 IDE 只能看 JetBrains 有没有兴趣,或者是等 Julia Computing 赚了大钱烧一个出来。

5.4. Interfacing with other languages

Currently, PyCall and Call are used in Julia to invoke these existing libraries, but Julia still needs a more concise and general invocation method. More important is finding a method to ensure that the parts of these calls can maintain the original execution efficiency or the execution efficiency of the native Julia language.
At the same time, it is also very important to embed Julia’s code in other languages, which would not only popularize the use of Julia more quickly but also combine the characteristics of Julia to enable researchers to accomplish tasks more quickly.

首先一个笔误,是 ccall
其次有了 C 的接口这个就已经非常通用了,还要“更简洁、更通用”那估计只能内联汇编了。

Julia 嵌入其他语言应该能改进的地方还是很多的。脚本语言很多都有嵌入式的形态,julia 也可以有一个 mJulia。

5.5. Limited number of third-party packages