# What is a Neural Network?

Neural Network is a form of machine learning that is modeled after the human brain. It involves creating an artificial neural network using an algorithm that incorporates new data to help the computer learn.

Neural Networks are used for performing deep learning. Just like neurons are the basic unit of the brain, the perceptron is the building block of a neural network that is used to accomplish simple signal processing. The perceptron is connected to form a large mesh network. Any system with a neural network performs a task for analyzing training examples that were labeled in advance. An example of such is the object recognition task where several objects of a specific type are presented to the neural network. The system will analyze recurring patterns and categorize new images.

Table of Contents

## How does a neural network learn?

Neural networks are not like other algorithms. You can’t program it directly for the task. Instead, they have certain requirements through which they are able to learn the information. Here are the learning strategies used for this:

**Supervised learning –**This is the simplest form of learning strategy as it involves a labeled dataset. The computer is fed this labeled data and the algorithm is modified until the dataset is able to get the desired results.**Unsupervised learning –**This form of learning is used when there isn’t any availability of a labeled dataset from which the computer can learn from. The neural network will analyze the dataset and a cost function will tell how far off the target was. Then, the neural network will make adjustments for increasing the algorithm’s accuracy.**Reinforced learning –**In this form of learning, the neural network will be reinforced for positive results. In case of negative results, the neural network is punished that forces it to learn over time.

## What is the history of neural networks?

Some of you might think that the neural network is a powerful modern computer technology. However, the idea of neural networks goes back to 1943. Two researchers from the University of Chicago – Walter Pitts, a mathematician, and Warren McCullough, a neurophysiologist wrote a paper with the title “A Logical Calculus of the Ideas Immanent in Nervous Activity”. The paper was published in the journal named Brain Theory and popularized the idea that activating neurons is a basic unit of brain activity. What was then an idea has now become the foundation for several real-world applications.

## How to design a neural network?

Every neural network application is different. However, there are some common steps involved in the development of such type of network including the following:

- Access the data and prepare it for the system
- Create the neural network
- Configure the inputs and outputs of the network
- Tune the weights, biases, and other network parameters for optimizing the performance
- Train the network
- Validate the results of the network
- Integrate the network in a production system

### Classifying and clustering shallow network

Deep Learning Toolbox and MATLAB provide apps and command-line functions to create, train, and simulate shallow neural networks. Because of the apps, the development of neural networks for tasks like classification, clustering, and regression becomes easy. Once you have used these tools to create your networks, you can generate MATLAB code automatically for capturing your work and automating your tasks.

### Improving the network

After classifying and clustering, comes preprocessing and postprocessing to improve the network. By preprocessing the inputs of the targets, the efficiency of a shallow neural network can be improved. Post Processing helps in performing a detailed analysis of the performance of a network. By using tools from MATLAB, you can:

- Reduce the input vectors’ dimensions using principal component analysis
- Carry out regression analysis between network response and corresponding targets
- Scale targets and inputs so that they are in the range [-1,1]
- Normalize the standard deviation and mean of the training data set
- Create the networks using automated data division and data preprocessing

Improving the network’s ability of generalizing involves preventing a common problem in designing artificial neural networks called overfitting. Overfitting occurs when a neural network has not learned generalizing to new inputs even after memorizing the training set. Even though it will produce a small error on the training dataset, it will have a much larger impact when the network is presented with new data. There are two methods for improving generalization:

**Regularization –**It modifies the performance function of the network. Performance function is the measure of error minimized by the training process. By including the size of the biases and the weights, regularization creates a network capable of performing well with the training dataset and exhibiting smoother behaviour with new data.**Early Stopping –**This involves using two datasets. The first one is the training set for updating the biases and the weights and the other one is the validation set that stops training when the network starts overfitting the data.

## What are the real-world applications of neural networks?

- Handwriting recognition – This real-world problem can be approached using an artificial neural network. The issue is that humans are able to recognize handwriting using a simple intuition, but for a computer, each handwriting is unique. Every handwriting has a different style and different spacing that makes it difficult to recognize it consistently.

Take an example of the letter A. It is created using three straight lines when two meet each other at the top and the third cross both halfway down. This structure makes sense to us. But, expressing this in a computer algorithm will be difficult.

For the artificial neural network, the computer must be fed training examples of handwritten characters that have been labeled as to which number or letters they correspond to. The algorithm will then start learning to recognize the characters. The accuracy of the algorithm will increase with the increase in the characters dataset. There are different applications of handwriting recognition including automated address reading on the latter, characterizing input for pen-based computing, and reducing bank frauds on the cheques.

- Another common artificial neural network problem is forecasting the financial markets. Also known as algorithmic trading, it is applied to different types of financial markets including stock markets, interest rates, various currencies, and commodities. For the stock market, a neural network algorithm is used for improving existing stock models, finding undervalued stocks, and using the deep learning aspects for optimizing the algorithm with the market changes.

Artificial neural networks offer inherent flexibility that can be applied for prediction problems and complex pattern recognition. That is why the scope of this field is increasing by the day. If this area of computer science interests you, you should enroll in a training program like Simplilearn’s AI and Machine Learning training bootcamp and take advantage of everything the field has to offer.