Seguir a Miguel Gomez Cuesta en Twitter Seguir a Miguel Gomez Cuesta en Linkedin Seguir a Miguel Gomez Cuesta en Google+ Contactar a Miguel Gomez Cuesta por Correo Electrónico

sábado, 4 de febrero de 2017

Aprendizaje Máquina - Conceptos básicos

  • La Inteligencia Artificial es el futuro.
  • La inteligencia Artificial es ciencia ficción.
  • La inteligencia Artificial esta presente desde hace tiempo en nuestras vidas.

Según un interesante estudio realizado por la consultora Ovum, el aprendizaje máquina o machine learning será el gran elemento disruptor del año 2017.

Diferencias entre AI vs ML vs DL


Diferencias entre inteligencia artificial, aprendizaje máquina y aprendizaje profundo


Uno de los principales impedimentos a la hora de aprender sobre una nueva tecnología, un nuevo paradigma o un campo totalmente desconocido para nosotros es la gran cantidad de conceptos nuevos a los que nos vemos sometidos, por ello es importante aclarar las diferencias en los conceptos básicos e ir avanzando en nuestro conocimientos poco a poco.



  • Inteligencia ArtificialEs el concepto más amplio de los tres y se define como la inteligencia exhibida por máquinas. Una máquina inteligente es la que percibe su entorno y lleva a cabo acciones que maximicen sus posibilidades de éxito para conseguir un objetivo o tarea. En general, este término se aplica cuando una máquina imita las funciones de los humanos , como por ejemplo: aprender, resolver problemas, hacer predicciones...

  • Aprendizaje MáquinaEs la práctica de utilizar algoritmos para analizar datos, aprender de ellos, y luego hacer una predicción acerca de algo en el mundo. La máquina es "entrenada" utilizando grandes cantidades de datos y algoritmos que le dan la capacidad de aprender a realizar predicciones.


  • Aprendizaje Profundo: Es una especialización del aprendizaje maquina. El Aprendizaje profundo descompone las tareas de manera que hacen que cualquier cosa pueda ser realizada por una máquina. 



Principales Usos, aplicaciones y Oportunidades


  • Google emplea Deep Learning en sus algoritmos de reconocimiento de voz y reconocimiento de imagen basados en el software libre TensorFlow

  • Netflix ya empezó a promover estas técnicas en 2009 cuando puso en marcha la competición NetflixPrize . El objetivo era mejorar la predicción sobre que películas van a gustar más a sus usuarios basándose en sus preferencias anteriores. En esta competición el ganador , el equipo BellKor’s Pragmatic Chaos, obtuvo un premio de 1 Millón de dolares  

  • En Amazon son pioneros aplicando estás técnicas en tareas como motores de recomendación, búsqueda de productos y detección de fraudes de comercio electrónico. Además están buscando científicos especializados en machine learning para expandirse a muchas otras áreas.  lo utilizan para adelantarse a tus gustos y los investigadores del MIT (Instituto Tecnológico de Massachusetts) para predecir el futuro.

  • Los coches inteligentes es un área en la que muchas empresas están ya aplicando técnicas de aprendizaje automático y aprendizaje profundo y se están realizando grandes inversiones. Tenemos muchos ejemplos de los que poder hablar, hemos seleccionado alguno de los proyectos más interesantes: 
Imagen de Toyota Concept-i que aplica técnicas de machine learning
El coche del futuro está más cerca de lo que parece

La mayoría son vehículos autónomos que están dando mucho que hablar y funcionan con Deep Learning, lo que les permite saber por dónde circulan, reconocer los obstáculos que tienen a su alrededor, aprender de los gustos de sus propietarios y muchas cosas más

  • FF91 Faraday Future: Aprende sobre los gustos y forma de conducir de su dueño, como medida de seguridad reconoce los rasgos faciales, y esta provisto de más de 30 elementos de reconocimiento (cámaras y sensores)

  • Ninssan IDS Concept:  Es el primer vehículo de Nissan con Intelligent Driving, un nuevo concepto de tecnología de conducción autónoma en la que conductor y vehículo entran en comunicación directa para mejorar la seguridad de la conducción

  • Toyota Concept-i: Sistema integrado de inteligencia artificial denominado Yui. Realidad aumentada, control por voz e inteligencia artificial son los 3 pilares de este modelo.

  • MobileEye: Empresa israelí del sector automovilístico que en colaboración con BMW trabaja en varios modelos autónomos para segundo semestre del 2017 

  • Google y otros: El coche de google no tiene ni volante ni pedales y fue una de las empresas pioneras en invertir en este sector.


Otras aplicaciones: 


  • Marketing: Selección de los clientes con mayor potencial para contratar un producto bancario. Centrar las campañas de publicidad en un público mucho menor ayuda a reducir los coste de inversión y maximiza el ratio de acierto. Logrando en definitiva mayor beneficio a las empresas que utilicen aprendizaje automático como estrategia de marketing.

  • Análisis y generación de informes: los sistemas con Aprendizaje Automático pueden analizar los datos e informar sobre ellos con un lenguaje natural, similar al humano, acompañándolos de infografías y otros elementos gráficos que los hagan más comprensibles.

  • Predicción procedimientos judiciales: recientemente un grupo de investigadores británicos y estadounidenses han desarrollado un sistema capaz de predecir correctamente la decisión de un tribunal, basándose en los hechos y pruebas presentados.

  • Sanidad: Mejorando la atención sanitaria preventiva.

  • Recomendaciones de productos (bancarios, tecnológicos, de salud y belleza, ...)


Algoritmos de aprendizaje profundo:



Esta sección esta basada en el tutorial de toptal sobre aprendizaje profundo.

Toptal  blog es una web de referencia para ingenieros de software, desarrolladores, diseñadores, gestores de proyectos y empresarios dónde encontrarán un montón de recursos,análisis, estudios de mercado, tutoriales y conocimientos que les ayudarán a estar en la vanguardia de la tecnología. 

A continuación vamos a presentar los conceptos claves y algoritmos detrás del aprendizaje máquina, empezando por la unidad más simple, el perceptrón hasta llegar a los conceptos de aprendizaje profundo.


Representación de la redes neuronales del cerebro humano

Tipos de aprendizaje maquina:


Aprendizaje supervisado: Un programa que se entrena con un conjunto predefinido “ejemplos de entrenamiento”. Estos ejemplos de entrenamiento facilitan la habilidad de alcanzar una conclusión acertada cuando se le pasa nuevos datos, diferentes de los datos de entrenamiento.

Aprendizaje no supervisado: Un programa que recibe un gran cantidad de datos y debe encontrar relaciones y patrones dentro de esos datos.

Para más detalle y ejemplos concretos podéis visitar este otro tutorial de toptal "introducción al aprendizaje máquina"


Tipos de algoritmos supervisado:


El perceptrón: 

Es un bloque de construcción básico de redes neuronales.

Supongamos que tenemos puntos n en el plano, con la etiqueta ‘0’ y ‘1’. Nos dan un nuevo punto y queremos adivinar su etiqueta. Un buen acercamiento podría ser mirar al vecino más cercano y devolver la etiqueta desde ese punto. Pero una manera un poco más inteligente de hacer las cosas, sería elegir una línea que separe mejor los datos etiquetados y usar eso como clasificador.



Representación usando función lineal
La línea separa los datos etiquetados con distinto valor

Entrenando el Perceptrón
El entrenamiento del perceptrón consiste en alimentarlo con múltiples muestras de entrenamiento y el cálculo de la salida para cada uno de ellos.

Inconvenientes del Perceptrón Simple
El enfoque del perceptrón simple para el aprendizaje profundo, tiene un gran inconveniente: sólo puede aprender funciones linealmente separables


Redes Neuronales

Una red neuronal es en realidad una composición de perceptrones conectados de diferentes maneras, y que operan con diferentes funciones de activación.




La red neuronal tiene las siguientes características:

  • Una entrada, salida, y una o más capas ocultas. La figura anterior muestra una red con una capa de entrada de 3 unidades, 4-unidades de capa oculta y una capa de salida con 2 unidades (los términos unidades y neuronas son intercambiables).

  • Cada unidad es un perceptrón simple, como el descrito anteriormente.

  • Las unidades de la capa de entrada sirven como entradas para las unidades de la capa oculta, mientras que las unidades de la capa oculta son entradas para la capa de salida.

  • Cada conexión entre dos neuronas tiene un peso w (similar a los pesos perceptron).

  • Cada unidad de la capa t suele estar conectada a cada unidad de la capa t anterior - 1 (aunque se podrían desconectar mediante el establecimiento de su peso a 0).

Otras redes neuronales:


  • Autoencoders: Es una red neuronal que tiene como objetivo aprender una representación (codificación) comprimida y distribuida de un conjunto de datos


  • Máquinas de Boltzmann restringuidas o MBR: Es una red neuronal generativa que puede aprender una distribución de probabilidad sobre su propio conjunto de entradas


  • Autoencoders apilados: Como su nombre lo indica, esta red consiste en múltiples autoencoders apilados.


  • Redes de creencias profundas o DBN: Al igual que con autoencoders, también podemos apilar máquinas de Boltzmann, para crear una clase conocida como redes de creencias profundas.


  • Redes convolucionales: una clase particularmente interesante y especial de las redes neuronales de tipo feedforward, orientadas al reconocimiento de imágenes.

Recuerda para obtener más información sobre redes neuronales con ejemplos prácticos puedes consultar el tutorial de toptal aprendizaje profundo 


Machine learning en la realidad:

  • Limpiar datos: El 70% del tiempo se gasta en la limpieza de datos. Gran cantidad de datos tienen campos vacíos que nos dificultan ver la información relevante.

  • Convertir datos: Los datos deben ser convertidos a formato numérico para que los algoritmos de aprendizaje puedan trabajar.

  • Información heterogénea: Cuando se trabaja con grandes volúmenes de datos o varias fuentes de datos, la información es muy heterogénea.

  • Normalizar los datos. Se debe asignar un peso a cada característica identificada

En los próximos artículos

  • Hablaremos sobre las tecnologías Java que nos van a permitir poner en practica lo que hemos aprendido hasta ahora. Esperamos que haya sido de vuestro interés. 

Si te ha gustado, recuerda compartir en redes sociales. 


Anterior
Siguiente

No hay comentarios:

Publicar un comentario

Entradas populares