Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Meditation Personal Transformation Life Purpose Emotional Intelligence Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
2021-01-11 19:55:58
30-Day Money-Back Guarantee
Development Data Science Machine Learning

Clean Machine Learning Code

Even Bad ML Code Can Function. This course provides practical solutions to prevent disasters in ML software product.
New
Rating: 4.2 out of 54.2 (2 ratings)
19 students
Created by Moussa Taifi, Ph.D.
Last updated 2/2021
English
30-Day Money-Back Guarantee

What you'll learn

  • The studens will learn how to apply practical software engineering principles to prevent failures in their machine learning software projects.
  • Fundamental software engineering concepts applied to ML code to boost maintainability, collaboration, and production-readiness.
  • Principles of ML Software Architecture.
  • Test-Driven Machine Learning Concepts.
  • How to optimize ML code for readability and testability.
  • How to protect ML projects from the tyranny of ML frameworks.

Course content

7 sections • 149 lectures • 5h 4m total length

  • Preview03:57
  • Preview05:52
  • Preview02:31
  • Preview02:30
  • Course book: Clean Machine Learning Code book PDF
    1 question
  • Ideal vs. Real Machine Learning Workflows
    01:50
  • Taking Responsibility for ML Code Rot
    02:03
  • Overfitting to Deadlines
    01:20
  • The Art of Feature Engineering Your Code
    01:46
  • What Is Clean Machine Learning Code?
    06:15
  • Inference vs Training of Source Code
    02:25
  • Active Reinforcement Learning for Source Code
    01:46
  • Transfer Learning and the Origins of CMLC
    03:04
  • Conclusion
    02:21

  • Introduction
    01:01
  • The Objective Function of Names
    02:37
  • Avoid Mislabeled Labels
    02:04
  • Avoid Noisy Labels
    02:42
  • Make Siri Say it
    01:11
  • Make it Greppable
    00:53
  • Avoid Name Embeddings
    00:51
  • Avoid Semantic Maps
    00:32
  • Part-of-speech Tagging
    01:22
  • Naming Consistency
    00:28
  • Technical Names vs. Domain Names
    01:24
  • Use Clustering for Context
    00:47
  • The Scope Length Guidelines
    01:06
  • The Scope Length Guidelines - Variables
    01:17
  • The Scope Length Guidelines - Functions
    00:55
  • The Scope Length Guidelines - Classes
    01:29
  • The Scope Length Guidelines - Modules
    00:49
  • Conclusion
    01:54

  • Saved by Functions?
    01:45
  • Small Is Beautiful
    01:24
  • 3, 4, maybe 5 lines max!
    02:16
  • Hierarchical Functions: Landscape and Squint tests
    02:12
  • Single Objective Function
    02:52
  • Bagging and Function Ensembles
    00:42
  • Single Abstraction Level: From Input Data to Gradient Calculation and Back
    02:08
  • Function Arguments: Stop at Triadic, Run from Polyadic
    01:13
  • Output Arguments
    00:47
  • Binary Args
    02:08
  • Clustering Arguments
    00:30
  • Positional, Keyword, Args, and Kwargs
    01:26
  • Have No Collateral Damage
    00:43
  • Don't Use Output Arguments
    01:23
  • Side-effects in Feature Engineering Pipelines
    03:27
  • Functional Programming 101
    01:57
  • Make Temporal Couplings Explicit
    01:24
  • Grokking Commands vs Queries
    01:47
  • Promote the Happy Path with Exceptions
    00:39
  • Separate The Happy Path From The Outliers
    00:25
  • Don't Reuse Unrelated Exception Types
    00:57
  • Eliminate Duplicates, Doubles, and Homologues
    01:17
  • Single Entry, Single Exit
    01:27
  • A Method To The Madness
    01:31
  • Conclusion: Make Smaller Things
    01:10

  • Wait! What?!
    01:33
  • Comments
    02:52
  • Don't Hide Bad Code Behind Comments
    00:53
  • Let Code Explain Itself
    00:59
  • Useful Comments: Legalese Comments
    00:50
  • Useful Comments: Legitimate PSA Comments
    00:51
  • Useful Comments: Why Did You Do It That Way?
    00:55
  • Useful Comments: Semantic Mapping
    01:00
  • Useful Comments: Red Flags Planted In The Sand
    00:47
  • Useful Comments: Eventual Consistency with TODO Comments
    01:02
  • Useful Comments: Plugging that Amp
    00:47
  • Useless Comments: Enigmas and Charades
    01:28
  • Useless Comments: Split-brain Backups and Fake News
    01:08
  • Useless Comments: Mandated Comments and Executive Comments Policy
    00:36
  • Useless Comments: Journal Comments/Curbing That Inner Monologue
    00:18
  • Useless Comments: Other Famous Useless Comments
    00:45
  • Use First Impressions To Communicate
    02:20
  • Python File Size and Notebook Size
    01:19
  • PEP-8 When You Can
    01:17
  • Y-axis: Openness
    01:18
  • Y-axis: Density
    00:26
  • Y-axis: Distance
    02:31
  • X-axis: Horizontal Alignment
    01:40
  • X-axis: Horizontal Openness and Density
    01:43
  • X-axis: Dedentation and Indentation
    02:06
  • One Last Thing About One-liners
    00:19
  • Conclusion
    00:32

  • Preview02:34
  • Goals of ML Class Design
    03:10
  • S.O.L.I.D Design Principles for ML Classes
    00:23
  • The Single Responsibility Principle 1/3
    03:19
  • The Single Responsibility Principle 2/2
    02:18
  • The Single Responsibility Principle 3/3
    00:55
  • The Open-Closed Principle
    02:25
  • The Great OCP Fiction
    08:02
  • The Liskov Substitution Principle: Maintaining Contracts
    06:41
  • The Interface Substitution Principle: Isolating from Change I
    02:49
  • The Dependency Inversion Principle: Isolating from Change II
    07:09
  • Conclusions
    00:46

  • Preview01:18
  • Preview03:51
  • Third-party packages are NOT an Architecture
    01:31
  • Architecture is about USAGE
    01:52
  • Avoiding Chaos with Architecture
    05:24
  • Frameworks and Harems
    03:16
  • Defining ML Use Cases
    03:09
  • Delivery-independence
    01:49
  • Separating High-level Policy from Low-level Implementation
    01:57
  • The Clean Architecture in One Picture
    01:56
  • Concentric Layers Clean Architecture View and Related Concepts
    03:18
  • Hexagonal Architecture, a.k.a Ports and Adapters
    01:04
  • The Onion Architecture
    00:55
  • Clean Pragmatic Architecture
    01:27
  • Friction and Boundary Conditions
    02:51
  • Taming the Recsys Beast
    03:47
  • The Clean Machine Learning Architecture
    00:36
  • Re-architecting the ML Pipeline
    01:05
  • ML Use Case Analysis
    00:56
  • ML Components View
    00:47
  • Useful Abstractions
    03:50
  • Living with a Main
    01:57
  • Conclusions
    02:39

  • Making Your Life Harder in the Short Term
    01:26
  • 60 Minutes to Save Lives
    02:18
  • Preview05:45
  • Tests Let You Clean Your Code
    00:54
  • Self-testing ML Code
    02:22
  • What is this TDD you are talking about?
    02:12
  • Which ML Code Tests Do You Need? and Unfortunate Realities of ML Code Testing
    03:42
  • Unit Tests: GridSearch for ML Code Tests
    01:35
  • To Call Or Not To Call, That Is The Question
    01:55
  • The Need for Speed
    02:48
  • Integration Tests
    07:00
  • Component Tests
    00:56
  • End-to-End Tests
    01:53
  • Threshold Tests and Ratcheting
    02:48
  • Regression Tests
    01:14
  • Test Doubles: Test Implementation Techniques
    03:23
  • Cost Effective Tests
    04:15
  • Property-based Testing
    04:36
  • Social Distancing, and Isolation.
    04:39
  • The Brave New Async World
    03:52
  • Working Around Remote Services
    01:32
  • Clocks
    00:34
  • It Only Fails During Business Hours
    01:05
  • Test Coverage
    02:17
  • What To Do If You Are Giving Up On Testing
    01:52
  • Testing Expeditions a.k.a. Exploratory Testing
    01:51
  • Synthetic Monitoring
    02:05
  • Feature Toggles
    03:41
  • Dark Launching
    01:43
  • Continuous Delivery
    02:35
  • Conclusions
    02:44

Requirements

  • Basic knowledge of Python
  • Basic knowledge of ML concepts and business goals
  • Basic understanding of the Software lifecycle
  • Basic exposure to business use cases that benefit from ML solutions

Description

And now with the companion book: Leanpub + search("cleanmachinelearningcode")


Machine Learning (ML) pipelines are software pipelines after all.

This course will you apply practical software engineering principles to prevent failures in your machine learning software craftsmanship journey.

  • There is no useful Machine Learning (ML) without extensive software.

  • Building complex software comes with many challenges.

ML software is explicitly full of needless complexity and repetition. Thick opacity, rigidity, and viscosity of design magnify this brew of complexity. With these issues, ML failures are growing in importance at an unprecedented pace.


It does not have to be this way.

As a global data science community, the autonomous systems we build can be costly, dangerous, and even deadly. Adding to the problem is the inexperienced workforce of this 5 to 10 years old craft. As of 2019-2020, 40% of data scientists in the USA have less than 5 years of experience.


The software industry is experiencing a boom in ML development and usage. This is not unlike previous software engineering booms in the early 2000s. The current boom manifests itself with a menagerie of constructs, abstractions, frameworks, and workflows. This multitude of integration challenges remind us of old and classical software problems. Some of the issues present in the ML software engineering practice are new. But the majority of the software engineering concerns have a historical smell. Going back to the early days of software engineering can help with today’s ML problems.


For us, ML engineers, it is time to stop reinventing the wheel, making the same old mistakes, and start using the decades of successful software engineering practices by replacing “Software” with “Machine Learning Software”.

This course can help with that.


Who this course is for:

  • Data scientists that are asked to deploy and maintain their code in production
  • Machine learning engineers that are asked to deploy and maintain their code in production
  • Data science enthusiasts
  • Machine learning enthusiasts

Instructor

Moussa Taifi, Ph.D.
Machine Learning Architect
Moussa Taifi, Ph.D.
  • 4.2 Instructor Rating
  • 2 Reviews
  • 19 Students
  • 1 Course

Machine learning architect focused on data science productivity, reliability, performance, and cost.

Working on designing and implementing large scale AI products through data collection, analysis, and warehousing.

Passionate about building scalable machine learning pipeline architectures with high business impact.

Over the years, he led the architectural design, implementation, and maintenance of multiple Data Science Platforms used by hundreds of data scientists, business analysts, and product owners.

He led the design and implementation of a large-scale web advertisement click prediction system, that handles 100s of billions of daily impressions with millions of dollars of daily spend.

He also guided the design of a set of classical and deep machine learning systems, related to business-critical ad-tech products such as: ad-creative image classification, website content categorization, and embeddings-based audience recommender systems.

He was involved in the design, architecture, and technical implementation of hundreds of data reporting pipelines and webapps/APIs, to deliver critical financial and product metrics through dashboards for hundreds of stakeholders.

He enjoys teaching and he has mentored, trained and supported 100+ data scientists and business analysts on software engineering best practices, based on the Clean Code design methodology.

He holds a PhD in Computer and Information Science from Temple University, USA. He graduated with a Master in Information Technology from Lappeenranta University of Technology, Finland, with a major in communication engineering and a minor in marketing and information processing.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.