What is AI, really?
Artificial Intelligence is a broad term that refers to any computer program that has human-like capabilities. For example, a chat bot is an AI program because it does a thing that typically only a human could do. Often this label is only given to complex algorithms, but in fact very simple programs can be classified as AI. For example, the code below tries to emulate the human quality of decision making, while very simple, it can still be labeled as an AI program.
price_of_banana = round(float(input("Price of a Banana: ")),2)
price_of_apples = 2.37
if price_of_banana > 10:
print("No way I'm buying that.")
elif price_of_banana > 3 and price_of_apples < 3:
print("I'll buy a apple instead.")
elif price_of_banana < 3:
print("Yes, I will buy this!")
else:
print("Hmm")
Machine learning is a step up from general AI; unlike the example above, ML is able to use data to increase the accuracy of its predictions. Some types of models that are classified and ML are Linear Regression and Random Forests . These are most often used in data analysis, because they are good at finding patterns. One problem with these models is the complexity of their algorithms. When diagnosing errors in the model or trying to understand its path to its conclusion it becomes hard to track the model's thought process. Meaning it's hard to learn the patterns the model is finding as a human.
Deep Learning is a subset of ML, it differentiates itself due to its brain-like structure. DL networks (also known as Neural Nets) consist of layers, each one has nodes with a value, the first layer is the imputed data point, the following layers take the output of the previous layer and perform an arithmetic operation. Each node takes the sum of all the previous nodes and times them by a unique weight, this sum is then added to a bias which allows a node to suppress or amplify itself. This result is then put through an activation function which changes the number, which can be used to manage rouge nodes like with Relu or for classification model outputs like Softmax. The final layer is the output layer, where the model outputs its prediction. The use of neurons allows for complex algorithms that need little human intervention to train. Neural Nets can be used in a range of tasks from image and audio recognition to image generation. Due to their complexity, almost any task can be achieved using a Neural Net.