Machine Learning (en Python), con ejemplos. El Machine Learning o Aprendizaje Autónomo es una rama de la Inteligencia Artificial que tiene como objetivo crear sistemas capaces de aprender por ellos mismos a partir de un conjunto de datos (data set), sin ser programados de forma explícita.
Por ejemplo, el reconocimiento óptico de caracteres ya no se percibe como un ejemplo de la "inteligencia artificial" habiéndose convertido en una tecnología común. Avances tecnológicos todavía clasificados como inteligencia artificial son los sistemas capaces de jugar ajedrez, GO y manejar por si mismos
NEURONAS ARTIFICIALES
Las redes neuronales (también conocidas como sistemas conexionistas) son un modelo computacional basado en un gran conjunto de unidades neuronales simples (neuronas artificiales), de forma aproximadamente análoga, el comportamiento observado en los axones de las neuronas en los cerebros biológicos. Cada unidad neuronal está conectada con muchas otras y los enlaces entre ellas pueden incrementar o inhibir el estado de activación de las neuronas adyacentes. Cada unidad neuronal, de forma individual, opera empleando funciones de suma. Puede existir una función limitadora o umbral en cada conexión y en la propia unidad, de tal modo que la señal debe sobrepasar un límite antes de propagarse a otra neurona. Estos sistemas aprenden y se forman a sí mismos, en lugar de ser programados de forma explícita, y sobresalen en áreas donde la detección de soluciones o características es difícil de expresar con la programación convencional.
Las redes neuronales suelen consistir en varias capas o un diseño de cubo, y la ruta de la señal atraviesa de adelante hacia atrás. Propagación hacia atrás es donde se utiliza la estimulación hacia adelante o en el "frente" para restablecer los pesos de las unidades neuronales y esto a veces se realiza en combinación con una formación en la que se conoce el resultado correcto. Las redes modernas son un poco más libres en el sentido de que fluye en términos de estimulación e inhibición con conexiones que interactúan de una manera mucho más caótica y compleja. Las redes neuronales dinámicas son lo más avanzadas en que se pueden dinámicamente formar nuevas conexiones e incluso nuevas unidades neuronales.
El objetivo de la red neuronal es resolver los problemas de la misma manera que el cerebro humano, aunque varias redes neuronales son más abstractas. Los proyectos de redes neurales modernas suelen trabajar con unos pocos miles a unos pocos millones de unidades neuronales y millones de conexiones, que sigue siendo varios órdenes de magnitud menos complejo que el cerebro humano y más cercano a la potencia de cálculo de un gusano.
Nuevas investigaciones sobre el cerebro a menudo estimulan nuevos patrones en las redes neuronales. Un nuevo enfoque está utilizando conexiones que se extienden mucho más allá y capas de procesamiento de enlace en lugar de estar siempre localizado en las neuronas adyacentes. Otra investigación está estudiando los diferentes tipos de señal en el tiempo que los axones se propagan, como el aprendizaje profundo , interpola una mayor complejidad que un conjunto de variables booleanas que son simplemente encendido o apagado.
Las redes neuronales se basan en los números reales, con el valor del núcleo y del axón siendo típicamente una representación entre 0,0 y 1.
Un aspecto interesante de estos sistemas es que son impredecibles en su éxito con el auto-aprendizaje. Después del entrenamiento, algunos se convierten en grandes solucionadores de problemas y otros no funcionan tan bien. Con el fin de capacitarlos, se necesitan varios miles de ciclos de iteración.
Las redes neuronales se han utilizado para resolver una amplia variedad de tareas, como la visión por computador y el reconocimiento de voz, que son difíciles de resolver usando la ordinaria programación basado en reglas.
Históricamente, el uso de modelos de redes neuronales marcó un cambio de dirección a finales de los años ochenta de alto nivel, que se caracteriza por sistemas expertos con conocimiento incorporado en si-entonces las reglas, a bajo nivel de aprendizaje automático , caracterizado por el conocimiento incorporado en los parámetros de un modelo cognitivo con algún sistema dinámico .
MIEDO y MISTERIO
A continuación les traigo una serie de "dibujos" creados por una computadora con Red neuronal artificial del laboratorio de GOOGLE.
Y se pone más interesante, amigos....
Deep Dream es un algoritmo de procesamiento de imágenes creado por Google,1 que se basa en la enseñanza a sus computadoras en cuanto a la forma de ver, entender y apreciar nuestro mundo.2 Además, el algoritmo está formado por una red neuronal artificial, que fue entrenada mostrandole millones de imágenes como ejemplo, para así ajustar poco a poco los parámetros de la red neuronal hasta obtener la identificación de la imagen y clasificarla de la manera adecuada.3 En este programa de Inteligencia Artificial se originan ideas oníricas de Google. Clasificando imágenes con solo "mirarlas",4 para así reproducirlas o mejorarlas sobre la base de patrones formados durante el aprendizaje/entrenamiento. Muchas de las imágenes editadas muestran ojos de animales y sus caras, ya que es lo que el software ha sido entrenado para ver y reconocer.5
Y lo tuve que probar, con gatos, obviamente....
He aquí mi creación ! Bueno, la creación según las neuronas artificiales del robot de Google...
El software Deep Dream fue desarrollado para el imageNet large scale visual recognition challenge (ILSVRC). Este era un desafío reto, propuesto a diferentes equipos de investigación, que consistió en crear un sistema de reconocimiento de objetos y su localización dentro de una misma imagen, aparte de su detección inmediata. En este Desafío se adjudicó a Google el primer premio en el año 2014, logrado gracias al uso del entrenamiento de redes neuronales.67
En junio de 2015 Google publicó la investigación, y tras esto hizo su código fuente abierto utilizado para generar las imágenes en un IPython notebook. Con esto se permitió que las imágenes de la red neuronal pudiesen ser creadas por cualquiera.
El código utiliza paquetes de códigos abiertos disponibles. Además, está diseñado para tener el menor número de dependencias posible.8
Cómo funciona
Las redes neuronales comprenden un sistema de procesamiento de información que simula el funcionamiento del sistema nervioso, mediante el uso de neuronas artificiales que aprenden y procesan información, modelando un problema matemáticamente por medio de algoritmos, para entregar una solución. Se les da el nombre de redes neuronales porque imitan de forma sencilla el sistema que tienen las neuronas de nuestro cerebro de procesar información.
- Estas redes neuronales tienen distintas características:
- Son capaces de adquirir información y utilizarla para mejorar su modo de funcionamiento.
- Imitan la forma en que el cerebro reorganiza la información cerebral.
- se auto-organizan.
- son dinámicas, tolerando y ajustando los errores por sí solas.910
En el caso de Deep Dream, la red fue entrenada simplemente mostrando muchos ejemplos de lo que se quería que aprendiera, de manera que extrajera lo esencial de cada objeto. Así se construyó una red capaz de tomar decisiones y analizar por si misma una imagen. En su utilización se escoge una capa para que la red mejore lo que ha sido detectado. Cada capa de la red incorpora características a un nivel diferente de abstracción, por lo que, la complejidad de las funciones generadas depende de qué capa se escoja para mejorar una imagen.
- Clasificación de capas neuronales:
- Primeras capas: Son sensibles a funciones básicas, como bordes y sus orientaciones.
- Capas intermedias: Interpretan características básicas; buscan formas o componentes generales, como una puerta o una hoja.
- Capas finales: Las neuronas se activan en respuesta a cosas muy complejas, como edificios o árboles, identificando características más sofisticadas.