Documentos de Académico
Documentos de Profesional
Documentos de Cultura
TENSOR FLOW
15 de Noviembre, 2018
INTRODUCCIÓN
A la unión de una neurona con sus enlaces de entrada y sus pesos asignados
se le llama perceptrón. Así la salida del perceptrón tiene un mecanismo para
calcular si está activo en función de los valores dados por la salida de la
anterior
capa multiplicados por el peso del enlace de unión.
DNN (Deep Neural Net) la cual tiene más de una capa oculta.
CNN (Convolutional Neural Net) son especialmente importantes
en
el procesamiento de imágenes y la categorización. Se caracterizan
por tener capas de filtros convolucionales
que, de manera similar a la corteza visual del cerebro, transforman
la entrada
aplicando máscaras para extraer información de distintos tipos.
RNN (Recurrent Neural Net) se caracterizan por tener
conexiones recurrentes
con ellas mismas o neuronas de la misma capa. Especialmente
interesantes para detección
de patrones, pues permiten “recordar” los valores de la anterior
predicción.
Deep Learning
El Deep Learning lleva a cabo el proceso de Machine Learning usando una
red neuronal artificial que se compone de un número de niveles
jerárquicos. En el nivel inicial de la jerarquía la red aprende algo simple y
luego envía esta información al siguiente nivel. El siguiente nivel toma
esta información sencilla, la combina, compone una información algo un
poco más compleja, y se lo pasa al tercer nivel, y así sucesivamente.
Machine learning
Es la habilidad de las computadoras de aprender sin ser explícitamente
programadas.
Si esta definición resultó muy simple, pongámoslo de esta forma: es la idea
de que existen algoritmos que pueden darte hallazgos o conclusiones
relevantes obtenidas de un conjunto de datos, sin que el ser humano tenga
que escribir instrucciones o códigos para esto.
¿CÓMO EMPEZÓ EL TENSORFLOW?
Tensor Flow es un software de computación numérica, creado por Google,
orientado a problemas de Deep Learning. Deep Learning es un área
específica de Machine Learning que está tomando gran relevancia dentro del
mundo de la Inteligencia Artificial y que está detrás de algunos de las
novedades tecnológicas más sorprendentes de los últimos años.
El origen de TensorFlow está en años de experiencia de Google en el campo
de la Inteligencia Artificial. TensorFlow nace del trabajo de Google Brain,
un grupo de investigadores e ingenieros de Google dedicado a investigar en
el área de la IA, que desarrollaron en 2011 DistBelief, el predecesor cerrado
de TensorFlow.
Aunque esta decisión podría parecer altruista y hasta irracional, casi dos años
después de hacerlo, en febrero de 2017, Google liberó la versión 1.0, que
incorpora multitud de mejoras. Algunas de las más reseñables son mejoras
de rendimiento que permiten acelerar hasta 58 veces los tiempos de
ejecución de algunos algoritmos y aprovechar las ventajas de ejecutar sobre
GPUs. Además, se han mejorado y facilitado las integraciones con otras
bibliotecas del ecosistema como Keras.
El impacto que ha logrado Google liberando esta tecnología es espectacular
y la comunidad ha respondido.
Los productos creados con TensorFlow se pueden ejecutar desde cualquier
lugar, pero además es muy fácil enviarlos a plataforma de computación en la
nube de Google. Y su popularidad está ayudando a Google a hacerse con una
parte más grande del mercado de infraestructuras alojadas en la nube, que
actualmente ya está valorado en 35.000 millones de euros y subiendo.
Google ocupa el tercer puesto de la clasificación en este sector, bastante por
detrás de los líderes, Amazon Microsoft.
VENTAJAS DE USAR TENSORFLOW
El Deep Learning podría estar en los dispositivos que llevan los médicos con
ellos, por lo que definitivamente hay necesidad de que TensorFlow funcione
en gran variedad de dispositivos.
3. Procesamiento de imágenes
Una de las aplicaciones más conocidas de TensorFlow es el software
automatizado de procesamiento de imágenes, DeepDream. Se trata de un
programa de visión artificial creado por el ingeniero de Google Alexander
Mordvintsev, que utiliza una red neuronal convolucional para encontrar y
mejorar patrones en imágenes mediante pareidolia algorítmica, creando así
una apariencia alucinógena, similar a un sueño, creando imágenes
deliberadamente sobreprocesadas.
USO BÁSICO DEL TENSOR FLOW
Para usar TensorFlow es necesario entender como TensorFlow:
El grafo por defecto ahora tiene tres nodos: dos constant() ops y uno
matmul() op. Para multiplicar las matrices, y obtener el resultado de la
multiplicación, usted debe lanzar el grafo firmado en su sesión personal.
Uso interactivo
Los ejemplos de Python en la documentación lanzan el Grafo con
una Session y usa Session.run()
Para facilitar el uso de ambientes interactivos de Python,
como IPython usted puede utilizar la clase InteractiveSession, y
el Tensor.eval() y los métodos Operation.run(). Esto permitirá mantener
una variable para la sesión:
Tensors
Los programas de TensorFlow usan una estructura de datos tensor para
representar todos los datos -- sólo los tensors pasan por las operaciones del
Grafo computacional. Usted puede pensar en un tensor TensorFlow como
un arreglo de n-dimensiones o una lista. Un tensor tiene un tipos estático,
un rango y una forma.
Variables
Las variables mantienen su estado durante la ejecución del Grafo. Los
siguientes ejemplos muestran una variable sirviendo como un simple
contador.
La operación assing() en este código es una parte de la expresión del Grafo
como la operación add(), pero esto no realiza la asignación hasta que se
ejecuta la expresión run()
Típicamente usted puede representar los parámetros de un modelo
estadístico como un conjunto de Variables. Por ejemplo, usted quisiera
almacenar los pesos de una red nueronal como un tensor en una variable.
Duante el entrenamiento usted actualiza este tensor corriendo un Grafo de
entrenamiento repetidamente.
Fetches
Para extraer las salidas de las operaciones, ejecute el Grafo con una llamda
run() sobre el objeto Session y pasar en el tensor para recuperarlo. En el
ejemplo anterior, nosotros extrajimos el nodo sencillo state, pero también
podemos extraer múltiples tensors:
Todas las ops necesarios para producir los valores de los tensores
requeridos son corridos una vez (no una vez para cada ocasión que son
requeridos).
Feeds
Los ejemplos anteriores introduce a los tensors en un Grafo computacional
almacenándole en Constantes y Variables. TensorFlow tambien provee un
mecanismo de alimentación para ajustar un tensor directamente en una
operación en el Grafo.
Un feed temporalmente reemplaza una salida de una operación con un
valor del tensor. Usted aliemnta los datos del feed como un argumento de
la llamada a run(). El feed es solamente utilizado para ejecutar call en el
que es enviado. El caso más común envuelve operaciones especialmente
diseñadas para ser operaciones "feed" usando: tf.placeholder() para
crearlos:
La operación placeholer() genera un error si usted no puede soportar un
feed para esto.
CONCLUSIÓN
Google ha sido pionero desde su nacimiento en el mundo de la Inteligencia
Artificial, impulsando la investigación y el desarrollo en este campo. Con
TensorFlow han dado sin duda un pasito más, impulsando como siempre la
innovación y abriendo el conocimiento a multitud de empresas,
universidades, ingenieros y científicos que basándose en tecnologías abiertas
como TensorFlow conseguirán logros fascinantes en los próximos años.