Slide 1

Slide 1 text

End-to-End Machine Learning (ML) for Developers

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

Get to Know Your Speaker…

Slide 4

Slide 4 text

Housekeeping Items #devfestph19 @nerdCyberArtist @gdgcloudph You Can Jot Them Down

Slide 5

Slide 5 text

What to Expect from This Prezzy? High-level overview of Machine Learning Why you would need ML as a developer ML resources, best practices, tools, platforms, and frameworks for developers. Demo session on using ML for developers (time-constrained) [OPTIONAL] Link to the slides for the prezzy.

Slide 6

Slide 6 text

Machine Learning why, what, how

Slide 7

Slide 7 text

Why Machine Learning Input What is the biggest dessert in the world? ML Software Learns from the input; in this case, infers ‘desert’ instead of ‘dessert’. Output “Antarctic Desert” To deal with the complexity and uncertainty of the users of our products… For example;

Slide 8

Slide 8 text

Before Defining ML, Let Me State What it is NOT…

Slide 9

Slide 9 text

No be “Juju” Cannot magically solve all problems you throw at it. No be “Terminator” No be “job snatcher” Does not have what it takes to take over the world and hold it captive. Can only take on repetitive tasks that are in jobs rather than full jobs themselves.

Slide 10

Slide 10 text

What ML IS…

Slide 11

Slide 11 text

Let’s first think about how we learn, as humans…

Slide 12

Slide 12 text

ML is simply computers using data to answer questions. Machine Learning Model (Or Algorithm). Machine Learning Generated Answers.

Slide 13

Slide 13 text

How ML “Learns”?

Slide 14

Slide 14 text

Input Output “Bole” Recognizes and learns the patterns that are common across and associate the inputs. A lot of Bole images taken at varying angles and in varying styles. Learns the feature common across each and every image, and how they associate with each other. Can recognize entirely new Bole images it hasn’t learnt about before and tag them “Bole”. •Text •Number •Audio •Videos •Images

Slide 15

Slide 15 text

Machine Learning is All Around You… Virtual Assistants; Siri, Cortana, Google Assistant, Alexa… Recommendation Systems; YouTube, Netflix, Twitter, Facebook… Search engine results; Google search, Bing…

Slide 16

Slide 16 text

ML has been around for a while. It became better, because… Big Data Better Computing Infrastructure Improved Learning Algorithms Accessible Tools & Frameworks

Slide 17

Slide 17 text

Why ML for Developers?

Slide 18

Slide 18 text

Contrast in Workflows Between Traditional Programming and Machine Learning…

Slide 19

Slide 19 text

Requirements Engineering Design Implementation (Write rules) Verification And Validation Production/ Maintenance Traditional Software Engineering Typical Workflow

Slide 20

Slide 20 text

Requirements Engineering Design (Get Data and preprocess it) Implementation (Learning Algorithm; ML Model) Evaluation And Fine-tuning Outputs Production (Continuous monitoring & Maintenance) Machine Learning Engineering Typical Workflow Machine Learning

Slide 21

Slide 21 text

Requirements for a Typical Machine Learning Engr./Dev Mathematics Statistics Coding Skills Python, R, Julia Software Engineering Principles, tools, and best practices .

Slide 22

Slide 22 text

Scenarios You Would Probably Need ML, as A Developer…

Slide 23

Slide 23 text

Scenario 1 Boss asks “Hey, so we have a bunch of data on customer transactions. Can you help us build a model that can predict which of our customers will buy our products? Easy, right?” One-off Model

Slide 24

Slide 24 text

Scenario 2 PM: “Hey, so we are building this software and I think this facial recognition feature would be too complex for us to program by rules. You could embed some ML into the software so we won’t have to kill ourselves, yes?” Embedded Model

Slide 25

Slide 25 text

Scenario 3 Boss: “Hey, so we noticed that this Machine Learning is the next software revolution. We kind off want you to become a full-time ML engineer for the company’s new AI division. Too much to ask?” Full-time Beast Model

Slide 26

Slide 26 text

Most Common ML Tools and Frameworks for Developers…

Slide 27

Slide 27 text

Frameworks/Libraries 1. TensorFlow ▪ TensorFlow APIs ▪ TensorFlow.js ▪ TensorFlow Lite 3. Scikit-Learn 2. Keras 1. Google ML Tool Kit 2. iOS CoreML 4. Weka 4. Apache Spark ML Lib 5. MLflow 5. AWS ML APIs Tools 3. Google Cloud ML APIs

Slide 28

Slide 28 text

Cloud/Serverless ML Platforms 1. Microsoft Azure ML Studio 2. Google Cloud AutoML 3. Google BigQueryML 5. Amazon AI/SageMaker 4. Google Cloud AI Platform

Slide 29

Slide 29 text

An Important ML Methodology for Developers...

Slide 30

Slide 30 text

Transfer Learning: an algorithm transferring the knowledge of a particular problem to another algorithm. Basically...

Slide 31

Slide 31 text

Transfer Learning The intuition behind it How it works... When to Use it, as a developer...

Slide 32

Slide 32 text

Constraints for Using ML for Developers… You need *lots* of data and compute infrastructure to get it to work quite well. It is quite difficult to operationalize ML software and get them to production, they break drastically if not monitored. It is a rapidly evolving field, new tools and techniques are emerging almost every time. It’s hard to keep up. Need to explain results and data privacy of the software becomes extremely important for the developers.

Slide 33

Slide 33 text

Important ML Notes to Consider… 1. Machine Learning is way more than just the tools. 2. ML models must be built responsibly. 3. ML solutions need to be iteratively monitored and updated. 4. MLOps (Machine Learning operationalization) is possible. 5. Explainability and data privacy are extremely important ML practices. Credits: Jade Abbott (@alienelf)

Slide 34

Slide 34 text

Another Important Point to Note as a Developer... To get it to work for your product users, it still needs to integrate with other existing solutions like your; ● Mobile applications, ● Website or web applications, ● IoT or Edge devices. Machine Learning isn’t always stand-alone solution for your users!!!

Slide 35

Slide 35 text

Uhm.. Steve, So Should I learn ML as a Developer? As a developer, if there is no absolute requirement for you to learn it, then you should not. Treat ML as a set of tools. Like any other tool, be aware of the problems it can solve and those it cannot.

Slide 36

Slide 36 text

To Conclude…

Slide 37

Slide 37 text

ML is about helping algorithms understand our problems, and then take the most efficient steps to solve the problems—this is the new age of software where systems are smart and adaptable to the complex world around us.

Slide 38

Slide 38 text

Where to Learn More? Google Machine Learning Crash Course Google Cloud AI Hub Microsoft Azure Machine Learning TensorFlow Learning Hub AWS Machine Learning University Fast.ai Need hands-on practice? Use Developers’ Codelabs ML Terminologies & and Glossaries.

Slide 39

Slide 39 text

THANKS FOR ATTENDING! @nerdCyberArtist https://www.linkedin.com/in/ stephenoladele/ [email protected] Stephen F. Oladele Click Me to View Slides