What is AI? (Intro)

In 1950s, Marvin Minsky and John McCarthy defined Artificial Intelligence as any task performed by a machine that would have previously been considered to require human intelligence. But today definition is slightly changed. Today we are not trying to build machines with self-awareness. For example, Francois Chollet (creator of the Keras) has different kind of definition for intelligence. There are several reasons behind it. 

Firstly, if we are talking about making machines intelligent we can’t consider only the human intelligence. There are intelligent systems beyond humans. For example, ants. Today we have ant colony algorithm to find the best possible way to reach any point on anywhere. As humans we don’t have such a skill and it is difficult for us to acquire it biologically. Francois Chollet said intelligence is tied to a system’s ability to adapt and improvise in a new environment, to generalise its knowledge and apply it to unfamiliar scenarios. Also he said Intelligence is not skill itself, it’s not what you can do, it’s how well and how efficiently you can learn new things.

Secondly we had Good Old Fashioned AI. We tried to explain everything in the universe to a machine in order to make it intelligent. As humans understanding a glass of water is not something difficult. We look at the glass and somehow we know why the water inside of it is not floating on air or pouring into floor or we know that we should drink it because we need it. But explaining those stuff to a machine requires to answer many different questions. Why that water does not pour into the floor? Because there is gravity. Well then what is gravity and why there is gravity? or why should a human feel thirsty? This approach is not beneficial. It will take too much time and earning money is difficult with this model. No one needs a talking cactus. So this approach is failed and caused first AI winter. Where everyone thought that the AI is just a fine dream nothing more nothing less.

After the first AI winter we decided to build AI on statistics. More generally on data science. Now we are building AI architectures to classify objects in an image, sounds in a music, words of a human speaking or predicting what will a human say after a specific word, what will a person do after smiling, when we run out of milk. This approach gave us ability to focus on the relationships between data. So we stop focusing on what a specific data means by itself. 

Today’s Artificial Intelligence models are based on artificial neurons which are imitating the biological neurons. A modern artificial neuron has an input, output, weight and a specific mathematical function which directly related with the weight of the neuron. These neurons are used to solve the relationship between data. We create layers of neurons and we add those layers one after another to build a complete neural network. In training we use the error rate of outputs of many neurons and we use it to update the weights of neurons. Then we use this architecture for classification or regression challenges. 

            How AI transforms Business?

            If we take a phone in our hand and inspect it carefully. What we can we see? A camera, a microphone, a speaker, a screen and many apps. Where is AI? We know that the AI is not a speaker or microphone. Also an AI cannot be an app’s itself. So where is it? AI empowers everything that you can see in a smart phone. It is not the main object it is the thing what makes a main object useful and powerful. When you listen music you can hear the effect of AI. It makes the music you listen more clear and enjoyable. When you speak on phone or record your voice you can witness the power of AI, it makes your voice clear, it decreases the background noises etc… When you enter the Instagram you can see many people recommended to you or when you start listening music on Spotify or YouTube you can see a part “you may like these musics”, “we choose these for you”. Yes, these are all powered by AI. 

            What AI means for your business? We know that many big companies are using AI but how can you use it to transform your business? An AI makes your products special for the end-user. When you use Netflix you witness the transform of it. At the beginning it is just a platform to watch series or movies but at some point it becomes a platform that offers you movies and series which you may like. You start discovering and you start spending much more time on Netflix. This is the result of specialization. The product itself becomes suitable for user and user starts to feel like special. So, you can use AI for specializing your product for every user. Also, every user leaves some data behind. You can understand which product is liked by your users and why they liked it.

            There should be another place for language processing. We know that there are many digital assistants like Amazon’s Alexa or Apple’s Siri. But how can anyone use language processing for your business. First of all, you have the power of Twitter. There are too many people who are making anonymous comments about products on Twitter. You can use AI to understand why people don’t like a product, what is the thing that makes a specific products good for users or bad for users.  Another thing about language processing is you can build assistants (chat bots) for your customers. When they have a problem or when they have a common question you can make it handled by a chat bot and save the time of your human resource.

            You can also use AI to make the product’s itself. If you have a factory to manufacture objects you can use AI to ensure workplace safety, have optimized manufacturing or you can even make all manufacturing process handled by AI powered machines. This is where Industry 4.0 begins. But using AI to make the product itself is not limited by factories. There are many generative AI models out there. You can make an AI design your product or make your designed product more suitable for your users by using AI. 

            Machine Learning and Deep Learning

            When you start learning things about modern Artificial Intelligence almost the first question you may have in your mind is “what is the difference between Machine Learning and Deep Learning?”. They sound like the same thing. They both learning algorithms. They both a subtopic of Artificial Intelligence. But the fact is there is a thin line between them. Deep Learning is a part of Machine Learning but it’s capabilities differ. 

            Machine Learning gives computers the ability to learn without being explicitly programmed. It is the point where statistics and computer science meet. We can use Machine Learning to make machines do some work without programming them to do that work. For example: Let’s assume that we have a set A. A = {1,3,5,7,9}. We need to further the set A by using a rule. We have two options here. As we can see the difference between two sequential numbers is 2. So we can write a program and add 2 to the last element of set A. Another option is using the Machine Learning. We may use a Machine Learning Algorithm let’s say linear regression and make it learn the rule in set A by finding the relationship between the elements of set A and make it “predict” the next element of set A. The problem here is; it will not produce a completely correct result. It can give you answers like 10.99, 10.98 or 11.01 but not 11.  

            There are several types of learning algorithms. A Machine Learning Algorithm’s learning process can be supervised, unsupervised or reinforcement. What is Supervised Learning? Supervised Learning is like a learning process with a teacher. The data you have is labelled and the goal of your algorithm is learning through the correct answers in input data and use what learnt from input to make predictions on new data. You can make regression or classification with supervised learning algorithms. But in un-supervised Learning the data you have is unlabelled. You can use un-supervised learning when you have no clue about the result. The aim of the un-supervised learning is finding the structure in data and gaining the knowledge. Reinforcement Learning is completely another case. It learns from the experience. In other words, trial and error. This is more like how a person learns a new thing. Imagine you are running and there are several obstacles on the road. If you fall down because of an obstacle you start from the beginning. Would you fall down because of the same obstacle? Most probably the answer is no. This is exactly what Reinforcement Learning Algorithms do.

            Deep Learning Algorithms analyses data similar like humans. Instead other Machine Learning Techniques Deep Learning uses Artificial Neural Networks. An Artificial Neural Network consists several layers. Commonly they called as Input layer, Hidden layers and Output layer. It is possible to make a network deeper by adding more hidden layers. The values of hidden layers are not observable in training set. Because they are calculated in training process. Deep Learning requires less intervention by humans. But, a deep learning algorithm requires vast amount of data and computing power instead machine learning. Feature extraction is fully automatized in Deep Learning.

            Neural Network Architectures

            There are many types of Neural Network Architectures. These architectures are classified according to their way of working, layers that used to build the architecture etc… In this article we will briefly explain some of the common architectures. 

            Convolutional Neural Networks (CNNs) are commonly used for machine vision, image processing and video processing applications. What makes them special is the Convolutional layers that we use to build the architecture. They are inspired by the pattern of interconnection between neurons similar to the organization of the animal visual cortex which proposed by Hubel and Wiesel. The general architecture of a CNN consists of one input layer, one output layer and the hidden layers. A hidden layer could be a convolutional layer, pooling layer, batch normalization layer or fully connected layer. Working of a convolutional layer likes a reaction of a neuron in the visual cortex to a specific stimulus. They are consisting of filters to create a feature map in order to detect features of an input.

            Recurrent Neural Networks (RNNs) and Long-Short Term Memory (LSTM) architectures are commonly used in language models and time-series. In RNNs the output of a specific layer is saved and then feed to the input of the layer. This is more like how short term human memory works. So, in RNNs if the output prediction is wrong, architecture self-learns and makes the right prediction with backpropagation. 

            Generative Adversarial Networks (GANs) consist two networks. One is discriminator other is generator. The generator network generates data and the discriminator evaluates how successful is the generated data according to the training set. Usually the generator is a De-Convolutional network and Discriminator is a Convolutional network. Generally, we use them to generate fake images or videos. They can also be used to generate artwork. 

            AI on Linux

            Linux is a powerful ecosystem for programming also many distributions are free and open-source. The question here is “Why AI on Linux?”. As mentioned Artificial Intelligence itself is a technology to empower systems and Linux is a good place for many systems. It gives you an advantage of installing frameworks or downloading pre-trained networks easily. Also many researchers are doing their research on Linux and shares code of conduct in Linux. So, it makes easier to use the models developed by them in Linux. But first of all what is awaiting you when you move on Linux.

            Tensorflow is a powerful framework to develop simplest to complicated models. You can build an architecture from ground to top in Tensorflow. In many Linux distributions you can use package manager to download Python, Anaconda and Tensorflow framework. Also, Keras acts as an interface to the Tensorflow framework. You need a backend to power the Keras and Tensorflow is a great candidate for it. You can use them both in Linux distributions. 

            Torch or Pytorch is another common framework for machine learning applications. It is highly advanced and gives you the opportunity to control even the smallest part of an architecture. You can easily install it on many Linux distributions like Ubuntu. 

            There is also Caffe framework for deep learning applications. It is originally developed at University of California, Berkeley. Completely open-source and very powerful. It is possible to use many pre-trained deep networks like AlexNet, MobileNet and VGG16 along with caffe. Linux is the where you should use this framework. Installing it on other Operating Systems is very complicated. But you can easily build and install caffe on many Linux distributions.

            Training a neural network consumes too much computing power. One way to overcome it is using GPUs for parallel processing. They significantly decrease the time required to train a network. CUDA cores are commonly used in this area. In order to use them you should install CUDA and NVIDIA drivers. CuDNN library is required to perform training networks on GPU. The great part is many frameworks support GPU computing. Only thing that you have to do is installing required libraries and drivers. If you are using a Linux distribution you can download and run the installer.