# Entrenamiento inteligente

El entrenamiento inteligente se refiere a los varios métodos existentes para conferir a los sistemas de inteligencia artificial redes de conexión de datos y aprendizaje parecidos a las redes neuronales humanas. Métodos emergentes dentro de este campo son las redes neuronales artificiales profundas, el metaaprendizaje, las redes generativas antagónicas y el desenredo.
El aprendizaje permite a los humanos acumular experiencia y métodos de resolución para poder mejorar y facilitar la adaptación a unas nuevas circunstancias. Teniendo en cuenta esto, se puede afirmar que el entrenamiento inteligente va orientado sobre todo a que los sistemas de inteligencia artificial aprendan procesos y sistemas para poder reconocer objetos, conceptos o datos similares, más que no almacenen toda la información que se los introduce.

## Objetivos de la inteligencia artificial

El objetivo principal que afronta la inteligencia artificial es conseguir que los programas y las máquinas adquieran un nivel de razonamiento parecido o igual al humano. Para llegar a este objetivo, sería necesario que estos aprendieran conceptos abstractos, adaptaran su estrategia a medida que avanza el reto o la situación y entendieran el marco general que componen los diferentes pasos que realiza. Por lo tanto, los objetivos se acabarían concretando en una serie de puntos:
* Resolver problemas de la misma forma que la mente humana.
* Tener la capacidad de trabajar con información incompleta o insegura.
* Explicar los resultados obtenidos.
* Aprender nuevos contenidos a medida que se avanza en una tarea.
* Reestructurar los conocimientos en función de la información nueva.
* Ser capaz de prescindir de las normas cuando estas no son aplicables al problema que se afronta.

## Redes neuronales artificiales profundas

Las redes neuronales artificiales profundas son uno de los métodos más utilizados para desarrollar la IA. Este sistema permite que las máquinas sean capaces de reconocer diferentes niveles de abstracción. Los ámbitos en los que ha generado una diferencia más notable son el reconocimiento de los idiomas y la detección y reconocimiento de los objetos, que a su vez ha contribuido en la detección de drogas y en el análisis del genoma.

### Funcionamiento

El sistema de redes neuronales artificiales busca imitar las redes neuronales humanas con una base de principios matemáticos generales, así que se compone por "neuronas", es decir, unidades básicas de la computación normalmente agrupadas por capas. Cada capa cuenta con un nivel de abstracción cada vez más elevado, más abstracto. En cada uno de los niveles se componen módulos no lineales con cada unidad básica que transforman los datos introducidos a medida que suben de capa. El resultado acaba siendo, básicamente, que un sistema IA sea capaz de clasificar un mismo concepto independientemente de las diferencias irrelevantes que pueda tener cada representación del concepto en cuestión.
Por lo tanto, la capa inicial, con un grado más bajo de abstracción, aceptará la entrada del contenido explícito de los datos, por ejemplo los píxeles de una imagen. La última capa, después de que el contenido haya pasado por todas las transformaciones, dará salida a la información semántica de los datos, expresando tan solo el concepto básico que permita interpretar otros datos similares, pero no iguales, en el futuro. Las capas intermedias serán las encargadas de producir las combinaciones aritméticas que llevarán la información al máximo nivel de abstracción posible. Estas conexiones, pero, se fundamentan mediante un proceso de ensayo-error. Así, una red otorga etiquetas a las diferentes informaciones y datos que recibe hasta ser capaz de clasificar informaciones que nunca ha visto. En el caso de error, la red devuelve la información a las capas anteriores, va atrás para corregir el error y evitar que se propague. Si se detecta una equivocación, la información puede llegar a retroceder hasta la primera capa si es conveniente.

### Aplicaciones

El aprendizaje mediante redes artificiales profundas ha permitido que las máquinas y sistemas de inteligencia artificial sean capaces de analizar datos con estructuras multidimensionals, en ámbitos como la ciencia, los negocios y la administración. Algunas aplicaciones más concretas son:
* Reconocimiento de imágenes.
* Reconocimiento de idiomas y el habla.
* Análisis de moléculas (y datos registrados en un acelerador de partículas).
* Reconstrucción de circuitos neuronales o cerebrales.
* Análisis y detección prematura de las mutaciones y dolencias en el ámbito genética.
Del mismo modo, otras investigaciones en el campo de la lingüística han utilizado esta técnica para estudiar más a fondo el tema del lenguaje, la traducción, la clasificación de conceptos y temas, la resolución de dudas y preguntas, y el análisis de la intención y el sentimiento encontrados en el lenguaje.

### Limitaciones

La competencia de aprendizaje y modulación de las redes neuronales ha provocado que la forma en que se trata la información en las capas intermedias de la red no sea conocida por sus creadores y programadores. El circuito que recorren los datos y la manera que estas se clasifican y se etiquetan en un solo concepto es imposible de diferenciar y documentar debido a la multiplicidad de conexiones que presenta una red. Además, para que una máquina realice todo el proceso de abstracción es necesaria una gran cantidad de datos, hecho que también implica una cierta capacidad de almacenamiento y un tiempo determinado para procesarlas todas.

## Otros métodos de entrenamiento inteligente

Ante las limitaciones que pueden presentar las redes profundas, otras técnicas de aprendizaje para la inteligencia artificial han surgido recientemente para tratar estos inconvenientes. Las más destacadas son el metaaprendizaje, las redes generativas antagónicas o el desenredo.

### Metaaprendizaje

El metaaprendizaje se basa en la premisa que una máquina tendría que aprender a aprender sin obtener ningún conocimiento concreto. Este método busca combatir la confusión que se genera en las capas intermedias de las redes neuronales artificiales profundas y encontrar una fórmula general de tratar la información. También se incrementa la rapidez del análisis y clasificación de los datos y se reduce la duración del entrenamiento. A pesar de no retener ningún tipo de información concreta, cada vez que realice la tarea, la red la hará más rápido y mejor, es decir, tendrá una mayor agilidad a la hora de resolver problemas.
La técnica de entrenamiento consta de dos fases: un preentrenamiento y un entrenamiento. Estas etapas consisten al mostrar a la máquina una serie de categorías de diferentes elementos para que esta aprenda a distinguirlas. Estas categorías se van intercalando entre ellas y de vez en cuando, se introduce un solo elemento de una de las categorías para ver como la red lo identifica. Las primeras veces, los resultados no son muy buenos, pero el objetivo de esta práctica es ir ajustando el punto de partida de la red para que esta mejore cada vez que se vuelva a realizar el ejercicio.
A pesar de que el metaaprenendizaje permite prescindir de la información acumulada durante los entrenamientos porque esta se borra, también genera una gran cantidad de datos que necesitan ser almacenadas: el aprendizaje y las estrategias que ha obtenido con los procesos anteriores. El metaaprendizaje requiere un entrenamiento exhaustivo que comporta un cierto tiempo. Además, los problemas matemáticos que se utilizan como ejemplo para la red neuronal artificial tienen que estar bien definidos, puesto que sino se tiene que volver a los algoritmos evolutivos, que retardan todo el trabajo realizado previamente.

### Redes generativas antagónicas

Las redes generativas antagónicas tienen como base un sistema de entrenamiento de dos redes neuronales artificiales que funcionan como un generador (o G) y como un discriminador (o D). Ambas redes son de reconocimiento, pero el generador se hace funcionar a la inversa para que en vez de distinguir datos produzca mediante un ruido aleatorio. El objetivo de G es intentar producir unos datos que consigan engañar a D, y el objetivo de D es acertar si los datos proporcionados por G son reales o no.
   "El modelo generador se podría asimilar a un equipo de falsificadores que intentan producir moneda falsa sin que esta sea detectada, mientras que el modelo discriminador es una analogía de la policía, que intenta detectar la moneda falsificada" Generative Adversarial Nets, Ian Goodfellow (trad. del inglés)
A continuación, la red discriminatoria transmite información sobre que lo ha hecho acertar o equivocarse a la red generatriz, que esta utilizará para optimizar sus creaciones. Se crea, por lo tanto, un algoritmo de optimización entre las dos redes, hasta el punto que la red discriminatoria tiene que recurrir al azar para saber si los datos son verdaderos o falsas. En el supuesto de que la relación entre las dos redes sea una de competición, los resultados obtenidos se decantarán sobre todo hacia conseguir que los datos sean menos predecibles, mientras que si la relación es de cooperación, los dos modelos tienen que desarrollar un lenguaje interno para comunicarse y realizar su tarea.
El éxito de estos sistemas es difícil de prever, puesto que hay que funcionan y hay que no. Aun así, se han encontrado múltiples aplicaciones, como por ejemplo el análisis de datos cosmológicos, la simulación de colisiones de partículas o Pix2Pix, que permite procesar todo tipos de imágenes.

### Desenredo

El desenredo consiste en el hecho que la red aprenda a dividir los componentes de una información y analice las variaciones en cada uno de estos componentes independientemente de los otros. Es decir, cada una de las "neuronas" o unidades de la red es sensible a una característica de los datos introducidos. En esta técnica se utilizan también dos redes neuronales artificiales, una que comprime el contenido que procesa y otra que lo vuelve a expandir. Acabado el proceso, la descripción de la información resulta más sencilla. Al principio del entrenamiento de la red, los parámetros que esta puede leer es reducen a los de máxima importancia; a medida que avanza, se permite que la máquina tenga en cuenta otras características más superficiales.
El sistema es útil sobre todo para entornos controlados en que los desarrolladores pueden controlar los factores que procesa la red. Aun así, permite hacer más comprensible el funcionamiento de las redes neuronales, una cierta programación de las acciones a realizar por parte de una máquina o un robot, y además, permite a las redes adquirir nuevos conocimientos sin perder los que habían aprendido con anterioridad.