Table of Contents
Neural NetworksThe Math of Neural Networks: OverviewStage 1: Forward PropagationStage 2: Calculating The Total ErrorStage 3: Calculating The GradientsStage 4: Checking The GradientsStage 5: Updating The WeightsConstructing a Network: Hands on ExampleBuilding Neural Networks in PythonThe History of Neural NetworksAdditional ResourcesWhat Youll Find Inside:
Are you browsing this book in the Kindle store? Here are a few highlights:
Dont Waste Your Time
A few points to help you make the most of this book:
- This book is designed as a visual introduction to neural networks. It is for BEGINNERS and those who have minimal knowledge of the topic. If you already have a general understanding, you might not get much out of this book.
- You dont need to read front to back. Skip around to what you find the most helpful or is perking your interest. Weve included lots of links throughout the book to make this easy. Just click on them.
- We *slowly* layer in new terminology and concepts each chapter. This means that if you jump to chapter 4 without having read chapter 3, you might come across terminology that you do not understand. Be aware of this, and remember: you can always jump back to clarify a topic or concept.
Neural Networks: A Visual Introduction for Beginners by Michael Taylor
Neural Networks: A Visual Introduction for Beginners
by Michael Taylor
Published by Blue Windmill Media
(c) 2017 Blue Windmill Media
All rights reserved. No portion of this book may be reproduced in any form without permission from the publisher, except as permitted by Canadian copyright law. For permissions contact: matthew@bluewindmill.co
Cover by Blue Windmill Media
What Is A Neural Network? A Brief Overview
Ch. 1:
What is a Neural Network?
A Brief Overview
Neural networks have made a gigantic comeback in the last few decades and you likely make use of them everyday without realizing it, but what exactly is a neural network? What is it used for and how does it fit within the broader arena of machine learning?
In this chapter we are going to gently explore these topics so that we can be prepared to dive deep further on. To start, well begin with a high-level overview of machine learning and then drill down into the specifics of a neural network.
Machine Learning
Machine learning is the science of getting computers to act without being explicitly programmed, and it is our biggest step towards making artificial intelligence a reality. If you like movies, think Ex Machina or Transcendence or I, Robot - but just the good parts! Machine learning is a field within computer science that has gained incredible traction within the last few decades and it likely touches your life everyday.
From Google search to Uber rides and YouTube ads, machine learning is not only a buzzword but also increasingly being tested and used in countless industries to improve speed, reduce errors and boost efficiency.
Machine learning is all about algorithms - or rules - that are used to work with data and make predictions. For example, email providers such as Yahoo! and Gmail use algorithms to filter your email and keep spam out of your inbox.
On a high-level, spam filtering algorithms achieve this by being trained on what is spam and is not spam. For this to happen, the algorithm is fed thousands of emails labeled as spam and not spam, and after analyzing each email, the algorithm eventually learns how to spot spam by identifying common characteristics that separate it from legitimate, real email. These characteristics could be certain phrases or words, such as earn per week, no strings attached or even vacation.
There are many types of machine learning algorithms that are currently used, and there are a variety of ways they can be categorized. One of the easiest to understand is grouping by similarity and learning style.
Similarity
* This list is not comprehensive. There are many more algorithms and similarity categories.
Learning Style On a high level, there are three popular ways that machine learning can be approached:
#1: Supervised Learning: With supervised learning, the learning algorithm is presented with a set of inputs along with their desired outputs (also called labels). The goal is to discover a rule that enables the computer to re-create the outputs, or in other words, map the input to output.
For example, think of categorizing images of cats and dogs. To teach an algorithm what a dog is and a cat is, an algorithm would be presented with thousands of images of each, and each image would be labeled as dog or cat.
This label is the desired output for each image, and by analyzing each example the algorithm would eventually be able to classify new images of cats and dogs with very minimal error. *In reality this label is not a written word such as Dog or Cat, but a numerical representation of each label. Well dive more into this further on.
#2: Unsupervised Learning: With unsupervised learning, an algorithm is presented with a set of inputs but no desired outputs, which means the algorithm must find structure and patterns on its own. To link this to the supervised example above, if images of dogs and cats were fed into an unsupervised algorithm, each image would not have a label that identifies it as a cat or dog.
Instead, the algorithm would have to find patterns on its own as it assess the thousands of dog and cat images. Patterns could be the length of the animal, height, etc.
#3 Semi-Supervised Learning: Semi-supervised learning (SSL) is a mixture of the previous two learning styles, which means it is fed a combination of labeled and unlabeled inputs. Practically speaking, this means that SSL algorithms must find structure and patterns on their own but do have some help from labeled inputs.