Artificial intelligence is a tool that allows technology to go a step further.
Throughout the history of Artificial Intelligence, there have been several subfields developed as methods for problem solving. One of them is Deep Learning. — a multilayered computational process that teaches machines to deal with complex problems-. Today we will be delving into TensorFlow.
TensorFlow is an open source python library that uses deep learning and graph computation. So far, it has been developed for classification, perception, understanding, discovery, prediction and creation. Today version 0.8 has been released, allowing to compute machine learning models across several machines in paralell
It has several advantages with respect to other libraries: flexibility of representation and use-as it can run on desktops, servers, cloud and even mobile devices-, high scalable across many machines and huge datasets, incorporates many tools to help build and visualize the dataflow networks. Besides, it comes well packaged, encompassed by a single API making the execution very streamlined.
One of the fields for which tensorflow can be extremely useful is image recognition and classification . TensorFlow´s deep neural network Library allows us to learn a concept like “cat” .
In the below animation graphic we can see that upon getting the input image of a cat into that several of the larger Deep Neural Network then we get their food in this case I guess no question answered about if this is a cat or not .
Recently a browser-based simulator has been released, in wich you would be able to experiment visually with deeplearning directly experimenting with clustering and hidden layers.
At the language understanding field, abstract TensorFlow shows tensor structures that build semantic relationships between words in gradient ascent or gradient descent -word2vec- , meaning that it is able to create vectors associated with words .
If we dig further into the main architecture of TensoFlow we can find five main classes in wich we can operate, and create the computational processes. I will describe them here.
Tensors are multidimensional and dynamically sized data arrays .TF use a tensor data structure to represent all data. This structure can have different levels of complexity, from scalar to even an n-dimensional matrix .
When you create a tensor you have to specify the Rank-parameterizes the structure of the Tensor-, Shape-how we write or represent it on TF defines dimensionality and Type -structure of the kind of data we are going to deal with- in order to operate with it.
Tensors are structural units you can operate with, making several operations such as casting, shaping and slicing and joining . You can know more HERE and/or diving into tf.Tensor class .
When you train a model, you use variables to hold and update parameters .Variables contains tensors. In sofmax regressions, weights and bias are considered variables .Can be shaped and restored. It has an specific class tf.Variable class. When you run TF , you must initialize variables . Besides, you can run a lot of operations with variables.
Knowledge representation is a significant part of what TensorFlow can offer to developers. It creates a visual way of representing Neural Networks .
The complexity of the neural net can be evaluated in the graph, and how variables affect the computation. Besides, you can use other softwares as the brain for drawing the neural net before you actually implement it
Everytime you run a session a computation graph architecture is launched .
ONLINE RESOURCES FOR TENSORFLOW
There is talented people who is teaching amazing examples and applications of TensorFlow, here are some of them :
Courses : Udacity Deep Learning Course
Book : Jordi Torres has written this amazing book, great for starters
Playground : Browser-based simulator that leets you experiment with a basic TF setup and deep learning
This post complements Madrid Meetup of 14th April about TensorFlow
Thanks for reading . I will be upgrading it weekly with more examples about this library !