Un niño humano a los 2 años necesita alrededor de 5 instancias de un automóvil para poder identificarlo con una precisión razonable independientemente del color, la marca, etc. Cuando mi hijo tenía 2 años, pudo identificar tranvías y trenes, a pesar de que había visto sólo algunos. Como generalmente se confundía entre sí, aparentemente su red neuronal no estaba lo suficientemente entrenada, pero aún así.
¿Qué es lo que faltan las redes neuronales artificiales que les impiden aprender mucho más rápido? ¿La transferencia de aprendizaje es una respuesta?
neural-networks
neuroscience
Marcin
fuente
fuente
Respuestas:
Advierto contra esperar un gran parecido entre las redes neuronales biológicas y artificiales. Creo que el nombre de "redes neuronales" es un poco peligroso, porque engaña a las personas para que esperen que los procesos neurológicos y el aprendizaje automático sean los mismos. Las diferencias entre las redes neuronales biológicas y artificiales superan las similitudes.
Como ejemplo de cómo esto puede salir mal, también puede cambiar el razonamiento en la publicación original. Puede entrenar una red neuronal para aprender a reconocer los automóviles en una tarde, siempre que tenga una computadora razonablemente rápida y cierta cantidad de datos de entrenamiento. Puede hacer de esto una tarea binaria (automóvil / no automóvil) o una tarea de varias clases (automóvil / tranvía / bicicleta / avión / barco) y aún así tener confianza en un alto nivel de éxito.
Por el contrario, no esperaría que un niño pueda escoger un automóvil el día, o incluso la semana, después de que nazca, incluso después de haber visto "tantos ejemplos de entrenamiento". Obviamente, algo es diferente entre un niño de dos años y un bebé que explica la diferencia en la capacidad de aprendizaje, mientras que una red neuronal de clasificación de imágenes vainilla es perfectamente capaz de recoger la clasificación de objetos inmediatamente después del "nacimiento". Creo que hay dos diferencias importantes: (1) los volúmenes relativos de datos de entrenamiento disponibles y (2) un mecanismo de autoaprendizaje que se desarrolla con el tiempo debido a los abundantes datos de entrenamiento.
La publicación original expone dos preguntas. El título y el cuerpo de la pregunta preguntan por qué las redes neuronales necesitan "tantos ejemplos". En relación con la experiencia de un niño, las redes neuronales entrenadas utilizando puntos de referencia de imágenes comunes tienen relativamente pocos datos.
Reformularé la pregunta en el título para
"¿Cómo se compara y contrasta el entrenamiento de una red neuronal para un punto de referencia de imagen común con la experiencia de aprendizaje de un niño?"
En aras de la comparación, consideraré los datos CIFAR-10 porque es un punto de referencia de imagen común. La parte etiquetada se compone de 10 clases de imágenes con 6000 imágenes por clase. Cada imagen es de 32x32 píxeles. Si de alguna manera apiló las imágenes etiquetadas de CIFAR-10 e hizo un video estándar de 48 fps, tendría unos 20 minutos de metraje.
Un niño de 2 años que observa el mundo durante 12 horas diarias tiene aproximadamente 263000 minutos (más de 4000 horas) de observaciones directas del mundo, incluidas las opiniones de los adultos (etiquetas). (Estas son solo cifras aproximadas: no sé cuántos minutos ha pasado un niño típico de dos años observando el mundo). Además, el niño estará expuesto a muchos, muchos objetos más allá de las 10 clases que comprenden CIFAR- 10)
Así que hay algunas cosas en juego. Una es que el niño está expuesto a más datos en general y a una fuente de datos más diversa que el modelo CIFAR-10. La diversidad de datos y el volumen de datos están bien reconocidos como requisitos previos para modelos robustos en general. A la luz de esto, no parece sorprendente que una red neuronal sea peor en esta tarea que el niño, porque una red neuronal entrenada en CIFAR-10 está hambrienta de datos de entrenamiento en comparación con el niño de dos años. La resolución de imagen disponible para un niño es mejor que las imágenes CIFAR-10 de 32x32, por lo que el niño puede aprender información sobre los detalles finos de los objetos.
La comparación de CIFAR-10 a dos años no es perfecta porque el modelo CIFAR-10 probablemente se entrenará con múltiples pases sobre las mismas imágenes estáticas, mientras que el niño verá, usando visión binocular, cómo se organizan los objetos en tres -dimensional mientras se mueve y con diferentes condiciones de iluminación y perspectivas sobre los mismos objetos.
La anécdota sobre el hijo de OP implica una segunda pregunta,
"¿Cómo pueden las redes neuronales convertirse en autodidactas?"
Un niño está dotado de cierto talento para la autoaprendizaje, de modo que se pueden agregar nuevas categorías de objetos a lo largo del tiempo sin tener que comenzar desde cero.
El comentario de OP sobre el aprendizaje por transferencia menciona un tipo de adaptación del modelo en el contexto de aprendizaje automático.
En los comentarios, otros usuarios han señalado que el aprendizaje de un solo disparo * es otra área de investigación de aprendizaje automático.
Además, el aprendizaje por refuerzo aborda los modelos de autoaprendizaje desde una perspectiva diferente, esencialmente permitiendo a los robots realizar experimentos de prueba y error para encontrar estrategias óptimas para resolver problemas específicos (por ejemplo, jugar al ajedrez).
Probablemente sea cierto que estos tres paradigmas de aprendizaje automático están relacionados con la mejora de la forma en que las máquinas se adaptan a las nuevas tareas de visión por computadora. Adaptar rápidamente los modelos de aprendizaje automático a nuevas tareas es un área activa de investigación. Sin embargo, debido a que los objetivos prácticos de estos proyectos (identificar nuevas instancias de malware, reconocer impostores en fotos de pasaportes, indexar Internet) y los criterios para el éxito difieren de los objetivos de un niño que aprende sobre el mundo, y el hecho de que uno se hace en Si una computadora usa matemáticas y la otra está hecha de material orgánico usando química, las comparaciones directas entre ambas seguirán siendo complejas.
Por otro lado, sería interesante estudiar cómo dar la vuelta al problema CIFAR-10 y entrenar una red neuronal para reconocer 6000 objetos de 10 ejemplos de cada uno. Pero incluso esto no sería una comparación justa con un niño de 2 años, porque todavía habría una gran discrepancia en el volumen total, la diversidad y la resolución de los datos de capacitación.
* Actualmente no tenemos etiquetas para el aprendizaje de un disparo o el aprendizaje de pocos disparos.
fuente
En primer lugar, a los dos años, un niño sabe mucho sobre el mundo y aplica activamente este conocimiento. Un niño hace mucho "aprendizaje de transferencia" aplicando este conocimiento a nuevos conceptos.
En segundo lugar, antes de ver esos cinco ejemplos "etiquetados" de autos, un niño ve muchos autos en la calle, en la televisión, autos de juguete, etc., por lo que también ocurre un montón de "aprendizaje no supervisado" de antemano.
Finalmente, las redes neuronales no tienen casi nada en común con el cerebro humano, por lo que no tiene mucho sentido compararlas. También tenga en cuenta que existen algoritmos para el aprendizaje de una sola vez, y actualmente se realiza una gran investigación al respecto.
fuente
Un aspecto importante que no veo en las respuestas actuales es la evolución .
El cerebro de un niño no aprende desde cero. Es similar a preguntar cómo los ciervos y las jirafas pueden caminar unos minutos después del nacimiento. Porque nacen con el cerebro ya conectado para esta tarea. Por supuesto, se necesita un ajuste fino, pero el bebé ciervo no aprende a caminar desde la "inicialización aleatoria".
Del mismo modo, el hecho de que existan grandes objetos en movimiento y de los que es importante realizar un seguimiento es algo con lo que nacemos.
Así que creo que la presuposición de esta pregunta es simplemente falsa. Las redes neuronales humanas tuvieron la oportunidad de ver toneladas, tal vez no de automóviles, pero en movimiento, rotando objetos 3D con texturas y formas difíciles, etc., pero esto sucedió a través de muchas generaciones y el aprendizaje se llevó a cabo mediante algoritmos evolutivos, es decir, aquellos cuyo cerebro estaba mejor estructurado para esta tarea, podía vivir para reproducirse con mayor probabilidad, dejando a la próxima generación con un mejor y mejor cableado cerebral desde el principio.
fuente
No sé mucho sobre redes neuronales, pero sé bastante sobre bebés.
Muchos niños de 2 años tienen muchos problemas con lo generales que deberían ser las palabras. Por ejemplo, es bastante común a esa edad que los niños usen "perro" para cualquier animal de cuatro patas. Esa es una distinción más difícil que el "auto": solo piense en lo diferente que se ve un caniche de un gran danés, por ejemplo, y sin embargo ambos son "perros" mientras que un gato no lo es.
Y un niño de 2 años ha visto muchos más de 5 ejemplos de "auto". Un niño ve docenas o incluso cientos de ejemplos de automóviles cada vez que la familia va a conducir. Y muchos padres comentarán "mira el auto" más de 5 veces. Pero los niños también pueden pensar en formas en las que no se les habló. Por ejemplo, en la calle el niño ve muchas cosas alineadas. Su papá dice (de uno) "¡mira el auto brillante!" y el niño piensa "¿quizás todas esas otras cosas alineadas también son autos?"
fuente
Esta es una pregunta fascinante que también he meditado mucho, y puedo dar algunas explicaciones de por qué.
fuente
El concepto de "instancias" se enturbia fácilmente. Si bien un niño puede haber visto 5 instancias únicas de un automóvil, en realidad han visto miles de miles de cuadros, en muchos entornos diferentes. Probablemente hayan visto autos en otros contextos. También tienen una intuición para el mundo físico desarrollado a lo largo de su vida: es probable que ocurra algo de aprendizaje de transferencia aquí. Sin embargo, resumimos todo eso en "5 instancias".
Mientras tanto, cada fotograma / imagen que pase a una CNN se considera un "ejemplo". Si aplica una definición consistente, ambos sistemas realmente están utilizando una cantidad mucho más similar de datos de entrenamiento.
Además, me gustaría señalar que las redes neuronales convolucionales (CNN) son más útiles en la visión por computadora que las ANN, y de hecho se acercan al rendimiento humano en tareas como la clasificación de imágenes. El aprendizaje profundo (probablemente) no es una panacea, pero funciona admirablemente en este dominio.
fuente
Como señalaron otros, la eficiencia de los datos de las redes neuronales artificiales varía considerablemente, dependiendo de los detalles. De hecho, existen muchos de los llamados métodos de aprendizaje de una sola toma, que pueden resolver la tarea de etiquetar tranvías con bastante buena precisión, utilizando solo una muestra etiquetada.
Una forma de hacerlo es mediante el llamado aprendizaje de transferencia; una red capacitada en otras etiquetas generalmente se adapta de manera muy efectiva a las nuevas etiquetas, ya que el trabajo duro está desglosando los componentes de bajo nivel de la imagen de una manera sensata.
Pero de hecho no necesitamos tales datos etiquetados para realizar dicha tarea; al igual que los bebés no necesitan casi tantos datos etiquetados como las redes neuronales en las que está pensando.
Por ejemplo, uno de estos métodos sin supervisión que también he aplicado con éxito en otros contextos es tomar un conjunto de imágenes sin etiquetar, rotarlas al azar y entrenar una red para predecir qué lado de la imagen está 'arriba'. Sin saber cuáles son los objetos visibles, o cómo se llaman, esto obliga a la red a aprender una enorme cantidad de estructura sobre las imágenes; y esto puede formar una base excelente para un aprendizaje etiquetado posterior mucho más eficiente con los datos.
Si bien es cierto que las redes artificiales son bastante diferentes de las reales en formas probablemente significativas, como la ausencia de un análogo obvio de la propagación hacia atrás, es muy probable que las redes neuronales reales utilicen los mismos trucos, de tratar de aprender estructura en los datos implicados por algunos anteriores simples.
Otro ejemplo que casi seguramente juega un papel en los animales y también ha mostrado una gran promesa en la comprensión del video, es el supuesto de que el futuro debe ser predecible desde el pasado. Simplemente partiendo de esa suposición, puedes enseñar mucho a una red neuronal. O en un nivel filosófico, me inclino a creer que esta suposición subyace en casi todo lo que consideramos "conocimiento".
No estoy diciendo nada nuevo aquí; pero es relativamente nuevo en el sentido de que estas posibilidades son demasiado jóvenes para haber encontrado muchas aplicaciones todavía, y aún no se han filtrado a la comprensión de los libros de texto de "lo que un ANN puede hacer". Entonces, para responder la pregunta de los OP; ANN ya ha cerrado gran parte de la brecha que usted describe.
fuente
Una forma de entrenar una red neuronal profunda es tratarla como una pila de codificadores automáticos ( Máquinas de Boltzmann restringidas ).
En teoría, un codificador automático aprende de manera no supervisada: toma datos de entrada arbitrarios y no etiquetados y los procesa para generar datos de salida. Luego toma esos datos de salida e intenta regenerar sus datos de entrada. Ajusta los parámetros de sus nodos hasta que pueda acercarse a disparar sus datos. Si lo piensa, el codificador automático está escribiendo sus propias pruebas unitarias automatizadas. En efecto, está convirtiendo sus "datos de entrada no marcados " en datos etiquetados : los datos originales sirven como una etiqueta para los datos de ida y vuelta.
Después de entrenar las capas de codificadores automáticos, la red neuronal se ajusta utilizando datos etiquetados para realizar su función prevista. En efecto, estas son pruebas funcionales.
El póster original pregunta por qué se necesitan muchos datos para entrenar una red neuronal artificial, y compara eso con la cantidad supuestamente baja de datos de entrenamiento que necesita un humano de dos años. El póster original compara manzanas con naranjas: el proceso general de entrenamiento para la red neuronal artificial, en comparación con el ajuste con etiquetas para el niño de dos años.
Pero en realidad, el niño de dos años ha estado entrenando a sus codificadores automáticos en datos aleatorios y autoetiquetados durante más de dos años. Los bebés sueñan cuando están en el útero . (Al igual que los gatitos). Los investigadores han descrito estos sueños como la activación aleatoria de neuronas en los centros de procesamiento visual.
fuente
No aprendemos a "ver autos" hasta que aprendemos a ver
Se necesita mucho tiempo y muchos ejemplos para que un niño aprenda a ver los objetos como tales. Después de eso, un niño puede aprender a identificar un tipo particular de objeto con solo unos pocos ejemplos. Si compara a un niño de dos años con un sistema de aprendizaje que literalmente comienza desde una pizarra en blanco, es una comparación de manzanas y naranjas; a esa edad, el niño ha visto miles de horas de "video".
De manera similar, se necesitan muchos ejemplos de redes neuronales artificiales para aprender "cómo ver", pero después de eso es posible transferir ese conocimiento a nuevos ejemplos. El aprendizaje por transferencia es un dominio completo del aprendizaje automático, y cosas como el "aprendizaje de una sola vez" son posibles: puede construir ANN que aprenderán a identificar nuevos tipos de objetos que no ha visto antes en un solo ejemplo, o identificar un persona particular de una sola foto de su cara. Pero hacer bien esta parte inicial de "aprender a ver" requiere una gran cantidad de datos.
Además, hay alguna evidencia de que no todos los datos de entrenamiento son iguales, es decir, que los datos que "elige" mientras aprende son más efectivos que los datos que simplemente se le proporcionan. Por ejemplo, Held & Hein experimento de gatito gemelo. https://www.lri.fr/~mbl/ENS/FONDIHM/2013/papers/about-HeldHein63.pdf
fuente
Una cosa que no he visto en las respuestas hasta ahora es el hecho de que una 'instancia' de un objeto del mundo real que es visto por un niño humano no corresponde a una instancia en el contexto del entrenamiento NN.
Suponga que está parado en una intersección ferroviaria con un niño de 5 años y ve pasar 5 trenes en 10 minutos. Ahora, podría decir "¡Mi hijo solo vio 5 trenes y puede identificar otros trenes de manera confiable mientras un NN necesita miles de imágenes!". Si bien esto es cierto, ignora por completo el hecho de que cada tren que ve su hijo contiene MUCHA más información que una sola imagen de un tren. De hecho, el cerebro de su hijo está procesando varias docenas de imágenes del tren por segundo mientras pasa, cada una desde un ángulo ligeramente diferente, sombras diferentes, etc., mientras que una sola imagen proporcionará al NN información muy limitada. En este contexto, su hijo incluso tiene información que no está disponible para el NN, por ejemplo, la velocidad del tren o el sonido que hace el tren.
¡Además, su hijo puede hablar y HACER PREGUNTAS! "Los trenes son muy largos, ¿verdad?" "Sí", "Y también son muy grandes, ¿verdad?" "Si.". ¡Con dos preguntas simples, su hijo aprenderá dos características muy esenciales en menos de un minuto!
Otro punto importante es la detección de objetos. Su hijo puede identificar inmediatamente en qué objeto, es decir, en qué parte de la imagen, necesita enfocarse, mientras que un NN debe aprender a detectar el objeto relevante antes de que pueda intentar clasificarlo.
fuente
Yo diría que el rendimiento no es tan diferente como cabría esperar, pero usted hace una gran pregunta (vea el último párrafo).
Como menciona el aprendizaje por transferencia: para comparar manzanas con manzanas, tenemos que ver cuántas imágenes en total y cuántas imágenes de la clase de interés "ve" una red humana / neural.
1. ¿Cuántas imágenes mira un humano?
El movimiento del ojo humano toma alrededor de 200 ms, lo que podría verse como una especie de "foto biológica". Vea la charla del experto en visión artificial Fei-Fei Li: https://www.ted.com/talks/fei_fei_li_how_we_re_teaching_computers_to_understand_pictures#t-362785 .
Ella agrega:
En ImageNet, la base de datos líder para la detección de objetos, hay ~ 14 millones de imágenes etiquetadas . Entonces, una red neuronal que se está entrenando en ImageNet habría visto tantas imágenes como un bebé de 14000000/5/60/60/24 * 2 ~ 64 días de edad, entonces dos meses (suponiendo que el bebé esté despierto la mitad de su vida). Para ser justos, es difícil saber cuántas de estas imágenes están etiquetadas. Además, las imágenes que ve un bebé no son tan diversas como en ImageNet. (Probablemente el bebé vea que su madre tiene el tiempo, ...;). Sin embargo, creo que es justo decir que su hijo habrá visto cientos de millones de imágenes (y luego aplica el aprendizaje de transferencia).
Entonces, ¿cuántas imágenes necesitamos para aprender una nueva categoría dada una base sólida de imágenes relacionadas que se pueden aprender (transferir)?
La primera publicación de blog que encontré fue esta: https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html . Usan 1000 ejemplos por clase. Me imagino que 2.5 años después, incluso se requiere mucho menos. Sin embargo, un humano puede ver 1000 imágenes en 1000/5/60 en 3,3 minutos.
Tu escribiste:
Eso equivaldría a cuarenta segundos por instancia (con varios ángulos de ese objeto para hacerlo comparable).
En resumen: como mencioné, tuve que hacer algunas suposiciones. Pero creo que uno puede ver que el rendimiento no es tan diferente como cabría esperar.
Sin embargo, creo que haces una gran pregunta y aquí es por qué:
2. ¿La red neuronal funcionaría mejor / diferente si funcionarían más como cerebros? (Geoffrey Hinton dice que sí).
En una entrevista https://www.wired.com/story/googles-ai-guru-computers-think-more-like-brains/ , a fines de 2018, compara las implementaciones actuales de redes neuronales con el cerebro. Menciona, en términos de pesos, que las redes neuronales artificiales son más pequeñas que el cerebro en un factor de 10.000. Por lo tanto, el cerebro necesita muchas menos iteraciones de entrenamientos para aprender. Para permitir que las redes neuronales artificiales funcionen más como nuestros cerebros, él sigue otra tendencia en hardware, una startup con sede en el Reino Unido llamada Graphcore. Reduce el tiempo de cálculo mediante una forma inteligente de almacenar los pesos de una red neuronal. Por lo tanto, se pueden usar más pesos y el tiempo de entrenamiento de las redes neuronales artificiales podría reducirse.
fuente
Soy un experto en esto. Soy humano, era un bebé, tengo un auto y hago IA.
La razón por la cual los bebés recogen automóviles con ejemplos mucho más limitados es la intuición. El cerebro humano ya tiene estructuras para lidiar con las rotaciones 3D. Además, hay dos ojos que proporcionan paralaje para el mapeo de profundidad que realmente ayuda. Puede intuir entre un automóvil y una imagen de un automóvil, porque no hay profundidad real en la imagen. Hinton (investigador de IA) ha propuesto la idea de Capsule Networks, que podría manejar las cosas de manera más intuitiva. Desafortunadamente para las computadoras, los datos de entrenamiento son (generalmente) imágenes 2D, matrices de píxeles planos. Para no ajustarse demasiado, se requieren muchos datos para que la orientación de los autos en las imágenes sea generalizada. El cerebro del bebé ya puede hacer esto y puede reconocer un automóvil en cualquier orientación.
fuente