ebook img

Beginning Artificial Intelligence with the Raspberry Pi PDF

379 Pages·2017·11.58 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Beginning Artificial Intelligence with the Raspberry Pi

TECHNOLOGY IN ACTION™ Beginning Artificial Intelligence with the Raspberry Pi — Donald J. Norris Beginning Artificial Intelligence with the Raspberry Pi Donald J. Norris Beginning Artificial Intelligence with the Raspberry Pi Donald J. Norris Barrington, New Hampshire, USA ISBN-13 (pbk): 978-1-4842-2742-8 ISBN-13 (electronic): 978-1-4842-2743-5 DOI 10.1007/978-1-4842-2743-5 Library of Congress Control Number: 2017943462 Copyright © 2017 by Donald J. Norris This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Cover image designed by Freepik Managing Director: Welmoed Spahr Editorial Director: Todd Green Acquisitions Editor: Aaron Black Development Editor: Jim Markham Technical Reviewer: Massimo Nardone Coordinating Editor: Jessica Vakili Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation. For information on translations, please e-mail [email protected], or visit http://www.apress.com/rights-permissions. Apress titles may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Print and eBook Bulk Sales web page at http://www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this book is available to readers on GitHub via the book’s product page, located at www.apress.com/978-1-4842-2742-8. For more detailed information, please visit http://www.apress.com/source-code. Printed on acid-free paper This book is dedicated to my good friend and colleague, Dr. Lundy Lewis. Dr. Lewis and I both teach in the Information Technology and Computer Science Department at Southern New Hampshire University, located in Manchester, NH. Lundy is a recognized expert in the field of artificial intelligence and robotics, often sought after to present talks on those subjects at international conferences and universities. He has been both a mentor and advisor to me in the exciting field of artificial intelligence. Contents at a Glance About the Author �����������������������������������������������������������������������������xv About the Technical Reviewer �������������������������������������������������������xvii Preface �������������������������������������������������������������������������������������������xix ■ Chapter 1: Introduction to Artificial Intelligence ����������������������������1 ■ Chapter 2: Basic AI Concepts �������������������������������������������������������17 ■ Chapter 3 Expert System Demonstrations ������������������������������������49 ■ Chapter 4: Games �������������������������������������������������������������������������77 ■ Chapter 5: Fuzzy Logic System ��������������������������������������������������111 ■ Chapter 6: Machine Learning �����������������������������������������������������145 ■ Chapter 7: Machine Learning: Artificial Neural Networks ����������171 ■ Chapter 8: Machine Learning: Deep Learning �����������������������������211 ■ Chapter 9: Machine Learning: Practical ANN Demonstrations ���249 ■ Chapter 10: Evolutionary Computing ������������������������������������������281 ■ Chapter 11: Behavior-Based Robotics ����������������������������������������313 ■ Appendix A: Build Instructions for the Alfie Robot Car ��������������347 Index ����������������������������������������������������������������������������������������������363 v Contents About the Author �����������������������������������������������������������������������������xv About the Technical Reviewer �������������������������������������������������������xvii Preface �������������������������������������������������������������������������������������������xix ■ Chapter 1: Introduction to Artificial Intelligence ����������������������������1 AI Historical Origins ���������������������������������������������������������������������������������1 Intelligence ����������������������������������������������������������������������������������������������7 Strong AI vs� Weak AI, Broad AI vs� Narrow AI �����������������������������������������9 Reasoning ���������������������������������������������������������������������������������������������10 AI Categories �����������������������������������������������������������������������������������������11 AI and Big Data ��������������������������������������������������������������������������������������13 Summary �����������������������������������������������������������������������������������������������15 ■ Chapter 2: Basic AI Concepts �������������������������������������������������������17 Boolean Algebra ������������������������������������������������������������������������������������17 Some Additional Boolean Laws ������������������������������������������������������������������������������19 Inference �����������������������������������������������������������������������������������������������19 Expert Systems �������������������������������������������������������������������������������������20 Conflict Resolution ��������������������������������������������������������������������������������������������������21 Backward Chaining �������������������������������������������������������������������������������������������������22 Raspberry Pi Configuration �������������������������������������������������������������������23 Introduction to SWI Prolog ���������������������������������������������������������������������23 vii ■ Contents Installing Prolog on a Raspberry Pi �������������������������������������������������������24 Initial Prolog Demonstration ������������������������������������������������������������������25 Introduction to Fuzzy Logic �������������������������������������������������������������������27 Example of FL ���������������������������������������������������������������������������������������������������������27 Defuzzification ��������������������������������������������������������������������������������������������������������29 Problem Solving ������������������������������������������������������������������������������������29 Breadth-First Search ����������������������������������������������������������������������������������������������30 Depth-First Search �������������������������������������������������������������������������������������������������30 Depth-Limited Search ���������������������������������������������������������������������������������������������30 Bidirectional Search �����������������������������������������������������������������������������������������������31 Other Problem-Solving Examples ���������������������������������������������������������������������������31 Machine Learning ����������������������������������������������������������������������������������31 Prediction ���������������������������������������������������������������������������������������������������������������32 Classification ����������������������������������������������������������������������������������������������������������33 Further Classification����������������������������������������������������������������������������������������������37 Neural Networks������������������������������������������������������������������������������������39 Shallow Learning vs� Deep Learning �����������������������������������������������������46 Evolutionary Computing ������������������������������������������������������������������������46 Genetic Algorithms �������������������������������������������������������������������������������������������������47 Summary �����������������������������������������������������������������������������������������������48 ■ Chapter 3: Expert System Demonstrations �����������������������������������49 Demo 3-1: Office Database �������������������������������������������������������������������50 Demo 3-2: Animal Identification ������������������������������������������������������������57 Demo 3-3: tic-tac-toe ����������������������������������������������������������������������������62 Demo 3-4: Cold or Flu Diagnosis �����������������������������������������������������������67 viii ■ Contents Demo 3-5: Expert System with Raspberry Pi GPIO Control �������������������71 Installing PySWIP ����������������������������������������������������������������������������������������������������71 Hardware Setup ������������������������������������������������������������������������������������������������������72 Rpi�GPIO Setup ��������������������������������������������������������������������������������������������������������74 Expert System with LED Control �����������������������������������������������������������������������������75 Summary �����������������������������������������������������������������������������������������������76 ■ Chapter 4: Games �������������������������������������������������������������������������77 Demo 4-1: Rock-Paper-Scissors �����������������������������������������������������������78 Rock-Paper-Scissors Game with Switches and LEDs���������������������������������������������82 Interrupts ����������������������������������������������������������������������������������������������������������������86 Demo 4-2: Nim ��������������������������������������������������������������������������������������89 Nim with LCD and Switches �����������������������������������������������������������������������������������97 LCD Display �����������������������������������������������������������������������������������������������������������100 Loading the Adafruit LCD Library ��������������������������������������������������������������������������101 LCD Test ����������������������������������������������������������������������������������������������������������������103 automated_nim�py ������������������������������������������������������������������������������������������������103 Summary ���������������������������������������������������������������������������������������������110 ■ Chapter 5: Fuzzy Logic System ��������������������������������������������������111 Parts List ���������������������������������������������������������������������������������������������111 Software Installation ���������������������������������������������������������������������������111 Basic FLS ���������������������������������������������������������������������������������������������112 Initialization: Define Linguistic Variables and Terms ���������������������������113 Demo 5-1: Using FL to Calculate a Tip ������������������������������������������������113 Initialization: Construct Membership Functions ����������������������������������114 Membership Function Visualization ����������������������������������������������������������������������117 Initialization: Build Rule Set �����������������������������������������������������������������118 Inference: Evaluate Fuzzy Set According to Rule Set ��������������������������120 ix ■ Contents Aggregation: Combine Results from Each Rule Evaluation �����������������123 Defuzzification: Convert Fuzzy Set to Crisp Output Values ������������������123 Demo 5-2: Modifications to the tipping�py Program ����������������������������131 Demo 5-3: FLS Heating and Cooling System ���������������������������������������132 Fuzzification ���������������������������������������������������������������������������������������������������������135 Inference���������������������������������������������������������������������������������������������������������������136 Aggregation ����������������������������������������������������������������������������������������������������������137 Defuzzification ������������������������������������������������������������������������������������������������������137 Testing the Control Program ���������������������������������������������������������������������������������139 Demo 5-4: Modifications to the HVAC Program �����������������������������������141 Summary ���������������������������������������������������������������������������������������������143 ■ Chapter 6: Machine Learning �����������������������������������������������������145 Parts List ���������������������������������������������������������������������������������������������145 Demo 6-1: Color Selection �������������������������������������������������������������������146 Algorithm ��������������������������������������������������������������������������������������������������������������146 Roulette Wheel Algorithm �������������������������������������������������������������������������������������149 Demo 6-2: Autonomous Robot �������������������������������������������������������������151 Autonomous Algorithm �����������������������������������������������������������������������������������������153 Test Run ����������������������������������������������������������������������������������������������������������������159 Additional Learning �����������������������������������������������������������������������������������������������160 Demo 6-3: Adaptive Learning with an Energy Consumption Consideration ��������������������������������������������������������������������������������������164 Test Run ����������������������������������������������������������������������������������������������������������������169 Summary ���������������������������������������������������������������������������������������������169 ■ Chapter 7: Machine Learning: Artificial Neural Networks ����������171 Parts List ���������������������������������������������������������������������������������������������171 Hopfield Network ���������������������������������������������������������������������������������172 Demo 7-1: Numerical Figure Recognition Demonstration �������������������179 x ■ Contents Demo 7-2: Autonomous Robot Car Using ANN ������������������������������������186 Demo 7-3: Python Control Script for the Obstacle-Avoiding Robot Car ���������������������������������������������������������������������������������������������190 Test Run ����������������������������������������������������������������������������������������������������������������195 Demo 7-4: Light-Seeking Robot ����������������������������������������������������������195 The Unknowns ������������������������������������������������������������������������������������������������������198 Brain Mapping ������������������������������������������������������������������������������������������������������199 Light Intensity Sensor �������������������������������������������������������������������������������������������200 Python Control Script for the Goal-Seeking Robot Car �����������������������������������������202 Test Run ����������������������������������������������������������������������������������������������������������������207 Obstacle Avoidance and Light Seeking �����������������������������������������������������������������208 Summary ���������������������������������������������������������������������������������������������209 ■ Chapter 8: Machine Learning: Deep Learning �����������������������������211 Generalized ANN ����������������������������������������������������������������������������������211 Larger ANN �����������������������������������������������������������������������������������������������������������217 Back Propagation In Three-layer ANNs �����������������������������������������������������������������221 Updating the Weighting Matrix �����������������������������������������������������������������������������223 The Gradient Descent Applied to an ANN ��������������������������������������������232 Matrix Multiplications for Weight Change Determination �������������������������������������235 Worked-through Example ��������������������������������������������������������������������235 Issues with ANN Learning �������������������������������������������������������������������������������������237 Initial Weight Selection �����������������������������������������������������������������������������������������237 Demo 8-1: ANN Python Scripts ������������������������������������������������������������238 Initialization ����������������������������������������������������������������������������������������������������������239 Test Run ����������������������������������������������������������������������������������������������������������������241 Demo 8-2: Training an ANN �����������������������������������������������������������������243 Test Run ����������������������������������������������������������������������������������������������������������������246 Summary ���������������������������������������������������������������������������������������������247 xi

Description:
Gain a gentle introduction to the world of Artificial Intelligence (AI) using the Raspberry Pi as the computing platform. Most of the major AI topics will be explored, including expert systems, machine learning both shallow and deep, fuzzy logic control, and more!AI in action will be demonstrated us
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.