Reader small image

You're reading from  Java Deep Learning Cookbook

Product typeBook
Published inNov 2019
Reading LevelIntermediate
PublisherPackt
ISBN-139781788995207
Edition1st Edition
Languages
Right arrow
Author (1)
Rahul Raj
Rahul Raj
author image
Rahul Raj

Rahul Raj has more than 7 years of IT industry experience in software development, business analysis, client communication, and consulting on medium-/large-scale projects in multiple domains. Currently, he works as a lead software engineer in a top software development firm. He has extensive experience in development activities comprising requirement analysis, design, coding, implementation, code review, testing, user training, and enhancements. He has written a number of articles about neural networks in Java and they are featured by DL4J/ official Java community channels. He is also a certified machine learning professional, certified by Vskills, the largest government certification body in India.
Read more about Rahul Raj

Right arrow

Preface

Deep learning has helped many industries/companies to solve big challenges, enhance their products, and strengthen their infrastructure. The advantage of deep learning is that you neither have to design decision-making algorithms nor make decisions regarding important dataset features. Your neural network is capable of doing both. We have seen enough theoretical books that leave the audience all at sea having explained complex concepts. It is also important to know how/when you can apply what you have learned, especially in relation to enterprise. This is a concern for advanced technologies such as deep learning. You may have undertaken capstone projects, but you also want to take your knowledge to the next level.

Of course, there are best practices in enterprise development that we may not cover in this book. We don't want readers to question themselves about the purpose of developing an application if it is too tedious to deploy in production. We want something very straightforward, targeting the largest developer community in the world. We have used DL4J (short for Deeplearning4j) throughout this book to demonstrate examples for the same reason. It has DataVec for ETL (short for Extract, Transform, and Load), ND4J as a scientific computation library, and a DL4J core library to develop and deploy neural network models in production. There are cases where DL4J outperforms some of the major deep learning libraries on the market. We are not degrading other libraries, as it all depends on what you want to do with them. You may also try accommodating multiple libraries in different phases if you don't want to bother switching to multiple technical stacks.

Who this book is for

In order to get the most out of this book, we recommend that readers have basic knowledge of deep learning and data analytics. It is also preferable for readers to have basic knowledge of MLP (multilayer perceptrons) or feed forward networks, recurrent neural networks, LSTM, word vector representations, and some level of debugging skills to interpret the errors from the error stack. As this book targets Java and the DL4J library, readers should also have sound knowledge of Java and DL4J. This book is not suitable for anyone who is new to programming or who doesn't have basic knowledge of deep learning.

What this book covers

Chapter 1, Introduction to Deep Learning in Java, provides a brief introduction to deep learning using DL4J.

Chapter 2, Data Extraction, Transformation, and Loading, discusses the ETL process for handling data for neural networks with the help of examples.

Chapter 3, Building Deep Neural Networks for Binary Classification, demonstrates how to develop a deep neural network in DL4J in order to solve binary classification problems.

Chapter 4, Building Convolutional Neural Networks, explains how to develop a convolutional neural network in DL4J in order to solve image classification problems.

Chapter 5, Implementing Natural Language Processing, discusses how to develop NLP applications using DL4J.

Chapter 6, Constructing LSTM Networks for Time Series, demonstrates a time series application on a PhysioNet dataset with single-class output using DL4J.

Chapter 7, Constructing LSTM Neural Networks for Sequence Classification, demonstrates a time series application on a UCI synthetic control dataset with multi-class output using DL4J.

Chapter 8, Performing Anomaly Detection on Unsupervised Data, explains how to develop an unsupervised anomaly detection application using DL4J.

Chapter 9, Using RL4J for Reinforcement Learning, explains how to develop a reinforcement learning agent that can learn to play the Malmo game using RL4J.

Chapter 10, Developing Applications in a Distributed Environment, covers how to develop distributed deep learning applications using DL4J.

Chapter 11, Applying Transfer Learning to Network Models, demonstrates how to apply transfer learning to DL4J applications.

Chapter 12, Benchmarking and Neural Network Optimization, discusses various benchmarking approaches and neural network optimization techniques that can be applied to your deep learning application.

To get the most out of this book

Readers are expected to have basic knowledge of deep learning, reinforcement learning, and data analytics. Basic knowledge of deep learning will help you understand the neural network design and the various hyperparameters used in the examples. Basic data analytics skills and an understanding of data requirements will help you to explore DataVec better, while some prior knowledge of the basics of reinforcement learning will help you while working through Chapter 9, Using RL4J for Reinforcement Learning. We will also be discussing distributed neural networks in Chapter 10, Developing Applications in a Distributed Environment, for which basic knowledge of Apache Spark is preferred.

Download the example code files

You can download the example code files for this book from your account at www.packt.com. If you purchased this book elsewhere, you can visit www.packtpub.com/support and register to have the files emailed directly to you.

You can download the code files by following these steps:

  1. Log in or register at www.packt.com.
  2. Select the Support tab.
  3. Click on Code Downloads.
  4. Enter the name of the book in the Search box and follow the onscreen instructions.

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/Java-Deep-Learning-Cookbook. In case there's an update to the code, it will be updated on the existing GitHub repository.

We also have other code bundles from our rich catalog of books and videos available at https://github.com/PacktPublishing/. Check them out!

Download the color images

Conventions used

There are a number of text conventions used throughout this book.

CodeInText: Indicates code words in text, database table names, folder names, filenames, file extensions, pathnames, dummy URLs, user input, and Twitter handles. Here is an example: "Create a CSVRecordReader to hold customer churn data."

A block of code is set as follows:

File file = new File("Churn_Modelling.csv");
recordReader.initialize(new FileSplit(file));

Any command-line input or output is written as follows:

mvn clean install

Bold: Indicates a new term, an important word, or words that you see on screen. For example, words in menus or dialog boxes appear in the text like this. Here is an example: "We just need to click on the Model tab on the left-hand sidebar."

Warnings or important notes appear like this.
Tips and tricks appear like this.

Sections

In this book, you will find several headings that appear frequently (Getting ready, How to do it..., How it works..., There's more..., and See also).

To give clear instructions on how to complete a recipe, use these sections as follows:

Getting ready

This section tells you what to expect in the recipe and describes how to set up any software or any preliminary settings required for the recipe.

How to do it...

This section contains the steps required to follow the recipe.

How it works...

This section usually consists of a detailed explanation of what happened in the previous section.

There's more...

This section consists of additional information about the recipe in order to make you more knowledgeable about the recipe.

See also

This section provides helpful links to other useful information for the recipe.

Get in touch

Feedback from our readers is always welcome.

General feedback: If you have questions about any aspect of this book, mention the book title in the subject of your message and email us at customercare@packtpub.com.

Errata: Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you have found a mistake in this book, we would be grateful if you would report this to us. Please visit www.packtpub.com/support/errata, selecting your book, clicking on the Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any form on the internet, we would be grateful if you would provide us with the location address or website name. Please contact us at copyright@packt.com with a link to the material.

If you are interested in becoming an author: If there is a topic that you have expertise in, and you are interested in either writing or contributing to a book, please visit authors.packtpub.com.

Reviews

Please leave a review. Once you have read and used this book, why not leave a review on the site that you purchased it from? Potential readers can then see and use your unbiased opinion to make purchase decisions, we at Packt can understand what you think about our products, and our authors can see your feedback on their book. Thank you!

For more information about Packt, please visit packt.com.

lock icon
The rest of the chapter is locked
You have been reading a chapter from
Java Deep Learning Cookbook
Published in: Nov 2019Publisher: PacktISBN-13: 9781788995207
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $15.99/month. Cancel anytime

Author (1)

author image
Rahul Raj

Rahul Raj has more than 7 years of IT industry experience in software development, business analysis, client communication, and consulting on medium-/large-scale projects in multiple domains. Currently, he works as a lead software engineer in a top software development firm. He has extensive experience in development activities comprising requirement analysis, design, coding, implementation, code review, testing, user training, and enhancements. He has written a number of articles about neural networks in Java and they are featured by DL4J/ official Java community channels. He is also a certified machine learning professional, certified by Vskills, the largest government certification body in India.
Read more about Rahul Raj