Todo lo que necesitas saber sobre el aprendizaje de transferencia en IA

Todo lo que necesitas saber sobre el aprendizaje de transferencia en IA

Hoy en día, los programas de inteligencia artificial pueden reconocer caras y objetos en fotos y videos, transcribir audio en tiempo real, detectar cáncer en escaneos de rayos X con años de anticipación y competir con humanos en algunos de los juegos más complicados.

Hasta hace unos años, todos estos desafíos se consideraban insuperables, a décadas de distancia, o se resolvían con resultados subóptimos. Pero avanza en redes neuronales y aprendizaje profundo, una rama de la IA que se ha vuelto muy popular en los últimos años, ha ayudado a las computadoras a resolver estos y muchos otros problemas complicados.

Desafortunadamente, cuando se crean desde cero, los modelos de aprendizaje profundo requieren acceso a grandes cantidades de datos y recursos informáticos. Este es un lujo que muchos no pueden permitirse. Además, lleva mucho tiempo entrenar modelos de aprendizaje profundo para realizar tareas, lo que no es adecuado para casos de uso que tienen un presupuesto de tiempo corto.

Afortunadamente, el aprendizaje de transferencia, la disciplina de usar el conocimiento adquirido de un modelo de IA entrenado a otro, puede ayudar a resolver estos problemas.

El costo de entrenar modelos de aprendizaje profundo

El aprendizaje profundo es un subconjunto de aprendizaje automático, la ciencia de desarrollar IA a través de ejemplos de capacitación. Los conceptos y la ciencia detrás del aprendizaje profundo y las redes neuronales son tan antiguos como el término "inteligencia artificial" sí mismo. Pero hasta años recientes, la comunidad de IA los había rechazado en gran medida por ser ineficientes.

La disponibilidad de grandes cantidades de datos y recursos informáticos en los últimos años ha puesto a las redes neuronales en el centro de atención y ha permitido desarrollar algoritmos de aprendizaje profundo que pueden resolver problemas del mundo real.

Para entrenar un modelo de aprendizaje profundo, básicamente debes alimentar a un red neuronal con muchos ejemplos anotados. Estos ejemplos pueden ser cosas como imágenes etiquetadas de objetos o mamografías de pacientes con sus resultados finales. La red neuronal analizará y comparará cuidadosamente las imágenes y desarrollará modelos matemáticos que representan los patrones recurrentes entre imágenes de una categoría similar.

(Leer: La extraña IA ilustra por qué los algoritmos aún necesitan personas)

Ya existen varios grandes conjuntos de datos de código abierto, como ImageNet, una base de datos de más de 14 millones de imágenes etiquetadas en 22,000 categorías, y MNIST, un conjunto de datos de 60,000 dígitos escritos a mano. Los ingenieros de IA pueden usar estas fuentes para entrenar sus modelos de aprendizaje profundo.

Sin embargo, la capacitación de modelos de aprendizaje profundo también requiere acceso a recursos informáticos muy sólidos. Los desarrolladores suelen utilizar grupos de CPU, GPU o hardware especializado, como los procesadores de tensor de Google (TPU) para entrenar redes neuronales de manera eficiente en el tiempo. Los costos de comprar o alquilar dichos recursos pueden estar más allá del presupuesto de desarrolladores individuales u organizaciones pequeñas. Además, para muchos problemas, no hay suficientes ejemplos para entrenar modelos robustos de IA.

El aprendizaje por transferencia hace que el entrenamiento de aprendizaje profundo sea mucho menos exigente

Digamos que un ingeniero de IA quiere crear una red neuronal clasificador de imágenes para resolver un problema específico. En lugar de reunir miles y millones de imágenes, el ingeniero puede usar uno de los conjuntos de datos disponibles públicamente, como ImageNet y mejorarlo con fotos específicas del dominio.

Pero el ingeniero de IA aún debe alquilar pagar una suma considerable para alquilar los recursos informáticos necesarios para ejecutar esos millones de imágenes a través de la red neuronal. Aquí es donde entra en juego el aprendizaje de transferencia. El aprendizaje de transferencia es el proceso de crear nuevos modelos de IA mediante el ajuste de redes neuronales previamente entrenadas.

En lugar de entrenar su red neuronal desde cero, los desarrolladores pueden descargar un modelo de aprendizaje profundo pre-entrenado y de código abierto y ajustarlo para su propio propósito. Hay muchos modelos base previamente entrenados para elegir. Ejemplos populares incluyen AlexNet, Inception-v3 de Google y ResNet-50 de Microsoft. Estas redes neuronales ya se han entrenado en el conjunto de datos ImageNet. Los ingenieros de IA solo necesitan mejorarlos capacitándolos con sus propios ejemplos específicos de dominio.

El aprendizaje por transferencia no requiere grandes recursos informáticos. En la mayoría de los casos, una computadora de escritorio decente o una computadora portátil fuerte pueden ajustar una red neuronal pre-entrenada en unas pocas horas o incluso menos.

¿Cómo funciona el aprendizaje de transferencia?

Curiosamente, las redes neuronales desarrollan su comportamiento de forma jerárquica. Cada red neuronal está compuesta de múltiples capas. Después del entrenamiento, cada una de las capas se ajusta para detectar características específicas en los datos de entrada.

Por ejemplo, en una red convolucional de clasificador de imágenes, las primeras capas detectan características generales como bordes, esquinas, círculos y manchas de colores. A medida que profundiza en la red, las capas comienzan a detectar cosas más concretas, como ojos, caras y objetos completos.

<img class="jetpack-lazy-image jetpack-lazy-image–handled wp-image-4989 size-full lazy" alt="visualización de capas de redes neuronales "width =" 696 "height =" 955 "data-attach-id =" 4989 "data-permalink =" https://bdtechtalks.com/2019/06/10/what-is-transfer-learning / neural-networks-layers-visualization / "data-orig-file =" https://i0.wp.com/bdtechtalks.com/wp-content/uploads/2019/06/neural-networks-layers-visualization.jpg ? fit = 920% 2C1262 & ssl = 1 "data-orig-size =" 920,1262 "data-comments-abrir =" 1 "data-image-meta =" {"apertura": "0", "crédito": " "," camera ":" "," caption ":" "," created_timestamp ":" 0 "," copyright ":" "," focal_length ":" 0 "," iso ":" 0 "," shutter_speed " : "0", "título": "", "orientación": "1"} "data-image-title =" visualización de capas de redes neuronales "data-image-description =" "data-medium-file =" https: //i0.wp.com/bdtechtalks.com/wp-content/uploads/2019/06/neural-networks-layers-visualization.jpg?fit=219%2C300&ssl=1 "data-large-file =" https: / /i0.wp.com/bdtechtalks.com/wp-content/uploads/2019/06/neural-networks-layers-visualization.jpg?fit=696%2C955&ssl=1 "data-recalc-dims =" 1 "data- lazy-loaded = "1" src = "https : //i0.wp.com/bdtechtalks.com/wp-content/uploads/2019/06/neural-networks-layers-visualization.jpg? resize = 696% 2C955 & ssl = 1 "data-lazy =" true "srcset = "https://i0.wp.com/bdtechtalks.com/wp-content/uploads/2019/06/neural-networks-layers-visualization.jpg?w=920&ssl=1 920w, https: //i0.wp. com / bdtechtalks.com / wp-content / uploads / 2019/06 / neural-networks-layers-visualization.jpg? resize = 219% 2C300 & ssl = 1 219w, https://i0.wp.com/bdtechtalks.com/wp -content / uploads / 2019/06 / neural-networks-layers-visualization.jpg? resize = 768% 2C1053 & ssl = 1 768w, https://i0.wp.com/bdtechtalks.com/wp-content/uploads/2019/ 06 / neural-networks-layers-visualization.jpg? Resize = 746% 2C1024 & ssl = 1 746w, https://i0.wp.com/bdtechtalks.com/wp-content/uploads/2019/06/neural-networks-layers -visualization.jpg? resize = 696% 2C955 & ssl = 1 696w, https://i0.wp.com/bdtechtalks.com/wp-content/uploads/2019/06/neural-networks-layers-visualization.jpg?resize= 306% 2C420 & ssl = 1 306w "/>