Logo Studenta

IAC2017-12_vent_desvent-deep-learning-aplica-a4

¡Estudia con miles de materiales!

Vista previa del material en texto

TEMA 12
Ventajas, Desventajas de las Resdes Neuronales Artificiales - Aprendizaje
Profundo - Aplicaciones de los métodos de Machine Learning
Índice
1. Ventajas de las RNA (BP). 1
2. Desventajas de las RNA (BP). 2
3. Aprendizaje Automatizado - Aprendizaje Profundo. 2
4. Implementación de una RNA por Hardware. 6
4.1. Implementación de una RNA por Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
5. Implementación de una RNA por Software. 6
5.1. Implementación de una RNA por Software. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
6. Aplicaciones generales de los métodos de Machine Learning. 6
6.1. Aplicaciones generales de los métodos de Machine Learning. . . . . . . . . . . . . . . . . . . . . 6
7. Próxima Clase 10
1. Ventajas de las RNA (BP).
Ventajas de las RNA (BP).
La red es capaz de aprender una gran variedad de relaciones de mapeo de patrones.
Aprendizaje Adaptativo.Es una de las características más atractivas de redes neuronales. Son capaces de
aprender de la experiencia, es decir, generalizar de casos anteriores a nuevos casos.
Ventajas de las RNA (BP).
Auto-organización.Las redes son sistemas autoadaptativos. Son adaptables debido a la capacidad de auto-
ajuste de los elementos procesales que componen el sistema. O sea no requieren influencia externa para
ajustar los pesos de las conexiones entre sus neuronas.
Las redes son sistemas dinámicos, porque son capaces de estar constantemente cambiando para adaptarse a
las nuevas condiciones.
No requiere un conocimiento matemático de la función que relaciona los patrones de la entrada y los patro-
nes de salida.
Ventajas de las RNA (BP).
La flexibilidad de esta red se puede aumentar con la posibilidad de elegir número de capas, interconexiones,
número de neuronas, tasa de aprendizaje (learning rate), momentum, representación de los datos, etc.
La red Backpropagation es capaz de participar con éxito en una amplia gama de aplicaciones.
1
Ventajas de las RNA (BP).
La función del diseñador es únicamente la obtención de la arquitectura apropiada. No es problema del
diseñador el cómo la red aprenderá a discriminar. Sin embargo, sí es necesario que desarrolle un buen
algoritmo de aprendizaje que le proporcione a la red la capacidad de discriminar, mediante un entrenamiento
con patrones.
La habilidad de las neuronas de calcular funciones de salida no lineales, capacita a la red para resolver
problemas complejos o no lineales. De este modo, en numerosas aplicaciones se están consiguiendo con
RNA cotas de error mucho mejores que las proporcionadas por otros métodos.
2. Desventajas de las RNA (BP).
Desventajas de las RNA (BP).
El mayor inconveniente es el tiempo de convergencia. Las aplicaciones reales pueden llegar a tener miles
de ejemplos en el conjunto de entrenamiento y ello requiere días de tiempo de cálculo.
La backpropagation es susceptible de fallar en el entrenamiento, es decir, la red puede que nunca llegue a
converger.
Desventajas de las RNA (BP).
No se puede aplicar una RNA a todo tipo de problemas. La condición indispensable para aplicar una RNA
es contar con un grupo grande de ejemplos historicos.
Es difícil comprender la naturaleza de las representaciones internas generadas por la red para responder ante
un problema determinado. Es decir, no sabemos cómo el sistema interrelaciona las diferentes variables de
entrada con los pesos de las conexiones entre neuronas para elaborar una solución.
3. Aprendizaje Automatizado - Aprendizaje Profundo.
Aprendizaje Automatizado - Aprendizaje Profundo.
En las últimas decadas hubo un resurgimiento de la IA. Esto es impulsado en gran parte por una nueva
tendencia en la IA, el aprendizaje automatizado.
Este resurgimiento se ha extendido más allá del mundo académico, con grandes figuras como Google,
Microsoft y Facebook, quienes han creado sus propios equipos de investigación, obteniendo impresionantes
avances.
Dentro del apredizaje automatizado surje en los ultimos años el aprendizaje profundo (en inglés, deep lear-
ning).
[By IVAN VASILEV, A Deep Learning Tutorial: From Perceptrons to Deep Networks.]
Aprendizaje Profundo.
Aprendizaje profundo es un conjunto de algoritmos del aprendizaje automatizado (machine learning) que
intenta modelar abstracciones de alto nivel en datos usando arquitecturas compuestas de transformaciones
no lineales múltiples.
2
Algoritmos de Aprendizaje Profundo.
Uno de los primeros algoritmos de entrenamiento supervisado es el perceptrón.
El enfoque del perceptrón simple para el aprendizaje profundo, tiene un gran inconveniente: sólo puede
aprender funciones linealmente separables.
Representación esquemática simplificada de un perceptrón simple.
Redes Neuronales Feedforward para el Aprendizaje Profundo.
Representación esquemática simplificada de una red neuronal multicapa.
Una composición lineal de un montón de funciones lineales sigue siendo sólo una función lineal, por lo que
la mayor parte de las redes neuronales utilizan funciones de activación no lineales.
Aprendizaje Profundo.
El algoritmo de aprendizaje profundo más común para entrenamiento supervisado de los perceptrones multi-
capa es el Backpropagation. La propagación hacia atrás proporciona un método para la actualización de cada peso
entre dos neuronas, con respecto al error de salida. En esencia, el objetivo es moverse en la dirección del gradiente
con respecto a los pesos.
La capa oculta.
La capa oculta es donde la red guarda la representación abstracta interna de los datos de entrenamiento.
Una sola capa oculta es lo suficientemente potente como para aprender cualquier función.
Pero podemos aprender mejor en la práctica con múltiples capas ocultas (redes profundas).
La capa oculta es donde la red guarda la representación abstracta interna de los datos de entrenamiento,
similar a la forma en que un cerebro humano (analogía muy simplificada) tiene una representación interna
del mundo real.
3
El problema de Backpropagation con redes profundas.
Si utilizamos más de una capa oculta las nuevas capas construyen nuevas abstraciones de la capa anterior.
Con esto podemos aprender mejor.
Pero el aumento del número de capas ocultas lleva a la desaparición del gradiente, es decir, a medida que
añadimos más y más capas ocultas, la propagación hacia atrás se vuelve cada vez menos útil en la transmi-
sión de información de capa en capa. Los gradientes comienzan a desaparecer y se hacen más pequeños en
relación con los pesos de las redes. Además se tiende a perder generalización por sobre ajuste.
Redes Autoencoder.
Un autoencoder es típicamente una red neuronal feedforward, que tiene como objetivo ”recrear” las entradas
en las salidas pero comprimido de alguna manera.
Redes Autoencoder.
La intuición detrás de esta arquitectura es que la red no va a aprender un ”mapeo” entre los datos de entre-
namiento y sus etiquetas, pero si aprenderá la estructura interna y las características de los propios datos.
(Debido a esto, la capa oculta también se denomina detector de característica.) Por lo general, el número
de unidades ocultas es más pequeño que las capas de entrada / salida, lo que obliga a la red a aprender
solamente las características más importantes y logra una reducción de dimensionalidad. Se pretende que
capte las características fundamentales de nuestra entrada.
Redes Profundas: Autoencoders apilados.
Sabemos que las capas ocultas de autoencoders actúan como detectores de las características más relevantes,
pero no es posible utilizarlas directamente.
Por suerte, se descubrió que estas estructuras pueden ser apiladas para formar redes profundas, de tal manera
que se pueda superar la desaparición de los gradientes y problemas de sobreajuste asociados con la clásica
propagación hacia atrás.
Las estructuras resultantes son a menudo bastante potentes, produciendo resultados impresionantes. Un
ejemplo es la famosa ”cat” paper de Google. En el que utilizan una clase especial de autoencoders profundos
para ?aprender? la detección del rostrohumano y de gatos, basado en datos no etiquetados.
Stacked Autoencoder.
4
Ejemplo de Stacked Autoencoder: CAT paper de Google.
Ejemplo de Stacked Autoencoder: CAT paper de Google.
Ejemplo de Stacked Autoencoder: CAT paper de Google.
5
4. Implementación de una RNA por Hardware.
4.1. Implementación de una RNA por Hardware.
Implementación de una RNA por Hardware.
Una forma de implementar una RNA es mediante chips especializados para redes neuronales.
Con esto aprovechamos su capacidad de cálculo en paralelo y reducimos notablemente el tiempo de ejecu-
ción lo cual hace posible su implimentación real para desarrollar una única y bien definida tarea.
Por lo tanto, no se presentan dificultades para la inserción de RNA en aplicaciones específicas, por ejemplo
de control, dentro de los sistemas existentes.
5. Implementación de una RNA por Software.
5.1. Implementación de una RNA por Software.
Implementación de una RNA por Software.
Otra forma de implementación que es más simple e inmediata consiste en simular la red sobre un ordenador
convencional mediante un software específico. Aunque de esta manera se pierde su capacidad de cálculo en
paralelo, las prestaciones que ofrecen los ordenadores actuales resultan suficientes para resolver numerosos
problemas prácticos pequeños, al permitir simular redes a una velocidad razonable.
Implementación de una RNA por Software.
Esta forma de implementación constituye la manera más barata y directa de implementar una RNA.
Por otra parte, no es necesario que cada investigador diseñe sus propios simuladores, pues existen numerosas
aplicaciones comerciales que permiten la simulación de multitud de modelos neuronales.
6. Aplicaciones generales de los métodos de Machine Learning.
6.1. Aplicaciones generales de los métodos de Machine Learning.
Aplicaciones generales de los métodos de Machine Learning.
Hay muchos tipos de métodos de aprendizaje automatizado; cada uno de los cuales tiene una aplicación parti-
cular más apropiada. Algunas aplicaciones comerciales son:
Biología:
- Aprender más acerca del cerebro y otros sistemas. - Obtención de modelos de la retina.
6
Aplicaciones generales de los métodos de Machine Learning.
Empresa:
- Identificación de candidatos para posiciones específicas. - Explotación de bases de datos. - Optimización de
plazas y horarios en líneas de vuelo. - Optimización del flujo del tránsito controlando convenientemente la tempo-
rización de los semáforos. - Reconocimiento de caracteres escritos o de voz.
Aplicaciones generales de los métodos de Machine Learning.
Medio ambiente:
- Analizar tendencias y patrones. - Previsión del tiempo.
Aplicaciones generales de los métodos de Machine Learning.
Finanzas:
- Previsión de la evolución de los precios. - Valoración del riesgo de los créditos. - Identificación de falsificaciones.
- Interpretación de firmas.
Aplicaciones generales de los métodos de Machine Learning.
Manufactura:
- Robots automatizados y sistemas de control (visión artificial, sensores de presión, temperatura, gas, etc.). -
Control de producción en líneas de procesos. - Inspección de la calidad (Sawyer).
7
Aplicaciones generales de los métodos de Machine Learning.
Robots Humanoides
- Nao es un robot humanoide programable y autónomo, desarrollado por Aldebaran Robotics, una compañía de
robótica francesa con sede en París en 2004 comenzó su desarrollo. - Nao se viene usando desde 2008 en intitucio-
nes educativas en todo el mundo (mas de 70 países). - Actualmente se han creado comunidades de desarrolladores,
para potenciar las aplicaciones de este robot, haciendolo disponible para todos.
Aplicaciones generales de los métodos de Machine Learning.
Robots Humanoides
- ASIMO es un robot humanoide (androide) desarrollado por la compañía japonesa Honda en el año 2000. - Se
desarrollo con el objetivo de ayudar a las personas que carecen de movilidad completa en sus cuerpos. También
para animar a la juventud para estudiar ciencias y matemáticas. - En la actualidad Honda sigue desarrollando más
funcionalidades de ASIMO.
Aplicaciones generales de los métodos de Machine Learning.
Medicina:
- Analizadores del habla para ayudar en la audición de sordos profundos. - Monitorización en cirugías. - Pre-
dicción de reacciones adversas en los medicamentos. - Entendimiento de la causa de los ataques cardíacos. -
Ingeniería biomedica: diseño y construcción de equipos médicos, prótesis, dispositivos de diagnóstico y terapia
8
Aplicaciones generales de los métodos de Machine Learning.
Astronáutica:
Es la teoría y práctica de la navegación fuera de la atmósfera de la Tierra por parte de objetos artificiales, tripulados
o no, es decir, el estudio de las trayectorias, navegación, exploración y supervivencia humana en el espacio. Abarca
tanto la construcción de los vehículos espaciales como el diseño de los lanzadores que habrán de ponerlos en órbita.
Aplicaciones generales de los métodos de Machine Learning.
Astronomía:
Ciencia que estudia la estructura y la composición de los astros, su localización y las leyes de sus movimientos.
Aplicaciones generales de las RNA.
Militares:
- Clasificación de las señales de radar. - Creación de armas inteligentes. - Optimización del uso de recursos
escasos. - Reconocimiento y seguimiento en el tiro al blanco.
Aplicaciones generales de los métodos de Machine Learning.
Contraataque nuclear garantizado: el botón del Juicio Final en Rusia
El mayor elemento de disuasión nuclear de Rusia es un sistema que garantiza un ataque nuclear de respuesta,
incluso en caso de la destrucción total de las líneas de mando y comunicación y muerte de personas clave. Se
conoce en Rusia como Perímetr.
9
Aplicaciones generales de los métodos de Machine Learning.
Resumiendo:
La mayoría de estas aplicaciones consisten en realizar un reconocimiento de patrones, como ser:
Buscar un patrón en una serie de ejemplos.
Clasificar patrones.
Completar una señal a partir de valores parciales o reconstruir el patrón correcto partiendo de uno distorsio-
nado.
Podemos afirmar que actualmente el uso de los métodos de Machine Learning en distintos tipos de sistemas
aumento considerablemente. Esto hace que Machine Learning sea un campo muy atractivo para trabajar.
7. Próxima Clase
Próxima Clase
1. Trabajo Final.
10

Continuar navegando