Atnaujinkite slapukų nuostatas

AI at the Edge: Solving Real-World Problems with Embedded Machine Learning [Minkštas viršelis]

4.26/5 (38 ratings by Goodreads)
  • Formatas: Paperback / softback, 512 pages, aukštis x plotis x storis: 233x178x26 mm, weight: 812 g
  • Išleidimo metai: 24-Jan-2023
  • Leidėjas: O'Reilly Media
  • ISBN-10: 1098120205
  • ISBN-13: 9781098120207
  • Formatas: Paperback / softback, 512 pages, aukštis x plotis x storis: 233x178x26 mm, weight: 812 g
  • Išleidimo metai: 24-Jan-2023
  • Leidėjas: O'Reilly Media
  • ISBN-10: 1098120205
  • ISBN-13: 9781098120207

Edge artificial intelligence is transforming the way computers interact with the real world, allowing internet of things (IoT) devices to make decisions using the 99% of sensor data that was previously discarded due to cost, bandwidth, or power limitations. With techniques like embedded machine learning, developers can capture human intuition and deploy it to any target--from ultra-low power microcontrollers to flexible embedded Linux devices--for applications that reduce latency, protect privacy, and work without a network connection, greatly expanding the capabilities of the IoT.

This practical guide gives engineering professionals and product managers an end-to-end framework for solving real-world industrial, commercial, and scientific problems with edge AI. You'll explore every stage of the process, from data collection to model optimization to tuning and testing, as you learn how to design and support edge AI and embedded ML products. Edge AI is destined to become a standard tool for systems engineers. This high-level roadmap will help you get started.

  • Develop your expertise in artificial intelligence and machine learning on edge devices
  • Understand which projects are best solved with edge AI
  • Explore typical design patterns used with edge AI apps
  • Use an iterative workflow to develop an edge AI application
  • Optimize models for deployment to embedded devices
  • Improve model performance based on feedback from real-world use

Foreword xv
Preface xvii
1 A Brief Introduction to Edge Al
1(24)
Defining Key Terms
1(12)
Embedded
1(2)
The Edge (and the Internet of Things)
3(3)
Artificial Intelligence
6(2)
Machine Learning
8(2)
Edge AI
10(2)
Embedded Machine Learning and Tiny Machine Learning
12(1)
Digital Signal Processing
12(1)
Why Do We Need Edge AI?
13(10)
To Understand the Benefits of Edge AI, Just BLERP
14(4)
Edge AI for Good
18(1)
Key Differences Between Edge AI and Regular AI
19(4)
Summary
23(2)
2 Edge AI in the Real World
25(30)
Common Use Cases for Edge AI
25(7)
Greenfield and Brownfield Projects
26(1)
Real-World Products
27(5)
Types of Applications
32(9)
Keeping Track of Objects
32(2)
Understanding and Controlling Systems
34(2)
Understanding People and Living Things
36(3)
Transforming Signals
39(2)
Building Applications Responsibly
41(12)
Responsible Design and AI Ethics
43(3)
Black Boxes and Bias
46(3)
Technology That Harms, Not Helps
49(4)
Summary
53(2)
3 The Hardware of Edge AI
55(30)
Sensors, Signals, and Sources of Data
55(13)
Types of Sensors and Signals
58(1)
Acoustic and Vibration
59(1)
Visual and Scene
60(2)
Motion and Position
62(1)
Force and Tactile
63(1)
Optical, Electromagnetic, and Radiation
64(1)
Environmental, Biological, and Chemical
65(1)
Other Signals
66(2)
Processors for Edge AI
68(16)
Edge AI Hardware Architecture
68(2)
Microcontrollers and Digital Signal Processors
70(5)
System-on-Chip
75(2)
Deep Learning Accelerators
77(1)
FPGAs and ASICs
78(3)
Edge Servers
81(1)
Multi-Device Architectures
82(2)
Devices and Workloads
84(1)
Summary
84(1)
4 Algorithms for Edge AI
85(38)
Feature Engineering
85(10)
Working with Data Streams
86(2)
Digital Signal Processing Algorithms
88(5)
Combining Features and Sensors
93(2)
Artificial Intelligence Algorithms
95(26)
Algorithm Types by Functionality
96(5)
Algorithm Types by Implementation
101(15)
Optimization for Edge Devices
116(3)
On-Device Training
119(2)
Summary
121(2)
5 Tools and Expertise
123(46)
Building a Team for AI at the Edge
123(13)
Domain Expertise
124(2)
Diversity
126(2)
Stakeholders
128(1)
Roles and Responsibilities
129(3)
Hiring for Edge AI
132(2)
Learning Edge AI Skills
134(2)
Tools of the Trade
136(31)
Software Engineering
137(4)
Working with Data
141(2)
Algorithm Development
143(10)
Running Algorithms On-Device
153(4)
Embedded Software Engineering and Electronics
157(5)
End-to-End Platforms for Edge AI
162(5)
Summary
167(2)
6 Understanding and Framing Problems
169(32)
The Edge AI Workflow
169(3)
Responsible AI in the Edge AI Workflow
171(1)
Do I Need Edge AI?
172(14)
Describing a Problem
172(1)
Do I Need to Deploy to the Edge?
173(5)
Do I Need Machine Learning?
178(7)
Practical Exercise
185(1)
Determining Feasibility
186(13)
Moral Feasibility
187(2)
Business Feasibility
189(2)
Dataset Feasibility
191(1)
Technological Feasibility
192(4)
Making a Final Decision
196(1)
Planning an Edge AI Project
197(2)
Summary
199(2)
7 How to Build a Dataset
201(66)
What Does a Dataset Look Like?
201(2)
The Ideal Dataset
203(2)
Datasets and Domain Expertise
205(1)
Data, Ethics, and Responsible AI
206(4)
Minimizing Unknowns
208(1)
Ensuring Domain Expertise
209(1)
Data-Centric Machine Learning
210(1)
Estimating Data Requirements
211(4)
A Practical Workflow for Estimating Data Requirements
213(2)
Getting Your Hands on Data
215(5)
The Unique Challenges of Capturing Data at the Edge
217(3)
Storing and Retrieving Data
220(5)
Getting Data into Stores
222(1)
Collecting Metadata
223(2)
Ensuring Data Quality
225(10)
Ensuring Representative Datasets
225(2)
Reviewing Data by Sampling
227(2)
Label Noise
229(2)
Common Data Errors
231(2)
Drift and Shift
233(1)
The Uneven Distribution of Errors
234(1)
Preparing Data
235(30)
Labeling
235(11)
Formatting
246(2)
Data Cleaning
248(7)
Feature Engineering
255(1)
Splitting Your Data
256(5)
Data Augmentation
261(2)
Data Pipelines
263(2)
Building a Dataset over Time
265(1)
Summary
266(1)
8 Designing Edge AI Applications
267(30)
Product and Experience Design
268(10)
Design Principles
270(1)
Scoping a Solution
271(3)
Setting Design Goals
274(4)
Architectural Design
278(14)
Hardware, Software, and Services
278(1)
Basic Application Architectures
279(7)
Complex Application Architectures and Design Patterns
286(5)
Working with Design Patterns
291(1)
Accounting for Choices in Design
292(4)
Design Deliverables
295(1)
Summary
296(1)
9 Developing Edge AI Applications
297(20)
An Iterative Workflow for Edge AI Development
297(18)
Exploration
298(2)
Goal Setting
300(2)
Bootstrapping
302(4)
Test and Iterate
306(7)
Deployment
313(2)
Support
315(1)
Summary
315(2)
10 Evaluating, Deploying, and Supporting Edge AI Applications
317(40)
Evaluating Edge AI Systems
317(21)
Ways to Evaluate a System
319(3)
Useful Metrics
322(12)
Techniques for Evaluation
334(3)
Evaluation and Responsible AI
337(1)
Deploying Edge AI Applications
338(5)
Predeployment Tasks
339(2)
Mid-Deployment Tasks
341(1)
Postdeployment Tasks
342(1)
Supporting Edge AI Applications
343(13)
Postdeployment Monitoring
343(7)
Improving a Live Application
350(3)
Ethics and Long-Term Support
353(3)
What Comes Next
356(1)
11 Use Case: Wildlife Monitoring
357(50)
Problem Exploration
358(1)
Solution Exploration
359(1)
Goal Setting
359(1)
Solution Design
360(7)
What Solutions Already Exist?
360(1)
Solution Design Approaches
361(2)
Design Considerations
363(1)
Environmental Impact
364(2)
Bootstrapping
366(1)
Define Your Machine Learning Classes
367(1)
Dataset Gathering
367(12)
Edge Impulse
368(1)
Choose Your Hardware and Sensors
369(1)
Data Collection
370(2)
Inaturalist
372(3)
Dataset Limitations
375(1)
Dataset Licensing and Legal Obligations
376(1)
Cleaning Your Dataset
376(1)
Uploading Data to Edge Impulse
377(2)
DSP and Machine Learning Workflow
379(13)
Digital Signal Processing Block
380(1)
Machine Learning Block
381(11)
Testing the Model
392(3)
Live Classification
392(1)
Model Testing
393(2)
Test Your Model Locally
395(1)
Deployment
395(6)
Create Library
396(1)
Mobile Phone and Computer
397(3)
Prebuilt Binary Flashing
400(1)
Impulse Runner
401(1)
GitHub Source Code
401(1)
Iterate and Feedback Loops
401(2)
AI for Good
403(1)
Related Works
404(3)
Datasets
404(1)
Research
404(3)
12 Use Case: Food Quality Assurance
407(34)
Problem Exploration
407(1)
Solution Exploration
408(1)
Goal Setting
409(1)
Solution Design
409(6)
What Solutions Already Exist?
410(1)
Solution Design Approaches
410(2)
Design Considerations
412(1)
Environmental and Social Impact
413(1)
Bootstrapping
414(1)
Define Your Machine Learning Classes
414(1)
Dataset Gathering
415(8)
Edge Impulse
415(1)
Choose Your Hardware and Sensors
416(1)
Data Collection
417(1)
Data Ingestion Firmware
417(1)
Uploading Data to Edge Impulse
418(2)
Cleaning Your Dataset
420(2)
Dataset Licensing and Legal Obligations
422(1)
DSP and Machine Learning Workflow
423(6)
Digital Signal Processing Block
424(2)
Machine Learning Block
426(3)
Testing the Model
429(3)
Live Classification
430(1)
Model Testing
431(1)
Deployment
432(5)
Prebuilt Binary Flashing
433(4)
GitHub Source Code
437(1)
Iterate and Feedback Loops
437(2)
Related Works
439(2)
Research
439(1)
News and Other Articles
440(1)
13 Use Case: Consumer Products
441(30)
Problem Exploration
441(1)
Goal Setting
442(1)
Solution Design
442(6)
What Solutions Already Exist?
443(1)
Solution Design Approaches
443(2)
Design Considerations
445(1)
Environmental and Social Impact
446(1)
Bootstrapping
447(1)
Define Your Machine Learning Classes
447(1)
Dataset Gathering
448(6)
Edge Impulse
448(1)
Choose Your Hardware and Sensors
449(1)
Data Collection
450(1)
Data Ingestion Firmware
450(2)
Cleaning Your Dataset
452(1)
Dataset Licensing and Legal Obligations
453(1)
DSP and Machine Learning Workflow
454(9)
Digital Signal Processing Block
455(4)
Machine Learning Blocks
459(4)
Testing the Model
463(3)
Live Classification
463(2)
Model Testing
465(1)
Deployment
466(1)
Prebuilt Binary Flashing
466(1)
GitHub Source Code
466(1)
Iterate and Feedback Loops
467(1)
Related Works
467(4)
Research
468(1)
News and Other Articles
469(2)
Index 471
Daniel Situnayake is Head of Machine Learning at Edge Impulse, where he leads embedded machine learning R&D. He's coauthor of the O'Reilly book TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers, the standard textbook on embedded machine learning, and has delivered guest lectures at Harvard, UC Berkeley, and UNIFEI. Dan previously worked on TensorFlow Lite at Google, and co-founded Tiny Farms, the first US company using automation to produce insect protein at industrial scale. He began his career lecturing in automatic identification and data capture at Birmingham City University. Jenny Plunkett is a Senior Developer Relations Engineer at Edge Impulse, where she is a technical speaker, developer evangelist, and technical content creator. In addition to maintaining the Edge Impulse documentation, she has also created developer-facing resources for Arm Mbed OS and Pelion IoT. She has presented workshops and tech talks for major tech conferences such as the Grace Hopper Celebration, Edge AI Summit, Embedded Vision Summit, and more. Jenny previously worked as a software engineer and IoT consultant for Arm Mbed and Pelion. She graduated with a B.S. in Electrical Engineering from The University of Texas at Austin.