DeepCoder: Learning to Write Programs
arxiv.org
arxiv.org
e.g. Assembler -> C -> C++
There recently has been a post @ HN about the missing programming paradigm (http://wiki.c2.com/?ThereAreExactlyThreeParadigms). With the emerge of smarter tools, programming will get easier in one way or the other, releasing the coder from a lot of pain ( as C or C++ did realse us from tedious, painful assembler ). However, I am quite sure that it won't replace programmers since our job is actually not to code but more to solve a given problem with a range of tools. Smarter tools will probably boost productivity of a single person to handle bigger and more complex architectures or other kinds of new problem areas will come up. Research will go faster. Products will get developed faster. Everything will kind of speed up. Nevertheless, the problems to get solve / implement will remain until there's some kind of GAI. If there's an GAI smart enough to solve our problems probably most of the Jobs have been replaced.
Actually, often the most valuable thing a programmer can do is build a tool/dsl that lets the domain experts(or cheaper labor) to solve problems.
So if a programmer just solves problems, he will probably have some serious competition.
While of course we have optimizing compilers to do this sort of thing now, you could imagine automated systems that attempt to preserve clarity and simplicity as they do it - and such a system could work semi-supervised, iterating with a human in the loop to steer the system towards more comprehensible solutions.
It's optimizes math code, both at the math level and the implementation level, and Intel have used it to optimize their performance libraries.
No, they are here:
> SpiralGen holds the exclusive license to the Spiral software generation and optimization technology.
But I wonder how that can be true if:
> Spiral was developed under the lead of Carnegie Mellon University
Even if there are patents involved , i'm sure it's not patented everywhere around the globe, and it's just software, so why isn't there no real competition ? something like a reasonably prices SAAS service ?
First they came for the factory workers. Then they came for the accountants. Then they came for the drivers...
Then they came for me.
Now, as automation increases, that layer gets thinner each time.
But it will be some time before we see AI capable of doing requirement analysis, negotiating requirements, etc.
Most often business' initial expectations are a nice-looking broken pile of shit. They simply haven't conceptualized the product enough and figured out how it needs to work. It's my job to get them there.
Businesses/stakeholders are the expensive middle men between me and the money to build the product. I can do this without you.
For example, recognizing people in a picture is almost impossible to specify but relatively easy to learn, given enough examples.
Next time your facing a poorly specified problem, don't ask for a clear spec, instead ask for a million examples and train a deep net to solve it :)
I've visited /r/machinelearning, /r/computervision /r/reinforcementlearning, and although they are often better than HN, they also either partly suffer from the same condition, or are almost dead with no real activity.
TLDR; what are some good places to hang out for good ML discussions and news?
Twitter has good conversation as well, if you follow all the ML people.
Most researchers are in labs so they usually discuss these things in person with their colleagues. Also the community is relatively small so a lot of discussion happens at conferences and most people are first or second degree connections.
The issue is that most of the people that practice ML don't talk about it in the open (with the exceptions of academics on Twitter). The best discussions I've found happens in the labs or cross-lab email lists.
Why is there no "general" deep learning algorithm?!
Because "deep learning" is almost always just neural networks with many layers and some tweaks to the unit types to alleviate vanishing-gradient issues, trained by stochastic gradient descent. In rather theoretical terms, "deep learning" involves using gradient descent, and gradient-increasing tweaks, to search for a specific continuous circuit in a given space of continuous circuits. It's only as general as the hypothesis class you search through, which here is, again, continuous "circuits" composed out of "neuron" units of specific types, numbers, and arrangements.
Now, in computability terms, given a large enough (continuous or discrete) circuit, possibly a recurrent one, you can represent any computable function. However, in learning terms, that doesn't make a useful computable function at all easy to find in a very-high dimensional space.
1) Write programs easy to understand at first glance
2) Write code easy to delete
3) Write considering costs: target zero -or as low as possible- maintenance costs
4) Write code for both fun and profit
LIPS with DSLs you say?