41,99 €
Powerful, independent recipes to build deep learning models in different application areas using R libraries
Data science professionals or analysts who have performed machine learning tasks and now want to explore deep learning and want a quick reference that could address the pain points while implementing deep learning. Those who wish to have an edge over other deep learning professionals will find this book quite useful.
Deep Learning is the next big thing. It is a part of machine learning. It's favorable results in applications with huge and complex data is remarkable. Simultaneously, R programming language is very popular amongst the data miners and statisticians.
This book will help you to get through the problems that you face during the execution of different tasks and Understand hacks in deep learning, neural networks, and advanced machine learning techniques. It will also take you through complex deep learning algorithms and various deep learning packages and libraries in R. It will be starting with different packages in Deep Learning to neural networks and structures. You will also encounter the applications in text mining and processing along with a comparison between CPU and GPU performance.
By the end of the book, you will have a logical understanding of Deep learning and different deep learning packages to have the most appropriate solutions for your problems.
Collection of hands-on recipes that would act as your all-time reference for your deep learning needs
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 237
Veröffentlichungsjahr: 2017
BIRMINGHAM - MUMBAI
< html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
Copyright © 2017 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: August 2017
Production reference: 1030817
Published by Packt Publishing Ltd. Livery Place35 Livery StreetBirmingham B3 2PB, UK.
ISBN 978-1-78712-108-9
www.packtpub.com
Authors
Dr. PKS Prakash Achyutuni Sri Krishna Rao
Copy Editor
Manisha Sinha
Reviewers
Vahid Mirjalili
Project Coordinator
Manthan Patel
Commissioning Editor
Veena Pagare
Proofreader
Safis Editing
Acquisition Editor
Aman Singh
Indexer
Tejal Daruwale Soni
ContentDevelopmentEditor
Tejas Limkar
Graphics
Tania Dutta
Technical Editor
Sagar Sawant
Production Coordinator
Deepika Naik
Dr. PKS Prakash is a data scientist and an author. He has spent the last 12 years developing many data science solutions to problems from leading companies in the healthcare, manufacturing, pharmaceutical, and e-commerce domain. He is working as a Data Science Manager at ZS Associates.
ZS is one of the world's largest business service firms, helping clients with commercial success by creating data-driven strategies using advanced analytics, which they can implement within their sales and marketing operations to make them more competitive, and by helping them deliver impact where it matters.
Prakash obtained a PhD in Industrial and System Engineering from Wisconsin-Madison, US. He defended his second PhD in Engineering from University of Warwick, UK. His educational background also includes a master's degree from the University of Wisconsin-Madison, US, and a bachelor's degree from National Institute of Foundry and Forge Technology (NIFFT), India. He is the co-founder of Warwick Analytics, which is based on his PhD work from the University of Warwick, UK.
Prakash is published widely in research areas of operational research and management, soft computing tools, and advance algorithms in leading journals such as IEEE-Trans, EJOR, and IJPR, among others. He has edited an issue of Intelligent Approaches to Complex Systems and contributed to Evolutionary Computing in Advanced Manufacturing, published by Wiley, and Algorithms and Data Structures Using R, published by Packt.
Achyutuni Sri Krishna Rao is a data scientist, a civil engineer, and an author. He has spent the last four years developing many data science solutions to problems from leading companies in the healthcare, pharmaceuticals, and manufacturing. He is working as a Data Science Consultant at ZS Associates.
Sri Krishna's background includes a master's degree in Enterprise Business Analytics and Machine Learning from National University of Singapore, Singapore. His educational background also includes a bachelor's degree from National Institute of Technology Warangal, India.
Sri Krishna is published widely in research areas of civil engineering. He has contributed to a book titled Algorithms and Data Structures Using R, published by Packt.
Vahid Mirjalili is a software engineer/data scientist, currently working toward his PhD in Computer Science at Michigan State University. His research at the i-PRoBE (integrated pattern recognition and biometrics) involves attribute classification of face images from large image datasets. He also teaches Python programming as well as computing concepts for data analysis and databases. With his specialty in data mining, he is very interested in predictive modeling and getting insights from data. He is also a Python developer and likes to contribute to the open source community. He enjoys making tutorials for different areas of data science and computer algorithms, which can be found in his GitHub repository, at http://github.com/mirjalil/DataScience.
For support files and downloads related to your book, please visit www.PacktPub.com.
Did you know that Packt offers eBook versions of every book published, with PDF and ePub files available? You can upgrade to the eBook version at www.PacktPub.com and as a print book customer, you are entitled to a discount on the eBook copy. Get in touch with us at [email protected] for more details.
At www.PacktPub.com, you can also read a collection of free technical articles, sign up for a range of free newsletters and receive exclusive discounts and offers on Packt books and eBooks.
https://www.packtpub.com/mapt
Get the most in-demand software skills with Mapt. Mapt gives you full access to all Packt books and video courses, as well as industry-leading tools to help you plan your personal development and advance your career.
Fully searchable across every book published by Packt
Copy and paste, print, and bookmark content
On demand and accessible via a web browser
Thanks for purchasing this Packt book. At Packt, quality is at the heart of our editorial process. To help us improve, please leave us an honest review on this book's Amazon page at https://www.amazon.com/dp/1787121089.
If you'd like to join our team of regular reviewers, you can e-mail us at [email protected]. We award our regular reviewers with free eBooks and videos in exchange for their valuable feedback. Help us be relentless in improving our products!
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the color images of this book
Errata
Piracy
Questions
Getting Started
Introduction
Installing R with an IDE
Getting ready
How to do it...
Installing a Jupyter Notebook application
How to do it...
There's more...
Starting with the basics of machine learning in R
How to do it...
How it works...
Setting up deep learning tools/packages in R
How to do it...
Installing MXNet in R
Getting ready
How to do it...
Installing TensorFlow in R
Getting ready
How to do it...
How it works...
See also
Installing H2O in R
Getting ready
How to do it...
How it works...
There's more...
Installing all three packages at once using Docker
Getting ready
How to do it...
There's more...
Deep Learning with R
Starting with logistic regression
Getting ready
How to do it...
Introducing the dataset
Getting ready
How to do it...
Performing logistic regression using H2O
Getting ready
How to do it...
How it works...
See also
Performing logistic regression using TensorFlow
Getting ready
How to do it...
How it works...
Visualizing TensorFlow graphs
Getting ready
How to do it...
How it works...
Starting with multilayer perceptrons
Getting ready
How to do it...
There's more...
See also
Setting up a neural network using H2O
Getting ready
How to do it...
How it works...
Tuning hyper-parameters using grid searches in H2O
Getting ready
How to do it...
How it works...
Setting up a neural network using MXNet
Getting ready
How to do it...
How it works...
Setting up a neural network using TensorFlow
Getting ready
How to do it...
How it works...
There's more...
Convolution Neural Network
Introduction
Downloading and configuring an image dataset
Getting ready
How to do it...
How it works...
See also
Learning the architecture of a CNN classifier
Getting ready
How to do it...
How it works...
Using functions to initialize weights and biases
Getting ready
How to do it...
How it works...
Using functions to create a new convolution layer
Getting ready
How to do it...
How it works...
Using functions to create a new convolution layer
Getting ready
How to do it...
How it works...
Using functions to flatten the densely connected layer
Getting ready
How to do it...
How it works...
Defining placeholder variables
Getting ready
How to do it...
How it works...
Creating the first convolution layer
Getting ready
How to do it...
How it works...
Creating the second convolution layer
Getting ready
How to do it...
How it works...
Flattening the second convolution layer
Getting ready
How to do it...
How it works...
Creating the first fully connected layer
Getting ready
How to do it...
How it works...
Applying dropout to the first fully connected layer
Getting ready
How to do it...
How it works...
Creating the second fully connected layer with dropout
Getting ready
How to do it...
How it works...
Applying softmax activation to obtain a predicted class
Getting ready
How to do it...
Defining the cost function used for optimization
Getting ready
How to do it...
How it works...
Performing gradient descent cost optimization
Getting ready
How to do it...
Executing the graph in a TensorFlow session
Getting ready
How to do it...
How it works...
Evaluating the performance on test data
Getting ready
How to do it...
How it works...
Data Representation Using Autoencoders
Introduction
Setting up autoencoders
Getting ready
How to do it...
Data normalization
Getting ready
Visualizing dataset distribution
How to do it...
How to set up an autoencoder model
Running optimization
Setting up a regularized autoencoder
Getting ready
How to do it...
How it works...
Fine-tuning the parameters of the autoencoder
Setting up stacked autoencoders
Getting ready
How to do it...
Setting up denoising autoencoders
Getting ready
How to do it...
Reading the dataset
Corrupting data to train
Setting up a denoising autoencoder
How it works...
Building and comparing stochastic encoders and decoders
Getting ready
How to do it...
Setting up a VAE model
Output from the VAE autoencoder
Learning manifolds from autoencoders
How to do it...
Setting up principal component analysis
Evaluating the sparse decomposition
Getting ready
How to do it...
How it works...
Generative Models in Deep Learning
Comparing principal component analysis with the Restricted Boltzmann machine
Getting ready
How to do it...
Setting up a Restricted Boltzmann machine for Bernoulli distribution input
Getting ready
How to do it...
Training a Restricted Boltzmann machine
Getting ready
Example of a sampling
How to do it...
Backward or reconstruction phase of RBM
Getting ready
How to do it...
Understanding the contrastive divergence of the reconstruction
Getting ready
How to do it...
How it works...
Initializing and starting a new TensorFlow session
Getting ready
How to do it...
How it works...
Evaluating the output from an RBM
Getting ready
How to do it...
How it works...
Setting up a Restricted Boltzmann machine for Collaborative Filtering
Getting ready
How to do it...
Performing a full run of training an RBM
Getting ready
How to do it...
Setting up a Deep Belief Network
Getting ready
How to do it...
How it works...
Implementing a feed-forward backpropagation Neural Network
Getting ready
How to do it...
How it works...
Setting up a Deep Restricted Boltzmann Machine
Getting ready
How to do it...
How it works...
Recurrent Neural Networks
Setting up a basic Recurrent Neural Network
Getting ready
How to do it...
How it works...
Setting up a bidirectional RNN model
Getting ready
How to do it...
Setting up a deep RNN model
How to do it...
Setting up a Long short-term memory based sequence model
How to do it...
How it works...
Reinforcement Learning
Introduction
Setting up a Markov Decision Process
Getting ready
How to do it...
Performing model-based learning
How to do it...
Performing model-free learning
Getting ready
How to do it...
Application of Deep Learning in Text Mining
Performing preprocessing of textual data and extraction of sentiments
How to do it...
How it works...
Analyzing documents using tf-idf
How to do it...
How it works...
Performing sentiment prediction using LSTM network
How to do it...
How it works...
Application using text2vec examples
How to do it...
How it works...
Application of Deep Learning to Signal processing
Introducing and preprocessing music MIDI files
Getting ready
How to do it...
Building an RBM model
Getting ready
How to do it...
Generating new music notes
How to do it...
Transfer Learning
Introduction
Illustrating the use of a pretrained model
Getting ready
How to do it...
Setting up the Transfer Learning model
Getting ready
How to do it...
Building an image classification model
Getting ready
How to do it...
Training a deep learning model on a GPU
Getting ready
How to do it...
Comparing performance using CPU and GPU
Getting ready
How to do it...
There's more...
See also
Deep learning is one of the most commonly discussed areas in machine learning due to its ability to model complex functions and learn through a variety of data sources and structures, such as cross-sectional data, sequential data, images, text, audio, and video. Also, R is one of the most popular languages used in the data science community. With the growth of deep learning, the relationship between R and deep learning is growing tremendously. Thus, Deep Learning Cookbook in R aims to provide a crash course in building different deep learning models. The application of deep learning is demonstrated through structured, unstructured, image, and audio case studies. The book will also cover transfer learning and how to utilize the power of GPU to enhance the computation efficiency of the deep learning model.
Chapter 1, Getting Started, introduces different packages that are available for building deep learning models, such as TensorFlow, MXNet, and H2O. and how to set them up to be utilized later in the book.
Chapter 2, Deep Learning with R, introduces the basics of neural network and deep learning. This chapter covers multiple recipes for building a neural network models using multiple toolboxes in R.
Chapter 3, Convolution Neural Network, covers recipes on Convolution Neural Networks (CNN) through applications in image processing and classification.
Chapter 4, Data Representation Using Autoencoders, builds the foundation of autoencoder using multiple recipes and also covers the application in data compression and denoising.
Chapter 5, Generative Models in Deep learning, extends the concept of autoencoders to generative models and covers recipes such as Boltzman machines, restricted Boltzman machines (RBMs), and deep belief networks.
Chapter 6, Recurrent Neural Networks, sets up the foundation for building machine learning models on a sequential datasets using multiple recurrent neural networks (RNNs).
Chapter 7, Reinforcement Leaning, provides the fundamentals for building reinforcement learning using Markov Decision Process (MDP) and covers both model-based learning and model-free learning.
Chapter 8, Application of Deep Learning in Text-Mining, provides an end-to-end implementation of the deep learning text mining domain.
Chapter 9, Application of Deep Learning to Signal processing, covers a detailed case study of deep learning in the signal processing domain.
Chapter 10, Transfer Learning, covers recipes for using pretrained models such as VGG16 and Inception and explains how to deploy a deep learning model using GPU.
A lot of inquisitiveness, perseverance, and passion is required to build a strong background in data science. The scope of deep learning is quite broad; thus, the following backgrounds is required to effectively utilize this cookbook:
Basics of machine learning and data analysis
Proficiency in R programming
Basics of Python and Docker
Lastly, you need to appreciate deep learning algorithms and know how they solve complex problems in multiple domains.
This book is for data science professionals or analysts who have performed machine learning tasks and now want to explore deep learning and want a quick reference thataddress the pain points that crop up while implementing deep learning. Those who wish to have an edge over other deep learning professionals will find this book quite useful.
In this book, you will find a number of text styles that distinguish between different kinds of information. Here are some examples of these styles and an explanation of their meaning.
Code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles are shown as follows: "We can include other contexts through the use of the include directive."
A block of code is set as follows:
[default] exten => s,1,Dial(Zap/1|30) exten => s,2,Voicemail(u100) exten => s,102,Voicemail(b100) exten => i,1,Voicemail(s0)
When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:
[default] exten => s,1,
Dial
(Zap/1|30) exten => s,2,Voicemail(u100) exten => s,
102
,Voicemail(b100) exten => i,1,Voicemail(s0)
Any command-line input or output is written as follows:
# cp /usr/src/asterisk-addons/configs/cdr_mysql.conf.sample /etc/asterisk/cdr_mysql.conf
New terms and important words are shown in bold. Words that you see on the screen, for example, in menus or dialog boxes, appear in the text like this: "Clicking the Next button moves you to the next screen."
Feedback from our readers is always welcome. Let us know what you think about this book--what you liked or disliked. Reader feedback is important for us as it helps us develop titles that you will really get the most out of.
To send us general feedback, simply email [email protected], and mention the book's title in the subject of your message.
If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide at www.packtpub.com/authors.
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.
Downloading the example code
You can download the example code files for this book from your account at http://www.packtpub.com. If you purchased this book elsewhere, you can visit http://www.packtpub.com/support and register to have the files e-mailed directly to you.
You can download the code files by following these steps:
Log in or register to our website using your email address and password.
Hover the mouse pointer on the
SUPPORT
tab at the top.
Click on
Code Downloads
&
Errata
.
Enter the name of the book in the
Search
box.
Select the book for which you're looking to download the code files.
Choose from the drop-down menu where you purchased this book from.
Click on
Code Download
.
You can also download the code files by clicking on the Code Files button on the book's webpage at the Packt Publishing website. This page can be accessed by entering the book's name in the Search box. Please note that you need to be logged in to your Packt account.
Once the file is downloaded, please make sure that you unzip or extract the folder using the latest version of:
WinRAR / 7-Zip for Windows
Zipeg / iZip / UnRarX for Mac
7-Zip / PeaZip for Linux
The code bundle for the book is also hosted on GitHub at https://github.com/PacktPublishing/R-Deep-Learning-Cookbook. We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!
We also provide you with a PDF file that has color images of the screenshots/diagrams used in this book. The color images will help you better understand the changes in the output. You can download this file from https://www.packtpub.com/sites/default/files/downloads/RDeepLearningCookbook_ColorImages.pdf.
Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books--maybe a mistake in the text or the code--we would be grateful if you could report this to us. By doing so, you can save other readers from frustration and help us improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/submit-errata, selecting your book, clicking on the Errata Submission Form link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded to our website or added to any list of existing errata under the Errata section of that title.
To view the previously submitted errata, go to https://www.packtpub.com/books/content/support and enter the name of the book in the search field. The required information will appear under the Errata section.
Piracy of copyrighted material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works in any form on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy.
Please contact us at [email protected] with a link to the suspected pirated material.
We appreciate your help in protecting our authors and our ability to bring you valuable content.
If you have a problem with any aspect of this book, you can contact us at [email protected], and we will do our best to address the problem.
In this chapter, we will cover the following topics:
Installing R with an IDE
Installing a Jupyter Notebook application
Starting with the basics of machine learning in R
Setting up deep learning tools/packages in R
Installing MXNet in R
Installing TensorFlow in R
Installing H2O in R
Installing all three packages at once using Docker
This chapter will get you started with deep learning and help you set up your systems to develop deep learning models. The chapter is more focused on giving the audience a heads-up on what is expected from the book and the prerequisites required to go through the book. The current book is intended for students or professionals who want to quickly build a background in the applications of deep learning. The book will be more practical and application-focused using R as a tool to build deep learning models.
We will use the R programming language to demonstrate applications of deep learning. You are expected to have the following prerequisites throughout the book:
Basic R programming knowledge
Basic understanding of Linux; we will use the Ubuntu (16.04) operating system
Basic understanding of machine learning concepts
For Windows or macOS, a basic understanding of Docker
Before we begin, let's install an IDE for R. For R the most popular IDEs are Rstudio and Jupyter. Rstudio is dedicated to R whereas Jupyter provide multi-language support including R. Jupyter also provides an interactive environment and allow you to combine code, text, and graphics into a single notebook.
R supports multiple operating systems such as Windows, macOS X, and Linux. The installation files for R can be downloaded from any one of the mirror sites at Comprehensive R Archive Network (CRAN) at https://cran.r-project.org/. The CRAN is also a major repository for packages in R. The programming language R is available under both 32-bit and 64-bit architectures.
Of r-base-dev is also highly recommended as it has many inbuilt functions. It also enables the
install.packages()
command, which is used to compile and install new R packages directly from the CRAN using the
R console
. The default
R console
looks as follows:
For programming purposes, an
Integrated Development Environment
(
IDE
) is recommended as it helps enhance productivity. One of the most popular open source IDEs for R is Rstudio. Rstudio also provides you with an Rstudio server, which facilitates a web-based environment to program in R. The interface for the Rstudio IDE is shown in the following screenshot:
Another famous editor these days is the Jupyter Notebook app. This app produces notebook documents that integrate documentation, code, and analysis together. It supports many computational kernels including R. It is a server, client-side, web-based application that can be accessed using a browser.
Jupyter Notebook can be installed using the following steps:
Jupyter Notebook can be installed using
pip
:
pip3 install --upgrade pippip3 install jupyter
If you have installed Anaconda, then the default computational kernel installed is Python. To install an R computation kernel in Jupyter within the same environment, type the following command in a terminal:
conda install -c r r-essentials
