lessons learned from testing machine learning software

22
Lessons Learned from Testing Machine Learning Software Christian Ramírez @chrix2 @formiik

Upload: christian-ramirez

Post on 16-Apr-2017

37 views

Category:

Software


4 download

TRANSCRIPT

Page 1: Lessons Learned from Testing Machine Learning Software

Lessons Learned from Testing Machine Learning SoftwareChristian Ramírez

@chrix2 @formiik

Page 2: Lessons Learned from Testing Machine Learning Software

About me• Computer Engineer• M.Sc. (Astronomy)• Ex-googler• Python lover• Actually formiiker (principal researcher at

formiik and formiiklabs)

Page 3: Lessons Learned from Testing Machine Learning Software

About formiik and how we use MLFormiik is a platform designed to improve productivity of on-site staff.– Route optimization– Workload balancing– Ranking– Time series anomaly detection– Image recognition (deep learning)

Page 4: Lessons Learned from Testing Machine Learning Software

Lesson 0

• Corollary number 2 by @dx• “In theory, there is no difference between

theory and practice. But, in practice, there is”

Yogi Bera

Page 5: Lessons Learned from Testing Machine Learning Software

Introduction• In machine learning, computers apply

statistical learning techniques to automatically identify patterns in data.

• A core objective of a learner is to generalize from its experience.

Page 6: Lessons Learned from Testing Machine Learning Software

•WHAT?

Page 7: Lessons Learned from Testing Machine Learning Software

Lesson 1• Forget all you know about testing

Page 8: Lessons Learned from Testing Machine Learning Software

Traditional software programming• In a general way, we do this:• With a specification of a function

» f(x)– We implement the function to meet the

specification» f(x)=y

Page 9: Lessons Learned from Testing Machine Learning Software

Traditional software programming• How we do testing, basically:– Inputs a=[X1,X2,…,Xn]– Expect results b=[Y1,Y2,…,Yn]– We use assertions to validate the specification

– f(Xi)==Yi

Page 10: Lessons Learned from Testing Machine Learning Software

Machine learning software programming• In the most of cases• We give examples– Pairs (Xi,Yi)– Induce f() such that• y≈f(x)for given pairs, and generalizes well for unseen

x

Page 11: Lessons Learned from Testing Machine Learning Software

Machine learning software programming• In other cases• We give examples– Input (Xi)– No Yi are given to the learning algorithm, leaving

it on its own to find structure in its input

Page 12: Lessons Learned from Testing Machine Learning Software

Testing (ML) software• Traditional software is modular– We can decompose it and understand it– Each module has inputs and outputs that can be

defined and isolated

Page 13: Lessons Learned from Testing Machine Learning Software

Testing (ML) software• Machine learning systems appear to be

monolithic– Everything depends on everything else– Changing any one thing changes everything else

Page 14: Lessons Learned from Testing Machine Learning Software

Lesson 2• Learn about machine learning– Kinds of learning– Coding

Page 15: Lessons Learned from Testing Machine Learning Software

Lesson 3• The models will learn what you teach them to

learn.– Test models no requirements– Adversarial examples– Algorithms don't align with reality– Spurious correlations

• Corollary number 4 “human beings are so fools to programming” by @dx

Page 16: Lessons Learned from Testing Machine Learning Software

Lesson 4• No matter what you have read on blogs, you

need a good level of mathematical knowledge

• Remember again corollary number 2

Page 17: Lessons Learned from Testing Machine Learning Software

Lesson 5• Build your own ecosystem– Frameworks– GPU or CPU?

Page 18: Lessons Learned from Testing Machine Learning Software

Lesson 6• Identifies how much data you really need– More data or better models?

Page 19: Lessons Learned from Testing Machine Learning Software

Lesson 7• You need a new toolset– Experimental data scientist

Page 20: Lessons Learned from Testing Machine Learning Software

Lesson 8 • Be a story teller– Have a goal– Manage the expectative, this is not magic

Page 21: Lessons Learned from Testing Machine Learning Software

Summary

Page 22: Lessons Learned from Testing Machine Learning Software

Questions?

Thanks

@[email protected]