Deep Learning
Introducción
La tecnología de Machine Learning potencia muchos de los aspectos de la sociedad moderna: desde la búsqueda web para el filtrado de contenido en las redes sociales a recomendaciones sobre sitios web de comercio electrónico, y está cada vez más presente en productos de consumo como cámaras y teléfonos inteligentes.
Se utilizan para identificar objetos en imágenes, transcribir audio en texto, publicación o productos con los intereses de usuario, y seleccionar resultados relevantes en búsquedas.
Cada vez más, estas aplicaciones hacen uso de una clase de técnicas denominadas Deep Learning.
Qué es Deep Learning y la asociación con redes neuronales
El término Deep Learning (Aprendizaje Profundo) es el término acordado que cubre un enfoque particular para construir y entrenar redes neuronales. Es una rama del Machine Learning, aunque existe desde la década de 1950 como idea innovadora, ha sido afectado desde entonces por constantes retrasos evidentes por la dificultad en los cálculos, mitigados con la evolución de la Ciencia de la Computación. La tecnología ahora permite procesar ingentes cantidades de datos en escalas de tiempo asumibles.
Aunque se abordarán más adelante, por ahora podemos pensar en ellas como una caja negra utilizada para la toma de decisiones: redes neuronales.
Es un proceso automatizado que utiliza datos y algoritmos matemáticos para descubrir nueva información sin intervención humana. En su concepto inicial necesita un input de entrada asociada a una matriz de números que representan características de cada problema.
Estas matrices, suelen ser ponderaciones que definen como las entradas se combinan y recombinan para producir los resultados, son afectadas por una serie de funciones y obtienen un output en forma de números que puede ser interpretado en base a las características del problema. El resultado generalmente suele ser predicciones de algunas propiedades necesitadas a partir de la entrada.
Debido a que los procesadores “autoaprenden” los humanos no necesitan escribir código para cada una de las etapas a lo largo del proceso. El autoaprendizaje significa que la computadora puede identificar nuevos métodos por sí misma, por lo que puede encontrar soluciones que nosotros, como humanos, no habíamos considerado.
Asumir los problemas del mundo real con los que se quiere obtener un resultado requiere funciones muy complejas. Significando que las dimensiones de las matrices con las que se ha de trabajar suelen ser muy grandes. En casos como problemas de visión por computador las dimensiones de las matrices utilizadas contienen a partir de 60 millones de números.
Los algoritmos de Deep Learning pueden, por ejemplo, identificar objetos y su contexto dentro de una fotografía en blanco y negro determinando los colores que están más probablemente asociados a cada uno.
En una imagen como la siguiente:
Podemos obtener un resultado como el siguiente:
Pasando por el proceso:
Pruébelo usted mismo aquí. Algoritmo de visión por computador entrenado con un millón de imágenes.
Redes neuronales
Las redes neuronales utilizadas en los problemas que resuelve el Deep Learning son estructuras lógicas similares en gran medida al sistema nervioso de seres vivos inspirados en la naturaleza. Son un conjunto de algoritmos que intenta modelar abstracciones de alto nivel de los datos.
Es un sistema que permite establecer una relación lineal o no lineal entre las salidas y las entradas. Contiene muchas capas entre el input y el output, permitiendo múltiples capas de procesamiento.
Podemos ver una sencilla explicación de las redes neuronales aquí.
Esto les ofrece varias ventajas tales como la capacidad de aprendizaje adaptativo, son auto-organizativas, pueden funcionar en paralelo y ofrecen tolerancia a fallos por la codificación redundante de la información.
Entrenamiento
Una de las propiedades teóricas de las redes neuronales que ha impedido que los investigadores trabajen en ellas es que deberían ser enseñables.
Mostrar a pequeña escala cómo puede suministrar una serie de entradas de ejemplo y salidas esperadas es bastante sencillo, y pasar por un proceso mecánico para tomar los pesos de los valores aleatorios iniciales a números progresivamente mejores que producen predicciones más precisas.
El problema siempre ha sido cómo hacer lo mismo en problemas mucho más complejos como el reconocimiento de voz o la visión por computadora con un número mucho mayor de elementos.
Los avances en los conjuntos de formas en tipos de redes neuronales para acelerar el proceso de aprendizaje, incluidas las redes convolucionables, el uso inteligente de GPU y algunas aproximaciones matemáticas han provocado el renacimiento del Deep Learning.
Demostrando que en un corto espacio de tiempo se puede entrenar una red muy compleja a un nivel que supere los enfoques convencionales, por ejemplo, en el reconocimiento de voz.
Este es el corazón actual del Deep Learning: las nuevas técnicas que se han descubierto permiten construir y entrenar redes neuronales para manejar problemas de gran magnitud de problemas no resueltos de diferente índole.
Diferencias con otros enfoques
Los enfoques Machine Learning y Deep Learning están relacionados y ambos están bajo el paraguas de la Inteligencia Artificial. En Machine Learning, la parte más complicada es identificar las características en los datos de entrada sin procesar. El Deep Learning elimina ese paso manual, utiliza el proceso de entrenamiento para descubrir los patrones más útiles en los inputs de entrada.
Se deben tomar decisiones acerca del diseño de la capa interna de las redes antes de comenzar el entrenamiento, pero el descubrimiento de características hace el proceso más fácil.
De todas formas, también, las redes neuronales son más generales que otras técnicas de Machine Learning. Ningún otro enfoque es tan flexible.
Para problemas de diferente índole del mundo real, incluso para datos desordenados, va a ser un proceso esencial en los próximos años.