Por qué los programadores deberían aprender aprendizaje profundo
Fei Lianghong: ¿Por qué los programadores deberían aprender aprendizaje profundo?
El aprendizaje profundo en sí es un sistema de conocimiento muy grande. Este artículo quiere comenzar desde la perspectiva de los programadores, permitir que todos observen lo que significa el aprendizaje profundo para los programadores y cómo podemos utilizar una disciplina en rápido desarrollo para ayudar a los programadores a mejorar sus capacidades de desarrollo de software.
Este artículo está compilado en base al discurso de Fei Lianghong en la Conferencia Global de Desarrollo de Software QCon 2016 (Shanghai).
Prólogo
En 1973, se estrenó en los Estados Unidos una popular película de ciencia ficción "WestWorld", y tres años después hubo una secuela llamada "FutureWorld". Esta película se introdujo en China a principios de la década de 1980 como "Mundo futuro". Esa película fue simplemente impactante para mí. Hay muchos robots en la película, con placas de circuito integrado debajo de sus expresivas caras. Esto me hizo sentir en ese momento que el mundo futuro estaba muy lejos y era muy misterioso.
Ha llegado el momento en 2016, y es posible que muchos de mis amigos estén siguiendo la serie "WestWorld" sobre el mismo tema en el que HBO gastó mucho. Si las dos primeras películas todavía se limitaban a temas como robots e inteligencia artificial, el nuevo drama de 2016 ha logrado grandes avances en la trama y el pensamiento sobre la inteligencia artificial. Ya no se trata de si los robots amenazarán a los humanos, sino de cuestiones más filosóficas como "DreamsaremainlyMemories".
El tema "¿Cómo afecta la memoria a la inteligencia" es muy digno de nuestro pensamiento y también nos brinda una buena revelación: qué tipo de desarrollo y progreso se ha logrado en el campo de la inteligencia artificial en la actualidad?
El tema que tratamos hoy no es simplemente la inteligencia artificial. Si está interesado en el aprendizaje profundo, creo que habrá buscado palabras clave relacionadas similares en los motores de búsqueda. Utilicé aprendizaje profundo como palabra clave en Google y obtuve 26,3 millones de resultados de búsqueda. Este número es más de 3 millones de resultados mayor que hace una semana. Este número es suficiente para mostrar la velocidad de desarrollo del contenido relacionado con el aprendizaje profundo, y la gente está prestando cada vez más atención al aprendizaje profundo.
Desde otra perspectiva, quiero que todos vean lo popular que es el aprendizaje profundo en el mercado. Desde 2011 hasta ahora, se han adquirido más de 140 startups centradas en inteligencia artificial y aprendizaje profundo. Sólo en 2016 se produjeron más de 40 fusiones y adquisiciones de este tipo.
El más loco entre ellos es Google, que ha adquirido 11 startups de inteligencia artificial, la más famosa de las cuales es DeepMind, que derrotó a Lee Sedol 9º Dan. Le siguen Apple, Intel y Twitter. Tomando a Intel como ejemplo, sólo este año ha adquirido tres startups: Itseez, Nervana y Movidius. Esta serie de fusiones y adquisiciones a gran escala tiene como objetivo diseñar los campos de la inteligencia artificial y el aprendizaje profundo.
Cuando buscamos temas de aprendizaje profundo, a menudo vemos términos tan oscuros: descenso de gradiente (algoritmo de descenso de gradiente), retropropagación (algoritmo de retropropagación), red neuronal convolucional (red neuronal convolucional), máquina de Boltzmann restringida (restringida). Máquina Boltzmann), etc.
Si abres cualquier artículo técnico, verás varias fórmulas matemáticas a lo largo. Como puede ver, la imagen de abajo a la izquierda no es en realidad un artículo académico de alto nivel, sino solo una introducción a las máquinas Boltzmann de Wikipedia. Wikipedia tiene contenido a nivel de divulgación científica y la complejidad del contenido excede las capacidades de la mayoría del conocimiento matemático.
En este contexto, mi tema de hoy se puede resumir en tres puntos: primero, ¿por qué deberíamos aprender el aprendizaje profundo? Segundo, el concepto clave central del aprendizaje profundo es la red neuronal, luego, ¿qué es exactamente una red neuronal? En tercer lugar, como programadores, cuando queremos convertirnos en desarrolladores de aprendizaje profundo, ¿qué tipo de caja de herramientas necesitamos y dónde comenzar el desarrollo?
Por qué deberíamos aprender el aprendizaje profundo
Primero, hablemos de por qué deberíamos aprender el aprendizaje profundo. En este mercado, lo más indispensable es el vocabulario de diversos conceptos y diversas nuevas tecnologías de moda. ¿Qué tiene de diferente el aprendizaje profundo? Me gusta mucho una metáfora que alguna vez utilizó Andrew Ng.
Comparó el aprendizaje profundo con un cohete. La parte más importante de este cohete es su motor. Actualmente, en este campo, el núcleo del motor es la red neuronal. Como todos sabemos, los cohetes necesitan combustible además de motores, por lo que los big data constituyen en realidad otro componente importante de todo el cohete: el combustible. En el pasado, cuando hablábamos de big data, hacíamos más hincapié en la capacidad de almacenar y gestionar datos, pero estos métodos y herramientas tienen más que ver con estadísticas y resúmenes de datos históricos pasados.
Para cosas desconocidas en el futuro, estos métodos tradicionales no pueden ayudarnos a sacar conclusiones predictivas a partir de big data. Si consideramos la combinación de redes neuronales y big data, podemos ver claramente el verdadero valor y significado de big data. Andrew Ng dijo una vez: "Creemos que (el aprendizaje profundo representado por redes neuronales) es el atajo que nos permite obtener el acercamiento más cercano a la inteligencia artificial". Esta es una de las razones más importantes por las que deberíamos aprender el aprendizaje profundo.
En segundo lugar, a medida que nuestras capacidades informáticas y de procesamiento de datos continúan mejorando, la tecnología de inteligencia artificial representada por el aprendizaje profundo ha progresado rápidamente en rendimiento en comparación con la tecnología de inteligencia artificial en el sentido tradicional. Esto se debe principalmente al continuo desarrollo de la informática y las industrias relacionadas en las últimas décadas. En el campo de la inteligencia artificial, el rendimiento es otra razón importante por la que elegimos el aprendizaje profundo.
Este es un vídeo publicado por Nvidia este año sobre la aplicación del aprendizaje profundo en el campo de la conducción sin conductor. Podemos ver qué nivel se puede alcanzar aplicando el aprendizaje profundo a la conducción autónoma después de sólo 3.000 millas de entrenamiento. En experimentos realizados a principios de este año, este sistema aún no tenía capacidades verdaderamente inteligentes y a menudo experimentó diversas situaciones aterradoras, e incluso requirió intervención manual en algunos casos.
Pero después de 3000 millas de entrenamiento, hemos visto que la conducción autónoma ha funcionado de manera sorprendente en diversas condiciones complejas de la carretera, como carreteras de montaña, autopistas y barro. Tenga en cuenta que este modelo de aprendizaje profundo solo ha sido entrenado durante unos meses y 3000 millas.
Si continuamos mejorando este modelo, cuán poderosa será esta potencia de procesamiento. La tecnología más importante en este escenario es sin duda el aprendizaje profundo. Podemos sacar una conclusión: el aprendizaje profundo puede proporcionarnos capacidades poderosas. Si los programadores tienen esta tecnología, hará que cada programador sea aún más poderoso.
Inicio rápido con redes neuronales
Si no tenemos dudas sobre el aprendizaje del aprendizaje profundo, entonces definitivamente nos preocuparemos qué tipo de conocimiento necesito dominar para permitirme ingresar a esto. campo. La tecnología clave más importante aquí es la "red neuronal". Hablando de "red neuronal", es fácil confundir estos dos conceptos completamente diferentes.
Una es la red neuronal biológica y la segunda es la red neuronal de inteligencia artificial de la que vamos a hablar hoy. Quizás todos los aquí presentes tengan amigos que estén trabajando en inteligencia artificial. Cuando le preguntas sobre las redes neuronales, te arrojará muchos conceptos y términos desconocidos que te harán parecer confundido y solo podrás mantenerte alejado.
Para el concepto de red neuronal de inteligencia artificial, la mayoría de los programadores sentirán que hay una gran distancia con respecto a ellos. Porque es difícil que alguien se tome el tiempo de compartir contigo cuál es la esencia de las redes neuronales.
Y las teorías y conceptos que lees en los libros también pueden ayudarte a encontrar una conclusión clara y sencilla.
Hoy echemos un vistazo a qué es una red neuronal desde la perspectiva de un programador. La primera vez que aprendí sobre el concepto de redes neuronales fue a través de una película: "Terminator 2", estrenada en 1991. El actor Schwarzenegger tiene una frase:
"MyCPUisaneural-netprocessor; alearningcomputer". (Mi procesador es una unidad de procesamiento neuronal, es una computadora que puede aprender). Desde una perspectiva histórica, la exploración de la propia inteligencia por parte del ser humano precedió con mucho a la investigación de las redes neuronales.
En 1852, debido a un error accidental, un erudito italiano sumergió una cabeza humana en una solución de nitrato, obteniendo así la primera oportunidad de centrarse en las redes neuronales a simple vista. Este accidente aceleró la exploración de los misterios de la inteligencia humana y abrió el desarrollo de conceptos como la inteligencia artificial y las neuronas.
¿Tiene algo que ver el desarrollo del concepto de red neuronal biológica con la red neuronal de la que hablamos hoy? La red neuronal de la que estamos hablando hoy no tiene nada que ver con la red neuronal biológica, excepto que toma prestados algunos términos de la red neuronal biológica. Es completamente un concepto en el campo de las matemáticas y la informática, que también es el desarrollo maduro del logotipo de la inteligencia artificial. . Todo el mundo debería distinguir este punto y no confundir las redes neuronales biológicas con la inteligencia artificial de la que hablamos hoy.
A mediados de los años 1990, Vapnik y otros propusieron el algoritmo Support Vector Machines (Support Vector Machines). Pronto este algoritmo mostró grandes ventajas sobre las redes neuronales en muchos aspectos, tales como: no necesidad de ajustar parámetros, alta eficiencia, solución óptima global, etc. Por estas razones, el algoritmo SVM derrotó rápidamente al algoritmo de red neuronal y se convirtió en la corriente principal de ese período. La investigación sobre redes neuronales ha vuelto a caer en una era de hielo.
En los diez años transcurridos desde que fue abandonado, varios estudiosos aún persistieron en la investigación. Una de las personas más importantes es el profesor Geoffery Hinton de la Universidad de Toronto en Canadá. En 2006, publicó un artículo en la famosa revista "Science" y propuso por primera vez el concepto de "red de creencias profundas".
A diferencia de los métodos de entrenamiento tradicionales, la "red de creencia profunda" tiene un proceso de "entrenamiento previo", que puede permitir fácilmente que los pesos en la red neuronal encuentren una solución casi óptima y luego la utilicen. Tecnología de "ajuste" para optimizar la capacitación de toda la red. El uso de estas dos tecnologías reduce en gran medida el tiempo de entrenamiento de redes neuronales multicapa. En su artículo, le dio un nuevo término al método de aprendizaje relacionado con las redes neuronales multicapa: "aprendizaje profundo".
Pronto surgió el aprendizaje profundo en el campo del reconocimiento de voz. Luego, en 2012, la tecnología de aprendizaje profundo logró grandes avances en el campo del reconocimiento de imágenes. Hinton y sus estudiantes entrenaron con éxito una red neuronal convolucional multicapa en un millón de imágenes que contienen mil categorías en la competencia ImageNet, logrando una tasa de error de clasificación de 15, que fue mejor que el segundo lugar fue casi 11 puntos porcentuales más alto.
Este resultado demuestra plenamente la superioridad del efecto de reconocimiento de redes neuronales multicapa. Desde entonces, el aprendizaje profundo ha marcado el comienzo de una nueva época dorada. Vemos el floreciente desarrollo actual del aprendizaje profundo y las redes neuronales, que comenzaron a explotar en ese momento.
Utilice una red neuronal para construir un clasificador. ¿Cuál es la estructura de esta red neuronal?
De hecho, esta estructura es muy simple. Vemos que esta imagen es un diagrama esquemático de una red neuronal simple. La red neuronal es esencialmente un "gráfico dirigido". Cada nodo del gráfico tiene un nuevo término, "neurona", que toma prestada terminología biológica. Las líneas direccionales (arcos dirigidos) que conectan las neuronas se consideran "nervios". Las neuronas no son lo más importante en esta imagen, lo más importante son los nervios que conectan las neuronas. Cada parte neuronal tiene directividad y cada neurona apuntará al nodo de la siguiente capa.
Los nodos son jerárquicos y cada nodo apunta al nodo de la capa anterior. Los nodos en el mismo nivel no están conectados y no pueden cruzar nodos en el nivel anterior. Cada arco tiene un valor, que normalmente llamamos "peso". A través de los pesos se puede utilizar una fórmula para calcular el valor del nodo al que hacen referencia. ¿Cuál es este valor de peso? Obtenemos resultados a través del entrenamiento. Su asignación inicial a menudo comienza con números aleatorios, y luego el resultado obtenido por el entrenamiento más cercano al valor real se usa como modelo y se puede usar repetidamente. Este resultado es lo que llamamos un clasificador entrenado.
Los nodos se dividen en nodos de entrada y nodos de salida, y el medio se llama capa oculta. En pocas palabras, tenemos elementos de entrada de datos y las diferentes capas de redes neuronales en el medio son lo que llamamos capas ocultas. Se llama así porque estos niveles son invisibles para nosotros. El resultado de salida también se denomina nodo de salida. El nodo de salida es un número limitado y el nodo de entrada también es un número limitado. La capa oculta es la parte del modelo que podemos diseñar.
Si quiero hacer una analogía simple, me gustaría usar una red neuronal de cuatro capas para explicarla. A la izquierda está el nodo de entrada. Vemos que hay varios elementos de entrada, que pueden representar los valores RGB, sabores u otros elementos de datos de entrada de diferentes manzanas. La capa oculta intermedia es la red neuronal que diseñamos. Esta red ahora tiene diferentes niveles y los pesos entre niveles son el resultado de nuestro entrenamiento continuo.
El resultado de salida final se almacena en el nodo de salida. Cada vez, como una dirección de flujo, el nervio tiene una dirección y realiza diferentes cálculos a través de diferentes capas. En la capa oculta, el resultado de entrada de cada nodo se calcula y se utiliza como entrada de la siguiente capa. El resultado final se guardará en el nodo de salida. El valor de salida es el más cercano a nuestra clasificación. se dividirá en una determinada categoría. Esta es una breve descripción del uso de redes neuronales.
Además del diagrama estructural expresado de izquierda a derecha, también existe una forma de expresión común que representa una red neuronal de abajo hacia arriba. En este momento, la capa de entrada está en la parte inferior de la figura y la capa de salida está en la parte superior de la figura. La forma de expresión de izquierda a derecha se utiliza principalmente en la literatura de Andrew Ng y LeCun. En el marco de Caffe, se utiliza la expresión ascendente.
En pocas palabras, las redes neuronales no son misteriosas. Tienen imágenes y utilizan el poder de procesamiento de los gráficos para ayudarnos a extraer y aprender características. En el famoso artículo de Hinton de 2006, el aprendizaje profundo se resumió en los tres elementos más importantes: cálculo, datos y modelo. Con estos tres puntos se puede implementar un sistema de aprendizaje profundo.
La caja de herramientas que los programadores necesitan
Para los programadores, dominar el conocimiento teórico es una mejor práctica de programación. Entonces, echemos un vistazo a qué tipo de herramientas necesitan prepararse los programadores para comenzar la práctica del aprendizaje profundo.
Hardware
En términos de hardware, lo primero que nos viene a la cabeza para la potencia de cálculo que podemos necesitar es la CPU. Además de la arquitectura de CPU habitual, también parece que las CPU con multiplicadores adicionales aumentan la potencia informática. Además, existen escenarios de aplicación de DSP en diferentes campos, como el reconocimiento de escritura a mano, el reconocimiento de voz y otros procesadores de señal dedicados. Otra categoría es GPU, que actualmente es un campo popular para aplicaciones de aprendizaje profundo. La última categoría es FPGA (matriz de puerta lógica programable).
Cada uno de estos cuatro métodos tiene sus propias ventajas y desventajas, y cada producto será muy diferente. En comparación, aunque la CPU tiene una potencia informática más débil, es buena en gestión y programación, como lectura de datos, gestión de archivos, interacción persona-computadora, etc., y tiene herramientas ricas. En comparación, DSP tiene capacidades de gestión más débiles, pero fortalece capacidades informáticas específicas.
Ambos dependen de altas velocidades de reloj para resolver el problema computacional y son adecuados para algoritmos con una gran cantidad de operaciones recursivas y una división inconveniente. Las capacidades de gestión de la GPU son más débiles, pero su potencia informática es mayor. Sin embargo, debido a la gran cantidad de unidades informáticas, los algoritmos son más adecuados para el procesamiento continuo de datos completos.
FPGA es fuerte en gestión y procesamiento de operaciones, pero el ciclo de desarrollo es largo y el desarrollo de algoritmos complejos es difícil. En términos de rendimiento en tiempo real, FPGA es el más alto.
A juzgar únicamente por el desarrollo actual, para los programadores comunes, los recursos informáticos más utilizados en realidad siguen siendo los modelos de CPU y GPU, siendo la GPU el campo más popular.
Esta es una instancia p2 en AWS que preparé para compartirla anteayer. La actualización de la instancia, la instalación del controlador y la configuración del entorno se completan con solo unos pocos comandos. El tiempo total de creación y configuración de recursos es de aproximadamente 10 minutos. Antes, me llevaba dos días instalar y depurar la computadora mencionada anteriormente.
Además, se puede hacer una comparación en términos de coste. Una instancia p2.8xLarge cuesta $7,20 por hora. El coste total de mi propia computadora fue de 16.904 yuanes. Este costo es suficiente para usar p2.8xLarge durante más de 350 horas. Usar AWS Deep Learning Station en un año puede compensar todos mis esfuerzos. Con la actualización continua de la tecnología, puedo actualizar continuamente mis instancias, de modo que pueda obtener mayores recursos de procesamiento a un costo limitado. En realidad, este es el valor de la computación en la nube.
¿Cuál es la relación entre la computación en la nube y el aprendizaje profundo? El 8 de agosto de este año se publicó un artículo en el sitio web de IDG hablando sobre este tema. El artículo hace la siguiente predicción: si las capacidades paralelas del aprendizaje profundo continúan mejorando y la potencia de procesamiento proporcionada por la computación en la nube también continúa desarrollándose, la combinación de los dos puede producir una nueva generación de aprendizaje profundo, que traerá una mayor influencia. e impacto. ¡Esta es una dirección que todos deben considerar y prestar atención!
Software
El aprendizaje profundo se suma al entorno básico del hardware. Los programadores estarán más preocupados por los recursos de software relacionados con el desarrollo. Aquí enumero algunos marcos de software y herramientas que he utilizado.
Scikit-learn es la biblioteca de aprendizaje automático de Python más popular. Tiene las siguientes características atractivas: implementación de algoritmo de análisis de datos / extracción de datos simple, eficiente y extremadamente rica basada en NumPy, SciPy y matplotlib, todo el proceso desde el análisis exploratorio de datos, la visualización de datos hasta la implementación del algoritmo está integrado; Documentos de aprendizaje muy ricos.
Caffe se centra en el volumen, las redes neuronales y el procesamiento de imágenes. Sin embargo, Caffe no se actualiza desde hace mucho tiempo. Uno de los principales desarrolladores de este marco, Jia Yangqing, también cambió su trabajo a Google este año. Quizás la posición que alguna vez fue dominante dé paso a otras.
Theano es una biblioteca de aprendizaje automático de Python muy flexible. Es muy popular en el campo de la investigación y es muy conveniente de usar y fácil de definir modelos complejos. La API de Tensorflow es muy similar a Theano. También compartí temas sobre Theano en la conferencia QCon de este año en Beijing.
Jupyter Notebook es un editor de código Python muy potente basado en ipython. Se implementa en páginas web y es muy conveniente para el procesamiento interactivo. Es muy adecuado para la investigación de algoritmos y el procesamiento de datos.
Torch es una excelente biblioteca de aprendizaje automático. Está implementado mediante un lenguaje Lua relativamente especializado. Pero gracias al uso de LuaJIT, la eficiencia del programa es excelente. Facebook se centra en Torch en el campo de la inteligencia artificial e incluso ha lanzado su propia versión mejorada del marco Torchnet.
Hay tantos marcos para el aprendizaje profundo, ¿no es un poco abrumador? Lo que me centraré en presentarles a los programadores hoy será TensorFlow. Este es un marco de desarrollo orientado al aprendizaje automático de código abierto lanzado por Google en 2015. También es el marco de aprendizaje profundo de segunda generación de Google. Muchas empresas han utilizado TensorFlow para desarrollar muchas aplicaciones interesantes con muy buenos resultados.
¿Qué puedes hacer con TensorFlow? La respuesta es que se puede aplicar a modelos de regresión, redes neuronales y aprendizaje profundo.
En términos de aprendizaje profundo, integra representación distribuida, red neuronal convolucional (CNN), red neuronal recurrente (RNN) y red neuronal artificial de memoria a corto plazo (Long-Short Term Memory, LSTM).
El primer concepto que debemos entender sobre Tensorflow es Tensor. La definición del diccionario de esta palabra es tensor, una función multilineal que se puede utilizar para representar relaciones lineales entre algunos vectores, escalares y otros tensores. De hecho, esta expresión es difícil de entender. En mi propio idioma, Tensor es simplemente una "matriz N-dimensional".
Para usar TensorFlow, como programador debes comprender varios conceptos básicos de TensorFlow: usa gráficos para representar tareas informáticas; ejecuta gráficos en un contexto llamado sesión; usa Tensor para representar datos; a través de variables (Variable) use feed y fetch para asignar valores u obtener datos de operaciones arbitrarias.
En una frase, TensorFlow es un entorno informático de gráfico de flujo de datos con un diagrama de estado. Cada nodo realiza operaciones de datos y luego proporciona dependencias y directividad para proporcionar un flujo de datos completo.
La instalación de TensorFlow es muy sencilla, pero la versión CUDA admitida por el paquete de instalación proporcionado para descargar desde el sitio web oficial es 7.5. Teniendo en cuenta las nuevas y emocionantes características de CUDA 8 y la situación actual, se lanzará oficialmente pronto. Tal vez quieras considerar experimentar CUDA 8 de inmediato, que solo se puede obtener compilando el código fuente de Tensorflow. Actualmente, TensorFlow ya es compatible con Python2.7 y 3.3.
Además, los programadores que utilizan el lenguaje Python también necesitan instalar algunas bibliotecas requeridas, como: numpy, protobuf, etc. Para el procesamiento de convolución, cuDNN es reconocida como la biblioteca de desarrollo con mejor rendimiento, así que asegúrese de instalarla. La instalación normal de Tensorsorflow es muy sencilla, un comando es suficiente:
$ pip3 install —upgrade /anishathalye/neural-style. El artista impresionista moderno bielorruso Leonid Afremov es bueno usando tinta espesa y colores intensos para expresar temas urbanos y paisajísticos, especialmente su serie de escenas de lluvia. Está acostumbrado a utilizar grandes bloques de color para crear efectos de luces y sombras, y su comprensión de los objetos reflectantes y los colores ambientales es muy precisa.
Así que encontré una fotografía de la Torre de Televisión Oriental Pearl en Shanghai. Espero aprender el estilo de pintura de Leonid Afremov a través de Tensorflow y procesar esta foto de Oriental Pearl en el estilo de trabajo Rich. Utilizando Tensorflow y el código del proyecto mencionado anteriormente, se realizaron mil iteraciones en una instancia de tipo AWS p2 y el resultado del procesamiento se obtuvo como se muestra a continuación.
El código para este procesamiento tiene solo 350 líneas y el modelo utiliza VGG, una estrella que se hizo famosa en el concurso ImageNet de 2014. Este modelo es muy bueno y su característica es "go depper".
TensorFlow crea este tipo de trabajos no solo como entretenimiento para que todos se rían, sino que también pueden hacer cosas más interesantes. Al ampliar las capacidades de procesamiento ahora a videos, puede ver el efecto como se muestra a continuación, utilizando el estilo de la famosa obra de Van Gogh "Noche estrellada" para crear un estilo de video tan nuevo.
¿Te imaginas qué tipo de resultados mágicos producirá si este tipo de poder de procesamiento se aplica en más campos? Las perspectivas son brillantes y nos hacen soñar despiertos sin límites. De hecho, el desarrollo de aplicaciones en muchos campos en los que participamos actualmente se puede cambiar mediante el uso de redes neuronales y aprendizaje profundo.
Para el aprendizaje profundo, dominarlo no es difícil. Todo programador puede dominar fácilmente esta tecnología y, utilizando los recursos disponibles, podemos convertirnos rápidamente en desarrolladores de programas de aprendizaje profundo.
Conclusión
No tenemos forma de predecir cómo será el futuro. El escritor Ray Kurzweil escribió el libro "La singularidad está cerca" en 2005. En este libro, nos dice claramente que esa era llegará pronto. Como grupo de personas antes del amanecer de esa era, ¿tenemos la capacidad de acelerar este proceso y utilizar nuestra capacidad para aprender a hacer realidad este sueño?
El desarrollo de la inteligencia artificial en China
Sin duda, la era de la inteligencia artificial ha llegado. Lo que esta era necesita es, por supuesto, ingenieros que dominen la inteligencia artificial y resuelvan problemas específicos. Francamente, todavía quedan muy pocos ingenieros de este tipo en el mercado. El paquete salarial en el lugar de trabajo puede mostrar cuán populares son ingenieros como este. El tema de la inteligencia artificial se ha desarrollado hasta el día de hoy, y en lo que respecta al propio académico, tiene capacidad de industrializarse a gran escala.
Por lo tanto, la máxima prioridad para los ingenieros es dominar la tecnología de aplicación de la inteligencia artificial lo antes posible. Se puede decir que ya hay muchos materiales de aprendizaje sobre inteligencia artificial en Internet. Aquellos ingenieros que tengan la capacidad de aprender rápidamente definitivamente se destacarán en la marea de la inteligencia artificial.
China ya tiene el entorno para desarrollar la industria de la inteligencia artificial. Independientemente del entorno empresarial, la calidad del personal e incluso las oportunidades de mercado, tiene todas las condiciones para el cambio industrial. En comparación con Estados Unidos, se puede decir que el desempeño de los equipos chinos en muchas áreas de la inteligencia artificial es modesto. En lo que respecta al nivel técnico de la inteligencia artificial, los ingenieros chinos están en la misma línea de partida que los mejores equipos técnicos del mundo.
El tiempo no espera a nadie y los ingenieros chinos tendrán la oportunidad de mostrar su talento en este campo. Sin embargo, vale la pena señalar que se deben evitar dos cosas: en primer lugar, apuntar demasiado alto y comparar ciegamente con países extranjeros. Después de todo, la acumulación tiene sus deficiencias y las habilidades tienen sus propias especializaciones. Debemos aprovechar la acumulación existente y buscar avances graduales. La segunda es apresurarse y seguir ciegamente las tendencias del mercado. La ingeniería de la inteligencia artificial requiere mucha acumulación básica y el éxito no se puede lograr simplemente copiándola de la noche a la mañana.
Los logros del personal técnico y de investigación científica de China en el campo de la inteligencia artificial son obvios para todos. En un artículo de Wang Yonggang, contó los artículos de "aprendizaje profundo" incluidos en SCI de 2013 a 2015. En 2014 y 2015, China superó a Estados Unidos como líder.
Otra cosa que me sorprendió es que Jeff Dean de Google publicó un artículo titulado "TensorFlow: un sistema para el aprendizaje automático a gran escala" en 2016. Entre los 22 autores del artículo, aquellos con nombres obviamente chinos representan 1/5. Si desea enumerar los grandes nombres chinos en el campo de la inteligencia artificial, Ng Enda, Sun Jian, Yang Qiang, Huang Guangbin, Ma Yi, Zhang Dapeng... puede nombrar fácilmente una lista larga.
Para China, la principal prioridad actual es la industrialización de la tecnología de inteligencia artificial. Sólo así podremos transformar las ventajas en el campo de la investigación científica/inteligencia en ventajas generales e integrales. En este momento, China es el mercado de consumo y la potencia manufacturera más grande del mundo. Tenemos todas las oportunidades para aprovechar el mercado y convertirnos en un líder en este campo.
Empresas innovadoras en Silicon Valley
Aunque he estado muchas veces en Silicon Valley, nunca he podido trabajar allí durante mucho tiempo. En el mercado en el campo de la inteligencia artificial, de lo que más escuchamos es de las acciones de algunas grandes empresas tecnológicas como Google, Apple, Intel y Amazon. Sin embargo, todavía hay una gran cantidad de pequeñas empresas de nueva creación en el mercado estadounidense que han tenido un desempeño sorprendente en el campo de la inteligencia artificial.
Tomemos como ejemplo empresas del área de Silicon Valley:
Captricity, que proporciona extracción de información a partir de datos escritos a mano
VIVLab, que desarrolla servicios de asistente virtual para el reconocimiento de voz
TERADEEP utiliza FPGA para proporcionar soluciones eficientes de redes neuronales convolucionales;
También está NetraDyne, que proporciona soluciones sin controlador.
La lista puede ser larga, y son muchos los equipos que están utilizando tecnología de inteligencia artificial para intentar crear historia y están construyendo sus sueños. Vale la pena aprender y experimentar estos equipos y las áreas en las que se centran.