1. Mind The Gap: Java, Machine Learning, and Beyond
ING Backend Guild
Richard Abbuhl / Freelancer / ING
Technology Meetup • 17 May 2018
2. 1. Introduction - Richard
2. Mind The Gap
3. Sample Problem - Multiple Journeys
4. Ideal World - Java & Machine Learning
5. Real World - Java & Machine Learning
6. Fix The Gap
7. And Beyond
8. Questions
2
Agenda
3. • Java / Microservices back-end, Angular / Polymer front-end, Java, Javascript, (Fortran, C,
C++, Ada)
• Java / Machine Learning (Education/Interest), https://github.com/richardabbuhl/jmentor
(back-propagation and reinforcement learning)
• Love the hype.
• What’s AI done for you?
Introduction - Richard
3
4. Mind The Gap - Conferences
4
Conference Talks about Java?
Conference Talks about Machine Learning?
Conference Talks about Java and Machine
Learning?
5. Mind The Gap – Platforms & Learning
5
Machine Learning Platforms: TensorFlow,
Spark, etc.
MOOC sites: Coursera, Edx, etc.
Technology book sites: Safari, etc.
Lots of focus on Python, R, and Scala!!
8. Sample Problem – Multiple Journeys
8
Customers may want to have own
customer journey
Use machine learning to figure out which
journey to present
Start Step1 Step2 Step3 Step4 Done
Start Step1 Step4 Done
Start Step4 Step3 Step2 Step1 Done
9. Sample Problem- Multiple Journeys
9
Train the customer
journey model
Deploy the customer
journey model
Use the customer
journey model to
decide which journey
to present to the user
10. In your microservice:
public class CustomerJourneyService {
public String getCustomerJourney(Customer customer) {
Model model = Model.loadModel(CUSTOMER_JOURNEY);
CustomerProfile profile = Customer.getProfile(customer);
return model.evalulate(profile);
}
}
Ideal World – Java & Machine Learning
10
11. Machine learning in the JDK (v15?)
- Machine Learning API
- Supports model training
- Supports model deployment
- Cloud support
- Note: JSR for ML?
Ideal World - Java & Machine Learning
11
12. Spring Framework:
- Already has connectors to cloud data, etc.
- Spring Machine learning API?
- Generic connectors to TensorFlow, DL4J,
Azure ML, Apache Spark?
- Cloud and Machine Learning go hand-in-
hand
- Note: Spring Boot, Spring Cloud
Ideal World - Java & Machine Learning
12
13. Real World - Languages
13
Most Popular Languages by Occupation
https://insights.stackoverflow.com/survey/2017#technologies-and-occupations
14. Real World - Learning Machine Learning
14
Where Language Course Description
Big Data University Python, R, and Scala Various Courses
Coursera Python and TensorFlow Deep Learning Specialization
Coursera Scala and Spark Big Data Analysis with Scala and Spark,
Ecole Polytechnique Lausanne
Data Camp R and Python Various Courses
Edx Python Data Science,
HarvardX
Edx Python Microsoft Professional Program in Artificial Intelligence
Edx Python Berkeley Foundations of Data Science
Edx Python UCSD Machine Learning Fundamentals
Future Learn R Advanced Machine Learning
Udacity Python Deep Learning Nanodegree
15. Overview:
- Popular Machine Learning Library – used to implement AlphaGo
- Requires some learning
- Lots of training material
- Supports Python, C++, Java, and Go
- Java: The Java API is currently experimental and is not covered by
TensorFlow API stability guarantees.
- Javascript: A new library is available for machine learning in the
browser
- Note: tools versus solutions
https://web.stanford.edu/~surag/posts/alphazero.html
https://github.com/suragnair/alpha-zero-general
Real World - TensorFlow
15
16. Overview:
- Buy a good book or two on Machine Learning
- Create your own Java deep-learning library
- Yeah, right?
https://github.com/richardabbuhl/jmentor
Real World - Code You Own Solution
16
17. Overview:
- Popular Java Machine Learning Library
- Wide support for deep learning algorithms
- Parallel versions integrate with Hadoop and Spark
- Java: Yes!
- Languages: Java, Scala, Python & Clorjure
- Note: great for Java developers
Real World - DeepLearning4J
17
18. Overview
- Oracle Machine Learning
- Oracle Data Mining
- Oracle Advanced Analytics
- Languages: mostly SQL
- Oracle Replaces JavaOne with Oracle
Code One
Real World - Oracle Machine Learning
18
19. Overview:
- Another Popular Machine Learning Library
- Requires some learning
- Lots of training material
- Supports Java, Scala, Python, and R
- Java: a well-documented API
- Note: MLlib great for Java developers
Real World - Apache Spark
19
20. Overview:
- Another Popular Machine Learning Library
- Written in C++
- Requires some learning
- Lots of training material
- Supports Python, C++
- Java: external library available on GitHub
- Note: FB
- https://facebook.ai
Real World - Caffe2
20
21. Overview:
- Another Machine Learning Library
- Lots, lots of documentation
- Supports web services for Machine Learning
- Languages: Java, .Net, Python, PHP, Javascript,
Ruby
- Java: programmatic access to Amazon Machine
Learning (AWS SDK for Java)
- Create and manage Amazon Machine Learning
entities using the AWS Command Line Interface
(CLI) available on Windows, Mac, and Linux/UNIX
systems.
Real World - Amazon Machine Learning
21
22. Overview:
- Yet Another Machine Learning Library
- Lots, lots of documentation
- Supports web services for Machine Learning
- Languages: .NET, Python, R, Java, etc
- Java: Azure Machine Learning Web Services are
RESTful APIs.
Real World - Azure Machine Learning
22
23. Overview:
- Yet Another Machine Learning Library
- Lots of documentation
- Supports REST API
- Languages: Python
- Java: IBM Watson Developer Cloud Java SDK
Real World - IBM Watson
23
24. My plan:
- Install and learn TensorFlow
- Install and learn DeepLearning4j
- Code and update my own Java
library jmentor
- Try the TensorFlow Javascript
library
- Learn Python, R, and Scala
What works for you?
Fix The Gap
24
25. Process Solution Company Description
Software coding Teach kids creativity. Ultimately,
machines will be better at
coding (April 9, 2018)
Pair programming
Pair programming (Python)
Various
Tom Hulme, GV, venture
capital arm of Google parent
Alphabet, wired.co.uk article.
Codota,
Kite,
OpenAI, MIT, DeepMind
Deep machine learning will likely automate the
writing of code relatively quickly.
Software Debugging AI Commit Assistant Ubisoft Goal of the AI system is to catch bugs before they're
ever committed into code
Software Testing Automatic Test Generation
Automatic Test Generation
Diffblue,
Applitools
Takes current repo, adds missing coverage,
exception tests, etc.
Software Design ? ? ?
Scrum team structure Selecting Directors Using
Machine Learning (March 19,
2018)
Erel, Isil and Stern, Lea Henny
and Tan, Chenhao and
Weisbach, Michael S.
Fisher College of Business Working Paper No. 2018-
03-005.
Scrum team structure Squad size ING SCRUM coach wants to use SNOW data and machine
learning to predict the optimal squad size
Scrum Planning ? ? ?
Scrum Retrospective ? ? ?
And Beyond - Java & Machine Learning
25