 What is intelligence? So say we build a classifier that distinguishes between cats and dogs. Is this system intelligent? Let's say we build a neural network that learns how to play chess. Now is this intelligent? Is it more intelligent than the dog cat classifier? My goal for this video isn't really to answer these questions definitively. It's to get you thinking about how we solve AI today and how that actually might not be the way to make AI intelligent to begin with. Intelligent systems should ideally resemble how humans would solve problems. Based on this intuition of intelligence, the chess AI and the dog cat classifier neural networks have a few shortcomings. So for one, they require too many samples for training. We need the AI to look at thousands of dog and cat images for it to classify between the two. And humans only need to look at dogs or cats just once or twice to understand the difference between them. And another shortcoming is task generalization. We have a system that distinguishes between cats and dogs, but that same system can't determine the types of flowers, even though they are very similar tasks. And the same shortcomings applies for the chess AI. The chess AI needs to look at thousands of plays to begin even understanding the game. And even when perfect, it cannot generalize to say checkers. The dog cat classifier and the chess AI exhibit no generalization or local generalization. It is at the bottom tier of this pyramid of generalizing tasks. A characteristic of such task specific systems is that the developer can account for any possible scenario. So let's take the example of the chess AI. It's been trained for thousands of boards and is now playing an unseen board. The opponent makes a haphazard move where the bishop moves from C8 to F5. This might be a good move or it might be a bad move. Whatever it is, it is a move that's in the realm of possibility in the mind of the creator of the AI. In other words, I wouldn't be surprised by any valid move made on this board. Our AI can handle it. But we could take this up a notch with broader generalization. Consider the case of a self-driving car. You probably teach the car some general rules like, stay between the lanes, stop on red, go on green. But unlike the chess AI, there can be situations that occur where the developer hasn't accounted for it. Like a cat suddenly walking in the middle of the street. The lane marker paints being less noticeable or like freak drivers just trying to cut you off. There are many ways each of these can occur. So a self-driving car has to be proficient in a multitude of tasks to accomplish the broader task of driving a car in the real world. We say such AI needs to exhibit broader generalization. This is the type of intelligence that is under heavy research and there aren't many systems today that are able to actually do these. Now there is an even higher tier of intelligence called extreme generalization. This is the ability of using past experience to pick up on novel tasks quite quickly. Humans are the only subjects known to exhibit this extreme generalization. For example, if you haven't played checkers, you can pick it up easier if you've played chess because of its similarities with the game. Now we've talked about all tiers of intelligence. But what exactly is intelligence? I'll strip this definition from the paper titled on the measure of intelligence. And this is where they've defined intelligence quite formally. And they write, the intelligence of a system is the measure of its skill acquisition efficiency over a scope of tasks with respect to priors, experience and generalization difficulty. Okay, so that's like a mouthful and I'm going to pick this apart with the example of a self-driving car AI. So in this case, the system is the self-driving car. The skill acquisition is some performance metric that we want to optimize. The tasks are, well, they can be a multitude of them. Like keeping between the lanes could be one task, detecting light colors from the street lights could be another task, determining the distance from the car in front to this current car could be another task and so many others. And the priors and experience, well, they're the pre-trained or training data. This definition also works for comparing intelligence across systems. So let's say that we want to compare two systems A and B to determine which is more intelligent. System A has a performance of 80%, system B has a performance of 90%. But system A has been fed one million training examples and system B has been fed say 100 million examples. Oh, and also, A is a cat dog classifier while B is a self-driving car. Now, because A has significantly less training data and it is also a much different problem of a different level of generalization than B, it is quite unfair to make the comparisons directly. And this is why we see a bunch of qualifications in the definition of intelligence to ensure that the stakes are the same between the systems. So that's easier to compare. Now, without understanding of intelligent systems, let's hop back to the question that we wanted to solve. Using limited data, is it possible for a system to generalize across different tasks? To answer this, the abstraction and reasoning corpus or the ARC corpus was introduced. This is like an IQ test for intelligent systems where we feed the system some three to four examples of the input and output patterns and then test the system against an unseen input to see if it generates the correct output pattern. Now, this type of data set is interesting since it requires an intelligent system to do two things. The system would need to learn from limited examples like a human and the system would also need to learn different tasks like a human. And these two points are actually the shortcomings of current machine learning systems that we outlined before. So in this set of examples, a system would learn to fill the bounded regions with yellow. In this example, the system would learn to continue the pattern in a vertical direction. In this example, the system would translate the base of every shape by one unit to the left. Each of these sets of samples train the AI to do different things and different tasks. And this Kaggle Notebook here visualizes the data set really well. I'll link it down in the description below so you can check it out. So now the big question, how do we solve this given just two or three examples? How do we get the computer to actually produce these amazing stellar outputs? Well, I don't have an answer for that. And all I can say is that the traditional machine learning approach fails in both regards. We need some examples to learn a localized task, but I'm reading through some of these notebooks that propose some interesting approaches. The top notebook here actually uses cellular automata. So cellular automata is the transformation of cells on a grid. We have an initial state and some simple transition rules that define whether a cell in the next state would be alive or dead. It's an interesting approach because it preserves the state of the problem. And some surprisingly complex patterns can be derived from really simple rules. So with the rules, we can definitely, quote, learn faster than a typical machine learning solution. But of course, with rule-based systems, it's rigid, although this is still a step in the right direction. Cellular automata is a good approach to think about this problem, but there isn't an end-to-end solution here. I'd encourage you to read through some of these other solutions too. Now, like I said in the beginning, my goal here wasn't really to provide a solution itself. That's very concrete. It's more to get you thinking about how intelligence, as we know today, might not be what we're looking for in the grand scheme of AI, even though it can help solve some business problems like predicting the price of a house or predicting orders in an e-commerce platform. Hope you enjoyed this video. Drop a like and comment, hit subscribe for more content, and I will see you very soon. Take care. Bye-bye!