Actualmente, la Inteligencia Artificial está avanzando a un gran ritmo y el aprendizaje profundo es uno de los mayores contribuyentes para que eso ocurra. En los últimos años, las aplicaciones de Deep Learning lograron enormes avances en muchos dominios, lo que provocó asombro en personas que no esperaban que la tecnología y el mundo cambiaran tan rápido.
Ahora existen algoritmos tan avanzados que están logrando que las máquinas aprendan por sí solas. Lo que nos hacen preguntarnos si acaso no estamos ya a un paso de vivir dentro de una película de ciencia ficción. En el siguiente post te daremos una introducción a Deep Learning.
Qué es Deep Learning
Comencemos por lo más básico. Deep Learning o aprendizaje profundo, es una rama del aprendizaje automático basada en un conjunto de algoritmos que intentan modelar abstracciones de alto nivel en datos inspirados por la estructura y función del cerebro llamadas redes neuronales artificiales.
Entendámoslo así, nuestro cerebro humano tiene millones de neuronas dentro de una jerarquía y una red de neuronas que están interconectadas entre sí a través de los axones, los cuales pasan las señales eléctricas de una capa a otra, a esto se le llama sinapsis.
Así es como los humanos aprendemos cosas. Cada vez que vemos, oímos, sentimos y pensamos en algo, una sinapsis (impulso eléctrico) se dispara de una neurona a otra en la jerarquía y nos permite aprender, recordar y memorizar cosas en nuestra vida diaria desde el día en que nacimos.
Algo similar, pero todavía no tan evolucionado, es el aprendizaje profundo. Se trata de una réplica de nuestras redes neuronales pero creadas artificialmente con el fin de que le permita a un máquina o a un software aprender de la misma manera como los humanos aprendemos. Ahora bien, se le dice “profundo” debido a que existen muchas capas neuronales que se mantienen ocultas y a estas capas se le llaman redes neuronales profundas.
Diferencias con Machine Learning
Lo siguiente que veremos serán las diferencias entre Deep learning y Machine Learning, es decir, entre lo que se conoce como aprendizaje profundo y el aprendizaje automático.
Primero: Una de las principales diferencias entre el aprendizaje automático y el modelo de aprendizaje profundo está en el área de extracción de características. La extracción de características se realiza por humanos en el aprendizaje automático, mientras que el modelo de aprendizaje profundo se resuelve por sí mismo.
Segundo: Los modelos de aprendizaje profundo tienden a funcionar bien con la cantidad de datos que poseen, mientras que los modelos de aprendizaje automático antiguos dejan de mejorar después de un punto de saturación.
Tercero: Los algoritmos de aprendizaje automático y los algoritmos de aprendizaje profundo tienen diferentes enfoques de resolución de problemas; por un lado, un algoritmo de aprendizaje automático divide el problema en diferentes niveles donde, en cada nivel, el problema se resuelve y luego la solución de cada nivel se combina para formar la solución de un problema completo, mientras que en el aprendizaje profundo, el problema se resuelve de extremo a extremo en su totalidad.
Cuarto: Los algoritmos de aprendizaje automático interpretan reglas nítidas mientras que el aprendizaje profundo no lo hace, es decir, la interpretación de los resultados es más apropiada en el aprendizaje automático, mientras que el aprendizaje profundo carece de esta idealidad.
Quinto: Finalmente y en general, el tiempo de entrenamiento de los algoritmos de aprendizaje profundo es alto debido a la presencia de tantos parámetros en los algoritmos de aprendizaje profundo, mientras que el aprendizaje automático toma comparativamente menos tiempo en el procedimiento de entrenamiento. Esto se invierte para el tiempo de prueba. El tiempo de prueba para el aprendizaje automático es mayor que el aprendizaje profundo.
Funciones Activadoras
Las funciones de activación son realmente importantes para que una red neuronal artificial aprenda y dé sentido a algo realmente complicado y a las asignaciones funcionales no lineales complejas entre las entradas y la variable de respuesta.
Introducen propiedades no lineales a nuestra red. Su propósito principal es convertir una señal de entrada de un nodo en un A-NN a una señal de salida. Esa señal de salida ahora se usa como entrada en la siguiente capa de la pila.
Función de Pérdida y Error
En la mayoría de las redes de aprendizaje, el error se calcula como la diferencia entre la salida real y la salida predicha. La función que se utiliza para calcular este error se conoce como función de pérdida.
Las diferentes funciones de pérdida darán diferentes errores para la misma predicción y, por lo tanto, tendrán un efecto considerable en el rendimiento del modelo. Una de las funciones de pérdida más utilizadas es el error cuadrático medio (MSE), que calcula el cuadrado de la diferencia entre el valor real y el valor predicho.
Se utilizan diferentes funciones de pérdida para tratar diferentes tipos de tareas, es decir, regresión y clasificación. Por lo tanto, las funciones de pérdida son útiles para entrenar una red neuronal. Dada una entrada y un objetivo, calculan la pérdida, es decir, la diferencia entre la salida y la variable objetivo.
Descenso de gradiente
El descenso de gradiente es un algoritmo de optimización utilizado para encontrar los valores de los parámetros (coeficientes) de una función (f) que minimiza una función de costo (costo).
La pendiente de gradiente se utiliza mejor cuando los parámetros no se pueden calcular analíticamente (por ejemplo, usando álgebra lineal) y se deben buscar por un algoritmo de optimización. El gradiente de descenso se usa para encontrar el error mínimo al minimizar una función de “costo”.
Para concluir, podemos decir de manera realista que el aprendizaje profundo es solo una parte del desafío mayor de construir máquinas inteligentes.
En la actualidad, los sistemas de IA más poderosos utilizan técnicas como el aprendizaje profundo como solo un elemento en un conjunto de técnicas muy complicadas. Van desde la técnica estadística de la inferencia bayesiana hasta el razonamiento deductivo.
Aún nos falta explorar mucho más terreno para siquiera imaginar la máquina perfecta que iguale o supere a un ser humano, sin embargo, se trabaja arduamente para lograrlo.
Si sabes programar en Python y quieres conocer más, puedes tomar el curso introductorio Aprendizaje Profundo con Python.