INSTITUTO TECNOLÓGICO DEL PUTUMAYO
INGENIERÍA EN SISTEMAS
RESUMEN TENSOR FLOW
ZAMBRANO WILLIAM
DICIEMBRE 2022
En el módulo 5 se habla sobre la visión artificial profunda, nos enseñan como clasificar imágenes y
reconocer objetos usando algo llamado red neuronal convencional (visión artificial profunda).
El fin de las redes neuronales es clasificar y detectar objetos concretos dentro de una imagen, se
usarán datos de imagen como característica y también una etiqueta para esas imágenes como
etiqueta o salida. Pasaremos a hablar sobre los conceptos más importantes:
datos de imagen
capa convolucional
capa de agrupación
arquitecturas CNN
Las principales diferencias que hay en este tipo de redes neuronales son las capas que las
componen.
En estos casos se habla de datos de imagen que usualmente están compuestos por 3 dimensiones
altura de imagen
ancho de imagen
canales de color
el número de canales de color representa la profundidad de una imagen y se relaciona con los
colores relacionados en ella. Por ejemplo, una imagen con tres canales probablemente este
formada por pixeles RGB (rojo, verde, azul). Para cada píxel hay tres valores numéricos en el rango
de 0-255 que hacen que defina su color
RED NEURONAL CONVOLUCIONAL
Cada una de estas redes se compones de una o varias capas convoluciones, las cuales son
diferentes de las capas densas.
Su fin es hallar patrones dentro de las imágenes que se puedan utilizar para clasificar la imagen o
partes de esta.
La diferencia entre las capas densas y las capas convoluciones es que en las densas detectan
patrones globales, mientras que las convoluciones detectan patrones locales.
Una capa densa analizara toda la imagen y generara algún resultado con esa información en tanto
la capa convoluciones analizara de manera más detallada algunas partes específicas de la imagen y
en las mismas detectara patrones.
MULTIPLES CAPAS CONVOLUCIONALES
En estos modelos es bastante común ten más e una capa convoluciones, acá se usará un ejemplo
básico en donde hay 3 capas convoluciones. Cuando estas capas trabajan juntas hacen que se
incremente la complejidad y la abstracción de cada capa subsiguiente; la capa numero 1 es la
encargada de recoger bordes y líneas cortas; la siguiente capa toma estas líneas como entradas y
empieza a hacer formas o polígonos; mientras que la última capa tiene la capacidad de tomar
estas formas y analizar qué imagen forman al combinarlas.
MAPA DE FUNCIONES
Este término únicamente representa un tensor 3D con dos ejes espaciales ( alo y ancho)by uno de
profundidad. Las capas convoluciones toman mapas de características como entrada y devuelven
un nuevo mapa de características que representa la presencia de filtros específicos del mapa
anterior, a estos les damos el nombre de mapas de respuesta.
ARTQUITECTURA CNN
es una pila de capas Conv2D y maxPooling2D seguidas de unas capas conectadas de forma
definida, por consiguiente, estas características se aplanan y alimentan a capas densamente
conectadas que determinan la clase de una imagen en función de la presencia de características
capa 1
la forma de entrada de nuestros datos será 32, 32,3 y procesaremos 32 filtros de tamaño 3*3
sobre nuestros datos de entrada, además aplicaremos la función de activación relu a la salida de
cada operación de convolución.
Capa 2
Realiza la operación de agrupación máxima utilizando muestras de 2*2 y un paso de 2
Demás capas
el siguiente conjunto de capas realiza cosas muy parecidas, pero toma como entrada el mapa de
características de la capa anterior. Además, incrementan la frecuencia de los filtros de 32 a 64. Se
puede hacer esto a medida que los datos se reducen en dimensiones espaciales a medida que
pasan a través de las capas, es decir que podemos permitirnos (computacionalmente) agregar más
profundidad.
Luego de ver el resumen deberías notar que la profundidad de la imagen aumenta, pero las
dimensiones espaciales se reducen drásticamente
}
MODULO 6
PROCESAMIENTO NATURAL DEL LENGUAJE (PNL)
Es una disciplina de la informática se que ocupa de la comunicación entre languages naturales
(humanos) y los lenguajes informáticos
Un ejemplo de los PNL es algo así como el corrector ortográfico o autocompletar.
REDES NEURONALES RECURRENTES (RNN)
La red neuronal recurrente tiene una capacidad mas grande para procesar datos secuenciales,
como texto o caracteres.
Saber usar esta red neuronal recurrente nos puede ayudar a hacer lo siguiente:
análisis de sentimientos
generación de personajes
los RNN son algo complicados y vienen en diferentes formas por lo que se hablara de cómo
funcionan y para que tipo de problemas son adecuados
DATOS DE SECUENCIA
Acá se verán secuencias de texto y aprenderemos como podemos codificarlas de manera
significativa. A diferencia de las imágenes, los datos de secuencia, como largas cadenas de texto,
videos, patrones climáticos entre otros deben procesarse y manejarse de una manera especial
CODIFICACION DE TEXTO
De alguna manera debemos codificar nuestros datos textuales en valores numéricos que los
modelos puedan entender
Bolsa de palabras
Es una técnica bastante sencilla en la que cada palabra de una oración se codifica con un número
entero y se incluye en una conexión que no mantiene el orden de las palabras pero si hace un
seguimiento de la frecuencia.
Codificación de enteros
Implica representar cada palabra o carácter en una oración como un entero único y mantener el
orden de las mismas a diferencia de la técnica anterior.
Incrustación de palabras
Mantiene intacto el orden de las palabras y codifica palabras que se parezcan con etiquetas
parecidas. Trata de codificar con la frecuencia y el orden de las palabras sino también con el
significado de las mismas en la oración
Redes neuronales recurrentes
Esto significa que todos nuestros datos se transmiten de izquierda a derecha a través de la red
pero esto no funciona ahora, incluso los humanos no procesamos el texto de una sola vez, leemos
palabra por palabra de izquierda a derecha y hacemos un seguimiento al significado actual de la
oración para de igual manera poder entender el significado de la siguiente palabra
Una capa recurrente (bucle)
Lo que este diagrama quiere mostrar es que una capa recurrente procesa palabras o entradas de
una en una en combinación con la salida de la iteración anterior
Lo anterior visto se le da el nombre de Una capa RNN SIMPLE que es efectivo para el
procesamiento de secuencias de texto mas cortas para problemas simples
Modulo 7
aprendizaje reforzado
Esta técnica es diferente de muchas otras técnicas de aprendizaje automático que hemos visto
antes y tiene muchas aplicaciones en el entrenamiento de agentes (IA) que interactúan con
entornos como los juegos. En lugar de alimentar nuestro modelo de aprendizaje automático con
millones de ejemplos, dejamos que nuestro modelo genere sus propios ejemplos a medida que
explora el entorno.
Terminología
un ejemplo de un entorno en el caso de entrenar una IA para jugar, digamos, un juego de Mario
sería el nivel en el que estamos entrenando al agente.
Nuestro agente interactuará y tomará diferentes acciones dentro del entorno.
En nuestro ejemplo de Mario, el personaje de Mario dentro del juego sería nuestro agente.
Estado siempre nuestro agente estará en lo que llamamos un estado.
El ejemplo más común de un estado es la ubicación del agente dentro del entorno.
Una acción puede o no cambiar el estado actual del agente.
Recompensa Cada acción que realiza nuestro agente se traducirá en una recompensa de cierta
magnitud (positiva o negativa).
El objetivo de nuestro agente será maximizar su recompensa en un entorno.
A veces, la recompensa será clara, por ejemplo, si un agente realiza una acción que aumenta su
puntuación en el entorno, podríamos decir que ha recibido una recompensa positiva.
Si el agente realizara una acción que le hiciera perder puntos o posiblemente morir en el entorno,
recibiría una recompensa negativa.
La parte más importante del aprendizaje por refuerzo es determinar cómo recompensar al agente.
Después de todo, el objetivo del agente es maximizar sus recompensas.
Q aprendizaje
Q-Learning es una técnica simple pero bastante poderosa en el aprendizaje automático que
implica aprender una matriz de valores de acción-recompensa.
La matriz tiene forma (número de estados posibles, número de acciones posibles) donde cada
valor en la matriz [n, m] representa la recompensa esperada de los agentes dado que están en el
estado n y toman la acción m.
El algoritmo Q-learning define la forma en que actualizamos los valores en la matriz y decidimos
qué acción tomar en cada estado.
La idea es que después de un entrenamiento/aprendizaje exitoso de esta Q-Table/matriz,
podamos determinar la acción que un agente debe tomar en cualquier estado mirando esa fila de
estados en la matriz y tomando la columna de valor máximo como la acción.
Ahora, ¿cómo creamos esta tabla y encontramos esos valores?
Comenzaré señalando que nuestra Q-Table comienza con todos los valores 0.
Nuestro agente aprende explorando el entorno y observando el resultado/recompensa de cada
acción que realiza en cada estado.
Pero, ¿cómo sabe qué acción tomar en cada estado?
Hay dos formas en que nuestro agente puede decidir qué acción tomar.
Cerca del comienzo del aprendizaje de nuestros agentes, en su mayoría tomarán acciones
aleatorias para explorar el entorno y entrar en muchos estados diferentes.
A medida que comience a explorar más el entorno, gradualmente comenzará a depender más de
sus valores aprendidos (Q-Table) para tomar acciones.
Esto significa que a medida que nuestro agente explora más el entorno, desarrollará una mejor
comprensión y comenzará a tomar acciones "correctas" o mejores con más frecuencia.
Es importante que el agente tenga un buen equilibrio entre la realización de acciones aleatorias y
el uso de valores aprendidos para garantizar que quede atrapado en un máximo local.
Después de cada nueva acción, nuestro agente registrará el nuevo estado (si lo hay) en el que ha
entrado y la recompensa que recibió por realizar esa acción.
Estos valores se utilizarán para actualizar la Q-Table.
El agente dejará de realizar nuevas acciones solo una vez que alcance un cierto límite de tiempo o
haya alcanzado el objetivo o haya llegado al final del entorno.
γ representa el factor de descuento
La tasa de aprendizaje α es una constante numérica que define cuánto cambio se permite en cada
actualización de QTable.
Una alta tasa de aprendizaje significa que cada actualización introducirá un gran cambio en el valor
actual de estado-acción.
Una pequeña tasa de aprendizaje significa que cada actualización tiene un cambio más sutil.
La modificación de la tasa de aprendizaje cambiará la forma en que el agente explora el entorno y
la rapidez con la que determina los valores finales en la QTable.
El factor de descuento también conocido como gamma ( γ ) se usa para equilibrar cuánto enfoque
se pone en la recompensa actual y futura.
Un factor de descuento alto significa que las recompensas futuras se considerarán más
fuertemente.
Para realizar actualizaciones sobre esta tabla dejaremos que el agente explore el entorno durante
un tiempo determinado y utilice cada una de sus acciones para realizar una actualización.
Para este ejemplo, usaremos el algoritmo Q-Learning para capacitar a un agente para que navegue
por un entorno popular desde Open AI Gym. Open AI Gym se desarrolló para que los
programadores pudieran practicar el aprendizaje automático utilizando entornos únicos.
Entorno del lago congelado
Ahora que tenemos una comprensión básica de cómo funciona el entorno del gimnasio, es hora de
discutir el problema específico que resolveremos.
El entorno que cargamos arriba de FrozenLake-v0 es uno de los entornos más simples en Open AI
Gym. El objetivo del agente es navegar por un lago congelado y encontrar el objetivo sin caer a
través del hielo .