An introduction​ to Artificial Intelligence

Written by arun.cthomas3 | Published 2017/05/08
Tech Story Tags: machine-learning | tensorflow | neural-networks | artificial-intelligence | intelligence

TLDRArtificial General Intelligence (AGI) is the intelligence which can be as intelligent as human beings. The first super intelligent machine will be the last invention that human may ever need to make. There is no predefined definition for a Artificial General Intelligence. But in general it should be able to learn, represent knowledge, plan, take decisions under uncertainty, communicate in a natural language.via the TL;DR App

One of the key feature that distinguish us, humans, from every thing else in the world is intelligence. This ability to understand, apply knowledge and improve skills has played significant role in our evolution and establishing human civilisation. But many people (including Elon Musk) believe that the advancement in technology can create super intelligence that can threaten human existence.

“Within thirty years, we will have the technologicalmeans to create superhuman intelligence. Shortly after, the human era will be ended.” Vernor Vinge

In his article The Coming Technological Singularity:  How to Survive in the Post-Human Era written in 1993, Vernor Vinge explains Singularity , the possible causes, and how we can survive. Singularity is a point where our models (mental models to be precise) must be discarded and a new reality rules. This is possible by a self evolving intelligence which can improve more rapidly than we could ever imagine. This artificial super intelligence may possess more cognitive capabilities than gifted humans beings.

Nick Bostrom (author of Superintelligence: Paths, Dangers, Strategies) defines super intelligence as

“an intellect that is much smarter than the best human brains in practically every field, including scientific creativity, general wisdom and social skills.”

In his books he suggests that new super intelligence could replace humans as the dominant lifeform.

So what can be this much intelligent? It can be a specialised computational system, it can be a network of computing power, it can be a human-computer interface(hybrid) or it can be a biologically advanced brain.

The first super intelligent machine will be the last invention that human may ever need to make.

Since we are not yet there. We can look into other types of intelligence.

Artificial General Intelligence (AGI) is the intelligence which can be as intelligent as human beings. And perform intellectual tasks as we can do. The Singularity Summit (2012) predicted this may happen around 2040 based on inputs from experts. There is no predefined definition for a Artificial General Intelligence. But in general it should be able to learn, represent knowledge, plan, take decisions under uncertainty, communicate in a natural language and use these skills towards common goal(s) to be AI-complete.

The biggest mystery to solve when we are creating such an intelligence is that one should be able to figure out how human brain works. Means exactly how it works. That itself can make creating a General artificial intelligence much more tougher than one could ever imagine. Human brain is a state of the art machine which is a product of millions of years of evolution. It can simulate future form current state and give us consciousness. it can enable rational thinking. So even if we are able to find out how a single neuron works, it will be very difficult to know how this 20 W machine is able to load correct information at correct time or, distinguishes good and bad or, even distinguishes our loved one in a crowd. Also its not just that it was able to figure out our loved one, its also about the the feel that it can produce.

Ok, Now what is possible today? Why is Artificial Intelligence getting so much attention today? It has happened before also. For example, Claude Shannon was able to create hype on AI based on his works in 1960s, Fifth Generation Computer Systems from Japan which was intended for future development in artificial intelligence (in 1980s) is considered to be a failure. So what is different this time?

This time we have three importance factors in our favour. Almost unlimited computing power, efficient algorithms and enormous amount of data.

Most of the AI systems in place today are Weak Artificial Intelligence, which were designed to solve a specific problem. Even AlphaGo, which was able to beat human champions in board game Go is considered to be a narrow AI (Weak AI). Go is a more complex game than chess (Brute-force search will not help this time), its played on a 19x19 board. What makes Go complex is the the fact that the game is played purely by intuition and patterns from past experience and not by strict rules that experts can explain. Also in Go there is endless possibilities for each given move. Not only AlphaGo was able to pull out victory, but it was also able to make mystery move 37. Which is hard to explain how it did even with explained architecture of the system and how it was trained.

Its also worth mentioning that Google’s DeepMind division has submitted a paper PathNet: Evolution Channels Gradient Descent in Super Neural Networks which could be the stepping stone of first artificial general intelligence.

PathNet is a neural network algorithm that uses agents embedded in the neural network whose task is to discover which parts of the network to re-use for new tasks

Complex hmm? We will get it covered.

So we are moving away from Weak Artificial Intelligence to some thing more like AGI using neural networks. In such a case we will be able to predict the outcomes but the actions to that outcome will be unpredictable.

Some of us confuses between Machine Learning and Artificial Intelligence. Machine Learning is a type of artificial intelligence where we no longer write rules to generate intelligence rather we will create algorithm that can learn from data. In conventional programming we write a logic and give it an input, the program produces the output. In Machine learning we will give the system a set of inputs and outputs that is associated and the system will generate code for matching these input to output. Once that is done we can use the system to produce output from another set of input. The process is very similar to Data Mining. The key difference is that data mining is about extracting knowledge from data, where as machine learning is about learning to work on (or predict) future data from the actual data available now. Both Machine learning and Data Mining can contribute to Data Science.

Machine Learning it self can be classified based on the nature of learning into, Supervised Learning (Input and Output is specified for training), Unsupervised Learning (Only input is given to recognise patterns) and Reinforcement learning (Real world feed back is provided to system on the go). Other classifications are also available based on kind output produced like classification, regression etc.

Now what is a neural network? Artificial neural networks is a computing system that is used for Deep Learning. Deep Learning is a type of Machine Learning which includes blocks (Function Composition) which can be adjusted on the go to produce better results. This is done by adjusting blocks that are far away from output. Neural networks is about applying the same rules of human brain to generate intelligence. Its more about mimicking the human neurons on a silicon. Usually the blocks are arranged into multiple layers to form a deep neural network.

Neural networks itself can be of different types. Convolutional neural network is the one which is used for image recognition, where specific connections between nodes in different layers get activated to recognise images. There is also fully-connected neural networks with every node in one layer connected to every other node in next layer. Connection between nodes are called weights or parameters. These parameters can be changed over time. So Convolutional neural network can be considered as customised fully-connected neural networks. As the number of layers increases the capability of network also increases, but this comes at the cost of computational power.

So how can we create an intelligence, we need to write a program which contains a model, a loss function, an optimiser, training and evaluation logic. There are a bunch of libraries which can help us on this. We can use any library available. TensorFlow is the most popular open source software library for numerical computation using data flow graphs. It allows us to write computational graphs for deep learning. Python is the preferred language used in TensorFlow. Once we have the program, we will generate a computational graph and do Training on it based on actual data, to optimise parameters. Then there is the Inference part where we will be able use the graph to provide valuable insights.

Once training is complete we should evaluate our model before actual usage.

The training process can be computationally expensive and for which customised hardwares (TPU) are available also there are specialised cloud solutions (Cloud TPU) which can give us access to such hardwares.

Training will involve lot of optimization. Gradient descent is one of the most popular algorithms to perform optimization and by far the most common way to optimize neural networks. It tries to reduce the error in each layers by back propagating and changing weights based on loss function.

Modules which contain logic for training and evaluation is often called Estimators. Each machine learning library may provide a bunch of them for common purposes. There will be option for creating custom ones as well. TensorFlow also provides Canned Estimators which can be used in mobile and IoT devices.

From estimators we will be able to export saved models after training and evaluation. So that we can deploy this models some where else and do the inference part alone(Training can be expensive). Some specialised trained models are already available like Inception-V3, which is highly efficient in image recognition.

If one feels like starting with Machine learning is difficult, its not. Libraries like scikit-learn is so easy to start with. Even TensorFlow has made it really easy to start learning, with the implementation of keras api into Tensorflow. These kind of libraries enable us to build amazing projects which where considered to be the task of experts. May be sometimes we wonder is how the hell the system achieved what it achieved.

So to conclude, if we can imagine our intelligence as a sphere in space, there can be different spheres overlapped at different levels to represent all of human intelligence. The key point is the volume of space that contain all these spheres is not the limit of intelligence. There may exist far more different, beautifully complex kinds of intelligence. Its like the real universe where our galaxy is just a part of it. There are much more galaxies, complex kind of energies, and much more. In the same way intelligence can be far more advanced than our understandings.

But now with our current understanding we can use it for lot of amazing stuffs. Which include driving a car, generating art, getting accurate timely information processing tons of data, enabling high quality medical diagnostics, using an AI assistance which can help us to be more creative, or even writing an article with the help of AI enabled systems.

Thanks for your time.


Written by arun.cthomas3 | Software Engineer
Published by HackerNoon on 2017/05/08