# Artificial Neural Networks

UNDER CONSTRUCTION - SORRY BUSY AS A MOFO
**Artificial Neural Networks (ANN)** (or more commonly known as **Artificial Intelligence**) have become the most prominent research topic in modern computer science as we are entering the golden age of A.I., the use of machine learning and deep learning have become a common use for practical and intensive purposes.

## Contents

- 1 Artificial Neural Networks
- 2 Machine Learning Algorithms
- 3 Designing the Structure for your Neural Network
- 4 MathWorks, TensorFlow & Other Tool Use for Artificial Intelligence.
- 5 Deep Learning Neural Networks
- 6 Developing Data Sets
- 7 Crawling the Internet
- 8 Writing your own code for your neural network

## Artificial Neural Networks

**Artificial Neural Networks** are simple to complex series of data representation within a network that changes according the certain algorithms applied with the phases of the structure. The artificial neural network was initially inspired by biological neural networks and their functions of processing input and output data. Within A.I. the biological 'neurons' are represented as **nodes** within an ANN which are systems of interconnected points exchanging messages between one another and have numeric weights/constraints applied to them that allow these neural nets to adapt/alter input data thus creating the Artificial Intelligence's ability to "learn".

These nodes within the network can be thought of as phases within a neural net where data can be processed, stored or gathered. Information can flow readily throughout these nodes and can be modified by the algorithms the architect chooses to weigh on them. There are a variety of algorithms available for use within neural networks and these can be interchangeably placed depending on the structure of the ANN and what the intended use/purpose is.

## Machine Learning Algorithms

Machine Learning Algorithms are the backbone of Artificial Neural Networks as they are what allow the neural network to created 'learned' material through the constraints placed on the data by the algorithms.

There are various types of Machine Learning Algorithms which are used to comprise neural nets. The main include **Supervised Learning**, **Unsupervised** and **Semi-supervised**.

**Supervised** machine learning algorithms consists of target/outcome variables (dependent variables) which are predicted from a given set of predictors (independent variables). This means that by using these sets of variables, we generate a function that maps inputs to desired outputs. In other words, we determine predictable output data representation.

The most common types of **Supervised Learning** algorithms include:

- Regression
- Random Forest
- KNN
- Logistic Regression

**Regression Algorithms**

Regression algorithms are forms of analysis which create predictive modeling techniques within Supervised and Semi-Supervised Learning. This analysis estimates the relationship between the dependent variable(s) (target[s]) and independent variable(s) (predictor[s]).

Although there are many forms of regression algorithms,the two main types of regression techniques used within Machine Learning:

**Logistic Regression****Linear Regression**

**Logistic Regression**

**Linear Regression**

**Random Forest Algorithms**

**KNN Algorithms**

**Logistic Regression Algorithms**

**Semi-Supervised** or **Reinforcement Learning** Algorithms is when the machine is trained to make specific decisions and are exposed to environments where it trains itself continually by using trial and error. These machine learning algorithms learn from past experience and try to capture the best possible knowledge to make accurate business decisions.

An example of **Semi-Supervised** Learning includes:
Markov Decision Process

"Unsupervised Learning" Algorithms are algorithms that are applied within a neural network when there is no target or outcome variable to predict/estimated. An example use of these algorithms could be used for clustering population in different groups.

Common Examples of **Unsupervised Learning** Algorithms include:
**Apriori** algorithm
**K-means**algorithms

## Designing the Structure for your Neural Network

## MathWorks, TensorFlow & Other Tool Use for Artificial Intelligence.

## Deep Learning Neural Networks

## Developing Data Sets

Developing your own data sets are what allows you to customize neural networks for your own specific needs. Whether gather on your own or by data scientists, the key to having a successfully A.I. lies behind the ability to gather and create optimal data examples.

The best way to gather information is though the abundance of what is available on the internet. Web crawlers are the best way to gather information and you have the option to use pre existing web crawlers/scraping tools or develop your own

The most popular web crawlers available are:

## Crawling the Internet

## Writing your own code for your neural network

The building blocks of Artificial Neural Networks are "Machine Learning Algorithms" which are algorithms that are explicitly developed to allow computers/hardware to learn without specifically being 'programmed'. The ability of these algorithms to train data is altered by the developer who trains the algorithms based on specified input and output values. The alteration in the input data and output data within the neural network is affected by its' 'constraint'.

Here is a arbitrary example of a input-output node to node alteration within a neural network: