7 ms·
Software 2.0
- singularity2001 9y agoKarpathy beautifully phrases what I felt before. This is important. Slightly frustrating too if you come from a 'hardcoding' background, but there is hope that many non-data problems remain to be solved. Data is software.
- pron 9y agoWhat bothers me about articles like this is not their faith in the power of neural networks -- power that, I'm sure, we have only just begun to harness effectively -- but that by ignoring the history of neural networks (and machine learning in general), they paint a somewhat misleading picture. Artificial neural networks were invented in 1943, some years before the earliest electronic computer prototypes. In fact, the McCulloch & Pitts paper that first described them served as an inspiration (possibly the main inspiration) for von Neumann's design of the digital circuits that would make the earliest computers. Alan Turing discussed using genetic algorithms for training neural networks in 1948[1], roughly concurrently with the earliest work on software. So "software 2.0", if not predated "software 1.0", certainly evolved concurrently with it right from the very beginning. Early progress seemed so promising that a whole movement dedicated to the belief of the power of neural networks and similar techniques, called Cybernetics, was established in 1948[2] by some of the leading minds of that generation, like Norbert Wiener and von Neumann. They were so optimistic that they believed that a full mathematical theory of intelligence and the brain would be completed in five years. The skeptical Turing, who attended some of the groups meetings but found McCulloch to be a charlatan, thought it would take 50. 80 years later, while better hardware has certainly finally allowed us to enjoy some of the fruits of that old promise, we have yet to make any theoretical breakthrough. The algorithms we use today for training neural networks were invented 50 years ago, and there wasn't even a modest theoretical breakthrough in at least a few decades. I don't think we are in any position to announce any sort of revolution. [0]: https://en.wikipedia.org/wiki/Artificial_neuron https://en.wikipedia.org/wiki/Artificial_neuron [1]: https://en.wikipedia.org/wiki/Unorganized_machine https://en.wikipedia.org/wiki/Unorganized_machine [2]: https://en.wikipedia.org/wiki/Cybernetics https://en.wikipedia.org/wiki/Cybernetics
- monkmartinez 9y agoYou stated that Andrej Karpathy ignores the history of neural networks and posits a misleading picture. While you gave a very brief history of Neural Networks, you failed (imo, BIG TIME) to make a point. First, you really should look into what Mr. Karpathy has done. Second, none of these "old" algorithms were useful in the 40's and 50' because there was no internet and very little data. They are only becoming useful now due to the explosion of data. So, it stands to reason that it Mr. Karpathy isn't ignoring history out of malice, he is ignoring it because it doesn't fucking matter... at all.
- pron 9y agoThe point, simply put, is that neural networks have felt like a revolution for 75 years, while little actual progress has been made. That they have finally proven to be effective at statistical clustering, and so are becoming very practical for some important tasks, is very cool, but declaring them to be a revolution or the road to AI is premature. The attitude displayed in the post is not only unjustified by the actual achievement (we are still far from achieving even insect-level "intelligence" or actually replacing a significant portion of "software 1.0") but has actually seriously harmed the very research subject, that I assume Mr. Karpathy wants to foster, in the past. AI research has been seriously burned by over-enthusiastic optimism before; it should learn the lesson.
- hackerfromthefu 9y agoThanks for the deeper perspective, very interesting. Not the OP, but what has happened that is perhaps revolutionary is the hardware capabilities are now unlocking capabilities that were latent in the existing algorithms, but not previously accessible due to hardware limitations. Sometimes quantity creates it's own quality.
- nl 9y agoSo this ("NN's were invented a long time ago and there has been no theoretical progress since") is a common meme put forward by people who read bits about AI, usually work in software but aren't actively doing machine learning. It's not true. For example, the LSTM (the default architecture for use of a NN on text) wasn't invented until 1997. If we want to look at just very recent work, ResNet wasn't invented until 2015, Attention until 2010 (being generous), NMTs in 2014 etc etc. One can argue these built on other things - which is absolute true - but we don't make the same argument about say Wayland under Linux: "Oh it's just a graphics API with X and Y co-ordinates and more powerful computers". Until ~2014, people couldn't train neural networks over 4 layers deep. Until ResNet they couldn't do more than ~10 layers. Now hundreds of layers normal for image recognition tasks, and people still say "there is nothing new". It wasn't faster hardware that got these techniques to work, it was new theoretical breakthroughs.
- na85 9y agoI despise the name "Software 2.0" because it implies a certain betterness. Some things will always be written in the "1.0" fashion.
- mullsork 9y ago> Some things will always be written in the "1.0" fashion. Like the article clearly stated.
- msangi 9y agoI think that, as it already happens today, different classes of problems are going to be solved with different techniques. Do you have a clear specification and expect exact results? "Software 1.0" is the best choice. Do you have problems that are computationally intractable, or simply a huge amount of data and you can accept an approximate solution? This is where "Software 2.0" makes sense. It's already being used and it will keep expanding. The factors that will determine the ration between "Software 1.0" and "Software 2.0" will likely be: * how much we will be willing to accept approximate solutions * how easy it will be to collect the training data and to train a neural network. I can totally imagine an hybrid model where there is going to be a lot of "Software 1.0" with some black boxes trained using machine learning techniques. I'm not very convinced we will have many 100% "Software 1.0" applications. That works well for some specific problems (like AlphaGo Zero mentioned in the article) but many other domains don't map that well to a machine learning problem.
- spraak 9y agoBut the software they describe is better. And besides, linear versions don't mean better necessarily. Is 2017 better than 2016?
- andreasgonewild 9y agoHow can it be better when it fails randomly and we don't even understand how it works? Where I come from, that's the worst kind of software.
- gfodor 9y agoThis seems like a poor framing when you consider that the vast majority of "software 1.0" projects are of a form that does not map onto the semantic structure of a machine learning problem.
- _pdp_ 9y agoNot everything is data. Interesting computer science (and just science for that matter) problems have a lot to do with data but the rest falls under entertainment or utility problems. To write this type of software using only ML models you need something that mimics the human nature - that will be effectively AI.
- halayli 9y agoapples vs oranges imho. i feel op is speaking from a narrow perspective.
- sigttin 9y ago"It turns out that a large portion of real-world problems have the property that it is significantly easier to collect the data than to explicitly write the program." It turns out that when you base your post on a ridiculous unsubstantiated premise, you can conclude anything.
- 0xbear 9y agoI like how he then proceeds to enumerate all the things which, if they weren’t doable, no one would really care. Cardinal rule of drug dealing: never get high off your own stash.
- gavinpc 9y agoIndividuals don't care, but the corporate surveillance state cares a lot. Face recognition, voice recognition, and speech recognition alone are an Orwellian dream come true. Cardinal rule of everything else: follow the money. Cynicism aside, I tend to believe the OP's premise that these methods will contribute to a new and unrecognizable kind of software development (for better or worse).
- solomatov 9y agoI don't agree with the author. There're plenty of use cases which aren't covered by machine learning and won't be covered by existing machine learning method in the future. Yes, we've came far with ML, but until we really have Software 2.0, a lot of time will pass.
- sparkie 9y agoNot mentioned in disadvantages is that you can't really explain "how" a neural network produces a given output from given inputs. Some things can be figured out from training data, if it were available, but more often than not it isn't, you just get a pre-trained network. So if were comparing it to software, it's like only shipping binary blob which is basically impossible to debug, and in many cases, throwing away most of the source code (the training data). How many people are actually maintaining the full data sets used to train their networks?
- stepik777 9y agoSo in 2017 he suddenly realized that visual recognition, speech recognition, etc are done with neural networks. How enlightening!
- gilbetron 9y agoOn my journey to catch back up with ML after having abandoned it around 2000, I find myself thinking the same things as Karpathy. There is something profound here, and as someone that has been writing software for 40 years since the ripe age of 8, it is scintillating in its potential. I'm working in a field distant from most current applications of ML (DDOS detection/mitigation and "cyber" security), and so I'm reaping the benefits of being able to take this stuff and apply it to lots of problems. Results are shocking so far. It feels more like training a cybernetic animal than programming, and I'm ok with that. It's a puzzle of trying to figure out how to morph reality so that ML systems can gain traction, and that's just a fascinating new way of looking at problems. Great article!
- chubot 9y agoI don't think software 2.0 is a good name, because I don't think the programs we write right now and neural nets are that comparable. They're more complementary than overlapping. It's something new in the toolkit, not something that replaces existing programs.
- sigsergv 9y agoThe main issue with ML/AI is that it has not been exploited yet by hackers and criminals. We actually don't know ML/AI weaknesses at all! We have some basic examples like feeding fabricated pages to google search AI to hack page rank. Or exploiting news collector AI to push fake news to the top. This area is basically ignored by researchers and mass media.
- deleted 9y ago[deleted]