ebook img

Artificial Neural Networks with Java - Tools for Building Neural Network Applications PDF

575 Pages·2019·12.15 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 Artificial Neural Networks with Java - Tools for Building Neural Network Applications

Artif icial Neural Networks with Java Tools for Building Neural Network Applications — Igor Livshin Artificial Neural Networks with Java Tools for Building Neural Network Applications Igor Livshin Artificial Neural Networks with Java: Tools for Building Neural Network Applications Igor Livshin Chicago, IL, USA ISBN-13 (pbk): 978-1-4842-4420-3 ISBN-13 (electronic): 978-1-4842-4421-0 https://doi.org/10.1007/978-1-4842-4421-0 Copyright © 2019 by Igor Livshin 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 Sureh John Development Editor: Matthew Moodie 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, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer- sbm.com, 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 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 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-4420-3. For more detailed information, please visit www.apress.com/source-code. Printed on acid-free paper For Asa and Sid Ostrow. Table of Contents About the Author �����������������������������������������������������������������������������������������������������xi About the Technical Reviewer �������������������������������������������������������������������������������xiii Acknowledgments ���������������������������������������������������������������������������������������������������xv Introduction �����������������������������������������������������������������������������������������������������������xvii Chapter 1: Learning About Neural Networks ������������������������������������������������������������1 Biological and Artificial Neurons ���������������������������������������������������������������������������������������������������2 Activation Functions ����������������������������������������������������������������������������������������������������������������������3 Summary���������������������������������������������������������������������������������������������������������������������������������������5 Chapter 2: Internal Mechanics of Neural Network Processing ���������������������������������7 Function to Be Approximated ��������������������������������������������������������������������������������������������������������7 Network Architecture ��������������������������������������������������������������������������������������������������������������������9 Forward-Pass Calculation �����������������������������������������������������������������������������������������������������������10 Input Record 1 �����������������������������������������������������������������������������������������������������������������������������11 Input Record 2 �����������������������������������������������������������������������������������������������������������������������������12 Input Record 3 �����������������������������������������������������������������������������������������������������������������������������13 Input Record 4 �����������������������������������������������������������������������������������������������������������������������������14 Backpropagation-Pass Calculations �������������������������������������������������������������������������������������������15 Function Derivative and Function Divergent �������������������������������������������������������������������������������16 Most Commonly Used Function Derivatives ��������������������������������������������������������������������������������17 Summary�������������������������������������������������������������������������������������������������������������������������������������19 Chapter 3: Manual Neural Network Processing ������������������������������������������������������21 Example 1: Manual Approximation of a Function at a Single Point ���������������������������������������������21 Building the Neural Network �������������������������������������������������������������������������������������������������������22 v Table of ConTenTs Forward-Pass Calculation �����������������������������������������������������������������������������������������������������������24 Hidden Layers ������������������������������������������������������������������������������������������������������������������������25 Output Layer ��������������������������������������������������������������������������������������������������������������������������25 Backward-Pass Calculation ��������������������������������������������������������������������������������������������������������27 Calculating Weight Adjustments for the Output Layer Neurons ���������������������������������������������27 Calculating the Adjustment for W2 ���������������������������������������������������������������������������������������������28 12 Calculating the Adjustment for W2 ���������������������������������������������������������������������������������������������30 13 Calculating Weight Adjustments for Hidden-Layer Neurons �������������������������������������������������������31 Calculating the Adjustment for W1 ���������������������������������������������������������������������������������������31 11 Calculating the Adjustment for W1 ���������������������������������������������������������������������������������������32 12 Calculating the Adjustment for W1 ���������������������������������������������������������������������������������������33 21 Calculating the Adjustment for W1 ���������������������������������������������������������������������������������������34 22 Calculating the Adjustment for W1 ���������������������������������������������������������������������������������������35 31 Calculating the Adjustment for W1 ���������������������������������������������������������������������������������������36 32 Updating Network Biases ������������������������������������������������������������������������������������������������������������36 Going Back to the Forward Pass �������������������������������������������������������������������������������������������������38 Hidden Layers ������������������������������������������������������������������������������������������������������������������������38 Output Layer��������������������������������������������������������������������������������������������������������������������������������39 Matrix Form of Network Calculation �������������������������������������������������������������������������������������������42 Digging Deeper ���������������������������������������������������������������������������������������������������������������������������42 Mini-Batches and Stochastic Gradient ����������������������������������������������������������������������������������������45 Summary�������������������������������������������������������������������������������������������������������������������������������������46 Chapter 4: Configuring Your Development Environment ����������������������������������������47 Installing the Java 11 Environment on Your Windows Machine ��������������������������������������������������47 Installing the NetBeans IDE ���������������������������������������������������������������������������������������������������������50 Installing the Encog Java Framework �����������������������������������������������������������������������������������������51 Installing the XChart Package �����������������������������������������������������������������������������������������������������52 Summary�������������������������������������������������������������������������������������������������������������������������������������53 vi Table of ConTenTs Chapter 5: Neural Network Development Using the Java Encog Framework ���������55 Example 2: Function Approximation Using the Java Environment ����������������������������������������������55 Network Architecture ������������������������������������������������������������������������������������������������������������������57 Normalizing the Input Data Sets �������������������������������������������������������������������������������������������������58 Building the Java Program That Normalizes Both Data Sets ������������������������������������������������������58 Building the Neural Network Processing Program ����������������������������������������������������������������������69 Program Code �����������������������������������������������������������������������������������������������������������������������������77 Debugging and Executing the Program ������������������������������������������������������������������������������������100 Processing Results for the Training Method �����������������������������������������������������������������������������101 Testing the Network ������������������������������������������������������������������������������������������������������������������102 Testing Results ��������������������������������������������������������������������������������������������������������������������������106 Digging Deeper �������������������������������������������������������������������������������������������������������������������������107 Summary�����������������������������������������������������������������������������������������������������������������������������������108 Chapter 6: Neural Network Prediction Outside the Training Range ����������������������109 Example 3a: Approximating Periodic Functions Outside of the Training Range ������������������������110 Network Architecture for Example 3a ���������������������������������������������������������������������������������������114 Program Code for Example 3a ��������������������������������������������������������������������������������������������������114 Testing the Network ������������������������������������������������������������������������������������������������������������������132 Example 3b: Correct Way of Approximating Periodic Functions Outside the Training Range ��������������������������������������������������������������������������������������������������������������������������134 Preparing the Training Data �������������������������������������������������������������������������������������������������134 Network Architecture for Example 3b ���������������������������������������������������������������������������������������137 Program Code for Example 3b ��������������������������������������������������������������������������������������������������138 Training Results for Example 3b ������������������������������������������������������������������������������������������160 Testing Results for Example 3b �������������������������������������������������������������������������������������������162 Summary�����������������������������������������������������������������������������������������������������������������������������������163 Chapter 7: Processing Complex Periodic Functions ���������������������������������������������165 Example 4: Approximation of a Complex Periodic Function ������������������������������������������������������165 Data Preparation �����������������������������������������������������������������������������������������������������������������������168 vii Table of ConTenTs Reflecting Function Topology in the Data ����������������������������������������������������������������������������������169 Network Architecture �����������������������������������������������������������������������������������������������������������176 Program Code ���������������������������������������������������������������������������������������������������������������������������176 Training the Network �����������������������������������������������������������������������������������������������������������������200 Testing the Network ������������������������������������������������������������������������������������������������������������������202 Digging Deeper �������������������������������������������������������������������������������������������������������������������������205 Summary�����������������������������������������������������������������������������������������������������������������������������������206 Chapter 8: Approximating Noncontinuous Functions �������������������������������������������207 Example 5: Approximating Noncontinuous Functions ���������������������������������������������������������������207 Network Architecture �����������������������������������������������������������������������������������������������������������211 Program Code ���������������������������������������������������������������������������������������������������������������������������212 Code Fragments for the Training Process ����������������������������������������������������������������������������226 Unsatisfactory Training Results �������������������������������������������������������������������������������������������������230 Approximating the Noncontinuous Function Using the Micro-Bach Method ����������������������������232 Program Code for Micro-Batch Processing �������������������������������������������������������������������������������233 Program Code for the getChart() Method ����������������������������������������������������������������������������257 Code Fragment 1 of the Training Method ����������������������������������������������������������������������������262 Code Fragment 2 of the Training Method ����������������������������������������������������������������������������263 Training Results for the Micro-Batch Method ���������������������������������������������������������������������������269 Test Processing Logic ���������������������������������������������������������������������������������������������������������������275 Testing Results for the Micro-Batch Method �����������������������������������������������������������������������������279 Digging Deeper �������������������������������������������������������������������������������������������������������������������������281 Summary�����������������������������������������������������������������������������������������������������������������������������������288 Chapter 9: Approximating Continuous Functions with Complex Topology �����������289 Example 5a: Approximation of a Continuous Function with Complex Topology Using the Conventional Network Process ���������������������������������������������������������������������������������289 Network Architecture for Example 5a ����������������������������������������������������������������������������������292 Program Code for Example 5a ���������������������������������������������������������������������������������������������293 Training Processing Results for Example 5a �����������������������������������������������������������������������307 viii Table of ConTenTs Approximation of a Continuous Function with Complex Topology Using the Micro-Batch Method �������������������������������������������������������������������������������������������������310 Testing Processing for Example 5a �������������������������������������������������������������������������������������314 Example 5b: Approximation of Spiral-Like Functions ���������������������������������������������������������������340 Network Architecture for Example 5b ����������������������������������������������������������������������������������344 Program Code for Example 5b ���������������������������������������������������������������������������������������������345 Approximation of the Same Function Using the Micro-Batch Method ��������������������������������������362 Summary�����������������������������������������������������������������������������������������������������������������������������������392 Chapter 10: Using Neural Networks to Classify Objects ���������������������������������������393 Example 6: Classification of Records ����������������������������������������������������������������������������������������393 Training Data Set �����������������������������������������������������������������������������������������������������������������������395 Network Architecture ����������������������������������������������������������������������������������������������������������������399 Testing Data Set ������������������������������������������������������������������������������������������������������������������������399 Program Code for Data Normalization ��������������������������������������������������������������������������������������401 Program Code for Classification �����������������������������������������������������������������������������������������������407 Training Results ������������������������������������������������������������������������������������������������������������������������436 Testing Results ��������������������������������������������������������������������������������������������������������������������������446 Summary�����������������������������������������������������������������������������������������������������������������������������������447 Chapter 11: The Importance of Selecting the Correct Model ��������������������������������449 Example 7: Predicting Next Month’s Stock Market Price ����������������������������������������������������������449 Including Function Topology in the Data Set �����������������������������������������������������������������������������457 Building Micro-Batch Files ��������������������������������������������������������������������������������������������������������459 Network Architecture ����������������������������������������������������������������������������������������������������������������465 Program Code ���������������������������������������������������������������������������������������������������������������������������466 Training Process ������������������������������������������������������������������������������������������������������������������������500 Training Results ������������������������������������������������������������������������������������������������������������������������502 Testing Data Set ������������������������������������������������������������������������������������������������������������������������509 Testing Logic �����������������������������������������������������������������������������������������������������������������������������514 Testing Results ��������������������������������������������������������������������������������������������������������������������������524 ix Table of ConTenTs Analyzing the Testing Results ���������������������������������������������������������������������������������������������������527 Summary�����������������������������������������������������������������������������������������������������������������������������������529 Chapter 12: Approximation of Functions in 3D Space ������������������������������������������531 Example 8: Approximation of Functions in 3D Space ����������������������������������������������������������������532 Data Preparation ������������������������������������������������������������������������������������������������������������������532 Network Architecture �����������������������������������������������������������������������������������������������������������537 Program Code ���������������������������������������������������������������������������������������������������������������������������538 Processing Results ��������������������������������������������������������������������������������������������������������������553 Summary�����������������������������������������������������������������������������������������������������������������������������������561 Index ���������������������������������������������������������������������������������������������������������������������563 x

Description:
Use Java to develop neural network applications in this practical book. After learning the rules involved in neural network processing, you will manually process the first neural network example. This covers the internals of front and back propagation, and facilitates the understanding of the main p
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.