About the Book

Overview

Purpose of the Book

Welcome to this collaborative textbook. It originated as part of the CS249r: Tiny Machine Learning course that Prof. Vijay Janapa Reddi teaches at Harvard University.

The goal of this book is to provide a resource for educators and learners seeking to understand the principles and practices of machine learning systems. This book is continually updated to incorporate the latest insights and effective teaching strategies with the intent that it remains a valuable resource in this fast-evolving field. So please check back often!

Context and Development

The book reflects a blend of pedagogical expertise and cutting-edge research. Developed collaboratively with contributions from students, researchers, and practitioners, it bridges academic rigor and real-world application.

We’ve designed the book to evolve alongside advancements in the field, fostering a collaborative environment where knowledge can grow and adapt.

What to Expect

This textbook explores the foundational principles, practical workflows, and critical challenges of building and deploying machine learning systems. Starting with foundational concepts, it progresses through engineering principles, examines operational considerations for deploying AI systems, and concludes by reflecting on the societal and technological implications of machine learning.

Learning Goals

Key Learning Outcomes

This book is structured with Bloom’s Taxonomy in mind, which defines six levels of learning, ranging from foundational knowledge to advanced creative thinking:

Figure 1: Bloom’s Taxonomy (2021 edition).
  1. Remembering: Recalling basic facts and concepts.

  2. Understanding: Explaining ideas or processes.

  3. Applying: Using knowledge in new situations.

  4. Analyzing: Breaking down information into components.

  5. Evaluating: Making judgments based on criteria and standards.

  6. Creating: Producing original work or solutions.

Learning Objectives

This book supports readers in:

  1. Understanding Fundamentals: Explain the foundational principles of machine learning, including theoretical underpinnings and practical applications.

  2. Analyzing System Components: Evaluate the critical components of AI systems and their roles within various architectures.

  3. Designing Workflows: Outline workflows for developing machine learning systems, from data collection to deployment.

  4. Optimizing Models: Apply methods to enhance performance, such as hyperparameter tuning and regularization.

  5. Evaluating Ethical Implications: Analyze societal impacts and address potential biases in AI systems.

  6. Exploring Applications: Investigate real-world use cases across diverse domains.

  7. Considering Deployment Challenges: Address security, scalability, and maintainability in real-world systems.

  8. Envisioning Future Trends: Reflect on emerging challenges and technologies in machine learning.

AI Learning Companion

Throughout this resource, you’ll find SocratiQ—an AI learning assistant designed to enhance your learning experience. Inspired by the Socratic method of teaching, SocratiQ combines interactive quizzes, personalized assistance, and real-time feedback to help you reinforce your understanding and create new connections. As part of our experiment with Generative AI technologies, SocratiQ encourages critical thinking and active engagement with the material.

SocratiQ is still a work in progress, and we welcome your feedback to make it better. For more details about how SocratiQ works and how to get the most out of it, visit the AI Learning Companion page.

How to Navigate This Book

Book Structure

The book is organized into four main parts, each building on the previous one:

  1. The Essentials (Chapters 1-4)
    Core principles, components, and architectures that underpin machine learning systems.

  2. Engineering Principles (Chapters 5-13)
    Covers workflows, data engineering, optimization strategies, and operational challenges in system design.

  3. AI Best Practice (Chapters 14-18)
    Focuses on key considerations for deploying AI systems in real-world environments, including security, privacy, robustness, and sustainability.

  4. Closing Perspectives (Chapter 19-20)
    Synthesizes key lessons and explores emerging trends shaping the future of ML systems.

Suggested Reading Paths

  • Beginners: Start with The Essentials to build a strong conceptual base before progressing to other parts.

  • Practitioners: Focus on Engineering Principles and AI in Practice for hands-on, real-world insights.

  • Researchers: Dive into AI in Practice and Closing Perspectives to explore advanced topics and societal implications.

Modular Design

The book is modular, allowing readers to explore chapters independently or sequentially. Each chapter includes supplementary resources:

  • Slides summarizing key concepts.

  • Videos providing in-depth explanations.

  • Exercises reinforcing understanding.

  • Labs offering practical, hands-on experience.

While several of these resources are still a work in progress, we believe it’s better to share valuable insights and tools as they become available rather than wait for everything to be perfect. After all, progress is far more important than perfection, and your feedback will help us improve and refine this resource over time.

Additionally, we try to reuse and build upon the incredible work created by amazing experts in the field, rather than reinventing everything from scratch. This philosophy reflects the fundamental essence of community-driven learning: collaboration, sharing knowledge, and collectively advancing our understanding.

Transparency and Collaboration

This book is a community-driven project, with content generated collaboratively by numerous contributors over time. The content creation process may have involved various editing tools, including generative AI technology. As the main author, editor, and curator, Prof. Vijay Janapa Reddi maintains human oversight to ensure the content is accurate and relevant.

However, no one is perfect, and inaccuracies may still exist. Your feedback is highly valued, and we encourage you to provide corrections or suggestions. This collaborative approach is crucial for maintaining high-quality information and making it globally accessible.

Join the Community

This textbook is more than just a resource—it’s an invitation to collaborate and learn together. Engage in community discussions to share insights, tackle challenges, and learn alongside fellow students, researchers, and practitioners.

Whether you’re a student starting your journey, a practitioner solving real-world challenges, or a researcher exploring advanced concepts, your contributions will enrich this learning community. Introduce yourself, share your goals, and let’s collectively build a deeper understanding of machine learning systems.