Practicas IA y DeepLearning

Deep Learning: Es una serie de algoritmos emparentados con las redes neuronales que tienen la misma finalidad y un rendi

Views 41 Downloads 3 File size 6MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

  • Author / Uploaded
  • Anahi
Citation preview

Deep Learning: Es una serie de algoritmos emparentados con las redes neuronales que tienen la misma finalidad y un rendimiento mayor que otras formas de Machine Learning. La mayor diferencia es la capacidad de abstracción. Ejemplos: 



Para clasificar naranjas y manzanas con una red neuronal es necesario extraer características que definan las frutas. Estas características pueden ser el color, la forma, el tamaño, etc. Representar las frutas mediante estas características es una forma de abstracción que debe ser diseñada por la persona que entrene la red neuronal. Detector de rostros en imágenes. Es muy fácil codificar una imagen como una lista de números. De hecho, ya las codificamos así en los ordenadores. Por tanto, esta red recibiría tantos números a su entrada como píxeles tienen nuestras imágenes.

Cuando aplicarlo. Los algoritmos Deep learning son capaces de realizar una abstracción semejante por sí mismos, sin necesidad de que alguien la diseñe

previamente. Por esta razón se dice que el Deep Learning no sólo es capaz de aprender, sino que, además, puede encontrar significado. Grandes empresas como Google o Facebook usan Deep Learning de manera rutinaria en sus productos para reconocer caras y para interpretar el lenguaje natural. Es de esperar un gran desarrollo de aplicaciones basadas en Deep Learning debido a la necesidad de automatizar el tratamiento inteligente de las enormes cantidades de datos que se generan a diario y, además, porque hay una serie de herramientas open source que ponen estos algoritmos al alcance de todos, como Theano, TensorFlow, H2O u OpenAI Gym . El éxito de las aplicaciones industriales del Deep Learning dependerá de la disponibilidad de grandes cantidades de datos de calidad, de los recursos de computación disponibles y de su aplicación a problemas apropiados. La detección y clasificación de defectos o averías, el modelado de sistemas para su control y la detección de anomalías podrían ser las primeras aplicaciones prácticas exitosas. Los modelos computacionales de Deep Learning imitan estas características arquitecturales del sistema nervioso, permitiendo que dentro del sistema global haya redes de unidades de proceso que se especialicen en la detección de determinadas características ocultas en los datos. Este enfoque ha permitido mejores resultados en tareas de percepción computacional, si las comparamos con las redes monolíticas de neuronas artificiales.

Ejemplos Python Deep Learning. Ejemplo 1.

Ejemplo 2.

Ejemplo 3.

Redes neuronales: Una red neuronal es un algoritmo que imita el funcionamiento de las neuronas y de las conexiones que hay entre ellas y son entrenadas para que tengan la capacidad de desempeñar una tarea. Se dice que una red neuronal aprende mediante el entrenamiento porque no hay una programación explícita para realizar una tarea, sino que la red se programa sola a partir de ejemplos. Las redes neuronales son el mayor exponente del llamado machine Learning o aprendizaje automático. Ejemplos: 

 

Una serie de operaciones matemáticas sobre una lista de números, que da como resultado otra lista de números. Otra forma de verlas, es como un procesador de información, que recibe información entrante, codificada como números, hace un poco de magia, y produce como resultado información saliente, codificada como otros números. Un ejemplo concreto sería una red de neuronas que detecte rostros en imágenes. Codificar una imagen como una lista de números. De hecho, ya las codificamos así en los ordenadores. Por tanto, esta red recibiría tantos números a su entrada como píxeles tienen nuestras imágenes (o tres por cada píxel si utilizamos imágenes en color)

Cuando aplicarlo. Las redes neuronales pueden aprender a clasificar y a imitar el comportamiento de sistemas complejos. Si queremos que aprenda a diferenciar entre manzanas y naranjas sólo tenemos que mostrarle unos cuantos ejemplares de ambas frutas y decirle, a la vez, si se trata de una manzana o de una naranja. Una vez entrenada la red neuronal sabrá si está ante una manzana o una naranja. Lo interesante es que lo sabrá aunque las manzanas y naranjas no sean las que se le enseñaron durante el entrenamiento ya que las redes neuronales no memorizan, sino que generalizan. Esa es la clave del aprendizaje de las máquinas. Y si la información que esperamos a la salida es que nos diga si hay un rostro o no, basta con un solo número. en la lista saliente. Podemos imaginar que si ese número, que sale de la red, toma un valor cercano a 1.0 significa que hay un rostro, y si toma un valor cercano a 0.0 significa

que no lo hay. Valores intermedios se pueden interpretar como inseguridad, o probabilidad. Ejemplos Python Redes Neuronales. Ejemplo 1.

Ejemplo 2.

Ejemplo 3.

Machine Learning: Una de las claves de la IA avanzada está en el aprendizaje. Es cada vez más habitual que les pidamos a las máquinas que aprendan por sí solas. No podemos permitirnos el lujo de pre-programar reglas para lidiar con las infinitas combinaciones de datos de entrada y situaciones que aparecen en el mundo real. En vez de hacer eso, necesitamos que las máquinas sean capaces de auto-programarse, en otras palabras, queremos máquinas que aprendan de su propia experiencia. La disciplina del Aprendizaje Automático (Machine Learning) se ocupa de este reto y gracias a la tormenta perfecta en la que nos acabamos de adentrar todos los gigantes de Internet han entrado de lleno en el mundo del aprendizaje automático, ofreciendo servicios en la nube para construir aplicaciones que aprenden a partir de los datos que ingieren. Hoy en día el aprendizaje automático está más que nunca al alcance de cualquier programador. Para experimentar con estos servicios tenemos plataformas como IBM Watson Developer Cloud, Amazon Machine Learning, Azure Machine Learning, TensorFlow o BigML. Entender los algoritmos de aprendizaje es fácil si nos fijamos en cómo aprendemos nosotros mismos desde niños. El aprendizaje por refuerzo engloba un grupo de técnicas de aprendizaje automático que a menudo usamos en los sistemas artificiales. En estos sistemas, al igual que en los niños, las conductas que se premian tienden a aumentar su probabilidad de ocurrencia, mientras que las conductas que se castigan tienden a desaparecer. Este tipo de enfoques se denominan aprendizaje supervisado, pues requiere de la intervención de los humanos para indicar qué está bien y qué está mal (es decir, para proporcional el refuerzo). En muchas otras aplicaciones de la computación cognitiva los humanos, aparte del refuerzo, también proporcionan parte de la semántica necesaria para que los algoritmos aprendan. Ejemplo: 

En el caso de un software que debe aprender a diferenciar los diferentes tipos de documentos que recibe una oficina, son los humanos los que inicialmente han de etiquetar un conjunto





significativo de ejemplos para que posteriormente la máquina pueda aprender. Los algoritmos cuentan con un conjunto de entrenamiento proporcionado por los humanos, entonces son capaces de generalizar y empezar a clasificar documentos de forma automática sin intervención humana. En el ámbito de la visión artificial, para que los algoritmos aprendan a detectar objetos en las imágenes de forma automática han de entrenarse previamente con un buen conjunto de imágenes etiquetadas, como por ejemplo Microsoft COCO.

En la actualidad son estas restricciones o limitaciones de entrenamiento de los algoritmos las que en buena medida limitan su potencia, pues se requieren buenos conjuntos de datos de entrenamiento (a menudo, etiquetados de forma manual por humanos) para que los algoritmos. Ejemplos Python Machine Learning. Ejemplo 1.

Ejemplo 2.

Text blob (Procesamiento de texto simplificado): TextBlob es un Python (2 y 3) de la biblioteca para el procesamiento de datos de texto. Proporciona una API simple para sumergirse en común de procesamiento de lenguaje natural (NLP) tareas tales como el etiquetado parte de discurso, la extracción de un sintagma nominal, el análisis de opiniones, la clasificación, la traducción, y más. Características.  

Extracción sintagma nominal Etiquetado gramatical

          

Análisis de los sentimientos Clasificación (Naive Bayes, Árbol de decisión) Traducción de idiomas y la detección impulsado por Google Translate Tokenization (texto división en palabras y frases) Palabras y frases frecuencias Análisis n-grams Palabra de inflexión (pluralización y la singularización) y lematización Corrección ortográfica Añadir nuevos modelos o lenguajes a través de extensiones la integración de WordNet

Ejemplos Python Text blob. Ejemplo 1.

Tensor Flow: Es una biblioteca de software de código abierto para el cálculo numérico usando gráficos de flujo de datos. Los nodos en el gráfico representan operaciones matemáticas, mientras que los bordes del gráfico representan los arreglos de datos multidimensionales

(tensores) comunicados entre ellos. La arquitectura flexible le permite implementar el cálculo de una o más CPU o GPU en una computadora de escritorio, servidor o dispositivo móvil con una sola API. TensorFlow fue originalmente desarrollado por investigadores e ingenieros que trabajan en el equipo de cerebro Google dentro de la organización de investigación de la máquina de Inteligencia de Google con el fin de llevar a cabo el aprendizaje de máquina y profunda investigación de redes neuronales, pero el sistema es lo suficientemente generales como para ser aplicable en una amplia variedad de otros dominios bien. Cuando aplicarlo. TensorFlow es la segunda generación de esta “inteligencia artificial”, un software de aprendizaje automático hecho para corregir todos esos problemas de la primera generación. En palabras de Google, TensorFlow es general, flexible, portable, fácil de usar, y completamente de código abierto. En las pruebas ha conseguido ser el doble de rápido que DistBelief, y podemos hacer cualquier cosa que se nos ocurra a través de una interfaz Python. Google afirma que TensorFlow sirve tanto para investigación como para usarlo en productos reales, y lo mejor de todo es que TensorFlow es completamente nuestro: todo el código de TensorFlow, las herramientas asociadas, los ejemplos y los tutoriales son de código abierto y están licenciados con una licencia Apache 2.0. En otras palabras, no tendremos problema alguno en aprovechar todo el potencial de TensorFlow

Ejemplos Python TensorFlow. Ejemplo 1.

Ejemplo 2.

Ejemplo 3.

NLTK:

NLTK es una plataforma líder para la creación de programas de Python para trabajar con los datos del lenguaje humano. Proporciona interfaces fáciles de usar para más de 50 corpus y recursos léxicos tales como WordNet, junto con un conjunto de bibliotecas de procesamiento de texto para la clasificación, tokenización, derivado, etiquetado, análisis y de razonamiento semántico, contenedores para las bibliotecas de PNL de potencia industrial, y un activo foro de discusión . NLTK se ha llamado “una maravillosa herramienta para la enseñanza, y el trabajo en, lingüística computacional utilizando Python,” y “una biblioteca increíble para jugar con el lenguaje natural”. Cuando aplicarlo. Gracias a una guía práctica en la introducción de fundamentos de programación junto con temas de lingüística computacional, además de una amplia documentación de la API, NLTK es adecuado para usuarios de lingüistas, ingenieros, estudiantes, educadores, investigadores y la industria por igual. NLTK está disponible para Windows, Mac OS X y Linux. Lo mejor de todo, NLTK es un código abierto, libre proyecto, impulsado por la comunidad.

Ejemplos de Siraj Raval.

TensorFlow.

Ejemplo 2.

Ejemplo 3.

Ejemplo 4.