With TensorFlow, Google Open Sources Its Machine Learning Resources (blogspot.com)
smaxp writes: Google has announced the open source release of TensorFlow, its machine learning software library. "TensorFlow has extensive built-in support for deep learning, but is far more general than that -- any computation that you can express as a computational flow graph, you can compute with TensorFlow (see some examples). Any gradient-based machine learning algorithm will benefit from TensorFlow’s auto-differentiation and suite of first-rate optimizers. And it’s easy to express your new ideas in TensorFlow via the flexible Python interface." This comes alongside some dramatic speed increases (PDF). The code is available at GitHub under an Apache 2.0 license. "Deep learning, machine learning, and artificial intelligence are all some of Google's core competencies, where the company leads Apple and Microsoft. If successful, Google's strategy is to maintain this lead by putting its technology out in the open to improve it based on large-scale adoption and code contributions from the community at large.
As in the summary, they claim that Tensorflow is a machine learning software library. That sounds cool and conjures thoughts of artificial or machine intelligence, self learning computers...
But, the Tensor flow page starts with
TensorFlow is an open source software library for numerical computation using data flow graphs
Which sounds very mundane and not at all like artificial intelligence or self learning.
Can anyone explain what it really is or is capable of and what it is used for?
Consider the question: What is learning?
For example, let's say you sit down on your first day in a biology class. There are microscopes in the lab and lots of pictures of biological stuff; the components of plant and animal cells, magnified microscope slides showing tissues made up of stained cells, etc.
Now, the professor asks you a question: What is the difference between Prokaryotic cells and Eukaryotic cells?
You probably don't know, considering you haven't been in a biology class before.
Eventually you learn these concepts, and attach a name ("prokaryotic") to a concept (i.e.: everything you learned about prokaryotic cells).
Now the professor can ask the question again: What is a prokaryotic cell? And now you can answer.
Your brain has mapped an INPUT ("prokaryotic") to an OUTPUT (everything you learned about prokaryotic cells).
You've learned.
Machine learning is basically the same thing. We have some input (an image, a sound, a paragraph of text) and we want an output ("this IS/IS NOT a cat", "that IS/IS NOT an English language curse word", "this IS/IS NOT a spam e-mail"). The way computers do this is to learn the shape of mathematical functions. ... then we ask "Now, what about this random picture that I've never shown you? Is it a cat or not?"
It's tricky, because the humans only provide samples of the function space: here's a bunch of cat pictures, here's a bunch of non-cat pictures
Google's engine is about getting these samples into mathematical form, and allowing the computer to construct a map of them.
Once the map is complete, it can be used on novel inputs (i.e.: a random picture, that may or may not contain a cat).