And then there's the metric of how pitifully little intelligence we've managed to get from all those GFLOPS. I'd say that all the GFLOPS together don't add up to the intelligence of a single Portia africana.
I don't buy that. Spiders can't beat a human at Go. Sure, they weren't evolved to do that. But how many generations of selective breeding do you think it would take to evolve a spider that could beat the best humans at go?
Whereas if you made a spider hunting video game, I bet researchers could train AI's that could beat it within a few months. Video game playing has actually become a big area of research recently and we will soon see deep nets that can beat starcraft and other real time games that take planning and skill.
I think you're missing the point there. Portia is able to, using just a handful of neurons (~600K), accomplish sophisticated vision tasks, complex planning, online learning and scheduling. Portia and insects in general are much more flexible to changes than our Neural nets. Changing objectives or a slight modification in the rules will often require retraining and a new design but insects can adapt to various lighting, environmental, prey, predator and navigational concerns. From the wiki on portia:
> Laboratory studies show that Portia learns very quickly how to overcome web-building spiders that neither it nor its ancestors would have met in the wild.
We should strive for its kind of energy and hence, computational efficiency in our models. Think for example, what that would mean for prosthetics. I find the overzealous defense of the current state of the art just as frustrating as out of hand dismissals of AI which constantly move goal posts.
How many connections betweens those 600k neurons? That is one large difference between biological and artificial neural networks (though there are many others).
Current DNN architectures won't be the final solutions, but they do the job much better than anything else we've tried before. That said there is ongoing work in more biologically inspired approaches that might produce better results for the things you mentioned in the future
This, this right here is the EXACT situation that causes all the bioinformatics guys to be EXTREMELY NERVOUS using biological analogies like neurons for machine learning topics. They are NOT actually analogous except in the shallowest ways.
First off, there's substantial evidence to suggest that in a biological systems, an activation profile of the neurological system is more analogous to what a Neural Network in machine Learning considers a 'neuron'- that means that when you consider the spider, you're not looking at 600K nodes, you're looking at 600,000 FACTORIAL. As in 600K!, or approx. 2x10^3,200,000.
Second, even THAT number may be substantially too small, because the STRENGTH, as represented by the number of connections a given node in a biological Neural net has to another node, can ALSO variably affect the performance/recall/whatever of the organism. I don't recall what the higheat known number of connections between two nodes is in humans, let alone spiders, but it is not only 2 or 3, it can be many more.
Portia and other insects are operating on an entirely different level, with different hardware, and a different operating system, than your Neural Network ENTIRELY - trying to compare the nodes-to-performance ratio of the spider vs. the DNN is not even wrong, it's like the Twilight Zone of every computer competent neuroscientist on this planet. Utterly and completely meaningless, except maybe in an inspirational sense, to flagellate your statisticians into feeling so inferior that they magically squeeze greater performance out of their networks, not because they cleverly utilized the fundamental differences between biological and silicon computer systems, but rather because they feel so bad about the comparison.
I apologize for my snooty tone- in college I argued with a professor about this, with me asserting that clearly, no one would every REALLY equate biological neurons with machine learning neurons one-to-one, and yet here you are, clearly he was right and I have lost our bet, I shall have to go back and eat a hat. ;)
I don't have any disagreement with you--except with your fermi estimate--I've made some of those points before too. In retrospect (and I'd realized it before you posted) I shouldn't have emphasized neuron counts but watts. Ultimately, similar computations are occurring with hugely different energy profiles. That's what we should figure out how to do using software and the right hardware.
You're right! and I've known this but that distinction didn't come to mind as I was writing the post. It's not really relevant though, as my point was about how adaptable and surprisingly intelligent behaviours even these tiny, tiny creatures with barely more than a milliwatt (I'm guessing) to their name, can produce. And you know, and can be used in a similar way to either set union or intersection in natural language :)
>> how many generations of selective breeding do you think it would take to
evolve a spider that could beat the best humans at go?
That's a different issue. Spiders, as all insects, don't learn.
It seems that insects have some kind of firmware-style programming that can't
change, because they don't have the cognitive ability to change it. This
firmware can be unbelievably complex, like in the case of Portia spiders
stalking prey, but it can't develop any further, at least not on the
individual level.
Even this however is nothing short of amazing. The truth is that we haven't
developed a single program that can do what a Portia spider can do, and in
fact learning algorithms (or strategies) like reinforcement learning are our
best bet to avoid having to explicitly write down the rules for this sort of
behaviour. And we want to avoid having to do that because it's probably beyond
our abilities.
The learning algorithms we have right now however aren't a very good way to
develop intelligence that can display such complex behaviours. Those
algorithms are one-trick ponies, they learn to do one thing very well but if
you want to do more than one thing you need to train more instances of the
algorithm- and then you need to find a way to combine the trained instances in
a cognitive architecture. And on that we haven't made much progress yet.
That is blatantly false. A recent paper has shown that bees can even be trained to distinguishing a handful of human faces( a task which they are of course not optimized for).
It might be more accurate to say that bees have the innate ability to distinguish and remember faces. An insect cannot learn a novel concept they are not able to do innately.
> That's a different issue. Spiders, as all insects, don't learn.
But portia spiders do seem to exhibit learning behavior. While they have preprogrammed strategies for common preys, they do attempt to catch unfamiliar preys and seem to learn from their mistakes and come up with new strategies.
What is the difference between planning and learning, and would you consider a human that is unable to learn something like general relativity because they are mentally retarded to be unable to learn?
That's exactly my point. Spiders can't learn. Maybe they are amazing for what they do, but the comparison is apples to oranges. They do fundamentally different things.
Of course spiders are complex. Everything in biology is complex. It's been slowly refined over millions and millions of years. Countless trillions of tweaks to its DNA tested and rejected until it hit upon something that worked. No human could design something as complex as a spider.
Our artificial neural networks are just as complex though. AlphaGo probably knows millions of facts and heuristics about Go. You would never be able to understand everything it knows. Even though we didn't create the complexity ourselves, we "evolve" it just like the spider, sometimes even with algorithms based on evolution. But we have much more efficient algorithms than that, like backprop.
>> Our artificial neural networks are just as complex though.
I don't know about that. I think it depends on how you count the complexity of
a model. There's three cases: a) insects are less complex than machine
learning models, b) both are equally complex, c) insects are simpler.
If (b) or (c) is the case then we're shafted, because we're failing to
reproduce insect behaviour despite building systems at least as complex as
theirs. If (c) is the case, we're particularly screwed because it means we're
missing a simple, more efficient way to do things.
If (a) is the case then we may have a hope to get to where insects are in
terms of complexity and possibly reproduce their behaviour. Still, there's the
issue of combining models to perform well at a broad range of tasks, which is
far from solved.
The large majority of deployed machine learning algorithms actually can't learn. The bias is so large that most (all?) specialized hardware assumes that only inference will be done. In contrast, there is evidence for online adaptability in insects^
>> The large majority of deployed machine learning algorithms actually can't learn.
Learning algorithms construct a model of data- that's what we call "learning", or "training". The trained model is then used to make decisions, so that's what you would deploy in a production system.
In that sense the deployed systems don't learn any further, yes, but that's because you don't deploy the algorithm per se.
An exception is what is known as "online learning" algorithms, that can continuously update their model as new data becomes available (hance, "online").
I took care to point out deployed models. I did not say the models did no learning. In fact, one can draw an analogy from evolution and instinct to offline training/hyperparameter search/architecture tweaks and deployed model.
And, technically, the manner by which most nets are trained, via (minibatched) stochastic gradient descent is online. But the architectures are so ill-adapted to learning continuously and backprop is so data inefficient that retraining on new data is often just better done from scratch (or at best, freezing weights).
In terms of number of nodes, complexity of the arrangement of nodes, and amount of computation performed by each node, even a small biological brain is incalculably more complicated than a top ANN.
Build us a machine which can navigate the environment as swiftly as a spider, THEN general spider AI is reached. ( not talking about the hardware, talking about the smooth integration of image recognition, motor control, general learning abilities and whatnot)
I mean, creating a machine that beats us at a game we invented ourselves is one thing, but how does that compare to a species that has survived much longer on this earth than us?
I mean most people are more worried about iPhone 7 than climate change.
I am not arguing that we are not smarter than spiders, but I'm also not going to argue we truly know that we are.
you could wipe out that species with a focused effort on your part in a couple of years. does that mean you are more important than spiders?
bringing unrealistic philosophical considerations into tangible concerns is a pet peeve of mine
Well, yes, if you could make a completely artificial, controlled environment that presents a problem well-suited for the current flavor of AI, the AI would probably be able to beat a random animal at solving that problem.
Spiders have much better hardware than the state of the art in low cost miniatuarised robotics.
However I'm not convinced that if you trained a deep net and gave it access to a spider's sensor suite and effectors, that it would do worse than an actual spider would.
A lot worse in terms of efficiency per watt, sure...
Survive. Reproduce. Just like the video games nets are already trained to play, there's a pretty clear scoring function. The inputs would be spider sensorium, the outputs would be spider effectors.
I'm kind of waiting for someone to do this already with C elegans by excising their 300 or so neurons and replacing them with a GPU and laser (but I imagine the practical impediments are way higher than I handwavingly imagine).
>> The inputs would be spider sensorium, the outputs would be spider effectors.
That sounds great on paper. In practice, how do you even begin to collect "spider sensorium"? fMRI?
As to "spider effectors" I'm pretty sure we don't have the tech to do that yet, at least not in spider-scale (excluding Giant Spiders of Doom).
On paper, you can approximate any function with a multi-layer perceptron with enough layers. In practice, "enough" layers may be infinite and you'd need infinite amounts of data infinitely difficult to collect.
I agree that mastering board games requires intelligence. I also agree that good chess players are usually intelligent, even quite smart. But it's not like people's abilities in chess are directly proportional to their intelligence, is it?
I mean, you would probably have mediocre chess players that could beat Plato or Darwin or Einstein.
Why is it that computers' abilities to win chess or Go are seen as the proxy for how far AI has come? As if the pinnacle of civilisation is Go or if Magnus Carlsen is the greatest mind of all times. Go and chess are sports. It's rugby for nerds. A computer beating Kasparov is impressive in its own right, but it's a far cry from the computer having his intelligence.
Actually bulk of what we call human intelligence is basically nothing more than a chain of facts we built up, each fact derived based on the truths we learned(or perceived) before.
Intelligence therefore is that process where you get from A to B, with steps in between that require consciously investigating the already available knowledge to us.
This is already happening with machines today. Someday a person will come up with a generic learning algorithm, which has a meta component to either search for answers in the space it already knows, or use external means to learn more about it.
Please also note without means to move around, use your hand/legs/eyes et al to test around and build your experiences, we will likely have the same primitive intelligence. Only difference now is instead of giving the machines these sensory organs, we are only working with an algorithm with inputs and outputs and then have it evolve.
There is no such thing as a universal intelligence test. I'm not claiming that winning at Go implies intelligence. I'm simply demonstrating that spiders aren't generally intelligent. They can't learn to do things other than what they were programmed to do. Whereas ANNs can do a wide variety of tasks, including tasks no animals are remotely capable of.
Depending on how you define 'soon' - it might take a little longer. A bunch of really good people at Facebook AI just worked on Starcraft using reinforcement learning, and even getting the micro down is really hard.
Finding the best next move from a given board position at Go is a single
cognitive task, whereas surviving in the natural world requires an
intelligence that can excel at a possibly infinite number of such tasks.
Portia spiders are particularly amazing in that they can exhibit such complex
behaviours as ambushing or stalking prey. Like all insects they do this sort
of thing with a tiny number of neurons. We have no idea how to do so well with
such few resources.
There is no mathematical distinction between different "tasks". Playing Go requires thousands or even millions of different heuristics and pieces of knowledge. Each of those is a "task" in and of itself. The same technology which beat Go could also, in principle, be used to play a real time video game that requires hunting and stalking things.
Insects are indeed tiny. But they are highly specialized. They can't learn to do things differently than they are programmed. GPUs are extremely general purpose. Not only can neural nets running on them learn many tasks, but they can execute many algorithms which aren't neural networks at all.
> The same technology which beat Go could also, in principle, be used to play a real time video game that requires hunting and stalking things.
If you generalize things enough to mean application of linear algebra, the chain rule and map, then yes that's true. However, the fact is that Neural networks still take a huge amount of skill and experimentation to design new architectures. The more powerful deeplearning becomes, the less skill will be required to do complicated things.
The AlphaGo bot was very data inefficient; at ~1 hr 18 min in http://techtalks.tv/talks/deep-reinforcement-learning/62360/, David Silver points out how they broke correlations by brute forcing millions of games while only keeping one move per game. We want something with better generalization ability than that. As amazing as AlphaGo was, it's more a very early waystation than our final destination. Recognizing the weaknesses of our models instead of glossing over them is how we get to AI!
>If you generalize things enough to mean application of linear algebra, the chain rule and map, then yes that's true. However, the fact is that Neural networks still take a huge amount of skill and experimentation to design new architectures. The more powerful deeplearning becomes, the less skill will be required to do complicated things.
Sort of. Hyperparameter tuning is indeed difficult, but in principle it can be automated and there has been great work on this in the past few years. But I never claimed that it was just plug and play. The point is it's the same underlying technology in speech recognition or self driving cars or face recognition. Even if the number of layers and convolution sizes and learning rates are totally different, the principles are the same.
>The AlphaGo bot was very data inefficient... David Silver points out how they broke correlations by brute forcing millions of games while only keeping one move per game.
This problem was solved in the past with temporal difference learning. Maybe there are technical reasons they didn't do that, I don't know. At the very least they could pick a random move from each game per batch, instead of discarding the rest of the moves. I don't really see how that helps solve anything.
>Recognizing the weaknesses of our models instead of glossing over them is how we get to AI!
There is a huge difference between recognizing weaknesses, and the AI Effect. Where AI solves problem X, and people disregard it "because it can't do Y".
> Sort of. Hyperparameter tuning is indeed difficult, but in principle it can be automated and there has been great work on this in the past few years.
There's far more to modification than just hyperparameter tuning; this is why people can keep turning out papers on the latest breakthrough. The gates of LSTMs are a non-trivial addition to RNNs. Attaching a differentiable stack or figuring out how to best do soft attention requires far more thought than just bashing at hyperparameters. CTC, dilated convolutions, residuals, extending auto-encoders to capture the data distribution were not trivial ideas. VGGNet and other conv nets are a very manual heavy design, differing significantly from vanilla MLPs and not something that could be automatically arrived at (at least not yet). Things like FractalNet or recursive tree based architectures differ greatly from vanilla networks.
> Even if the number of layers and convolution sizes and learning rates are totally different, the principles are the same.
Again, the underlying captured algorithms are very different. If you could look at the underlying source code these neural net programs represent, they'd vary at least as much from each other as the code for say a merge sort, insertion sort, binary search or an AVL tree would.
> This problem was solved in the past with temporal difference learning. Maybe there are technical reasons they didn't do that, I don't know.
The problem pointed out in the lecture, part of why it took so long to find a good Go policy, was that immediate moves differed so little from each other that it was too difficult to get any kind of signal without the brute force approach to decorrelating they took. There are probably better ways but that was the shortest delta available to progress.
>> There is no mathematical distinction between different "tasks".
Sure there is. For instance, the minimax algorithm is a mathematical model of
optimal behaviour in a specific kind of game (two-player, zero-sum, complete
information games). Performing minimax to dominate such a game is a very
clearly delimited task and that's exactly why a machine can do it in the first
place.
More broadly, any "task" can be described mathematically by means of a program
for a given machine. Saying there's no mathematical distinction between
different tasks is like saying you can't write a program that does a specific
thing.
>> Insects are indeed tiny. But they are highly specialized.
Agreed- see my comment above.
However, that on its own doesn't say much. Sure, insects have highly
specialised firmware-style programming. How did they come to have them and how
can we reproduce them? We can't hope to create such programs "by hand" so
we're currently trying to create algorithms that learn them. We're still far
from achieving it though.
That neural networks and other learning algorithms can learn all sorts of
different things is true, however you have to train a new instance of an
algorithm for every different thing you want it to learn (what I call a
"task", so a new program). For each instance you need new data (and a lot of
it) another huge chunk of processing power and a long time to train. Then you
have to find a way to combine all the trained models into one ... thing that
can operate as a coherent whole.
We haven't even started on the last bit.
Just having the technology to create pigments is far from being the same as
creating a Mona Lisa.
Whereas if you made a spider hunting video game, I bet researchers could train AI's that could beat it within a few months. Video game playing has actually become a big area of research recently and we will soon see deep nets that can beat starcraft and other real time games that take planning and skill.