Skip to content

Commit

Permalink
Merge pull request #561 from harvard-edge/558-cleanup-chapter-overviews
Browse files Browse the repository at this point in the history
Updated purpose for all chapters - first draft
  • Loading branch information
profvjreddi authored Dec 24, 2024
2 parents 643b3e7 + 7998b68 commit 07d6c08
Show file tree
Hide file tree
Showing 18 changed files with 97 additions and 42 deletions.
10 changes: 8 additions & 2 deletions contents/core/ai_for_good/ai_for_good.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ Resources: [Slides](#sec-ai-for-good-resource), [Videos](#sec-ai-for-good-resour

![_DALL·E 3 Prompt: Illustration of planet Earth wrapped in shimmering neural networks, with diverse humans and AI robots working together on various projects like planting trees, cleaning the oceans, and developing sustainable energy solutions. The positive and hopeful atmosphere represents a united effort to create a better future._](images/png/cover_ai_good.png)

By aligning AI progress with human values, goals, and ethics, the ultimate goal of ML systems (at any scale) is to be a technology that reflects human principles and aspirations. Initiatives under "AI for Good" promote the development of AI to tackle the [UN Sustainable Development Goals](https://www.undp.org/sustainable-development-goals) (SDGs) using embedded AI technologies, expanding access to AI education, amongst other things. While it is now clear that AI will be an instrumental part of progress towards the SDGs, its adoption and impact are limited by the immense power consumption, strong connectivity requirements, and high costs of cloud-based deployments. TinyML can circumvent many of these issues by allowing ML models to run on low-cost and low-power microcontrollers.
## Purpose {.unnumbered}

> The "AI for Good" movement is critical in cultivating a future where an AI-empowered society is more just, sustainable, and prosperous for all humanity.
_How can we harness machine learning systems to address critical societal challenges, and what principles guide the development of solutions that create lasting positive impact?_

The application of AI systems to societal challenges represents the culmination of technical capability and social responsibility. Impact-driven development reveals essential patterns for translating technological potential into meaningful change, highlighting critical relationships between system design and societal outcomes. The implementation of solutions for social good showcases pathways for addressing complex challenges while maintaining technical rigor and operational effectiveness. Understanding these impact dynamics provides insights into creating transformative systems, establishing core principles for designing AI solutions that advance human welfare, and promote positive societal transformation.

::: {.callout-tip}

Expand All @@ -32,6 +34,10 @@ By aligning AI progress with human values, goals, and ethics, the ultimate goal

## Overview

By aligning AI progress with human values, goals, and ethics, the ultimate goal of ML systems (at any scale) is to be a technology that reflects human principles and aspirations. Initiatives under "AI for Good" promote the development of AI to tackle the [UN Sustainable Development Goals](https://www.undp.org/sustainable-development-goals) (SDGs) using embedded AI technologies, expanding access to AI education, amongst other things. While it is now clear that AI will be an instrumental part of progress towards the SDGs, its adoption and impact are limited by the immense power consumption, strong connectivity requirements, and high costs of cloud-based deployments. TinyML can circumvent many of these issues by allowing ML models to run on low-cost and low-power microcontrollers.

> The "AI for Good" movement is critical in cultivating a future where an AI-empowered society is more just, sustainable, and prosperous for all humanity.
To give ourselves a framework around which to think about AI for social good, we will be following the UN Sustainable Development Goals (SDGs). The UN SDGs are a collection of 17 global goals, shown in @fig-sdg, adopted by the United Nations in 2015 as part of the 2030 Agenda for Sustainable Development. The SDGs address global challenges related to poverty, inequality, climate change, environmental degradation, prosperity, and peace and justice.

![United Nations Sustainable Development Goals (SDG). Source: [United Nations](https://sdgs.un.org/goals).](https://www.un.org/sustainabledevelopment/wp-content/uploads/2015/12/english_SDG_17goals_poster_all_languages_with_UN_emblem_1.png){#fig-sdg}
Expand Down
6 changes: 4 additions & 2 deletions contents/core/benchmarking/benchmarking.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,11 @@ Resources: [Slides](#sec-benchmarking-ai-resource), [Videos](#sec-benchmarking-a

![_DALL·E 3 Prompt: Photo of a podium set against a tech-themed backdrop. On each tier of the podium, there are AI chips with intricate designs. The top chip has a gold medal hanging from it, the second one has a silver medal, and the third has a bronze medal. Banners with 'AI Olympics' are displayed prominently in the background._](images/png/cover_ai_benchmarking.png)

Benchmarking is critical to developing and deploying machine learning systems, especially TinyML applications. Benchmarks allow developers to measure and compare the performance of different model architectures, training procedures, and deployment strategies. This provides key insights into which approaches work best for the problem at hand and the constraints of the deployment environment.
## Purpose {.unnumbered}

This chapter will provide an overview of popular ML benchmarks, best practices for benchmarking, and how to use benchmarks to improve model development and system performance. It provides developers with the right tools and knowledge to effectively benchmark and optimize their systems, especially for TinyML systems.
_How can quantitative evaluation reshape the development of machine learning systems, and what metrics reveal true system capabilities?_

The measurement and analysis of AI system performance represent a critical element in bridging theoretical capabilities with practical outcomes. Systematic evaluation approaches reveal fundamental relationships between model behavior, resource utilization, and operational reliability. These measurements draw out the essential trade-offs across accuracy, efficiency, and scalability, providing insights that guide architectural decisions throughout the development lifecycle. These evaluation frameworks establish core principles for assessing and validating system design choices and enable the creation of robust solutions that meet increasingly complex performance requirements across diverse deployment scenarios.

::: {.callout-tip}

Expand Down
8 changes: 7 additions & 1 deletion contents/core/data_engineering/data_engineering.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,13 @@ Resources: [Slides](#sec-data-engineering-resource), [Videos](#sec-data-engineer

![_DALL·E 3 Prompt: Create a rectangular illustration visualizing the concept of data engineering. Include elements such as raw data sources, data processing pipelines, storage systems, and refined datasets. Show how raw data is transformed through cleaning, processing, and storage to become valuable information that can be analyzed and used for decision-making._](images/png/cover_data_engineering.png)

Data is the lifeblood of AI systems. Without good data, even the most advanced machine-learning algorithms will not succeed. However, TinyML models operate on devices with limited processing power and memory. This section explores the intricacies of building high-quality datasets to fuel our AI models. Data engineering involves collecting, storing, processing, and managing data to train machine learning models.
Let me refine this to strengthen the academic tone and remove direct reader references while maintaining the focus on data engineering principles:

## Purpose {.unnumbered}

_Why does data infrastructure form the foundation of AI system success, and how does its design influence system capabilities?_

At the heart of every AI system lies its data infrastructure, determining both its potential and limitations. While architectural patterns and workflows define the system's structure, data quality and accessibility ultimately govern its effectiveness. The engineering of data systems requires careful consideration of acquisition, processing, and delivery mechanisms, establishing the bedrock upon which sophisticated AI capabilities can be built. This perspective reveals how data engineering decisions ripple through every aspect of system performance and reliability, shaping the possibilities for model development, training efficiency, and deployment success.

::: {.callout-tip}

Expand Down
23 changes: 6 additions & 17 deletions contents/core/dl_architectures/dl_architectures.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ Resources: [Slides](#sec-deep-learning-primer-resource), [Videos](#sec-deep-lear

![_DALL·E 3 Prompt: A visually striking rectangular image illustrating the interplay between deep learning algorithms like CNNs, RNNs, and Attention Networks, interconnected with machine learning systems. The composition features neural network diagrams blending seamlessly with representations of computational systems such as processors, graphs, and data streams. Bright neon tones contrast against a dark futuristic background, symbolizing cutting-edge technology and intricate system complexity._](images/png/cover_dl_arch.png)

## Purpose {.unnumbered}

_What recurring patterns emerge across modern deep learning architectures, and how do these patterns enable systematic approaches to AI system design?_

Deep learning architectures represent a convergence of computational patterns that form the building blocks of modern AI systems. Understanding these foundational patterns—from convolutional structures to attention mechanisms—reveals how complex models arise from simple, repeatable components. The examination of these architectural elements provides insights into the systematic construction of flexible, efficient AI systems, establishing core principles that influence every aspect of system design and deployment. These structural insights illuminate the path toward creating scalable, adaptable solutions across diverse application domains.

::: {.callout-tip}

## Learning Objectives
Expand Down Expand Up @@ -128,23 +134,6 @@ The implementation of MLPs presents several key challenges and opportunities tha

These challenges and opportunities drive the development of specialized neural processing engines fo machine learning systems. While memory bandwidth limitations push designs toward sophisticated memory hierarchies (needing to handle >50,000 memory operations efficiently), the regular patterns and parallel opportunities enable efficient implementations through specialized processing units. The patterns established by MLPs form a baseline that more specialized neural architectures must consider in their implementations.

:::{.callout-caution #exr-mlp collapse="false"}

##### Multilayer Perceptrons (MLPs)

We've just scratched the surface of neural networks. Now, you'll get to try and apply these concepts in practical examples. In the provided Colab notebooks, you'll explore:

**Predicting house prices:** Learn how neural networks can analyze housing data to estimate property values.
[![](https://colab.research.google.com/assets/colab-badge.png)](https://colab.research.google.com/github/Mjrovai/UNIFEI-IESTI01-TinyML-2022.1/blob/main/00_Curse_Folder/1_Fundamentals/Class_07/TF_Boston_Housing_Regression.ipynb)

**Image Classification:** Discover how to build a network to understand the famous MNIST handwritten digit dataset.
[![](https://colab.research.google.com/assets/colab-badge.png)](https://colab.research.google.com/github/Mjrovai/UNIFEI-IESTI01-TinyML-2022.1/blob/main/00_Curse_Folder/1_Fundamentals/Class_09/TF_MNIST_Classification_v2.ipynb)

**Real-world medical diagnosis:** Use deep learning to tackle the important task of breast cancer classification.
[![](https://colab.research.google.com/assets/colab-badge.png)](https://colab.research.google.com/github/Mjrovai/UNIFEI-IESTI01-TinyML-2022.1/blob/main/00_Curse_Folder/1_Fundamentals/Class_13/docs/WDBC_Project/Breast_Cancer_Classification.ipynb)

:::

### Convolutional Neural Networks: Spatial Pattern Processing

Convolutional Neural Networks (CNNs) represent a specialized neural architecture designed to efficiently process data with spatial relationships, such as images. While MLPs treat each input independently, CNNs exploit local patterns and spatial hierarchies, establishing computational patterns that have revolutionized computer vision and spatial data processing.
Expand Down
6 changes: 5 additions & 1 deletion contents/core/dl_primer/dl_primer.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@ Resources: [Slides](#sec-deep-learning-primer-resource), [Videos](#sec-deep-lear

![_DALL·E 3 Prompt: A rectangular illustration divided into two halves on a clean white background. The left side features a detailed and colorful depiction of a biological neural network, showing interconnected neurons with glowing synapses and dendrites. The right side displays a sleek and modern artificial neural network, represented by a grid of interconnected nodes and edges resembling a digital circuit. The transition between the two sides is distinct but harmonious, with each half clearly illustrating its respective theme: biological on the left and artificial on the right._](images/png/cover_nn_primer.png)

This chapter bridges fundamental neural network concepts with real-world system implementations by exploring how different architectural patterns process information and influence system design. Instead of concentrating on algorithms or model accuracy—typical topics in deep learning algorithms courses or books—this chapter focuses on how architectural choices shape distinct computational patterns that drive system-level decisions, such as memory hierarchy, processing units, and hardware acceleration. By understanding these relationships, readers will gain the insight needed to make informed decisions about model selection, system optimization, and hardware/software co-design in the chapters that follow.
## Purpose {.unnumbered}

_What inspiration from nature drives the development of machine learning systems, and how do biological neural processes inform their fundamental design?_

The neural systems of nature offer profound insights into information processing and adaptation, inspiring the core principles of modern machine learning. Translating biological mechanisms into computational frameworks illuminates fundamental patterns that shape artificial neural networks. These patterns reveal essential relationships between biological principles and their digital counterparts, establishing building blocks for understanding more complex architectures. Analyzing these mappings from natural to artificial provides critical insights into system design, laying the foundation for exploring advanced neural architectures and their practical implementations.

::: {.callout-tip}

Expand Down
6 changes: 5 additions & 1 deletion contents/core/efficient_ai/efficient_ai.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,11 @@ Resources: [Slides](#sec-efficient-ai-resource), [Videos](#sec-efficient-ai-reso

![_DALL·E 3 Prompt: A conceptual illustration depicting efficiency in artificial intelligence using a shipyard analogy. The scene shows a bustling shipyard where containers represent bits or bytes of data. These containers are being moved around efficiently by cranes and vehicles, symbolizing the streamlined and rapid information processing in AI systems. The shipyard is meticulously organized, illustrating the concept of optimal performance within the constraints of limited resources. In the background, ships are docked, representing different platforms and scenarios where AI is applied. The atmosphere should convey advanced technology with an underlying theme of sustainability and wide applicability._](images/png/cover_efficient_ai.png)

Efficiency in artificial intelligence is not simply a luxury but a necessity. In this chapter, we dive into the key concepts underpinning AI systems' efficiency. The computational demands on neural networks can be daunting, even for minimal systems. For AI to be seamlessly integrated into everyday devices and essential systems, it must perform optimally within the constraints of limited resources while maintaining its efficacy. The pursuit of efficiency guarantees that AI models are streamlined, rapid, and sustainable, thereby widening their applicability across various platforms and scenarios.
## Purpose {.unnumbered}

_What fundamental resource constraints challenge machine learning systems, and how do they shape architectural decisions?_

The interplay between computational demands and system resources drives fundamental design choices in machine learning systems. Each efficiency decision---from arithmetic precision to memory access patterns---cascades through multiple layers of the system stack, revealing essential relationships between resource utilization and model capability. These relationships guide architectural choices that balance system performance against resource constraints, establishing core principles for designing AI solutions that achieve maximum impact with minimum resources.

::: {.callout-tip}

Expand Down
8 changes: 6 additions & 2 deletions contents/core/frameworks/frameworks.qmd
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,13 @@ Resources: [Slides](#sec-ai-frameworks-resource), [Videos](#sec-ai-frameworks-re

![_DALL·E 3 Prompt: Illustration in a rectangular format, designed for a professional textbook, where the content spans the entire width. The vibrant chart represents training and inference frameworks for ML. Icons for TensorFlow, Keras, PyTorch, ONNX, and TensorRT are spread out, filling the entire horizontal space, and aligned vertically. Each icon is accompanied by brief annotations detailing their features. The lively colors like blues, greens, and oranges highlight the icons and sections against a soft gradient background. The distinction between training and inference frameworks is accentuated through color-coded sections, with clean lines and modern typography maintaining clarity and focus._](images/png/cover_ml_frameworks.png)

This chapter explores the landscape of AI frameworks that serve as the foundation for developing machine learning systems. AI frameworks provide the tools, libraries, and environments to design, train, and deploy machine learning models. We explore the evolutionary trajectory of these frameworks, dissect the workings of TensorFlow, and provide insights into the core components and advanced features that define these frameworks.
Let me refine this to maintain a textbook tone, remove the "By" construction, and strengthen the systems perspective:

Furthermore, we investigate the specialization of frameworks tailored to specific needs, the emergence of frameworks specifically designed for embedded AI, and the criteria for selecting the most suitable framework for your project. This exploration will be rounded off by a glimpse into the future trends expected to shape the landscape of ML frameworks in the coming years.
## Purpose {.unnumbered}

_How do AI frameworks bridge the gap between theoretical design and practical implementation, and what role do they play in enabling scalable machine learning systems?_

AI frameworks represent critical middleware that transform abstract model specifications into executable implementations. The evolution of these frameworks reveals fundamental patterns for translating high-level designs into efficient computational workflows. Their architecture illuminates essential trade-offs between abstraction, performance, and portability, providing systematic approaches to managing complexity in machine learning systems. Understanding framework capabilities and constraints offers crucial insights into the engineering decisions that shape system scalability, enabling the development of robust, deployable solutions across diverse computing environments.

::: {.callout-tip}

Expand Down
Loading

0 comments on commit 07d6c08

Please sign in to comment.