Anda di halaman 1dari 5

UTILIZACIÓN DE TENSORFLOW EN REDES

NEURONALES ARTIFICIALES
Tenicota Toapanta Christian Fabricio.
Inteligência Artificial
Escuela Superior Politécnica de Chimborazo
ctenicota@espoch.edu.ec.
Abstract- In this document tensor (una matriz n- superior) y un poco de
we will describe the use of dimensional) con forma probabilidad para todos los
tensorflow libraries in de [55000, 784]. La primera demás porque no es 100%
Python Anaconda applied in dimensión es un índice en la seguro.
artificial intelligence and
specifically in artificial
lista de imágenes y la
neural networks by means of Los datos de MNIST segunda dimensión es el Este es un caso clásico en el
programs that are made in índice de cada píxel en cada que una regresión de
the tutorial, and verify their Los datos de MNIST se imagen. Cada entrada en el softmax es un modelo simple
functioning to understand dividen en tres partes: tensor es una intensidad de y natural. Si desea asignar
better, through the examples. 55,000 puntos de datos de píxel entre 0 y 1, para un probabilidades a un objeto
datos de entrenamiento píxel particular en una siendo una de varias cosas
Keywords: Artificial neural (mnist.train), 10,000 puntos imagen particular. diferentes, softmax es lo que
networks, recognition, de datos de prueba hay que hacer, porque
training, testing (mnist.test) y 5,000 puntos softmax nos da una lista de
de datos de validación valores entre 0 y 1 que
INTRODUCCIÓN (mnist.validation). suman 1.
TensorFlow es una Una regresión de softmax
biblioteca open source Como se mencionó tiene dos pasos: primero
desarrollada por Google que anteriormente, cada punto de sumamos la evidencia de que
nos permite realizar datos MNIST tiene dos nuestra entrada está en
cálculos numéricos usando partes: una imagen de un Cada imagen en MNIST ciertas clases, y luego
diagramas de flujo de datos. dígito manuscrito y una tiene una etiqueta convertimos esa evidencia en
Los nodos del grafo etiqueta correspondiente. correspondiente, un número probabilidades.
representan operaciones Llamaremos a las imágenes entre 0 y 9 que representa el Para contar la evidencia de
matemáticas, mientras que "x" y a las etiquetas "y". dígito dibujado en la imagen. que una imagen determinada
los arcos del grafo Tanto el conjunto de Para los propósitos de este se encuentra en una clase
representan los arreglos de entrenamiento como el de tutorial, vamos a querer particular, hacemos una
datos multidimensionales prueba contienen imágenes y nuestras etiquetas como suma ponderada de las
(tensores) comunicados sus etiquetas "vectores únicos". Un vector intensidades de los
entre ellos. Esta arquitectura correspondientes; por caliente es un vector que es 0 píxeles. El peso es negativo
flexible nos permite realizar ejemplo, las imágenes de en la mayoría de las si ese píxel que tiene una
los cálculos en más de un entrenamiento son dimensiones y 1 en una sola alta intensidad es evidencia
CPU o GPU utilizando la mnist.train.images y las dimensión. En este caso, contra la imagen que está en
misma API. etiquetas de entrenamiento elnorteth dígito se esa clase, y positivo si es
A diferencia de otras son mnist.train.labels. representará como un vector evidencia a favor.
bibliotecas numéricas Cada imagen tiene 28 que es 1 en el nortela El siguiente diagrama
diseñadas para Deep píxeles por 28 dimensión Por ejemplo, 3 muestra los pesos que un
Learning como Theano, píxeles. Podemos interpretar serían [0,0,0,1,0,0,0,0,0,0]. modelo aprendió para cada
TensorFlow se diseñó para esto como una gran variedad En una de estas clases. El rojo
su uso tanto en de números: consecuencia, mnist.train.lab representa los pesos
investigación y desarrollo elses una [55000, 10]matriz negativos, mientras que el
como en sistemas de de flotadores. azul representa los pesos
producción, por ejemplo positivos.
RankBrain, Google Search o
el proyecto DeepDream. Se
puede ejecutar en sistemas
de CPU individuales, GPU,
dispositivos móviles o Regresiones de Softmax
Podemos aplanar esta matriz
sistemas distribuidos a gran en un vector de 28x28 = 784
escala con cientos de Sabemos que cada imagen
números. No importa cómo
máquinas. en MNIST es de un dígito
aplanamos la matriz,
manuscrito entre cero y
siempre que seamos
MARCO TEÓRICO nueve. Entonces, solo hay
consistentes entre las
diez cosas posibles que una
imágenes. Desde esta El resultado es que la
A. CASO 1. imagen determinada puede
perspectiva, las imágenes evidencia de una clase i
ser. Queremos poder mirar
MNIST son solo un grupo de yo dado una entrada x es:
una imagen y dar las
MNIST puntos en un espacio
probabilidades de que sea
vectorial de 784
Es un simple conjunto de cada dígito. Por ejemplo,
dimensiones. Al acoplar los
datos de visión por nuestro modelo podría ver
datos, se descarta la Dónde Wi son los pesos y bi
computadora. Consiste en una imagen de un nueve y
información sobre la es el sesgo para la clase,
imágenes de dígitos estar 80% seguro de que es
estructura 2D de la imagen. j es un índice para sumar los
manuscritos como estos: un nueve, pero dar un 5% de
probabilidad de que sea un píxeles en nuestra imagen de
El resultado es entrada X. Luego
ocho (debido al ciclo
que mnist.train.imageses un convertimos las cuentas de
evidencia en nuestras TensorFlow es la capacidad RESULTADOS
probabilidades de crear estos gráficos
predichas y usando la computacionales en el C. Ejemplo Caso 1
función "softmax": código y permitir mejoras de
rendimiento significativas a IMPLEMENTANDO
De forma más compacta, través de operaciones REGRESION
Aquí softmax funciona como paralelas y otras ganancias
podemos simplemente
una función de "activación" de eficiencia.
escribir:
o "enlace", configurando la Podemos observar un gráfico
salida de nuestra función -Para usar TensorFlow,
similar en TensorFlow a primero debemos importarlo.
lineal en la forma que continuación, que muestra el
B. CASO 2
queremos, en este caso, una gráfico computacional de -Describimos estas
distribución de probabilidad Crear una red neuronal:
una red neuronal de tres operaciones interactuando
de más de 10 casos. Puedes Gráficos de tensorflow.
capas. mediante la manipulación de
pensar que convierte las variables simbólicas. Vamos
estadísticas de las pruebas en TensorFlow se basa en un
cálculo basado en gráficos. a crear uno:
probabilidades de nuestra Creamos estos Variables
participación en cada Se podría decir. Es una
forma alternativa de dando tf.Variableel valor
clase. Se define como: inicial de Variable: en este
conceptualizar cálculos
matemáticos. Considere la caso, inicializamos ambos W
siguiente expresión y b como tensores llenos de
Si expandes esa ecuación,
Podemos dividir esta función ceros.
obtienes:
en los siguientes Tenga en W cuenta que tiene
componentes: una forma de [784, 10]
porque queremos multiplicar
los vectores de imagen de
Puede imaginarse que 784 dimensiones para
nuestra regresión de softmax Los flujos de datos animados producir vectores de
tiene el siguiente aspecto, entre diferentes nodos en el evidencia de 10 dimensiones
Ahora podemos representar gráfico son tensores que son para las clases de
aunque con mucho
estas operaciones matrices de datos diferencia. btiene una forma
más Xs. Para cada salida,
gráficamente como: multidimensionales. Por de [10] por lo que podemos
calculamos una suma
ponderada delXs, agregue un ejemplo, el tensor de datos agregarlo a la salida.
sesgo y luego aplique de entrada puede ser de 5000 X no es un valor
softmax. x 64 x 1, que representa una específico Es placeholderun
capa de entrada de 64 nodos valor que ingresaremos
con 5000 muestras de cuando solicitemos a
entrenamiento. Después de TensorFlow que ejecute un
la capa de entrada, hay una cálculo.
capa oculta con unidades También necesitamos los
lineales rectificadas como pesos y los sesgos para
función de activación. Hay nuestro modelo.
una capa de salida final Primero,
Si escribimos eso como (llamada "capa de logit" en multiplicamos xpor Wcon la
ecuaciones, obtenemos: el gráfico anterior) que usa expresión tf.matmul(x,
la entropía cruzada como W). Esto se voltea cuando
una función de costo / los multiplicamos en nuestra
(d=b+c y e=c+2). Se puede pérdida. En cada punto ecuación, donde teníamos
realizar en paralelo. Al vemos los tensores WX, como un pequeño truco
dividir estos cálculos entre relevantes que fluyen al para tratar con xser un
CPU o GPU, esto puede bloque "Degradados" que tensor 2D con múltiples
darnos ganancias finalmente fluyen al entradas. Luego
Podemos "vectorizar" este significativas en tiempos de optimizador de Descenso agregamos by finalmente
procedimiento, computación. Estas Gradual Estocástico que aplicamos tf.nn.softmax
convirtiéndolo en una ganancias son realiza la retro-propagación
multiplicación de matriz y imprescindibles para y el descenso del gradiente.
adición de vector. Esto es útil aplicaciones de big data y
para la eficiencia aprendizaje profundo,
computacional. (También es especialmente para
una forma útil de pensar). arquitecturas de redes
neuronales complicadas
como las redes neuronales Entrenamiento:
convolucionales (CNN) y las
redes neuronales recurrentes Una función muy común y
(RNN). La idea detrás de muy buena para determinar
la pérdida de un modelo se determinar de manera from
llama "entropía cruzada". La eficiente cómo afectan sus tensorflow.examples.tutorials
entropía cruzada surge al variables a la pérdida que le .mnist import input_data
pensar en los códigos de pide que minimice. Luego mnist =
compresión de información puede aplicar su elección de input_data.read_data_sets("
en la teoría de la algoritmo de optimización MNIST_data/",
información, pero termina para modificar las variables one_hot=True)
siendo una idea importante y reducir la pérdida. -A continuación, podemos
en muchas áreas, desde el configurar las variables de
juego hasta el aprendizaje En este caso, pedimos a marcador de posición para
automático. Se define como: TensorFlow que minimice el los datos de entrenamiento
cross_entropyuso del (y algunos parámetros de
algoritmo de descenso de entrenamiento):
gradiente con una tasa de -Ahora necesitamos
aprendizaje de 0.5. El configurar las variables de
descenso de gradiente es un ponderación y sesgo para la
Dónde y es nuestra procedimiento simple, donde red neuronal de tres
distribución de probabilidad TensorFlow simplemente capas. Siempre
predicha, y y'es la verdadera cambia cada variable un hay un número L-1 de
distribución (el único vector poco en la dirección que tensores de pesas /
caliente con las etiquetas de reduce el costo. polarización, donde L es el
dígitos). Resultado:
número de capas. Entonces,
Resultados: en este caso, necesitamos
configurar dos tensores para
Digamos también que no cada uno:
sabíamos cuál sería el valor -Configurar las entradas de
de la matriz b durante la fase nodo y las funciones de
de declaración del problema activación de los nodos de
TensorFlow (es decir, antes capa oculta:
de la etapa tf.Sesión () como -Configuremos la capa de
sess ). En este caso, salida, y_
TensorFlow nos exige que De nuevo, realizamos la
declaremos la estructura multiplicación del peso con
básica de los datos mediante la salida de la capa oculta
el uso de la declaración de la ( hidden_out ) y agregamos
variable tf.placeholder . el bias, b2 . En este caso,
Precisión en nuestros datos
Vamos a usarlo para b : vamos a usar una activación
de prueba. 92%
b = tf.placeholder(tf.float32, de softmax para la capa de
[None, 1], name='b') salida; podemos usar la
D. CASO 2. Otro cambio que debemos función de tma.nn.softmax
-Declaración de Variables hacer en nuestro programa de softmax de TensorFlow
es en el comando sess.run incluida .
- Creamos las operaciones (a, ...) :
de TensorFlow a_out = sess.run(a, También debemos incluir
feed_dict={b: np.arange(0, una función de costo o
Para ejecutar las operaciones 10)[:, np.newaxis]}) pérdida para la optimización
entre las variables, / backpropagation para
necesitamos iniciar una Resultado: trabajar. Aquí usaremos la
sesión de TensorFlow función de costo de entropía
- tf.Session. La sesión de cruzada, representada por:
TensorFlow es un objeto
donde se ejecutan todas las
operaciones.
Configurar el optimizador
en TensorFlow:

Debido a que TensorFlow


conoce el gráfico completo ejemplo de red
de sus cálculos, puede neuronal
utilizar automáticamente el
algoritmo de
retropropagación para Cargar los datos ejecutando:
Aproximadamente el 98% de
precisión en el conjunto de
prueba, no está mal

CONCLUISIONES
 Tensorflow es una
herramienta
increíble que nos
ofrece un marco de
trabajo muy
potente, pero que
nos simplifica
enormemente la
complejidad interna
Configurando la que supone el
capacitación manejo de
Configurar el proceso de algoritmos de
capacitación de nuestra red aprendizaje
neuronal profundo

REFERENCIAS
[1] https://www.tensorflow.org/insta
ll/install_windows
[2] http://adventuresinmachinelearn
ing.com/python-tensorflow-
tutorial/
[3] https://www.tensorflow.org/versi
ons/r1.0/get_started/mnist/begin
ners

Resultados:

Anda mungkin juga menyukai