Hi,
So, Julia could not satisfy your need. Right?
If we look at Julia and Python in an anthropomorphic way, one is a mathematician or philosopher, and the other is an engineer.
The former, facing the unknown scale and complexity of the problem, tends to see each step clearly and express it systematically and clearly in the best form. It can even be said that each step will not go too far. It focuses on neatly expressing each language element, type and relationship, and firmly believes that a thorough understanding of the problem can solve all problems. The process of solving the problem may be arduous, and the process of exploration may be full of surprises, because he expresses it closer to the thinking itself. It not only achieves the initial goal but also accumulates each stage of the cognitive process of the problem itself. Once the initial problem is solved, he is a work of art.
The latter is a master in the application field. He clearly knows his goals and processes, how to implement this process in an engineering way, and how to achieve the current goal with the minimum cost (for pytorch, it is the training of neural networks, faster and better). Based on a clear understanding of this process, the handles that need to be unified are given as APIs to simplify the implementation process. This style of pytorch can easily confuse incomplete beginners. Once you get used to this style, routine tasks will be more efficient. However, if you need to change the routine, the burden of thinking and memory is very heavy, because the expression of new conceptual models in the existing framework may be costly.
Julia is a language that expresses thinking more efficiently, but being able to think at this level of abstraction is a high threshold. However, Julia will also shape this way of thinking in turn. Once you get used to this way of thinking, the benefits will definitely be huge.
Hello,
Thank you so much for your reply.
Can you tell me about your experience with Julia? Do you think Julia made your work easier than Python?
Hi all,
Is Julia used in all branches of AI?
Thank you.
I think I can confirm Julia is used in all those 7 branches of AI (note each has sub-fields, AI is an enormously big area of study, and Julia would certainly be useful for any possible AI area you can think of including e.g. robotics), except for probably expert systems, because outdated:
DSLs evolved into âexpert systemsâ, and although âexpert systemsâ is pretty much an abandoned line of research nowadays, some of the early success in AI came from them (like the first mathematical theorems proved by a machine) and DSLs are alive and kicking
Domain-specific languages (DSLs) are a big part of Julia, and I would say Julia excellent for them, more so than most other languages.
I wasnât sure about, but at least found:
Is Julia most used for any current AI area (yet)? Probably not, except SciML. At least there is e.g. a book on computer vision:
Natural language processing is where stuff is happening, and such transformer models (that Julia has available) have taken over computer vision too.
One thing not mentioned there is time-series prediction (and analysis) and Julia also good for that, but intriguingly computer vision is also taking over that in the form of transformer models:
https://deeplearning.fr/visionts-revolutionizing-time-series-forecasting-with-image-based-models/
The cutting edge is moving from transformers to e.g. liquid neural networks (they used Python/PyTorch):
There will always be some area where Julia is not yet there, though people are working on this:
https://www.science.org/doi/10.1126/scirobotics.adc8892
I donât know the difference between liquid neural networks (and Liquid Time-Constant Network) and Liquid State Machines, but I suspect all related and at least I see something in Julia related to that last one:
ReservoirComputing.jl provides an efficient, modular and easy to use implementation of Reservoir Computing models such as Echo State Networks (ESNs). Reservoir Computing (RC) is an umbrella term used to describe a family of models such as ESNs and Liquid State Machines (LSMs)
Without knowing more context, Iâd just write down a generic response. You first need to assess whether the kind of problems you want to solve are actually good fits for AI, since AI is sometimes overhyped and pushed to problem domains where itâs not a good fit.
If AI is deemed a good fit, study AI from whatever courses, textbooks or other resources that are the most accessible to you. If code snippets are given (i.e. not a pure theory course), then you need to have some minimal familiarity, not necessarily proficiency, with the language used. Maybe youâll have to understand code snippets written in PyTorch, even though you might want want to translate the code to, say, Flux.jl in your actual project.
After some studies that gave you a basic understanding of the algorithms involved, you can assess for yourself which language has the best implementation of such algorithms, along with other factors like how expressive and performant the language is.
In short, dive in and get started, rather than agonizing over the language choice.
Hi,
Thank you so much for your great answers.