Modern Deep Learning Design and Application Development Versatile Tools to Solve Deep Learning Problems — Andre Ye Modern Deep Learning Design and Application Development Versatile Tools to Solve Deep Learning Problems Andre Ye Modern Deep Learning Design and Application Development: Versatile Tools to Solve Deep Learning Problems Andre Ye Redmond, WA, USA ISBN-13 (pbk): 978-1-4842-7412-5 ISBN-13 (electronic): 978-1-4842-7413-2 https://doi.org/10.1007/978-1-4842-7413-2 Copyright © 2022 by Andre Ye 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. Managing Director, Apress Media LLC: Welmoed Spahr Acquisitions Editor: Celestin Suresh John Development Editor: James Markham Coordinating Editor: Aditee Mirashi Cover designed by eStudioCalamar Cover image designed by Freepik (www.freepik.com) Distributed to the book trade worldwide by Springer Science+Business Media New York, 1 New York Plaza, Suite 4600, New York, NY 10004-1562, USA. 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]; for reprint, paperback, or audio rights, please e-mail [email protected]. 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- 7412- 5. For more detailed information, please visit http://www.apress.com/source- code. Printed on acid-free paper For my mother Fang and my father Quinn Table of Contents About the Author �����������������������������������������������������������������������������������������������������xi About the Technical Reviewer �������������������������������������������������������������������������������xiii Acknowledgments ���������������������������������������������������������������������������������������������������xv Introduction �����������������������������������������������������������������������������������������������������������xvii Chapter 1: A Deep Dive into Keras ����������������������������������������������������������������������������1 Why Keras? �����������������������������������������������������������������������������������������������������������������������������������2 Installing and Importing Keras ������������������������������������������������������������������������������������������������������3 The Simple Keras Workflow ����������������������������������������������������������������������������������������������������������4 Step 1: Define Architecture ������������������������������������������������������������������������������������������������������4 Step 2: Compile ���������������������������������������������������������������������������������������������������������������������11 Step 3: Fit and Evaluate ���������������������������������������������������������������������������������������������������������27 Visualizing Model Architectures ��������������������������������������������������������������������������������������������������30 Functional API �����������������������������������������������������������������������������������������������������������������������������33 Translating a Sequential to a Functional Model���������������������������������������������������������������������35 Building Nonlinear Topologies �����������������������������������������������������������������������������������������������36 Dealing with Data ������������������������������������������������������������������������������������������������������������������������41 TensorFlow Dataset from Loaded Data ����������������������������������������������������������������������������������42 TensorFlow Dataset from Image Files �����������������������������������������������������������������������������������43 Automatic Image Dataset from Directory ������������������������������������������������������������������������������44 ImageDataGenerator��������������������������������������������������������������������������������������������������������������45 Key Points �����������������������������������������������������������������������������������������������������������������������������������47 v Table of ConTenTs Chapter 2: Pretraining Strategies and Transfer Learning ���������������������������������������49 Developing Creative Training Structures �������������������������������������������������������������������������������������50 The Power of Pretraining �������������������������������������������������������������������������������������������������������51 Transfer Learning Intuition ����������������������������������������������������������������������������������������������������56 Self-Supervised Learning Intuition ����������������������������������������������������������������������������������������60 Transfer Learning Practical Theory ���������������������������������������������������������������������������������������������65 Transfer Learning Models and Model Structure ��������������������������������������������������������������������66 Changing Pretrained Model Architectures �����������������������������������������������������������������������������73 Neural Network “Top” Inclusivity �������������������������������������������������������������������������������������������78 Layer Freezing �����������������������������������������������������������������������������������������������������������������������79 Implementing Transfer Learning �������������������������������������������������������������������������������������������������81 General Implementation Structure: A Template ���������������������������������������������������������������������81 No Architecture or Weight Changes ���������������������������������������������������������������������������������������82 Transfer Learning Without Layer Freezing �����������������������������������������������������������������������������85 Transfer Learning with Layer Freezing ����������������������������������������������������������������������������������88 Accessing PyTorch Models ����������������������������������������������������������������������������������������������������89 Implementing Simple Self-Supervised Learning ������������������������������������������������������������������������91 Case Studies �������������������������������������������������������������������������������������������������������������������������������95 Transfer Learning Case Study: Adversarial Exploitation of Transfer Learning �����������������������95 Self-Supervised Learning Case Study: Predicting Rotations �����������������������������������������������102 Self-Supervised Learning Case Study: Learning Image Context and Designing Nontrivial Pretraining Tasks �����������������������������������������������������������������������������������������������������������������108 Key Points ���������������������������������������������������������������������������������������������������������������������������������112 Chapter 3: The Versatility of Autoencoders ����������������������������������������������������������115 Autoencoder Intuition and Theory ���������������������������������������������������������������������������������������������116 The Design of Autoencoder Implementation �����������������������������������������������������������������������������121 Autoencoders for Tabular Data ��������������������������������������������������������������������������������������������121 Autoencoders for Image Data ����������������������������������������������������������������������������������������������127 Image Data Shape Structure and Transformations ��������������������������������������������������������������127 Convolutional Autoencoder Without Pooling ������������������������������������������������������������������������133 vi Table of ConTenTs Convolutional Autoencoder Vector Bottleneck Design ���������������������������������������������������������137 Convolutional Autoencoder with Pooling and Padding ��������������������������������������������������������140 Autoencoders for Other Data Forms �����������������������������������������������������������������������������������������145 Autoencoder Applications ���������������������������������������������������������������������������������������������������������145 Using Autoencoders for Denoising ��������������������������������������������������������������������������������������146 Using Autoencoders for Pretraining �������������������������������������������������������������������������������������156 Using Autoencoders for Dimensionality Reduction ��������������������������������������������������������������161 Using Autoencoders for Feature Generation ������������������������������������������������������������������������164 Using Variational Autoencoders for Data Generation �����������������������������������������������������������172 Case Studies �����������������������������������������������������������������������������������������������������������������������������188 Autoencoders for Pretraining Case Study: TabNet ���������������������������������������������������������������189 Denoising Autoencoders Case Study: Chinese Spelling Checker ����������������������������������������193 Variational Autoencoders Case Study: Text Generation �������������������������������������������������������197 Key Points ���������������������������������������������������������������������������������������������������������������������������������201 Chapter 4: Model Compression for Practical Deployment ������������������������������������205 Introduction to Model Compression ������������������������������������������������������������������������������������������206 Pruning ��������������������������������������������������������������������������������������������������������������������������������������210 Pruning Theory and Intuition �����������������������������������������������������������������������������������������������210 Pruning Implementation ������������������������������������������������������������������������������������������������������215 Pruning in Theoretical Deep Learning: The Lottery Ticket Hypothesis ���������������������������������226 Quantization ������������������������������������������������������������������������������������������������������������������������������229 Quantization Theory and Intuition ����������������������������������������������������������������������������������������229 Quantization Implementation ����������������������������������������������������������������������������������������������232 Weight Clustering ����������������������������������������������������������������������������������������������������������������������236 Weight Clustering Theory and Intuition �������������������������������������������������������������������������������237 Weight Clustering Implementation ��������������������������������������������������������������������������������������238 Collaborative Optimization ��������������������������������������������������������������������������������������������������������240 Sparsity Preserving Quantization ����������������������������������������������������������������������������������������243 Cluster Preserving Quantization ������������������������������������������������������������������������������������������245 Sparsity Preserving Clustering ��������������������������������������������������������������������������������������������246 vii Table of ConTenTs Case Studies �����������������������������������������������������������������������������������������������������������������������������248 Extreme Collaborative Optimization ������������������������������������������������������������������������������������248 Rethinking Quantization for Deeper Compression ���������������������������������������������������������������251 Responsible Compression: What Do Compressed Models Forget? �������������������������������������254 Key Points ���������������������������������������������������������������������������������������������������������������������������������257 Chapter 5: Automating Model Design with Meta-optimization ����������������������������259 Introduction to Meta-optimization ��������������������������������������������������������������������������������������������260 General Hyperparameter Optimization ��������������������������������������������������������������������������������������264 Bayesian Optimization Intuition and Theory ������������������������������������������������������������������������264 Hyperopt Syntax, Concepts, and Usage �������������������������������������������������������������������������������270 Hyperas Syntax, Concepts, and Usage ��������������������������������������������������������������������������������284 Neural Architecture Search �������������������������������������������������������������������������������������������������������289 NAS Intuition and Theory �����������������������������������������������������������������������������������������������������290 Auto-Keras ���������������������������������������������������������������������������������������������������������������������������297 Case Studies �����������������������������������������������������������������������������������������������������������������������������311 NASNet ��������������������������������������������������������������������������������������������������������������������������������312 Progressive Neural Architecture Search ������������������������������������������������������������������������������317 Efficient Neural Architecture Search �����������������������������������������������������������������������������������320 Key Points ���������������������������������������������������������������������������������������������������������������������������������323 Chapter 6: Successful Neural Network Architecture Design ��������������������������������327 Nonlinear and Parallel Representation��������������������������������������������������������������������������������������330 Residual Connections ����������������������������������������������������������������������������������������������������������332 Branching and Cardinality ���������������������������������������������������������������������������������������������������346 Case Study: U-Net ����������������������������������������������������������������������������������������������������������������351 Block/Cell Design ����������������������������������������������������������������������������������������������������������������������357 Sequential Cell Design ���������������������������������������������������������������������������������������������������������359 Nonlinear Cell Design ����������������������������������������������������������������������������������������������������������370 Case Study: InceptionV3 ������������������������������������������������������������������������������������������������������373 Neural Network Scaling ������������������������������������������������������������������������������������������������������������380 Input Shape Adaptable Design ��������������������������������������������������������������������������������������������382 Parametrization of Network Dimensions �����������������������������������������������������������������������������388 viii Table of ConTenTs Case Study: EfficientNet ������������������������������������������������������������������������������������������������������392 Key Points ���������������������������������������������������������������������������������������������������������������������������������399 Chapter 7: Reframing Difficult Deep Learning Problems ��������������������������������������401 Data Representation: DeepInsight ���������������������������������������������������������������������������������������������403 Corrupted Data: Negative Learning with Noisy Labels ��������������������������������������������������������������414 Limited Data: Siamese Networks ����������������������������������������������������������������������������������������������427 Key Points and Epilogue������������������������������������������������������������������������������������������������������������438 Index ���������������������������������������������������������������������������������������������������������������������441 ix About the Author Andre Ye is a deep learning researcher and writer working toward making deep learning more accessible, understandable, and responsible through technical communication. He is also a cofounder at Critiq, a machine learning platform facilitating greater efficiency in the peer-review process. In his spare time, Andre enjoys keeping up with current deep learning research, reading up on history and philosophy, and playing the piano. xi