**Artificial intelligence** has progressed rapidly over the years. You can see this progress from SIRI to the self-driving cars. Science fiction portrays AI as robots with human-like characteristics. Artificial intelligence makes it possible for machines, software, systems, and services to act reasonably according to their task and situation.

**Artificial Intelligence** can be defined as “the study and designing of intelligent agents” where an intelligent agent stands for a system that perceives its environment and takes actions which maximize its chances of success.

Artificial Intelligence technology works with the help of a number of tools. Some of them are described below :

**Tensor Flow****Keras****Scikit Learn****Theano**

Let’s have a look into these tools in detail

**1. TensorFlow**

- TensorFlow is an open-source library that helps in numerical computation using data flow graphs. Simply, TensorFlow is a library which can be used to build neural networks.
- If you want to build neural networks from the very initial stage and you don’t have TensorFlow then you will make all nodes, create interconnections between nodes, define relationships among nodes in the entire graph and do processing on it. But, if you have TensorFlow then it will be very easy for you to complete all these tasks at a faster speed.

**TensorFlow contains 3 main components :**

- TensorFlow(API): It consists of the APIs to define the models and train the models with the data.
- TensorBoard: It helps in analyzing, visualizing, and debugging TensorFlow graphs.
- TensorFlow Serving: It helps in deploying the pre-trained models and is capable of switching from old models to new models without any downtime

**2. Keras**

- Keras comes under one of the leading high-level neural network API’s. It is written in Python and also supports multiple back-end neural network computation engines.
- The features include being user-friendly, modular, easy to extend and to work with Python.
- Being easy to learn and easy to model building, Keras offers many advantages as well like broad adoption, support for a wide range of production deployment options, and strong support for multiple GPUs and distributed training.
- Moreover, Keras is backed by Google, Microsoft, Amazon, Apple, Nvidia, Uber, and others.

**3. Scikit-learn**

- Scikit-learn is a Python library that offers many unsupervised and supervised learning algorithms. It is built on technologies like NumPy, pandas, and Matplotlib.

The functionality provided by scikit-learn includes :

- Regression (Linear and Logistic Regression)
- Classification (K-Nearest Neighbors)
- Clustering (K-Means and K-Means++)
- Model selection
- Preprocessing (Min-Max Normalization)

This library is built upon the SciPy (Scientific Python) that needs to be installed before using scikit-learn. The stack includes:

- NumPy: Base n-dimensional array package
- SciPy: Fundamental library for scientific computing
- Matplotlib: Comprehensive 2D/3D plotting
- IPython: Enhanced interactive console
- Sympy: Symbolic mathematics
- Pandas: Data structures and analysis

Extensions for SciPy are conventionally named as SciKits. Therefore, the module provides learning algorithms and is named scikit-learn.

**4. Theano**

- Theano is also another Python library that allows evaluating mathematical operations including multi-dimensional arrays. It is mostly used in building Deep Learning Projects.
- It works faster on Graphics Processing Unit (GPU) rather than on the CPU. Theano attains very high speeds that give tough competition to C implementations for problems that involve a huge amount of data. It can also take advantage of GPUs which enables it to perform better than C on a CPU.
- You don’t have to use Theano directly if you are new to deep learning technology. You must use one of many popular Python projects that make Theano a lot easier to use for deep learning. The amount of Theano syntax made visible by the libraries varies.
- For Example, the Lasagne library provides convenience classes to create deep learning models but still expects you to know and make use of Theano syntax. This is good for beginners that already know or are willing to learn a little Theano as well.

**What are Neural Networks?**

- A neural network is a kind of machine learning that can model itself after the human brain. Basically, a neural network is a series of algorithms that allows the computer to learn by incorporating new data.
- As we know that the basic unit of the human brain is a neuron, so the essential building block of an artificial neural network is a perceptron which accomplishes simple signal processing, and these are then connected into a large mesh network.
- They can perform deep learning as well. Deep learning is a branch of Machine Learning that uses different types of neural networks. The algorithms used in it are inspired by the way our brain functions.

**There are different types of Neural Networks which are discussed below:**

Different Types of Neural Networks include

**Feedforward Neural Network – Artificial Neuron : **

- This is one of the simplest types of artificial neural networks. In this, the data moves in only one direction from the first tier onwards until it reaches the output node.
- There is no backpropagation and data moves in one direction only, unlike the other complex types of neural networks. A feedforward neural network may have a single layer or hidden layers..
- In this neural network, the sum of the products of the inputs and their weights are calculated and they are then fed to the output.

- Feedforward neural networks are utilized in technologies like face recognition and computer vision.

**Recurrent Neural Network(RNN) :**

- A Recurrent Neural Network is a type of artificial neural network in which the output of a particular layer is saved and then fed back to the next input. This predicts the outcome of the layer.
- The first layer is formed in the same way as it is in the feedforward network by calculating the sum of the weights and features. However, in the next layers, the real recurrent neural network process begins.
- From the next step, each node remembers some information that it had in the previous time step. The neural network, as usual, begins with front propagation but also remembers the information it may need to use later.
- If in any case, the prediction gets wrong, the system self-learns and improvises in making the right prediction during the backpropagation. This neural network is very effective in text-to-speech conversion technology.

**Convolutional Neural Network : **

- A CNN includes one or more than one convolutional layers. These layers are either completely interconnected or pooled.
- Before passing the result to the next layer, the convolutional layer applies a convolutional operation on the input. Due to this convolutional operation, the network can get deeper but with much fewer parameters.
- Due to this property, CNN shows very effective results in image and video recognition, natural language processing, and recommender systems.
- Applications of CNN include image analysis, recognition in agriculture where weather features are extracted from satellites and so on.

**Multilayer Perceptron :**

- A multilayer perceptron works on three or more layers. It classifies data that cannot be separated linearly. It is a type of artificial neural network that is connected with each and every node.
- This neural network uses a nonlinear activation function (mainly hyperbolic tangent or logistic function).

Applications of multilayer perceptron include speech recognition and machine translation technologies.