Differentiation Deliverable: Artificial Intelligence vs Machine Learning vs Neural Networks/Deep Learning
The topic I have selected for my differentiation assignment is Artifical Intelligence. While I have had some prior experience in the subject (started Andrew Ng's Machine Learning course available on Coursera many moons ago), in my recent research I have found that there are many terms in the field that get thrown around but the differences may not be explicitly understood. At least, that was the case for me. Thus, the objective of this gist will be to briefly explore and define the following terms and how they are alike and different: Artificial Intelligence, Machine Learning, Neural Networks and Deep Learning.
While many definitions of AI differ, a very basic definition is, "the ability of a computer program to function like a human brain". It is generally used in areas such as image processing, natural language processing, autonomous vehicles, strategic game systems, and content delivery network routing. A very basic form of AI is known as Symbolic AI and is generally comprised of a large number of if-then statements. AI can be categorized into three groups: Narrow AI, Aritificial General Intelligence, and Superintelligent AI. Narrow AI is aritificial intelligence designed for one skill, such as playing chess. AGI, or Artificial General Intelligence, is a computer program that is human-level at a range of tasks. Superintelligent AI is when a computer program has exceeded the capabilities of a human in practically every field.
The proceeding terms we will examine are all subsets of AI.
Machine learning can be defined as "programs that alter themselves", that is as they are inputted with more data they are able to adjust themeselves to more accurately predict the desired output. Another definition provided by Arthur Samuel in 1959 goes as, "field of study that gives computers the ability to learn without being explicitly programmed."
While all machine learning programs are examples of AI, not all AI is an example of machine learning. Two real world examples of the differences between the two would be IBM's DeepBlue, which beat Garry Kasparov in chess, and Google's DeepMind, which beat Lee Sedol at Go. Both are examples of Narrow AI, because they are skilled at one thing, but DeepBlue is an example of Symbolic AI, and DeepMind is an example of machine learning.
Machine Learning algorithms attempt to optimize along a certain dimension, and that dimension has three names: the error function /the loss function /an objective function
The machine learns by making guesses from a set of inputs and then measuring how wrong they are with the truth (often known as a training set). They then use that error measurement to modify the ML algorithm.
Neural networks and Deep Learning are a subset of Machine Learning. Neural Networks are, a set of algorithms, modeled loosely after the human brain, that are designed to recognize patterns. The difference between a neural network and a deep learning neural network has to do with the number of hidden layers between the input and output layer. Deep learning networks have more than one hidden layer, and have become the main player in Artificial Intelligence design as of late.
Artificial Intelligence is a buzz word these days, and what was interesting to discover is that is has been in and out of the public eye since it was first theorized, back in 1944. Today's artificial intelligence is largely based on Deep Learning Neural Networks, and are where a lot of research funding is going to solve such problems as autonomous vehicles, disease pathology, and natural language processing such as those found in devices such as Siri, Alexa, and GoogleHome. Some important things to consider for people who want to enter this field:
This field of computer science is math intensive. While many people in the field have graduate degrees or PhDs, it is not necessarily required. What is required is a good understanding of statistics, linear algebra, and calculus. Here is a FreeCodeCamp posting of someone's resources to learning about Machine Learning (https://www.freecodecamp.org/news/the-best-resources-i-used-to-teach-myself-machine-learning-part-1-292232d167/).
Going into this I was hoping to get a beginner's understanding of machine learning, and to be able to start going into Pytorch tutorials and writing a very basic neural network. However, the breadth of knowledge required to accomplish this feat is more than I initially anticipated, and so I opted for a more general overview of the field. Moving forward I think I have found a great deal of resources that will assist me into learning more about Machine Learning, and I think it will help me overall in interviews. In both interviews where I made it to the final round, the subject of AI was brought up, and so at least now I can speak from a very slightly more advanced viewpoint than before. Hopefully, over time that knowledge base will grow.