Lot's of software engineers seem to avoid the field of machine learning because it seems hard. In this talk I want to give developers an intuition of what machine learning is using visual examples and without using mathematical formulas. I want to show that machine learning will make things possible that cannot be achieved using traditional procedural programming. I will identify high level components of a supervised machine learning algorithm: vectors, feature spaces, neural networks and labels.
3. Goal:
• Practical knowledge about machine learning
• What kind of problems it can solve
• Do your own experiment
4. Why is machine learning
interesting for Software Developers?
• New opportunities
• Builds on existing knowledge
• Open-source communities and libraries
5. Tensorflow
• Developed by Google
• Open-source
• Has api’s for most major programming languages
• High level api
13. Learning algorithm
• While not done
• pick a training example (input data, class)
• run it through the neural network which produces a prediction
• modify the weights in the neural network so that the prediction is closer to the actual class
14. Agile approach to machine learning
• Theory takes a lot of time to explain and learn
• Using high level api’s you can do experiments without knowing all the mathematical details
• When you have your first results and want to improve
• Learn more
• Ask for expert help
15. Using a high level api
• Which features do I use?
• Do I need more data?
• How many neurons and layers?
• How many training cycles?
24. Neural nets intuition
• Input:
• Features (coordinates in feature space)
• Output:
• A predicted class at every coordinate
in the feature space
white black
black
y
x
27. Neural nets intuition
• The combination of several features make classes distinguishable
• Training on more examples doesn’t always work
• Neural networks can handle thousands of features
white black
black 0
1
y
x
0 & 1
34. 50 steps 600 steps5 steps
train - 72.5% train - 88.8% train - 92.2%
test - 76.5% test - 82.6% test - 80.3%
35.
36. Neural nets intuition
• Keep a test set to verify the accuracy of your training algorithm
• Keep an eye on the test set accuracy during training to decide when to stop
39. Neural nets intuition
• How many neurons?
• Depends on the complexity of the data
• Start small, gradually ramp up
• Check for overfitting
40. Insights
• High dimensional
• Can handle and find correlations between lots of features
• They do probabilistic predictions
• They require a training set and a test set for validation
42. Conclusion
• You can use machine learning using a high level api
• It can make complex decisions on lots of features
• Using high level api’s you can do experiments without knowing all the mathematical details
• When you have your first results and want to improve
• Learn more
• Ask for expert help
43. Resources on machine learning
• Tensorflow high level api quickstart: https://www.tensorflow.org/get_started/tflearn
• Other resources:
• My blog on the text classification with some more in depth code: https://github.com/luminis-ams/
blog-text-classification
• For a theoretical understanding of the backpropagation algorithm: Machine learning course
Coursera - Andrew Ng
• More practical deep learning course: Udacity deep learning course
• Visualization of a neural network (used in the presentation)
• http://playground.tensorflow.org