News for hackers. Stuff that matters.
Re:TensorFlow: open-source library for machine intelligence by kragen on Monday November 09, 2015 @09:24AM (#10533139)
This is really significant. At this moment in history, the growth of computer power has made a bunch of important signal-processing and statistical tasks just feasible, so we are seeing things like self-driving cars, superhuman image recognition, and so on. But it's been very difficult to take advantage of the available computational power, because it's in the form of GPUs and clusters. TensorFlow is a library designed to make it easy to do exactly these things, and to scale them with your available computing power, along with libraries of the latest tricks in neural networks, machine learning (which is pretty close to "statistics").

As a bonus, it has built-in automatic differentiation so that you can run gradient descent on any algorithm — which means that you can just write a program to evaluate the goodness of a solution and efficiently iterate it to a local maximum. If you do this enough times, hopefully you'll find a global maximum. There are a variety of other numerical optimization algorithms, but gradient descent is very simple and broadly applicable.

And it runs in IPython (now Jupyter), which is a really amazingly powerful way to do exploratory software development. If you haven't tried Jupyter/IPython, google up a screencast and take a look.

I'm just repeating the stuff that's on the home page in a different form, but this is a really big deal. Most of the most significant software of the next five or ten years is going to be built in TensorFlow or something like it. (Maybe Dan Amelang's Nile; see Bret Victor's amazing video on the dataflow visualization he and Dan built for Nile recently at https://youtu.be/oUaOucZRlmE?t=24m53s, or try the live demo at http://tinlizzie.org/dbjr/high_contrast.html, or download and build the Nile system from https://github.com/damelang/nile.)

Apparently the Googlers think that too, because among the 39 authors of the white paper are several shining stars of systems research, including some who may be up for a Turing Award in the next decade or two.

Re:TensorFlow: open-source library for machine intelligence by mtw on Monday November 09, 2015 @10:29AM (#10533517)
What about Torch or Theano which allow you to use multiple GPUs and clusters? they also have a wide array of libraries which allows you to extend capabilities (itorch etc.). torch is also very fast, most parts written in C so I don't know if Tensorflow would be really that fast compared to existing librairies.

One thing find I found interesting is the ability to use the software you designed in research directly in production (without having to rewrite the whole thing in java)

That said, I'm excited to see Google release this. Hopefully it would encourage Facebook or Baidu to also release

Re:TensorFlow: open-source library for machine intelligence by maccam912 on Monday November 09, 2015 @11:05AM (#10533776)
As far as I can tell, this may not be faster than theano/torch, but it doesn't sound like it'll be slower. It takes a similar approach of sending all the big computation stuff out to efficient implementations. The "slow" language code is simply building up a graph of work to be done by the efficient implementations.
Re:TensorFlow: open-source library for machine intelligence by chimtim on Monday November 09, 2015 @12:07PM (#10534206)
Do 10% speedups really matter for its success, if both libraries are ultimately calling into CUDNN? I do not think so.

Right now, Torch/Caffe adoption is really good with lots of research code being released for it (even from within Google DeepMind). So it will be interesting to see how this catches up amongst the research and developer community.

Re:TensorFlow: open-source library for machine intelligence by dchichkov on Monday November 09, 2015 @06:33PM (#10536603)
As a side note, it feels like the front page picture of interactive computational graph is a bit misleading - looks like the interface is still using Python (or C++), not fancy GUI... But yes, it looks very similar to a great tool from Yoshua Bengio's group - Theano. So, great! Another amazing tool to take away the grind of doing ML projects!
Re:TensorFlow: open-source library for machine intelligence by tianlins on Monday November 09, 2015 @08:18PM (#10537021)
TensorFlow seems to have better multi cpu/gpu support than Theano.
Re:TensorFlow: open-source library for machine intelligence by elcritch on Monday November 09, 2015 @11:27AM (#10533924)
Agreed, this is huge. I've been thinking along these lines for a while, but more focused on traditional programming systems. The approach of programming via data-flows and visually representing those is going to be enormous in the coming decade, IMHO. Especially in asynchronous and heterogenous programming environments.

Actually, it feels like I've been "scooped" somewhat. However, at the same time it's awesome to find that many of the core assumptions I've been working in formulating for traditional programming systems are actually already being used by other top engineers/researchers at Google. Thanks for posting about the whos-who of systems research. I'll have to check up on their research more!

I think there is a lot of room left to apply this approach to a lot of existing systems outside of machine learning. We're working on releasing a prototype in the coming months at our new startup (vexpr.com) based on applying these same data-flow principles to normal programming projects. Actually this might give a huge boost in presenting the underlying approach to systems engineering to audiences.

Re:TensorFlow: open-source library for machine intelligence by cafebeen on Monday November 09, 2015 @10:22PM (#10537425)
I wouldn't worry too much about being scooped by this--the idea of data flow programming has been around since the 60s. Tensorflow looks like a very nice implementation of those ideas for neural network training, and is potentially useful for more general numerical computing, but to what extent remains to be seen.
Re:TensorFlow: open-source library for machine intelligence by w_t_payne on Monday November 09, 2015 @01:14PM (#10534694)
Yeah ... I'm a big fan of data-flow programming (Been working on my own approach for a little while too ...)
Re:TensorFlow: open-source library for machine intelligence by elcritch on Monday November 09, 2015 @06:45PM (#10536653)
Nice, lol, hope TensorFlow didn't scoop any of your ideas too. ;) Overall, it's exciting to see data-flow paradigms gain popularity.

What kind of dataflow approach are you most interested in? I've been shifting my approach to work within existing systems. One things I've been doing is abusing the intent of web-components and DOM events to create data visualization tools.

Recently my team and I decided to focus down a little more. Have you had success in bridging the gap between esoteric academic papers and industry?

Re:TensorFlow: open-source library for machine intelligence by w_t_payne on Monday November 09, 2015 @07:01PM (#10536714)
Nothing too serious ... mostly to glue embedded machine vision system components together in a simulation environment.
Re:TensorFlow: open-source library for machine intelligence by hmehta on Monday November 09, 2015 @07:56PM (#10536939)
Do you guys know of any theoretical analysis on Data flow vs Control flow software ?
Re:TensorFlow: open-source library for machine intelligence by kragen on Tuesday November 10, 2015 @10:21AM (#10539816)
This comment is not being answered, not because there is none, but because there is far too much to fit a good summary of it into this margin. It includes most of modern compiler and CPU design, as well as most current HPC work.
Re:TensorFlow: open-source library for machine intelligence by elcritch on Tuesday November 10, 2015 @02:10PM (#10541575)
That's a fair point overall. It's basically the entirety of the debate between functional languages and imperative languages. Nonetheless, it is still pretty good question as far as someone trying to understand the differences and why it might be useful.

@hmehta, one of my recent favorite videos generally on this topic has been from Curry On conference [1]. It's not strictly data-flow vs control flow, but it does discuss some of the more practical differences in between using monads for structuring data flows vs imperative control.

My take is that monads can be roughly considered as wrapping up imperative control flow along with the data. E.g. wrapping up the if/else choices into a data structure. Currently I actually found studying up on actual category theory easier than all the "easy introduction" things regarding monads. As in, the ideas when presented straightforwardly and technically correct are simpler than we give credence to.

[1]: https://www.youtube.com/watch?v=449j7oKQVkc

Re:TensorFlow: open-source library for machine intelligence by Fede_V on Monday November 09, 2015 @12:00PM (#10534148)
One small note on the paper itself. I love that the paper's author are in alphabetical orders, without any stupid jostling over first/last authorship.

I think that's fantastic and wish academia went that way too (yeah right).

Re:TensorFlow: open-source library for machine intelligence by jamessb on Monday November 09, 2015 @01:53PM (#10534950)
This is the convention in mathematics.

From the AMS statement on The Culture of Research and Scholarship in Mathematics: "For this reason, mathematicians traditionally list authors on joint papers in alphabetical order. An analysis of journal articles with at least one U.S. based author shows that nearly half were jointly authored. Of these, more than 75% listed the authors in alphabetical order. In pure mathematics, nearly all joint papers (over 90%) list authors alphabetically."

http://www.ams.org/profession/leaders/culture/CultureStateme...

Re:TensorFlow: open-source library for machine intelligence by sytelus on Monday November 09, 2015 @05:07PM (#10536171)
Why is alphabetical order great? It just only means that people with last names starting with z will get penalized every single time because of choosing wrong parents! I would think randomized order would be chosen - especially if you were mathematician.
Re:TensorFlow: open-source library for machine intelligence by Steuard on Tuesday November 10, 2015 @09:41AM (#10539532)
Why "penalized"? If there's no significance attached to author ordering, why should it matter who's listed first?

(I can actually answer my own question to some degree: the "alphabetical authors" convention is also the norm in my own field of high energy physics. Only after I finally landed a tenure-track job and served on another search committee did I realize that folks from other fields of physics would see my lack of first-author publications as a black mark. But in principle, among those who know the convention, order ought to be unimportant, shouldn't it?)

Re:TensorFlow: open-source library for machine intelligence by infinii on Monday November 09, 2015 @08:15PM (#10537011)
"Choose" parents with a surname starting with A then.
Re:TensorFlow: open-source library for machine intelligence by Swizec on Monday November 09, 2015 @08:37PM (#10537080)
You can also legally change your last name to anything you want at any point in time. If you care enough.

Or use a pseudonym.

Re:TensorFlow: open-source library for machine intelligence by ant6n on Monday November 09, 2015 @09:21PM (#10537208)
Meet Mr. Aaberg.
Re:TensorFlow: open-source library for machine intelligence by mcnawoh on Tuesday November 10, 2015 @11:25PM (#10544822)
Interestingly, with this sounding like a somewhat realistic Norwegian/Danish name, it should actually show up at the bottom by the sorting rules of those two languages.

The digraph "aa" is an archaic representation of the modern character "å", the last letter of the Norwegian and Danish alphabets, and should be sorted accordingly.

Re:TensorFlow: open-source library for machine intelligence by finance-geek on Tuesday November 10, 2015 @01:49AM (#10537944)
Mr. Aaberg has nuthin' on Mr. Aaaron
Re:TensorFlow: open-source library for machine intelligence by danieltillett on Monday November 09, 2015 @07:30PM (#10536848)
If only it were so simple. It really depends on the field, but in the biological sciences it really matters where you are in the authorship list. If you are first it is assumed you did most of the work and if you are last you were the head honcho of the group. When you apply for scholarships and grants the committees will only consider the first and last authors as important and everyone else is just filler. It really important to be last when you are trying to get grants as so much emphasis is placed on track record.
Re:TensorFlow: open-source library for machine intelligence by amelius on Monday November 09, 2015 @02:32PM (#10535223)
I think that is usual for any large project. Take for instance the papers published by CERN.

Also consider that a single "order" might not make any sense. How do you determine if somebody "contributed" more than anybody else?

Re:TensorFlow: open-source library for machine intelligence by revelation on Monday November 09, 2015 @02:45PM (#10535315)
I realize the jostling going on, but I personally appreciate that I can tell from the order of names who to contact with inquiries.
Re:TensorFlow: open-source library for machine intelligence by Someone on Monday November 09, 2015 @03:01PM (#10535398)
That isn't that simple, as there is a cultural component in the order authors are listed (https://en.m.wikipedia.org/wiki/Academic_authorship#Order_of...)

Also, at CERN, with papers with 1000+ authors, any chance of picking the 'right' name from the list approaches zero, anyways. Such papers typically list a "corresponding author" to whom to send inquiries.

Alphabetic order also gave us the fun Google search phrase "Does G. Aad exist?" (Gives a link to https://jeffollerton.wordpress.com/2014/05/28/does-gaad-exis..., but Google also suggests a correction to your "typo")

Re:TensorFlow: open-source library for machine intelligence by Zephyr314 on Monday November 09, 2015 @05:57PM (#10536441)
Depending on how long it takes to "evaluate the goodness of a solution" techniques like multi-start gradient decent can rapidly become intractable though, especially in higher dimensions. There are a handful of open source libraries out there that try to tackle this time consuming and expensive black box optimization problem from a more Bayesian approach [1] [2]. There's also a YC company to do this as a service (full disclosure, I'm a co-founder) [3]. Combining these methods with TensorFlow could be very powerful and is one step closer to more automatic ML flows though.

[1]: https://github.com/Yelp/MOE (full disclosure, I co-wrote this)

[2]: https://github.com/hyperopt/hyperopt

[3]: https://sigopt.com/cases/machine_learning

Re:TensorFlow: open-source library for machine intelligence by orasis on Monday November 09, 2015 @08:22PM (#10537031)
Could something like MOE be made to run on TensorFlow?
Re:TensorFlow: open-source library for machine intelligence by Zephyr314 on Tuesday November 10, 2015 @03:55PM (#10542422)
Yes, if you could expose the parameters to MOE from within TensorFlow. We're going to work on an example of showing how this can be done with SigOpt, which has a similar interface.
Re:TensorFlow: open-source library for machine intelligence by argonaut on Monday November 09, 2015 @10:33PM (#10537458)
You've just described Theano. I don't know why you think this is a watershed moment in history.
Re:TensorFlow: open-source library for machine intelligence by tequila_shot on Monday November 09, 2015 @09:36AM (#10533212)
> I didn't see the author list on the white paper.

http://download.tensorflow.org/paper/whitepaper2015.pdf

starts with the Author list.

Re:TensorFlow: open-source library for machine intelligence by tomatioaz on Monday November 09, 2015 @10:49AM (#10533678)
What is Nile?

I can't find it on Google.

Re:TensorFlow: open-source library for machine intelligence by azeirah on Monday November 09, 2015 @11:21AM (#10533878)
Nile is a language built by Dan Amelang, a researcher @ viewpoints research institute. It is a language made for graphics rendering, it has the goal of having no incidental complexity.

2D vector graphics rendering as an example, takes ~10.000 lines of code using traditional libraries like Cairo (used by Firefox) or Skia (used by Android and Chrome). In Nile, it's 200 lines of code.

Check out this repo, and the pdf inside the readme https://github.com/damelang/nile

Re:TensorFlow: open-source library for machine intelligence by StevenOtto on Monday November 09, 2015 @03:34PM (#10535614)
Re:TensorFlow: open-source library for machine intelligence by nickpsecurity on Monday November 09, 2015 @06:25PM (#10536568)
It was also built with OMeta:

http://www.tinlizzie.org/ometa/

https://en.wikipedia.org/wiki/OMeta

That tool can be used to solve a lot more problems. REBOL/Red and Racket are also taking DSL approach.