Essentially, sitting at the very core idea of what everybody calls AI is function. Mathematical functions. f(X).
Yes, that concept you studied in high school, or maybe middle school, or maybe elementary school. Given something, that function should return exactly one other thing, but they don't have to be different. As for example, if I have a function f(X) and I feed X = 1, it should return something else. If that function is an identity function, f(X) = X, then f(X) should return 1. If that function is a polynomial function, say f(X) = X^3 + X^2 + X + 1, it should return f(X) = 4. That function could be anything I wish, the only constraint is that if I feed something, it should only return one thing. Not two, not many. I don't even have to tell you how it manipulates that thing, nor I should know what function it is. So, if I have another funtion: mystery(X) (yes, function can be named with anything), and mystery(1) = 4, mystery(2) = pi, mystery(3) = 4.5642315131...., it's still a function, even though you don't know what kind of function it is, neither do I, neither does Biden or Trump, and neither does BTS Jungkook. It's a function. If you need multiple values as an output, typical approach is to put them all into a container, like a vector or a matrix. Or maybe an image. Or maybe a house. Whatever you wish.
What, a house? Yes. I never said that function must operates specifically on numbers. You could feed some function a horse or that deliveryman who have been sending you nice packages from Amazon, it's up to you really. So let's say there's a function that allows us exactly that, alive(X). alive(X) would return alive for X = horse, alive for X = deliveryman, dead for X = house, and dead for X = MyTalkingButtWantsBully'sLove. Now you have a coarse idea what alive(X) does: it outputs either alive or dead given an input. Gives anything known on earth to it and it will outputs either alive or dead based on it. The possibility is endless.
But apperently there's some problem if you try to make alive(X) a reality: How do you make it in the first place? You can't put something like X^2 + X + 1 because Horse^2 + Horse + 1 is outright garbage and nonsensical output. Maybe if "anything known on earth" is only a small finite amount, say 20, you can make a table and tell alive(X) to look up the output for that input in that table. Table, like those you see in Microsoft Excel or some fancy document, not the one you find foods on it. Yes, function can be made up by matching things on a table, it's just your high school teacher that insists function should be something like sin X + cos X or X^2 + 1. But there are gazillion things on earth, how could you list them? Simple: you can't. You can do yourself a bit of favor by limiting things to, say, 1 million, but you'll suffer a lot listing those 1 million. But you want to work in Facebook and you need to spy on everybody and their dogs in order to determine whether they are worth enough to be shoved a dog food ad based on their financial situation, so... what to do? You need to generalize things.
How do you generalize things? Well, maybe that table containing 1 million entries you write by hand isn't really useless. In fact, it could be very useful. You have listed entries like "if X = House, then alive(X) = dead". For the sake of keeping things simple, let's use this notation "house => dead" to express the same idea. You have thousands others, like "horse => alive", "barbeque chicken => dead", "You're Mine Now => dead", etc. And then a wild input, "White horse", appears! It's not listed on your table, should that function output [ alive ] or [ dead ]? You know the answer, but that function doesn't know (yet), and this is where you generalize things. You could invent some rule. Maybe some sort of similiarity? You know it's similiar with "horse" because well, "White horse", and it just happens you have it sitting nicely on the table! So you use some kind of similiarity rule, and "teach" your function to automatically output "alive" whenever it sees the input similiar to "horse" based on that rule. So "White horse", "Black horse", "Blue horse", "Big-boobed Horse" all automatically being outputted as "alive" and CONGRATS! YOU HAVE YOUR FIRST ARTIFICIAL INTELLIGENCE. HURRAY!!!!!
And then there are awful inputs like "Barbeque black horse", "You're Horse Now", and "Big Boobed Chicken", and you start to weep. That function will start to output confusing things like "Barbeque black horse => alive", "Big Boobed Chicken => dead", and who the hell know what "You're Horse Now" is. This is when things get hairy. You could invent some rule, like "if there's a spice word, and followed by an alive thing, then it's dead. If not, then it's alive". Then you give another rule, like "A spice is either a vegetable, or something describing taste." Then you see "Barbeque black horse" and then matches it according to the rules you've just made up. "Hmm...... barbeque is
describing taste, so this is a spice. Then it's followed by horse, an alive thing. So this function should output "alive". ", you mutter in your head. You "teach" your function those rules, and infers those input according to the rules you've just invented. And your AI is now working again! Congrats!! This is, in fact, the idea surrounding the concept of Rule-Inferring / Knowledge-Based AI. This is not really a machine learning (ML) algorithm, it's just a rule matching. So that's that. AI is not necessarily an ML, but all ML is AI. "But but buttt, those cool man in suits aren't talking about that! They are talking about "trained on deep learning neural algorithm", like our brains!!! They are simulating how our brains work!!" Hahahaha nope.
However chances are it will give you the wrong, erroneus result, because hey, world is cruel, everything can't really be modelled after some mathematical functions. What could you do then? You note that error and pulled
Comments (1)
See all