Preface

The life of a programmer can be described as a continual never-ending learning pathway. A programmer always faces challenges regarding new technology or new approaches. Generally, during our lives, although we become used to repeated things, we are always subjected to learn something new. The process of learning is one of the most interesting topics in science, and there are a number of attempts to describe or reproduce the human learning process.

The writing of this book was guided by the challenge of facing new content and then mastering it. While the name neural networks may appear strange or even give an idea that this book is about neurology, we strived to simplify these nuances by focusing on your reasons for deciding to purchase this book. We intended to build a framework that shows you that neural networks are actually simple and easy to understand, and absolutely no prior knowledge on this topic is required to fully understand the concepts we present here.

So, we encourage you to explore the content of this book to the fullest, beholding the power of neural networks when confronting big problems but always with the point of view of a beginner. Every concept addressed in this book is explained in easy language, and also with a technical background. Our mission in this book is to give you an insight into intelligent applications that can be written using a simple language.

Finally, we would like to thank all those who directly or indirectly have contributed to this book and supported us from the very beginning, right from the Federal University of Pará, which is the university that we graduated from, to the data and component providers INMET (Brazilian Institute of Meteorology), Proben1, and JFreeCharts. We want to give special thanks to our advisor Prof. Roberto Limão, who introduced us to the subject of neural networks and coauthored many papers with us in this field. We also acknowledge the work performed by several authors cited in the references, which gave us a broader vision on neural networks and insights on how to adapt them to the Java language in a didactic way.

We welcome you to have a very pleasurable reading experience and you are encouraged to download the source code and follow the examples presented in this book.

What this book covers

Chapter 1, Getting Started with Neural Networks, is an introductory foundation on the neural networks and what they are designed for. You will be presented with the basic concepts involved in this book. A brief review of the Java programming language is provided. As in all subsequent chapters, an implementation of a neural network in Java code is also provided.

Chapter 2, How Neural Networks Learn, covers the learning process of neural networks and shows how data is used to that end. The complete structure and design of a learning algorithm is presented here.

Chapter 3, Handling Perceptrons, covers the use of perceptrons, which are one of the most commonly used neural network architectures. We present a neural network structure containing layers of neurons and show how they can learn by data in basic problems.

Chapter 4, Self-Organizing Maps, shows an unsupervised neural network architecture (the Self-Organising Map), which is applied to finding patterns or clusters in records.

Chapter 5, Forecasting Weather, is the first practical chapter showing an interesting application of neural networks in forecasting values, namely weather data.

Chapter 6, Classifying Disease Diagnostics, covers another useful task neural networks are very good at—classification. In this chapter, you will be presented with a very didactic but interesting application for disease diagnosis.

Chapter 7, Clustering Customer Profiles, talks about how neural networks are able to find patterns in data, and a common application is to group customers that share the same properties of buying.

Chapter 8, Pattern Recognition (OCR Case), talks about a very interesting and amazing capability of recognizing patterns, including optical character recognition, and this chapter explores how this can be done with neural networks in the Java language.

Chapter 9, Neural Network Optimization and Adaptation, shows advancements regarding how to optimize and add adaptability to neural networks, thereby strengthening their power.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset