Also, an interesting read related to this would 'the AI effect'[0]. A lot of the stuff Deep Learning/Machine Learning is able to do today would be looked at as something that only 'true' AI (whatever consensus on what that means is; I think of it as AGI) would be able to do.
But as soon as we are able to solve a problem that we think (feel?) only true AI (AGI) would be able to solve, as soon as we know how it was solved, it is no longer a mystery that warrants amazement and we argue that it is not real intelligence, just like the link below states.
But just a decade ago, if you saw that a computer was able to recognize pictures better than humans, you would think there was something fishy going on, or we have achieved true AI.
My opinion is true AI is which is comparable to human intelligence, in that it is sentient and/or capable of abstract thought, not necessarily being able to hold a conversation or solve concrete mathematics problems, or dump out a story by neural networks.
> But as soon as we are able to solve a problem that we think (feel?) only true AI (AGI) would be able to solve, as soon as we know how it was solved, it is no longer a mystery that warrants amazement and we argue that it is not real intelligence, just like the link below states.
I think the issue is that current examples of AI can mostly only solve problems in a single domain instead of in a variety of domains. Developing a program that can generate solutions for a single specific niche of problems (while impressive) is not a convincing demonstration of intelligence. For example, while AlphaGo is incredibly impressive, it can only play Go and nothing else.
I think once we have a comprehensive AI program that can play many kinds of games, can have conversations, can complete school exam questions, can write stories etc. the question of what intelligence is will become more interesting.
> once we have a comprehensive AI program that can play many kinds of games
Before AlphaGo, DeepMind released a reinforcement learning algorithm that could play many Atari games just from the raw pixels on the screen, in many games surpassing humans. The same algorithm.
Reinforcement learning is a general framework for learning behavior from acting in an environment with the purpose to maximize a reward. It can be used, and was used, in multiple domains. AlphaGo used RL as well.
Saying that AlphaGo is limited because it only knows to play one game, is like saying that humans are limited because Lee Sedol could only master at world level one game. In fact, if the software was set to learn more games, it could learn them in addition to Go.
Also, regarding other tasks: a neural net that recognizes cats can be easily made to recognize dogs too. A program that translates English to French can be made to translate other languages too. We limit software to specific domains only on account of efficiency, not because algorithms are fundamentally limited.
Recently there has been a paper "Learning without forgetting" (http://arxiv.org/abs/1606.09282v2) that underlines this very ability to span multiple domains and adapt easily to unseen tasks and data.
> Developing a program that can generate solutions for a single specific niche of problems (while impressive) is not a convincing demonstration of intelligence.
Saying that people can do many tasks is not exactly right because a particular person can only do a few tasks, those tasks she was trained to do. If I never learned German, I don't know German. That doesn't mean the brain itself is limited. AlphaGo was only trained on Go, and its internal architecture was optimized for this one task in order to make it more efficient, but the method is general and reusable. DeepMind said so themselves, the breakthrough is not that they beat Lee Sedol, but that they used a general method that can be used to do other tasks as well. It is not a limitation of AI that we generally make systems that are good at only one thing.
If there is a limitation in AlphaGo, it is that it mastered a game where the whole situation is perfectly known (the Go board), while in reality many tasks are only partially known (such as card games, for example) so there is an extra uncertainty. But DeepMind and other researchers are working on that too.
> Atari games just from the raw pixels on the screen
It's important to distinguish between what sorts of games work well under this method and what sorts do not. Games that are variations of pole balancing, like Pong, fare better than more complex games like Asteroids, Frostbite or Montezuma's Revenge.
> Saying that AlphaGo is limited because it only knows to play one game, is like saying that humans are limited because Lee Sedol could only master at world level one game.
It's nothing of the sort. AlphaGo is a machine in the Turing sense. The neural network is a program that is the result of a search for a function specialized to playing Go. This machine, the program that the parameters across the edges in the graph represent, is logically unable to run any other program. Lee Sedol is a Universal Machine in the Turing sense, any statement contradicting this makes no mathematical sense.
> We limit software to specific domains only on account of efficiency, not because algorithms are fundamentally limited.
It is well known within the literature that these models do not make best available use of information when learning. They are exceedingly inefficient in their incorporation of new information. Issues include improper adjustment of learning rates, not using side information to constrain computation, having to experience many rewards before action distributions are adjusted in the case of reinforcement learning, samples per example in supervised learning. Note that animals are able to learn without explicit labels and clear 0/1 losses.
Humans and animals generally, even in the supervised regime, are vastly more flexible in the format the supervision can take.
For an example, look into the research on how children are able to generalize from ambiguous explanations as "that is a dog" and why difficulty in learning color from this kind of "supervision" shows just what priors are being leveraged to get that kind of learning power.
That's a great paper but it does this by minimizing prediction error drift by comparing before and post performance on the old task while learning the new. I do not know that this method will scale with increasing task numbers, considering Neural Networks are already difficult and energy-time consuming enough to train as is.
> It's important to distinguish between what sorts of games work well under this method and what sorts do not. Games that are variations of pole balancing, like Pong, fare better than more complex games like Asteroids, Frostbite or Montezuma's Revenge.
That's what I'm getting at really: AIs that are expert/genius level at something niche and fall apart when applied to a similar task a human wouldn't have trouble adapting to. Once an AI is easily adaptable to many different domains without manual tuning people will be hard pressed to deny it is intelligent.
> My cellphone can play hundreds of games well, I don't think that's an indicator of intelligence.
I don't think it is either. I'd want to see many more domains than is demonstrated in playing most games (e.g. conversation, object recognition, planning, maths)
That's not really my point. If software X can do handwriting recognition then having software Y call software X is usually fairly easy and has little to do with intelligence.
IMO, we already have intelligent AI. It's just not intelligent the way we are used to dealing with. People don't want AI, they want a human brain in a box.
Some of these functions are easy to compose to get something impressive, true. But that is not often the case. Take the case for games and imagine we wanted a meta-algorithm to select an algorithm to apply to each game. The intelligence would then shift into, how does one select the correct algorithm for the current game in the shortest time possible?
There was a recent blog post covering this and the difficulties involved:
I also posted a link (https://arxiv.org/pdf/1604.00289v2.pdf) above which is an easily readable exposition on just how current approaches fall short. It's nothing so trivial as "it's just not what we're used to".
> Take the case for games and imagine we wanted a meta-algorithm to select an algorithm to apply to each game.
I take it you haven't seen the previous accomplishment of Deep Mind before they tackled Go. They used a Reinforcement Learning algorithm to play 50 Atari games - the same algo - with great results. They really created a generic learning algorithm.
I'm fully informed about this area of research. Including other research that found simple linear methods could also get good results over a large number of games and DeepMind's recent work where far less computationally involved methods as random projections and Nearest neighbors outperformed Deep Reinforcement learners at the more complex 3D mazes and Frostbite.
But like I keep emphasizing, you can't take a neural net trained on space invaders and have it play Asteroids because each is a task specialized program that was the result of a search. While the search method is more general, the resulting program is not. You can use a single algorithm as simple as linear methods based reinforcement learning and get great results across a wide swathe of tasks but you can't claim to have found a universal learner.
> That's not really my point. If software X can do handwriting recognition then having software Y call software X is usually fairly easy and has little to do with intelligence.
Ah, I understand you now. I don't see the relevance though as I don't see why it's important how many algorithms, programs and computers is used to implement the AI. I imagine your cellphone is unable to do many things a regular human can do such as hold a basic conversion and learn to play new games which is why I wouldn't call it intelligent.
> The neural network is a program that is the result of a search for a function specialized to playing Go. This machine, the program that the parameters across the edges in the graph represent, is logically unable to run any other program. Lee Sedol is a Universal Machine in the Turing sense
I am sure he is using different neurons for playing Go than for playing poker. His Go-related neural net is only able to play go.
That doesn't make sense. The brain is highly interconnected and there's no such thing as a "Go" or poker area. Many of the same structures are recruited for different tasks. For example, the part for recognizing faces will also be recruited for reading letters or playing Go. But the important thing here is that AlphaGo is a fixed program. It's no different than chrome or firefox in that it can no longer do learning based modifications on itself. In a sense, it's actually more limited than a browser in that it cannot simulate arbitrary Turing Machines. As a feedforward network, it's not Turing Complete.
Lee Sedol meanwhile is at least as capable as a Universal Turing Machine and was learning far more per game and modifying himself while also doing the highly complex tasks of vision integrated motion planning.
> Reinforcement learning is a general framework for learning behavior from acting in an environment with the purpose to maximize a reward. It can be used, and was used, in multiple domains. AlphaGo used RL as well.
> Also, regarding other tasks: a neural net that recognizes cats can be easily made to recognize dogs too. A program that translates English to French can be made to translate other languages too.
I'm aware of these things. I was commenting on the shifting of the goal posts of what people call intelligent. In my opinion, when someone can deliver a concrete implementation of a computer that is competent (not even expert level) of many varied domains, then most people would call that intelligent. Right now, examples of AI are genius level at a niche domain and unable to do anything in all others (without tuning at least).
I don't think anyone would call an algorithm that in theory can apply to lots of domains intelligent. You need a concrete implementation to demonstrate this.
>I don't think anyone would call an algorithm that in theory can apply to lots of domains intelligent. You need a concrete implementation to demonstrate this
How will not applying the same technique/algorithm to lots of domains disqualify from being intelligent? RL and CNNs are being applied in many domains today. Is the complexity of the algorithm is what you're disagreeing with?
The human brain (if you strip out stuff that does not pertain to intelligence) can be seen as one super complex machine which can be encoded. We just don't know all the algorithm/code yet.
Very interesting how both your opinions differ. I had a similar discussion with someone on HN a while ago about this exact same thing. The discussion was very inferior to this one but you might be interested nevertheless I hope.
Hmm, I think we're misunderstanding each other. Is your view that RL and CNN have been or can be applied to create a machine you'd call intelligent right now?
My original comment was about how people shift the goal posts about what AI is. My opinion is that in the same way you'd struggle to call a human intelligent if literally all they could do was play genius level Go, most people would not call a computer program intelligent if all it could do was play Go.
If the machine could play many other games and adapt to games it hasn't seen before that's more convincing, but you would expect an intelligent machine to be able to adapt to more varied tasks as well (e.g. having conversations, writing stories, doing maths, recognising objects). Right now, we have AIs that are genius level at one task that cannot even attempt other tasks e.g. genius level at Chess or even a whole category of games but couldn't have a basic conversation.
> How will not applying the same technique/algorithm to lots of domains disqualify from being intelligent? RL and CNNs are being applied in many domains today. Is the complexity of the algorithm is what you're disagreeing with?
I'd say it's not important if it's one algorithm, many algorithms, simple algorithms or complex algorithms, just that it's a single general purpose concrete implementation that is capable of doing many varied tasks and learning.
> The human brain (if you strip out stuff that does not pertain to intelligence) can be seen as one super complex machine which can be encoded. We just don't know all the algorithm/code yet.
Yeah, I don't think there's anything magical about the brain that a computer couldn't replicate in some form.
> My opinion is that in the same way you'd struggle to call a human intelligent if literally all they could do was play genius level Go, most people would not call a computer program intelligent if all it could do was play Go.
Let's see, how many skills/domains can a particular human cover? For example, I can't speak Chinese. I haven't learned Chinese. Also, I have no idea about medicine. But people who learned medicine, know a great deal about it. Maybe a human can do 20-100 things, like walking, low level addition and multiplication, speaking a few languages, playing a few games and working in a few domains. Not an infinite list. In the same way RL systems and CNNs can be used for hundreds of different applications, depending on the data they are trained on.
Also, it is not the same neural net in the brain that handles two different skills, we use specialized neural nets for any of our skills too. If you stick together a few neural nets and a controller that selects the right one for the task, you could have a "single" system doing many things, just give it training data to learn those skills. Humans take 20 years to learn the necessary skills to function in society too. Neural nets can do it much faster and often surpass humans. DeepMind started Go a couple of years back and surpassed the best human player - how is it possible to do that, in such a short time span? And it wasn't a case of 'clever tricks' like the chess program Deep Blue.
>My original comment was about how people shift the goal posts about what AI is. My opinion is that in the same way you'd struggle to call a human intelligent if literally all they could do was play genius level Go, most people would not call a computer program intelligent if all it could do was play Go.
I totally agree with you on that one.
>Hmm, I think we're misunderstanding each other. Is your view that RL and CNN have been or can be applied to create a machine you'd call intelligent right now?
Not really. I was making a point to this:
>I don't think anyone would call an algorithm that in theory can apply to lots of domains intelligent. You need a concrete implementation to demonstrate this.
I was saying that even the human mind is one complex algorithm and we consider that intelligence. Something being understandable and us being able to apply to multiple domains can be intelligence as we see it today. It's just that we don't know what the complex algorithm is.
>If the machine could play many other games and adapt to games it hasn't seen before that's more convincing, but you would expect an intelligent machine to be able to adapt to more varied tasks as well (e.g. having conversations, writing stories, doing maths, recognising objects). Right now, we have AIs that are genius level at one task that cannot even attempt other tasks e.g. genius level at Chess or even a whole category of games but couldn't have a basic conversation.
This is exactly what I'm getting at. If we do find out the algorithm that effective replicates human intelligence, isn't that intelligence according to the definition of intelligence? If we find out the complex human algorithm, then we'd be able to do all the things that you just described
I think where our misunderstanding arises is that I'm saying you're disconnecting the working of human brain and algorithms. I'm saying human brain is one big algorithm and your statement :
>I don't think anyone would call an algorithm that in theory can apply to lots of domains intelligent
Wouldn't hold true in the case where we find out the algorithm for emulating the brain effectively. This disconnect in separating human intelligence from being anything other than an algorithm will make us see human brain as an un-understandable mystery box, which I think it is not.
> but that they used a general method that can be used to do other tasks as well. It is not a limitation of AI that we generally make systems that are good at only one thing
This is exactly the kind of hubris and reasoning that brought down good old fashioned AI initially. They also had a lot of initial impressive wins with methods that looked quite general at that time.
There are real applications to old AI even today. Look up ITA software, uses of theorem proving of hardware and software verification, etc. Let us not engage in FUD please.
> I think once we have a comprehensive AI program that can play many kinds of games, can have conversations, can complete school exam questions, can write stories etc. the question of what intelligence is will become more interesting.
Or even just talk about Go, answer complex questions about it in natural language, and state and prove interesting mathematical results about the complexity of Go.
I hear this repeated a lot. But I've never actually seen a source from, say, the 90's or the 2000s, actually saying something like "if we're able to classify images better than humans, that's true AI."
I suspect it's just hearsay that's been repeated over and over again.
There used to be a concept of "AI completeness" which meant that some problems could only be solved by True AI, which would also be able to solve all other human-level problems. Doug Hofstadter writes in Gödel-Escher-Bach that he believes grandmaster-level chess is AI complete. That was obviously false in retrospect, and it's becoming increasingly obvious that there is no AI completeness at all.
This is a good blog post and articulates well many of the issues I have with calling current work on AI subsets "AI". From my point of view, the results of current work with AI subsets are impressive, but they're hitting self-proclaimed benchmarks or someone poorly defined benchmarks and declaring AI status. Creating an advanced Go machine was very cool, but as Lee Sedol played more, he said he began to understand how AlphaGo "thought". The appended reddit thread here [1] has some interesting insight on why pulling back the curtain on current AI claims is appropriate. A lot of the times, "it's just calculations" is appropriate since we don't really have a machine considering what it's given, it's driving towards a singular goal in the best way possible. In the case of AlphaGo, it disregarded Lee Sedol's move because it had no care about the unusualness of it, it just wrote the move off as sub-optimal. When you see behavior like this where the systems are algorithmically defeated, it's very difficult to not be dismissive of the claims of AI.
Again, there is a lot of coolness happening with subsets of AI research, but I don't feel that there is even a clear definition of what AI would entail - spaghetti code to get a desired result doesn't really help either, since it has to be persistent independent successes - to refer to Karpathy's article, it would have to make repeated assertions and understandings of similar photos with a high success rate to really be something spectacular.
>it's becoming increasingly obvious that there is no AI completeness at all.
Bingo! The "general" part is the ability to learn new structures and task structures from environmental cues, and then construct informed prior beliefs about those new tasks and structures using causal relations to previously-observed tasks and structures. Nothing more!
In the 90's, John McCarthy was calling Go "the new Drosophila of AI". Now, we have AlphaGo that is "just" a bunch of "generic" deep learning with MC. Maybe John McCarthy was right and the ideas behind AlphaGo are the first steps toward true AI. I am very impressed.
These neural nets are really smart, and we don't know exactly how they work, we know only in principle. But if we asked the guy who made the self driving car what is the role of the 17th neuron in the 14th layer, he would probably have no idea. Just like human brains evolve through learning, so do neural nets. Yet many people think they are just clever tricks and not truly intelligent.
That's because they're not intelligent. They're layered function approximators with some specialisations for vision - conv layers. Their structure is designed by humans as is the data they are fed with. Maybe the human brain is the same, IMO it isn't. Humans seek out new experiences and can introspect and at their best assess their level of knowledge of a sibject. DNNs cannot.
Did you read the paper? They did not teach it to drive a car. The car just does lane keeping - it doesn't even do turns or lane changes. This is stuff solved 10+ years ago. And even then it only achieves 98% autonomy on lane keeping - this is a task that needs 100% accuracy. You should not be running into the median every couple miles.
Sounds like McCarthy was right: the point of Drosophila is that it's a very small, simple model organism. You're not supposed to "solve biology" by modelling something in Drosophila, you're just supposed to be able to narrow the field to hypotheses that are not so flagrantly stupid they fail in a fruit-fly.
A chess computer isn't magic because you know that it is basically searching the game tree very fast with some heuristics. Neural networks are not like that. You know that it's a network of activation functions, but how that solves so many AI tasks is still more or less a mystery. So maybe the AI effect will be less strong with deep learning.
I disagree that neural networks are necessarily mysterious. In most cases they can be straightforwardly understood as brute-force function approximation (approximation here meaning mostly interpolation, in some cases capable of a limited degree of extrapolation). You take many samples of a function (either because you have a huge data set, or because you can actually sample with a simulator), and incrementally modify a large network to slowly converge it towards an accurate approximation of the function. The advent of very large data sets and GPU training made this possible, but the tech is pretty well understood, at least at the level of a 5-mile-high view.
Of course, but compared to how chess algorithms work it remains far more mysterious how exactly that produces an english description of a grid of pixel values.
Probably only because every CS undergrad or self-trained person sees at least a few search algorithms. So although they probably couldn't write a performant chess-playing program, they get the general idea.
I expect in 20 years undergraduate curricula evolve to cover NNs, and then those courses will have their salient bits adopted into mass market expository books/blog posts/code examples/etc. At that point someone like you will be saying something like you said about whatever the new hotness is.
> A chess computer isn't magic because you know that it is basically searching the game tree very fast with some heuristics
Yep, we know, the consecrated expression for this point is "they just used clever tricks".
But at some point these clever tricks add up to something akin to imagination or intuition. Do you think humans are not made of "clever tricks" too? Could it be possible that we humans have the magic fairy dust of real intelligence sprinkled in our brains and machines are lesser than us?
>But as soon as we are able to solve a problem that we think (feel?) only true AI (AGI) would be able to solve, as soon as we know how it was solved, it is no longer a mystery that warrants amazement and we argue that it is not real intelligence, just like the link below states.
Well, the problem here is that we keep expecting "real intelligence" to have magical properties: we expect intelligence to be a way of creating new and interesting thoughts, ex nihilo, rather than an efficient engine for distilling structure from experiences, and to be ontologically special to prove how special we humans are on a universal scale.
There are cognitive science and neuroscience labs hard at work on deciphering how actually-existing human thought works, but as far as I can tell, everyone facinated by "AI" is so enamoured with intelligence being special that they don't pay attention to those labs. A great deal of books and papers are thus published, and as far as "AI" is concerned, it's all in vain somehow.
>Well, the problem here is that we keep expecting "real intelligence" to have magical properties: we expect intelligence to be a way of creating new and interesting thoughts
I think we might have to step into borderline philosophical subjects like epistemology and sentience depending on who you talk to to define intelligence and whether you're the free will group or determinism group and so on.
I think you might agree with the statement that we can't yet come to a strict definition of what intelligence is, and once we have it, if we are going for intelligence or something more akin to stuff independent of intelligence like sentience and creative thought.
I'm personally in the determinist group and agree that there is nothing inherently magical about intelligence, just us being simpletons who cannot comprehend how a microprocessor works when you just give the latest intel chip. It is so complex that we need a lot of time and energy to comprehend it, but like the intel chip, I believe there is a design aspect to the human brain rather than it being a magical black box.
The problem is, the majority of us are the simpletons and have a long way to go before we have the knowledge that the intel chip makers have.
I apologize for the bad intel chip analogy, I probably could've come up with something better :)
And on a related note, "better than humans", "comparable to human intelligence", and phrases like these since the early days of AI have always been a red herring. Not the least because these phrases do not imply what we are really comparing - better than all humans? some humans? How about just a person? What about just better than a 4-year-old?
The criteria should have always been "faster / more efficiently", "more accurately", or "both" in comparing AI to human intelligence for a given task or activity. By this measure, AI had enduring production-ready successes since at least the 1980s. Let's say that was software that ran on post-VLSI hardware (1+ million transistors). Now, we have deep learning deployed on multiple GPUs each with a 15+ billion transistor count.
True AI is starting to look philosophically like a mirage, not the least because we may not ever have a strict meaningful definition for intelligence. What we consider intelligence varies, evolves, changes shape, consistency and predictability even if we consider just one of the various people we interact with on a given day.
As one of the latest, I think Brian Eno (https://news.ycombinator.com/item?id=12027055), like others before him who have formalized a similar approach to the matter of intelligence, is on the right track. This approach to deciding what constitutes True AI would do much to counter and eventually prevent the "AI effect".
>And on a related note, "better than humans", "comparable to human intelligence", and phrases like these since the early days of AI have always been a red herring
Well, I agree that it is not definitive, but it definitely gives us some insight on where AI techniques are, comparing with the 'average human'. Now I know even the term average human doesn't have a strict definition, but the scale of intelligence[0] is so vast compared to the dumbest and smartest human, all that we need to know from that is if the technology is better than humans or not. If it is not, then I'll not care much, but if it is, then you've got my attention.
>Let's say that was software that ran on post-VLSI hardware (1+ million transistors). Now, we have deep learning deployed on multiple GPUs each with a 15+ billion transistor count.
I think the problem lies with how we emulate intelligence. Will you be able to emulate me perfectly if you had not billions, but trillions of transistors? I'm assuming the answer is no, because, although we have all the power that the human brain (abstracting the neurons and other 'mechanical parts') has, we cannot simulate even a child's intelligence (now here I'm referring the ability to learn new things and communication, etc other abstract things etc, not computational ability). We need to know the technique just like we know have deep learning and are able to analyze pictures near-perfectly.
>True AI is starting to look philosophically like a mirage
Well, of course definitions vary. I think most people's (including mine) definition is that 'AI' (AGI, if you want to remove ambiguity) is surpassing human intelligence in the optimization area, like large scale optimizations like designing a spaceship, or curing cancer using techniques unknown to us right now.
I remember reading that and considering his view very interesting. With our (normal) perspective we don't really see AI like people see it centuries ago.
I would argue that there is actually an unrecognized inverse of this effect, too. People have a tendency to conflate domain-specific human-level performance with "intelligence" (for some definition of that word). Then suddenly we jump to "DeepMind won at go, therefore humanity is on the brink of creating Skynet." Deep learning has been like this so far, because it works in many new domains that have resisted previous techniques like image recognition, speech recognition, go, etc.
The "AI Effect" -- saying, "it's just an algorithm" once we succeed -- is an artifact of developing AI by using it as an algorithm for a domain-specific task. It is "just" an algorithm, because that's all it needs to be to win at go, identify cats, or whatever. Fundamentally, it's not very surprising that when you set out to make a system that's really good at playing go...you end up with a system that's really good at playing go. Of course it's hard -- that's what we should appreciate -- but most of the problems we consider "hard" are based on what we think it is hard for a computer to do in order to solve the problem. "Searching the space of all possible go moves is computationally intractable, therefore this problem is hard." In reality, the problem may not be as hard as we think if the agent doesn't have to search the space of all possible moves.
"Hard" problems are multi-optimization, where even the definitions aren't very clear: "learn as much as possible and live a happy life while making a productive living for yourself". Turn that into an objective function...
>"Hard" problems are multi-optimization, where even the definitions aren't very clear: "learn as much as possible and live a happy life while making a productive living for yourself". Turn that into an objective function...
Minimize the informational free-energy of the product of the multiplicatively inverted brain-to-body reinforcement-learned energy function of reward with the brain-to-body reinforcement-learned energy function of punishment, via active inference?
Beh, those words are messy. The point is to talk about a Gibbs distribution with energy functions Reward(X, Y) and Punishment(X, Y), such that the "total" energy function is E(X, Y) \propto Punishment(X, Y) - Reward(X, Y). This then gives us a "goal distribution" for an active inference agent (like a human), defined "up to" the reinforcement-learned energy functions, whose limiting functions (need a lot of functional analysis and probabilistic reasoning over function spaces, there) are the "ground truth" causal relations by which the world causes reward signals through the body and its senses.
Deep learning is just a rebranding of "neural networks". When neural nets became unpopular in the 90s and early 2000s, people talked about "multilayer networks" (dropping the "neural") since it wasn't really useful to think about this approach from the neuro perspective (since it's such a cartoonish model of real neural networks anyway).
Now that very deep networks have become possible, and various graphical models and Bayesian approaches have also been folded under "deep learning" (for example, using back-propagation to learn complicated posterior distributions in variational Bayes) deep learning is not just about vanilla feedforward nets.
>…since it wasn't really useful from the neuro perspective (since it's such a cartoonish model of real neural networks anyway).
Still isn't and still masses of people go on to think that these "neural" networks work the same as neurons in a body do… while neuroscientists are still trying to understand how real neuronal networks operate with a bunch of pet phenomenological theories that most pretty much ignore physics despite the tools used lol
Well, yes, mostly, but there also have been genuine discoveries in the last 10 years. We can now train deep networks because we learned how to regularize - before it was impossible because of vanishing gradients. We can have even 1000-layer deep nets, which would have been unthinkable. Also, there are some interesting approaches to unsupervised learning like GANs and VAEs. We learned how to embed words and not only words, but multiple classes of things into vectors. Another one would be the progress in reinforcement learning, with the stunning success of AlphaGo and playing over 50 Atari games. Current crop of neural nets do Bayesian statistics, not just classification. We are playing with attention and memory mechanisms in order to achieve much more powerful results.
>We can now train deep networks because we learned how to regularize - before it was impossible because of vanishing gradients.
Those are two different things. Vanishing gradient problems were ameliorated by switching from sigmoidal activation functions to rectified linear units or tanh activations, and also by dramatically reducing the amount of edges through which gradients propagate. The latter was accomplished through massive regularization to reduce the size of the parameter spaces: convolutional layers and dropout.
Stuff like residuals are still being invented in order to further banish gradient instability.
Yeah, I've always heard that expert systems are good, because there you can reason about the solution. For instance diagnosing people based on rules contributed by doctors. You can trace the steps the algorithm takes easily.
But for a neural net, you cannot say why this particular net should be trusted, as you don't know how it arrives at a solution. Therefore it's "scary" to use.
While I don't agree, it explains why it has been unpopular.
Random Decision Forests provide sort of a middle ground.
For training, a large set of decision trees are built randomly based on the input features.
When classifying input for one tree, each node considers feature value of the input, and decides on a branch. Leafs corresponds to a classification, so when a leaf is reached, the tree has classified the given input.
By having a large set of trees, and picking e.g. the most common resulting class (majority vote), we increase accuracy.
However, each individual tree can actually be reasoned about. E.g. you can see the analysis (nodes) leading to each class (leafs).
I've had some success with RDFs in the past, and highly recommend them!
They are very easy to implement, very efficient to train and query, and they seem to work really great on classification of "discrete input" (i.e. where the input feature values are binary or from relatively small sets).
Just curious, what prevents somebody to debug deep network in the same way?
You potentially can check what features contributed to activation of each "neuron"..
If I need to show 1 million cat images to train a neural net to see cats, I wonder how a human brain can figure out cats of any kind just by seeing one or two.
Is there something fundamental we are missing in going about building these deep learning stuff ?
Even a human brain has to train for ~4-5 months to become interested in shapes (https://en.wikipedia.org/wiki/Infant_visual_development). Once the human brain has been trained for these basic shapes for a while, it is able to quickly break down a new class (i.e. a cat) and recognize similar patterns in other images. This is something that is very similar to the way that training a deep NN works.
Also don't forget that the current NN are being trained mainly for photos, not moving images. A brain may recognize a cat by its tail-wagging or fur movements, which is a dimension that is completely missing from still images.
> Even a human brain has to train for ~4-5 months to become interested in shapes
Everyone who wonder how (on a superficial level) grown up humans are so good at learning new categories really should spend time around babies and toddlers and children for this reason...
You quickly realise how much training and brain development it actually takes before we're capable of doing much.
By far the greatest part of the time I spent with my two toddlers (5 and 3) is spent repeating the same things, again and again, and trying to find shorcuts for learning (which shorcuts might just not exist, afaik).
Then one day they start to get it (like "fire burns"), but it's still not there for sure until they experiment it deeply multiple times.
The dev in me can't help but see this two little humans as big mighty neural networks who spend their full uptime constantly ingesting tremendous amount of data and being restlessly tuned back by adults and experience :)
And this tuning is of utmost important. People often forget that the tuning is human intervention with specific 'specs'. The little baby machine get's quickly tuned to these, good or bad.
Only some billions of years of evolution and a lifetime of knowledge abut how our world looks like! When you see a picture of a cat your brain has a whole lot of context to put the picture into: it looks like some live creature, has eyes, legs, you can tell where it's head is, you can imagine how the fur feels like etc.
An untrained neural net has to learn everything from scratch (ha!), from pixel values to "knowing" what a cat is. There is some work on decreasing the amount of data needed to learn, but it's a very tricky subject.
> I wonder how a human brain can figure out cats of any kind just by seeing one or two.
A human child receives images on the retina at 20fps, say ... for 12 hours a day, for many years. That is a lot of training, a lot of images received by the brain.
What the kid does when we show it something new is to do a kind of fine-tuning of its neural net where previous visual experience is reused in order to quickly learn new types of objects. It's called one shot learning and it can be done in neural nets too.
Humans can see one or a few examples of a novel object, such as a cat, and create a fully 3D mental model of it. So we know what it will look like in different orientations and lighting conditions.
I don't think we have a fully 3D mental model. I think we have a set of core invariants that are constant across a wide variety of conditions.
I.e. we can recognise static 2D photos of cats, 2D movies of cats, 3D movies of cats, and real cats in the real world.
The invariants are probably relatively simple - a set of head geometries and head feature shapes/distribution, with some secondary colour and texture confirmation.
What's interesting is that we can recognise modifiers to the invariants - e.g. a shaved cat is still recognisably a cat, but parsed as "cat without fur."
We can also recognise invariants when they're pared down to essentials in cartoons and sketches.
A lot of learning is really just data compression - finding a minimal set of low-resource invariant specifics from a wide range of noisy high-resource inputs.
While in general I felt something similar that it has to be not just reams of data but also some sort of model (meta data) that when combined can produce innumerable combinations more easily.
You don't really need a 1 million images of specifically cats - there are ML techniques that can look at a million meaningful pictures of different kinds to learn general visual features and then use a much smaller number of cat pictures (possibly just one) as a reference to what do you want to identify.
In that sense it's quite similar to a vision system of humans or other animals, which needs lots and lots and lots of early-age exposure to "learn how to see" (which is the hard part); and only after that it becomes possible to figure out cats of any kind just by seeing one or two.
And how many different pictures of cats are there? If you use so many pictures to train your network, the chances are that almost every picture out there will already be in the so-called training set - not the same exact picture, but a very similar one. Then the whole "AI" is reduced to doing some fuzzy matching on a massive database of pictures.
Has anyone figured out how to debug and/or analyze deep ANN?
That's the problem I always had, you may get them into a trained state, but good luck figuring out any reason 'why' they ended up in that state (or even what that state really is).
IMO that's not really the point of deep learning. I'm not saying no efforts have been made to work towards better understanding, but the types of problems deep learning is good at I do not believe have easily explainable answers.
There are machine learning methods out there that are much better at explaining why, but fail hard on problems that DNN is good at.
IMHO, this is the nature of the problem, not the solution.
> That's the problem I always had, you may get them into a trained state, but good luck figuring out any reason 'why' they ended up in that state (or even what that state really is).
Can you give a specific example of what you mean? I ask because I see this sentiment often, but primarily from people who are very new to deep learning.
You can definitely debug a neural network. You mostly want to look at metrics from training such as gradient norms or try adjusting parameters to see if you can get a gain in overall performance as measured by cross validation performance.
You can definitely analyze a neural network. You do so by forming hypotheses, preparing datasets that reflect those hypotheses, and running them through your trained models, noting cross validation performance. It's also possible to visualize the weights in various ways, there are many papers written about it.
So what do you mean exactly when you say no one has figured out how to debug or analyze DNNs?
You cannot say: "This image was classified as a stop sign, because this part recognized the shape and this part recognized the color, and this part the text", which you could do with other approaches.
When it doesn't discover that it's a stop sign, how do you debug it? Did it recognize the shape.. who knows?
> When it doesn't discover that it's a stop sign, how do you debug it? Did it recognize the shape.. who knows?
Barring other analytic tools (like looking at which parts contribute the most to the wrong result), the same way you test other things when you have a (somewhat) black box:
Form hypotheses and test them.
Maybe it didn't recognise the shape, so try adjusting the image to clean it up, and once you have one it recognises, try to reduce and alter the difference between them. Maybe it turns out the image e.g. has the stop sign slightly covered, making the shape look wrong, and there's nothing in the training set like that.
Maybe the hue or brightness is off and the training set is mostly all lit a certain way. Test it by adjusting hue and brightness of the test image and see if it gets recognised.
And so on.
There are plenty of other areas where we are similarly constrained from taking apart that which we're observing, so it's not like this isn't something scientists are dealing with all the time.
Within comp.sci. we're just spoiled in that so much of what we do can be easily instrumented, isolated and tested in ways that often lets us determine clear, specific root causes through analysis.
They tweak the input to maximize the response of specific neurons somewhere in the middle of the network to figure out what those neurons actually "learned".
I disagree. Machine learning is more general than AI and therefore should be the outer circle (unless you believe the meme "did a regression - called it AI")
Deep learning is, yes, a subcase of machine learning, and AI may be a circle within machine learning and enclose deep learning.
But truth be told, we will all regret the way we use the term AI now. Eventually the term AI will refer only to general intelligence (aka AGI).
> Machine learning is more general than AI and therefore should be the outer circle
Machine learning is one of the but not the ONLY way to achieve AI. Artificial Intelligence is the objective, machine learning is one way to achieve it.
I think the author's illustration is technically correct, given the currently widely adopted definition of AI and its subfields.
However, you do have a point that simple machine learning aka linear regression is not really "Artificial Intelligence" if you raise the expectation of "Artificial Intelligence".
I recently learned that Alexander Stepanov, designer of the C++ STL, has stated that, "I think that object orientedness is almost as much of a hoax as Artificial Intelligence."
For machine learning and deep learning based assistive functions, like Google Now, Cortana and Siri, we let the companies behind them gather a lot of our personal data into "Big Data", because then you can do all the statistics.
I think a (more) true AI would not need all this data and just be a _personal_ assistant, not needing all the big data of other people too. Maybe initially, once, and then be a good personal assistant, learning to know you like a human personal assistant.
It would need some common sense, which is now lacking, mostly.
I was confused by this sentence in the last paragraph:
"Deep Learning has enabled many practical applications of machine learning and by extension the overall field of AI."
Is it not the reverse - machine learning has enabled deep learning?
Can someone comment on how the two - machine learning and Deep learning relate? Is the relationship sequential i.e a data set from machine learning is the the input for a neural network? The diagram had the effect of confusing me.
There's that one iconic image of neurons suspended in space with bolts of electricity flashing between them. We are told that's how our brains work.
We are then shown a diagram by a computer scientist. Instead of cells and thunder, we see circles and arrows. Then we are told there is an algorithm that simulates what the brain does. Viola, we have our artificial neural network. Not only do they look similar, they have two words in common, neural and network!
And so for most of us, there is only one logical conclusion: It does what our brain does, so once our computers have the power our brains do, we'll have the singularity!
Of course, now we know this is complete bullshit.
Basically, computer scientists just took the names and those initial abstractions and ran with it. They never looked back at the biology or how brains actually work. The result is a ton of great research, but they've strayed further and further from neuroscience and from humans. Which is obvious, because they're staring at code and computers all day, not brain meat. If there is one thing AlphaGo proved it is that we've made a ton of progress in computation, but that it's a different direction. Just the fact that average people generally suck at Go should be enough to show that AlphaGo is not human (in many ways it's beyond human).
In the meantime, our neuroscientist have made progress also, except, they've done it staring at the actual brain. And now it's to the point where our brains look nothing like that original image our computer scientists were inspired with.
With advancement comes new vocabulary, and the new word this time is connectome.
Some incredibly smart computer scientists will, again, take the term and all the diagrams, and start programming based on it. The result will be Artifical Connectomes, and they will blow our socks off. Now, don't get me wrong. I am not trying to be sarcastic here. This is what _should_ happen. And with every iteration, we will get closer to AGI.
It's just that whenever I see articles about machine learning and neural networks, I can't help but think of that classic artist's rendition of neurons firing, and how it's basically complete bullshit. Like Bohr's atom, it's an illustration based on a theory, not reality. Now we have wave function diagrams and connectomes. But as a physicist would tell you, anyone caught with a Bohr's atom is stuck in the 20th century.
Actual neural network papers are far removed from the impressions you get from popular science articles. Biological neurons were some inspiration for the abstraction, but the underlying model is more a direct evolution of the maths/stastical models. Griping that DNNs are not actually like neurons is akin to saying that Object Oriented programming is nothing like the organisation of biological cells it was inspired on. A useful abstraction is a useful abstraction, there is little reason to think that making the computational models any closer to physical processes is going to bring any improvements.
Neuromorphic computing is the field that tries to more accurately mimic spiking neurons, but making something useful out of it takes a backseat. It is still an open question if it is going to be useful.
Exactly. Wikipedia is full of disclaimers about the differences also. The issue is just with word usage that continues to fuse the two, where is reality any direct correlation ended ages ago.
This intro is pretty good, but may be a bit high level for some readers of HN. It seems like it's written for non-technical readers. The idea is that AI, ML and DL are nested like Russian dolls, each subsequent one a subset of the other.
It might be better to explain why deep learning is so effective, in clear language:
* Deep artificial neural networks are old, relatively simple combinations of math and code that are now able to produce accurate models through brute force because we have
1) vastly more computational power thanks to NVIDIA and distributed run-times;
2) much more data, and much larger labeled datasets thanks to people like Fei-Fei Li at Stanford;
3) better algorithms thanks to the work of Hinton, LeCun, Bengio, Ng, Schmidhuber and a raft of others.
Deep is a technical term. It refers to the number of layers through which data passes in a neural net; that is, the number of mathematical operations it is subjected to, and the number of times it is recombined with other inputs.
This recombination of inputs, moving deeper into the net, is the basis of feature hierarchy, which is another way of saying: we can cluster and classify data using more complex and abstract representations.
That clustering and classification is at the heart of what deep learning does. Another way to think about it is as machine perception. So the overarching narrative in AI is that we've moved from the symbolic rules engines of the chess victors to the interpretation of complex sensory information. For a long time, people would say AI could beat a 30-year-old at chess but couldn't beat a 3-year old at basic tasks. That's no longer true. We can go around beating 3-year-olds at name games all day. AI mind, beginner's mind.
But it's important to note that deep learning actually refers to other algorithms besides artificial neural networks. Deep reinforcement learning is one example. RL is also an old set of algorithms, which are goal-oriented. RL helps agents choose the right action in a given state to maximize rewards from the environment. Basically, they learn the function that converts actions to rewards given certain conditions, and that function is non-differentiable; that is, you can't learn it simply by backpropagating error, the way neural nets do.
Deep RL is important because the most amazing algorithms, like AlphaGo, are combining deep neural nets (recognize the state of the Go board) with RL (pick the move most likely to succeed) and other components like Monte Carlo Decision Trees (limit the state space we explore).
So we're moving beyond perception to algorithms that can make strategic decisions in increasingly complex environments.
We've written more about this, and implemented many of these algorithms:
But as soon as we are able to solve a problem that we think (feel?) only true AI (AGI) would be able to solve, as soon as we know how it was solved, it is no longer a mystery that warrants amazement and we argue that it is not real intelligence, just like the link below states.
But just a decade ago, if you saw that a computer was able to recognize pictures better than humans, you would think there was something fishy going on, or we have achieved true AI.
My opinion is true AI is which is comparable to human intelligence, in that it is sentient and/or capable of abstract thought, not necessarily being able to hold a conversation or solve concrete mathematics problems, or dump out a story by neural networks.
[0]https://en.wikipedia.org/wiki/AI_effect