All the images in the post are owned by the respective owners/creators/authors. This post is a re-blog of my @JavaAdventCalendar post from https://www.javaadvent.com/2018/12/two-years-in-the-life-of-ai-ml-dl-and-java.html.
Now back to what I was going to write about. If you ask me, I’ll already admit that I have NOT even scraped the surface of these topics. What I share here is a glimpse of what’s out there and each one of you might have discovered many more aspects of these topics as part of your daily professional and personal pursuits.
One of my motivations of putting this post and the links below together comes from the discussion we had during the LJC Unconference in November 2018, where Jeremie, Michael Bateman and I along with a number of LJC JUG members gathered at a session discussing a similar topic. And the questions raised by some were in the lines of where does Java stand in the world of AI-ML-DL. How do I do any of these things in Java? Which libraries and frameworks to use?
Another confession, I didn’t spend too much time trying to gather and categorise these topics, thanks to Twitter and the Internet for helping me find them and use them. I hope whatever content has been put together here quantifies to more than the answer to the above questions. And in case you feel further improvements can be made to the content, categorisation, layout, please feel free to contribute, you can start by visiting the git repo and creating a pull request. Please watch, fork, start the repo to get updates of the changes to come. Here’s a number of resources shared in the last two years (circa), categorised as best I could:
- Business / General / Semi-technical
- Classifier / decision trees
- Correlated Cross Occurrence
- Deep learning
- Genetic Algorithms
- Java projects / technologies
Natural Language Processing (aka NLP)
- An introduction to natural language processing and a demo using opensource libraries (Tweet)
- Implementing NLP Attention Mechanisms with DeepLearning4J (Tweet)
- How Stanford CoreNLP, a popular Java natural language tool can help you perform Natural Language Processing tasks(Tweet)
- FREE AI talk on Natural Language Processing NLP using Java with deeplearning4j (Tweet)
- Neural Networks
- Recommendation systems / Collaborative Filtering (CF)
- Tools & Libraries, Cheatsheets, Resources
How-to / Deploy / DevOps / Serverless
- Learn how to deploy and manage machine learning models (Tweet)
- How to prepare unstructured data for BI and data analytics AI and MachineLearning (Tweet)
- Machine Learning Model Deployment Made Simple:   (Tweet)
- (more links)
Due to a large number of the links gathered, not all of them could be shown here and so I have created a git repo and to host them on GitHub, where you will find the rest of the links. Once again pull requests are very welcome.
From my several weeks to few months of intense experience I suggest if you want to get your hands dirty with Artificial Intelligence and it’s off-springs , don’t shy away from it, just because it is not Java / JVM based. It’s best to start high-level with whatever you have and when you have understood the subject enough to try to apply them in the languages you are at home with, be that Java or any other JVM language you may know. I’m not claiming I know them, but merely sharing my mileage.
One of the things we came up during our discussions was that AI, ML and DL have strong contributions from academia and they use tools and languages best known to them and sometimes most appropriate for the task in hand.
Firstly, to @java for sharing many AI, ML, DL related resources with the wider community. And also to organisations like @skymindio (https://skymind.ai/) who are doing an awesome job in bridging the gap between the Java/JVM and AI/ML/DL worlds.
Also, would like to thank the good folks (Helen and team) behind the ML Study group in London — supported by @RWmeetamentor, who have been working hard to bring everyone together to learn ML and related topics. They may have even very indirectly influenced me to write this post. wink, wink
So to sum up, our discussion at the LJC Unconference 2018, we mentioned other languages like Python, R, Julia, Matlab and the likes, contribute more to AI, ML and DL than another programming language.
I know it is not going to make me popular by saying this but my humble request to all developers would be that not to think or expect everything possible from a single programming language. Any language and in the context of this post, Java and other JVM languages are meant and written for a purpose and no doubt we can replicate efforts made in other languages in Java/JVM languages.
But, at the end of the day, they should all be treated as tools and be used where appropriate.
I hope the little shared in this post still will help inspire the Java / JVM community especially those who have strong interests in topics like Artificial Intelligence, Machine Learning and Deep Learning.
Please keep an eye on this space, more good stuff coming and share your comments, feedback or any contributions which will help us all learn and grow to@theNeomatrix369, you can find more about me via the About me page.
Mani Sarkar is a passionate developer mainly in the Java/JVM space, currently strengthening teams and helping them accelerate when working with small teams and startups, as a freelance software engineer/data/ml engineer, more….