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 will admit that I have NOT even scraped the surface of these topics. What I share is a glimpse of whats 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 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?
AI-ML-DL and Java and their outreach
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.
Here’s a number of resources shared in the last two years (circa), categorised as best I could:
- Business / General / Semi-technical
- Extract business value from DS (Tweet)
- Why Java and the JVM Will Dominate the Future of Machine Learning, AI, and Big Data (Tweet)
- Machine Learning Made More Accessible During Businesses’ Learning Curve (Tweet)
— (more links)
- Classifier / decision trees
- Email Spam Detector java Application with ApacheSpark (Tweet)
- Guide to Artificial Intelligence: Automating Decision-Making (Tweet)
- Correlated Cross Occurrence
- Multi-domain predictive AI or how to make one thing predict another (Tweet)
- Deep learning
- Deep learning with java (Tweet)
- Free AI Training — Java-based deep-learning tools to analyze and train data, then send the resulting changes back to the server (Tweet)
- Genetic Algorithms
- Jenetics is an advanced Genetic Algorithm, respectively an Evolutionary Algorithm, library written in java (Tweet)
- Java projects/technologies
- Project Panama and fast MachineLearning computation (Tweet)
- GraalVM + Machine Learning (Tweet)
- Deploying Bespoke AI using fnproj — KADlytics by Miminal (Tweet)
- 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
- Introduction to Neural Network Architectures (Tweet)
- Neural Networks explained by MIT (Tweet)
- Implementing an Artificial Neural Network in Pure Java (No external dependencies) (Tweet)
- (more links)
- Recommendation systems / Collaborative Filtering (CF)
- Tutorial on Collaborative Filtering (CF) in Java — a machine learning technique used by recommendation systems(Tweet)
- Tools & Libraries, Cheatsheets, Resources
- Best AI tools and libraries (Tweet)
- Cheat Sheets for AI, Neural Networks, MachineLearning, Deep Learning & Big Data (Tweet)
- Overview of AI Libraries in Java (Tweet)
- (more links)
- 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: 1 2 (Tweet)
- (more links)
- Introduction to interactive Data Lake Queries (Tweet)
- A Simple Introduction To Data Structures (Tweet)
Due to the 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.
From my several weeks to few months of intense experience I suggest if you want to get your hands dirty with Artificial Intelligence and its off-springs , don’t shy away from it, just because it is not Java / JVM based. Its best to start high-level and 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.
One of the things we came up during our discussions was that AI-ML-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.
Follow the community and the tools that drive the innovation and inspiration, to become better at the topic of choice, and in this case, it also applies to Artificial Intelligence and its variants .
So to sum up, our discussion at the LJC Unconference 2018, we mentioned other languages like Python, R, Julia, Matlab and the likes, contributed more to AI-ML-DL than any other 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 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 mad 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.