¿Por qué las redes convolucionales profundas llegaron tan tarde?

En 2012, Google creó una red neuronal para detectar gatos en las fotos. Usaron 16000 CPU dispersas en 1000 computadoras. ¡Qué gran proyecto!

Por supuesto, atrajo la atención de los medios: Google X crea una ‘red neuronal’ de 16,000 núcleos para el aprendizaje automático independiente

Pero solo Google podría asumir un proyecto de esta escala, por lo que las redes neuronales permanecieron impopulares en la academia.

Sin embargo, algún tiempo después, Stanford y Nvidia se unieron y produjeron una red neuronal de la misma escala, pero utilizando solo un puñado de GPU: la red neuronal NVIDIA GPU hace que el observador de gatos de Google se vea tonto.

Esto fue posible gracias a un gran avance durante la competencia anual de visión por computadora de Stanford de 2012, cuando un investigador llamado Alex Krizhevsky superó la precisión de clasificación anterior por un margen significativo utilizando GPU para entrenar una CNN.

Aunque los avances teóricos llegaron hace años y años, los resultados prácticos solo se observaron en 2012 cuando se demostró que las GPU eran formidables formadores de redes neuronales.

La principal innovación en el aprendizaje profundo, especialmente en redes convolucionales, no es la teoría / algoritmo en sí, sino los aspectos de ingeniería.

  1. En primer lugar, el poder de la computación es fácilmente accesible para todos debido a la computación en la nube.
  2. Las canalizaciones de datos se han convertido en mejores API de datos mejoradas y acceso abierto a varias fuentes de datos
  3. El software ha mejorado cuando se puede experimentar con CNN con solo unas pocas líneas de código en python

Así que 2000-2010 fue el momento en que se construyó la infraestructura requerida para implementar el aprendizaje profundo. Como resultado, comenzamos a ver resultados en esta década.

La mayoría de las innovaciones en torno a CNN hoy en día se refieren a arquitecturas (por ejemplo, desde AlexNet, VGG a InceptionV3) y detección de objetos en tiempo real con sistemas de propuesta de región inherentes (por ejemplo, RCNN más rápido).

Es un algoritmo computacionalmente costoso debido a la cantidad de multiplicación matricial de características y derivados hacia adelante y hacia atrás.

Por lo tanto, el aumento de la GPU y la computación distribuida junto con el descenso del gradiente estocástico de mini lotes, la normalización de lotes, el uso de la unidad lineal rectificada en lugar de sigmoide (es decir, max (0, x) en lugar de g (z)) realmente ha hecho que la formación de CNN Un más rápido.

Se trata de los usos, así como sabemos que en los últimos años anteriores que la inteligencia artificial está en auge, ahora estamos tratando de usar un método para que pueda obtener más precisión en nuestra predicción, por lo que estamos buscando métodos más precisos y nosotros llegar a más nuevos avances, eso es todo.

La propagación de la espalda es relativamente nueva. Creo que el gran trabajo allí se hizo en 2008. Esto provocó otro resurgimiento en la IA. También el aumento de la GPU cambió todo.

More Interesting

¿Qué es la entropía cruzada en palabras fáciles?

¿Por qué mi red neuronal artificial predice demasiados falsos negativos (FN)?

¿Qué soluciones se están construyendo utilizando la tecnología IBM Watson?

¿Es útil R para aprender a investigar en planificación urbana, economía y diseño?

¿Qué métodos de conjunto / aprendizaje automático pueden incorporar covariables que varían con el tiempo?

¿Existe un libro de aprendizaje automático que ofrece una guía paso a paso con números reales o ejemplos numéricos en algoritmos de aprendizaje automático?

¿Cuáles son las mejores herramientas de última generación para la extracción de información en Python?

¿Qué son las vigas reforzadas sobrerreforzadas, subreforzadas y equilibradas?

Cómo aplicar PCA para la reducción de dimensionalidad y SVM para agrupar y clasificar los patrones usando C ++ OpenCV

¿Cuál es el mejor argumento en contra de no saber cómo usar una computadora porque él o ella no crecieron con ella?

Cómo construir una aplicación para educación

¿Hay alguna manera de hacer una clasificación de múltiples etiquetas en los árboles de decisión usando R / Python?

¿Cómo puedo comparar diferentes arquitecturas de redes neuronales sin entrenarlas durante semanas? ¿Hay alguna forma práctica de verificar si las redes merecen la capacitación completa o no?

Desde un punto de vista práctico, ¿por qué es tan importante saber programar en Machine Learning?

¿Auto-sklearn es realmente mejor que un clasificador único optimizado por hiperparámetro? ¿Tienes experiencia con esto?