This post referenced a NYTimes article about Google's AI work on Translate, and the brain team in general, that I missed previously. It's a good read.
"The Great AI Awakening"
> The new incarnation, to the pleasant surprise of Google’s own engineers, had been completed in only nine months. The A.I. system had demonstrated overnight improvements roughly equal to the total gains the old one had accrued over its entire lifetime.
As a student hoping to become a software engineer, I'm a little nervous about Googles aggressiveness towards applying ML across many of their products. It makes me wonder: Will the field of software engineering be reduced to plugging ML nodes into client-side interfaces? Could it shrink the demand for engineers?
Speaking as a part timer on Brain who's not a machine learning person, I've found and believe that MI just opens up more opportunities for good programmers. There are a ton of problems out there that we couldn't solve well with computers without MI, and so didn't even attempt. Now we can attempt them, and they're both fun and hard.
I've noticed that the number of applications MI can be embedded into is nowhere near its full potentiality. There's a lot of potential for people who are able to think on their feet product-wise and incorporate MI, even if MI is a black box to them. Echo your opinion.
Much of so called software engineering is about assembling/wrapping other API/libraries anyway.
I don't see how ML change the scenario, instead of querying some db, you are now querying some trained models. Until we have an algorithm that could write correct code given requirement specified in natural language, the demand or prospect of software engineer as a profession will not be affected by ML/AI too much. However it is hard to predict when such technique will emerge, 10 years? 20 years? maybe 50 years.
The blog post specifically mentioned Program Synthesis which is exactly what you're talking about. The article they published was called Neural Programmers but I haven't read it: https://arxiv.org/abs/1511.04834
But so far all are just like toy examples. The big barrier here is natural language understanding, so far we have limited success even with deep learning at hand.
If eventually natural language understanding is solved, it is going to be a much bigger deal than programmer losing their jobs.
Its been a field of study for decades, though, with pretty minimal success. Every hot field gets applied to it (genetic algorithms being the hot stuff 6-10 years ago). I wouldn't worry yet.
The jury is out on this one. The probability distribution would be the surface of a mattress with a peanut under it (very flat).
This is the branch of IA/ML that turns me on the most. When we get there, it will redefine many jobs (as well as create an existential thread as a side effect).
I think it is sad that the terms AI and Machine learning do not make a clear difference between narrow and strong AI, this is the source of much confusion.
IMO, the same question could be asked with respect to any abstraction that hides complexity. The answer will always be/has always been: No, it won't. Rather, engineers who can think creatively about the role of pre-built ML models in mainstream applications will be in high demand.
Agreed. That made me think of how statisticians 70 years ago were often good at doing all kinds of tests by hand. Once the doing things by hand part was abstracted away by modern computing they just focused on other parts of statistics.
> Your real job as a software engineer isn’t to write code. It’s to translate hand-wavy business requirements into detailed specs that a computer can follow.
> Your job is to ask questions and to find edge cases that the product people didn’t think of. Your job is to help operations define processes well enough to be automated.
Right now it takes 5 to 10 years to train a human who already knows how to code to do this. Some never learn.
I think we're safe for a while.
Engineers don't "write code", they build solutions. We just happen to use code to do it. And we happen to manually type that code. Even if an AI could type it for you, you'd still need someone to build the solution.
Even with currently available programming techniques, simply getting many coworkers to move from "WET" to "DRY" can be a daunting challenge.
Many people just hate abstractions. ML / AI tools seem to often just boil down to larger aggregations of abstractions (which require some training and/or experience to learn). I guess the "we enjoy [lots of] typing" crowd will go the way of the dodo as the tooling moves up abstraction levels. I hope they don't suck me down with them :-(
(yes, I'm glossing over the requirements gathering aspect of the comment to carp about the construction aspect, but the same strategy of abstraction/investigation, or not, applies)
Lots of commenters seem to think that programmers are safe for a while. As a programmer, I sincerely hope they are right.
But, the majority of developers I know, including myself, are ultimately writing software to be used by humans, typically presenting data that is comprehensible to humans, so that they can make decisions.
If AI advances to the point where similar decisions can be made by machines, looking at the same data, then I fear that entire classes of applications will disappear, and with them, the need for developers who build them.
Obviously, we'll still need developers, though perhaps far fewer than are needed today. Perhaps software development will go through the same revolution that agriculture did, where from we went from > 90% to < 3% of the population being involved.
This is already nascent, but growing quickly, in a field typically called things like "robotic process automation" or "cognitive computing". Essentially, eliminating the need for wide swaths of CRUD and business process enterprise applications, and the developers who create them (and the sysadmins who support them, etc etc).
But why? Programmers right now do everything by hand. In a ML future less of those by hand things will be needed. It seems like less programmers will be needed as a result.
Programmers do not do everything by hand right now. We have compilers and libraries and frameworks. There is a HUGE stack of automation that involves basically every step between you typing characters in a text editor and you executing code somewhere.
Did FORTRAN reduce the need for programmers by offering a compiled language?
Let's say I want to make a new shazam using deep learning. I, as the DL researcher, would be tasked with coming up with the neural network architecture. Once I'm done with that, now what? I now need someone to build the entire app, UI, UX, database, etc. That's what programmers have been doing all along! Now you just have another API (ie DD or TF-serving) to integrate.
> I now need someone to build the entire app, UI, UX, database, etc.
What part of the decisions involved in that process have "magic" attributes that makes them uniquely tied to the meat-based data processor in your head?
It's a logical concern. There is no reason to assume that today's software engineers are any different than the 1950's coal miners. The world changes, bit by bit, there is no such thing as perfect job security for life.
That is similar to coal miners unions providing jobs for life. That is, it's only a job for life if the business model it relies on continues flourishing. Higher education looks like a more stable employer than software engineering, but I definitely wouldn't be confident in saying that it will look like it does today, 50 years from now.
1 - introduction of automation vastly increases throughput of industry, either eroding a traditional
2 - industry vastly increases demand of technically and scientifically literate workers
3 - folks compete for contemporary educational/employment opportunities in industry
4 - an engineer acclimates to their niche
If you're already in a stage 4 situation, it may seem like there's always a new blockbuster industry in stage 1. But, the transition into stage 3 for a new technology may seem insurmountable. That said, technologies rarely meet their hype..
Either way, engineering is a subset of problem solving, and people will always have problems. It would be great to assimilate all kinds of problem solving skills that you can.
Personally I think that within X years (could be only 10, or 5, or probably less) we will see human-level AGI. This is because the grounded (based on granular sense/motor) deep learning systems such as Deep Mind are being applied in varied virtual environments and some with gradual development of skills and knowledge. This type of approach will enable truly general agents.
So we better hope that the BCIs develop quickly as well.
I work in AI, specifically in the field of deep learning applied to computer vision. Not trying to discredit your comment, but can you provide some sources indicating that the type of models being trained which you have mentioned are approaching the notion of a general agent?
I haven't read much of the literature around deep learning, mostly only what has been applied to computer vision. But from what I understand, the general consensus is that the current crop of state-of-the-art deep learning models are very good at performing specific tasks (machine translation, object recognition in images, etc.), but are not so good at generalising across multiple fields. This seems more relevant to the domain of reinforcement learning (which does indeed include deep learning), which has proven to be a very difficult problem to solve.
Having an agent with sensory and motor terminals in diverse contexts gradually trained on increasingly complex knowledge and tasks is key I believe. Like I mentioned see Deep Mind's work. Also see field of AGI which does exist (for example search 'AGI-16 intelligence' on youtube).
I am working on a webpage to try to break down why I think this is coming so fast.
AGI(-16) is a cognitive science / philosophy conference (and not particularly high impact). Similarly, NIPS is not really about neural information processing.
I'm not reading into titles. I watched a lot of the videos. Don't dismiss it on your superficial evaluation of titles or prejudice about the conference.
AGI is in fact a developed field with key insights into general intelligence. You should study it.
I comment a lot on machine learning but I don't actually work in the field actively. I did some research in college.
There aren't many active researchers/experts commenting on HN (better things to do), which is IMO a big issue with the ML-related discussion quality on HN (it's basically 90% futurism/speculation).
The current AIs are all "base level". There's no "meta" level processing there.
The human brain is full of meta upon meta levels. Networks on top of other networks, and so on. Abstractization. Correlation between different domains. Feedback loops. There will be no AGI until we start building that kind of architectures.
We're currently only making individual Lego bricks. We haven't started to assemble them yet.
Networks on top of other networks -- about any recursive neural network could be in that category. Also there are multiple projects exploring metalearning on deep NNs where it learns the network topology, i.e. learning how to learn.
Abstraction in single domains is very commonly achieved with various types of hierarchy in NN and non-NN systems. Correlation between different domains has fewer examples simply because most AI systems do not deal with multiple domains, but they do exist.
Feedback loops are common and fundamental to AI and simpler non-AI control systems.
I don't know when, but I can guarantee it won't be within 5 years. The reason: digital hardware improvements are slowing down. Today's best hardware can only run a model with the number of nodes in a human brain at 1/2400th speed, and probably with an oversimplified model: http://www.telegraph.co.uk/technology/10567942/Supercomputer...
I don't think we will reach human level AI on digital hardware; it just doesn't really make sense with the Von Neumann bottleneck. Parallel, analog computation is the way forward and that has yet to be commercialized, so we probably have a ways to go.
That being said, AI is getting very impressive on the software side, and with the use of TPU's, GPU's, and FPGA's, we can definitely look forward to compelling use cases where these algorithms have apparently creative intelligence, but only within an extremely specific category (when compared to the generalities of biological analog brains).
I'm being down-voted to oblivion by all the pure software engineers on here who think their trade is being challenged -- well, it is. The fact of the matter is that the world runs on hardware and analog hardware is orders of magnitude more efficient.
It's definitely worth every software engineer's time to learn how computers work from all the way down at the laws of electricity, basic signal processing/analog circuits, up to semiconductor physics and microarchitecture.
I'm a hardware engineer and I downvoted you because your comment is shallow and uninformative. The "Von Neumann bottleneck" has nothing to do with digital vs analog hardware (rather it's about the separation between storage and computation) and the idea that analog computation is the way forward requires a much longer argument before it's even surface level plausible.
Unfortunately, analog computation is not considered an important addition to the electrical engineering curriculum, even in computer architecture concentrations. I'll gladly explain what I know if you're genuinely interested; in general, you have to hope that people have some context when you make a comment in HN, but there are very few analog-focused people here. But anyway, that's where DARPA is putting their money: http://www.artificialbrains.com/darpa-synapse-program
I definitely see how my language would convey that whereas I mean to refer to digital computers, not all hardware, when I mentioned the Von Neumann bottleneck. There are different arguments against digital hardware in general, even though FPGA's can be about an order of magnitude more efficient than microprocessors. Modern analog goes much further, although we're still not very good at 'programming' it, which is why I think AGI is a ways out.
The main problem with analog computation is lack of reliability (analog is not always deterministic and manufacturing defects are more difficult to eliminate) and density (analog components are usually much larger, in part to increase reliability). That's a huge blocker for faster chips. How do you think we will get around those problems?
Also, perhaps I'm misreading their paper[1], but that DARPA project is still using digital logic. In fact, they specifically say that they decided against using analog computation due to the increased density of digitial (one of the main problems with analog computing, as I mentioned). Regardless, it's pretty clear that the project doesn't have the goal of replacing general purpose computing, so I'm curious why you consider this evidence that analog computing will replace digital computing?
Finally, in what way are FPGAs much closer to analog computing than microprocessors? The advantages of FPGAs (configurability) are orthogonal to analog vs digital.
Who said anything about replacing digital? You are clearly more intelligent than my calculator, and yet I could program my calculator to do computations that would be practically impossible for you (unless you happen to be a savant). Strong AI will rely on analog, but through future integration with digital, it can achieve the best of both worlds.
The topic is AI, where efficient, large scale neural nets will require fundamentally different hardware, like the programmable mixed signal Samsung boards used by Synapse. Those are best described as specialized FPAA's and they certainly do rely on digital for programming, and special (although still solid state circuits) for pseudo-analog properties. However, the most interesting parts are yet to come, and are being developed by partners/founders of the program: http://knowm.org/about/
The next generation boards are likely to contain memristors and self organizing memory, with a structure somewhere between the organization level of FPGA LUT blocks and biological nervous systems. This will obviously need to interface with/through digital circuits to be of any use.
The way I read your second post was that analog computing is more efficient in general; it sounds like you don't actually believe that. Fair enough.
However, I still take issue with your overall point.
> Efficient, large scale neural nets will require fundamentally different hardware, like the programmable mixed signal Samsung boards used by Synapse.
I think it's at least plausible that we'll see gains from fundamentally different architectures (namely combining memory and computation) but where's the evidence that we need to switch from digital to analog? Where's the evidence that analog is even better for an architecture like that? Again, the DARPA project you linked actually gave evidence of the opposite.
> The next generation boards are likely to contain memristors and self organizing memory, with a structure somewhere between the organization level of FPGA LUT blocks and biological nervous systems.
You keep talking as if there's some obvious reason that analog is more efficient/faster/better for the types of architectures you're talking about. I'm not seeing that reason.
Here's a better attempt to explain it: we are using digital circuits to basically simulate analog circuits with analog properties. It should be intuitive that analog is more efficient for representing analog abstractions (neural networks, which inherently copy analog structures). Digital hardware adds an additional abstraction layer built out of components that do not behave like the desired structures (neurons) and are basically running simulations. It's no surprise that some of the most successful models have shifted away from the perceptron-style representation and use more mathematical models to better leverage digital hardware for the node simulations, but they still rely on the basic models of weights and feedback cycles which require clock cycles and controlled computation on digital circuits.
Digital is more efficient for some problems in the sense that it's the only way to achieve precise computational results, but even when it comes to mathematical arithmetic, the circuitry to add two analog signals is much faster and simpler (two wires and a resistor), as is the design of a multiplier (one transistor).
It's definitely a complex subject, but I don't see why you would find it so difficult to believe -- the most intelligent machines we know of are analog and decentralized (like human brains).
> It should be intuitive that analog is more efficient for representing analog abstractions (neural networks, which inherently copy analog structures).
That's not necessary true; again, see the DARPA project you listed.
> Digital hardware adds an additional abstraction layer built out of components that do not behave like the desired structures (neurons) and are basically running simulations.
The analog hardware doesn't necessarily behave like the desired components either (for example, due to manufacturing errors). With digital you get to choose your accuracy and with much greater control.
> Digital is more efficient for some problems in the sense that it's the only way to achieve precise computational results, but even when it comes to mathematical arithmetic, the circuitry to add two analog signals is much faster and simpler (two wires and a resistor), as is the design of a multiplier (one transistor).
Unless you don't care about noise at all, your design will be much more complicated than a single transistor. Either way, it's actually much easier to do this sort of "approximate computing" in the digital domain.
> It's definitely a complex subject, but I don't see why you would find it so difficult to believe -- the most intelligent machines we know of are analog and decentralized (like human brains).
A bird has feathers yet our most efficient airplanes don't use them; there's no reason at all to believe that just because the brain is analog, our design should be as well.
Put another way, the downside of utopia is that it's very hard to make a living sweeping up excrement off of the streets anymore - those jobs are simply gone. And they're not coming back, either.
The reason I make this analogy is that programming isn't fun†. It's maddeningly difficult. As far as I'm concerned, plugging ML nodes into client-side interfaces can't get here fast enough.
† I don't care if you "think" you like it - just like someone might think they like sweeping excrement all day.
We don't have a simple separation of concerns like that. Brain and DeepMind share a common vision around advancing the state of the art in machine learning in order to have a positive impact on the world. Because machine intelligence is such a huge area, it is useful to have multiple large teams doing research in this area (unlike two product teams making the same product, two research teams in the same area just produces more good research). We follow each other's work and collaborate on a number of projects, although timezone differences sometimes make this hard. I am personally collaborating on a project with a colleague at DeepMind that is a lot of fun to work on.
I wish they would make a society of AI brains inside the computer which talk to each other by sending documents around, one AI brain might have a job such as checking the document is correct. A large society of AI brains.
Secondly, a single AI brain is composed of many small AI brains in a society. Also those brains, recursively down forever recursive.
Google voice is rumored to be getting a major refresh. Will we get the new translate capabilities built-in to Google Voice in real time. Basically it would be the universal communicator.
I do not need the functionality personally but I want to see it in my lifetime.
"The Great AI Awakening"
> The new incarnation, to the pleasant surprise of Google’s own engineers, had been completed in only nine months. The A.I. system had demonstrated overnight improvements roughly equal to the total gains the old one had accrued over its entire lifetime.
https://www.nytimes.com/2016/12/14/magazine/the-great-ai-awa...