¿Por qué los programadores deberían aprender aprendizaje profundo?
El aprendizaje profundo en sí es un sistema de conocimiento muy grande. En este artículo, queremos analizar lo que significa el aprendizaje profundo para los programadores desde la perspectiva del programador y cómo podemos utilizar una disciplina en rápida evolución para ayudar a los programadores a mejorar sus capacidades de desarrollo de software.
Este artículo está basado en el discurso de Fei en la Conferencia Global de Desarrollo de Software QCon 2016 (Shanghai).
Prefacio
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 "Future World". Esta película se introdujo en China a principios de la década de 1980 y se llamó "Mundo futuro". Esa película me dejó alucinado. Hay muchos robots en la película con placas de circuito integrado debajo de sus expresivas caras. Esto me hizo sentir que el mundo futuro en ese momento era muy lejano y misterioso.
Estamos en 2016 y es posible que muchos de mis amigos estén viendo la serie del mismo tema "Westworld" en la que HBO gastó mucho. Si las dos primeras series todavía se limitaban a temas como robots e inteligencia artificial, este nuevo drama de 2016 ha logrado grandes avances en la trama y el pensamiento de inteligencia artificial. No nos referimos a si los robots amenazarán a los humanos, sino que discutimos cuestiones más filosóficas como "DreamsaremainlyMemories".
El tema "Cómo la memoria afecta la inteligencia" es muy digno de nuestro pensamiento y también nos da una buena inspiración: qué tipo de desarrollo y progreso se ha logrado en el campo de la inteligencia artificial en la actualidad.
El tema que estamos debatiendo 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. Esta cifra es más de 3 millones más 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 veas lo popular que es el aprendizaje profundo en el mercado. Desde 2011 hasta ahora, ha adquirido más de 140 startups centradas en inteligencia artificial y aprendizaje profundo. Sólo en 2016, hubo más de 40 fusiones y adquisiciones de este tipo.
El más loco es Google, que adquirió 11 startups de inteligencia artificial. El más famoso es DeepMind, que derrotó al noveno Dan de Lee Sedol. Apple, Intel y Twitter le siguieron de cerca. Tomemos como ejemplo a Intel. Sólo este año adquirió tres startups, Itseez, Nervana y Movidius. Esta serie de importantes fusiones y adquisiciones tiene como objetivo delimitar los campos de la inteligencia artificial y el aprendizaje profundo.
Cuando buscamos temas de aprendizaje profundo, a menudo vemos algunos términos oscuros, como descenso de gradiente, retropropagación, redes neuronales convolucionales, máquinas de Boltzmann restringidas, etc.
Abre cualquier artículo técnico y verás una variedad de fórmulas matemáticas. Lo que ve a la izquierda no es un artículo académico de alto nivel, sino una introducción a las máquinas Boltzmann de Wikipedia. Wikipedia es contenido de divulgación científica cuya complejidad 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 del aprendizaje profundo es la red neuronal, entonces, ¿qué es la 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é estudiar aprendizaje profundo?
Primero, hablemos de por qué debería aprender aprendizaje profundo. En este mercado no faltan conceptos y vocabulario para las nuevas tecnologías de moda. ¿En qué se diferencia el aprendizaje profundo? Realmente me gusta una analogía que usó una vez 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 son las redes neuronales. Como todos sabemos, los cohetes necesitan combustible además de motores, por lo que los macrodatos en realidad constituyen otra parte importante de todo el cohete: el combustible. En el pasado, cuando hablábamos de big data, nos centrábamos más en las capacidades de gestión y almacenamiento de datos, mientras que estos métodos y herramientas se centraban más en 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 considera la combinación de redes neuronales y big data, puede ver el verdadero valor y significado de big data.
Andrew Ng dijo una vez: "Creemos que (el aprendizaje profundo representado por redes neuronales) es el camino más corto para acercarnos más a la inteligencia artificial". Esta es una de las razones más importantes por las que deberíamos estudiar 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 tradicional. Esto se debe principalmente a los logros logrados por el desarrollo continuo 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, que describe la aplicación del aprendizaje profundo en el campo de la conducción sin conductor. Podemos ver hasta qué punto se puede aplicar el aprendizaje profundo a la conducción autónoma después de sólo 3.000 millas de entrenamiento. En los experimentos realizados a principios de este año, el sistema no tenía capacidades de inteligencia reales y a menudo encontró diversas situaciones aterradoras y, en algunos casos, incluso requirió intervención humana.
Pero después de 3.000 millas de entrenamiento, hemos visto que la conducción autónoma tiene un rendimiento 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 la conclusión de que el aprendizaje profundo puede proporcionarnos capacidades poderosas. Si los programadores tienen esta tecnología, les dará a todos los programadores más poder.
Una rápida introducción a las redes neuronales
Si no tenemos dudas sobre el aprendizaje profundo, entonces definitivamente nos preocuparemos qué tipo de conocimiento necesito dominar para permitirme ingresar a este campo. . La tecnología clave más importante es la "red neuronal". Cuando se trata de "redes neuronales", es fácil confundir estos dos conceptos completamente diferentes.
Una es una red neuronal biológica y la segunda es la red neuronal de inteligencia artificial de la que vamos a hablar hoy. Quizás todos aquí tengan amigos que se dedican a la inteligencia artificial. Cuando le preguntas sobre las redes neuronales, te arrojará muchos conceptos y términos extraños que te harán parecer confundido y solo podrás mantenerte alejado.
La mayoría de los programadores sienten que existe una gran distancia entre ellos y el concepto de redes neuronales de inteligencia artificial. Porque es difícil que alguien se tome el tiempo de compartir contigo cuál es la esencia de una red neuronal. Y las teorías y conceptos que lees en los libros también te ayudan a encontrar una conclusión clara y sencilla.
Hoy veremos 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:
"mycpuisanural-net procesador; Alearningcomputer." (Mi procesador es una unidad de procesamiento neuronal, una computadora que puede aprender). Históricamente, la exploración de la propia inteligencia por parte de los seres humanos precedió a la investigación sobre 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.
¿Está relacionado el desarrollo de las redes neuronales biológicas con las redes neuronales de las que hablamos hoy? La red neuronal de la que hablamos hoy, salvo algunos términos, no tiene nada que ver con la red neuronal biológica. Es completamente un concepto en el campo de las matemáticas y la informática, lo que también es un signo de la madurez de la inteligencia artificial. Es necesario distinguir este punto y no confundir las redes neuronales biológicas con la inteligencia artificial de la que hablamos hoy.
A mediados de la década de 1990, Vapnik et al. propusieron la máquina de vectores de soporte (SVM). Pronto, este algoritmo mostró mayores ventajas que las redes neuronales en muchos aspectos, como la ausencia de necesidad de ajustar parámetros, alta eficiencia y soluciones óptimas globales. 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. Sin embargo, la investigación sobre redes neuronales ha vuelto a caer en una edad de hielo.
En la década de abandono, varios estudiosos aún persistieron en sus investigaciones. La persona más importante entre ellos es el profesor Jeffrey 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, "Deep Belief Network" tiene un proceso de "preentrenamiento" que puede hacer que los pesos en la red neuronal encuentren fácilmente un valor cercano a la solución óptima y luego usen " ajuste fino" "La tecnología optimiza toda la red. La aplicación de estas dos técnicas reduce en gran medida el tiempo necesario para entrenar redes neuronales multicapa. En su artículo, dio un nuevo término "aprendizaje profundo" al método de aprendizaje relacionado con redes neuronales multicapa.
Pronto apareció el aprendizaje profundo en el campo del reconocimiento de voz. Luego, en 2012, se desarrolló la tecnología de aprendizaje profundo en el campo del reconocimiento de imágenes. Hinton y sus estudiantes utilizaron una red neuronal convolucional multicapa para entrenar con éxito un millón de imágenes que contienen 1000 categorías en la competencia ImageNet, logrando una buena tasa de error de clasificación del 15%, casi 11 puntos porcentuales más que el segundo lugar.
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 era dorada. Hemos visto hoy el ferviente desarrollo 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. Una red neuronal es esencialmente un "gráfico dirigido". Cada nodo del gráfico toma prestados términos biológicos y tiene un nuevo término: "neurona". Las líneas dirigidas (arcos dirigidos) que conectan las neuronas se consideran "nervios". Las neuronas en esta imagen no son las más importantes, pero sí los nervios que las conectan. Cada parte neuronal tiene una direccionalidad y cada neurona apunta al nodo del siguiente nivel.
Los nodos son jerárquicos, cada nodo apunta al siguiente. Los nodos en el mismo nivel no están conectados y no pueden abarcar nodos superiores. Cada arco tiene un valor que normalmente llamamos "peso". Los pesos le permiten utilizar fórmulas para calcular el valor de los nodos a los que hacen referencia. ¿Cuál es el valor del peso? Obtenemos resultados a través del entrenamiento. Su asignación inicial a menudo comienza con números aleatorios y luego el resultado del entrenamiento más cercano al valor real se utiliza como modelo, que puede reutilizarse. 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 entradas de datos y, entre ellas, hay diferentes capas de la red neuronal, que llamamos capas ocultas. Se llama así porque estos niveles de energía son invisibles para nosotros. El resultado de salida también se denomina nodo de salida. El nodo de salida es limitado y el nodo de entrada también es limitado. La capa oculta es la parte del modelo que podemos diseñar. Este es el concepto más simple de redes neuronales.
Si hago una analogía simple, me gustaría utilizar 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 en el medio es la red neuronal que diseñamos. Esta red ahora tiene diferentes niveles, y los pesos entre niveles son un resultado que obtenemos a través del entrenamiento continuo.
El resultado de salida final se almacena en el nodo de salida. Al igual que el flujo cada vez, los nervios tienen direcciones y realizan diferentes cálculos a través de diferentes capas. En la capa oculta, el resultado de entrada de cada nodo se calcula como la entrada de la siguiente capa y el resultado final se guardará en el nodo de salida. El valor de salida es el más cercano a nuestra clasificación. Si se obtiene un determinado valor, se clasifica en una determinada categoría. Esta es una descripción general simple del uso de redes neuronales.
Además del diagrama estructural representado de izquierda a derecha, también hay una expresión de uso común que representa una red neuronal ascendente. En este punto, la capa de entrada está en la parte inferior del gráfico y la capa de salida está en la parte superior del gráfico. De izquierda a derecha, amplio uso de la literatura de Andrew Ng y LeCun. En el marco de Caffe, la expresión es de abajo hacia arriba.
En pocas palabras, las redes neuronales no son misteriosas. Es solo un proceso de extracción y aprendizaje de características utilizando el poder de procesamiento de gráficos. El famoso artículo de Hinton de 2006 resumió el aprendizaje profundo en los tres elementos más importantes: computación, 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 las herramientas que los programadores necesitan preparar para practicar el aprendizaje profundo.
Hardware
En términos de hardware, lo primero que pensamos es en la CPU, la potencia de cálculo que podemos necesitar.
Además de la arquitectura de CPU habitual, también hay CPU con multiplicadores para aumentar la potencia informática. Además, habrá escenarios de aplicación de DSP en diferentes campos, como reconocimiento de escritura a mano, reconocimiento de voz y otros procesadores de señales especiales. El otro tipo es la GPU, que actualmente es un área de moda para aplicaciones de aprendizaje profundo. La última categoría es FPGA (matriz de puerta lógica programable).
Estos cuatro métodos tienen cada uno ventajas y desventajas, y cada producto será muy diferente. En comparación, aunque la CPU tiene una potencia informática débil, es buena en gestión y programación, como lectura de datos, gestión de archivos, interacción persona-computadora, etc. Y sus herramientas también son ricas. En comparación con DSP, sus capacidades de gestión son más débiles, pero sus capacidades informáticas específicas han mejorado.
Ambos dependen de la alta frecuencia para resolver problemas de cálculo y son adecuados para algoritmos con grandes operaciones recursivas y división inconveniente. Las capacidades de gestión de la GPU son débiles, pero la potencia informática es sólida. Sin embargo, debido a la gran cantidad de unidades informáticas, es más adecuado para el algoritmo de transmisión de datos de bloques completos.
FPGA es fuerte en gestión y procesamiento de cálculo, pero el ciclo de desarrollo es largo y es difícil desarrollar algoritmos complejos. En términos de rendimiento en tiempo real, FPGA es el más alto. A juzgar por el desarrollo actual, para los programadores comunes, los recursos informáticos más utilizados en realidad siguen siendo la CPU y la GPU, siendo la GPU el campo más popular.
Este es un ejemplo de p2 en AWS que preparé para compartir 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, y el tiempo total de creación y configuración de recursos es de aproximadamente 10 minutos. Anteriormente, pasé dos días instalando y depurando la computadora mencionada anteriormente.
Además, también se puede realizar una comparación en términos de coste. El costo de una instancia p2.8xLarge es de $7,20 por hora. ¿Cuál es el costo total de mi propia computadora? 16.904 yuanes. Este costo es suficiente para usar p 2.8x grande durante más de 350 horas. Un año de uso de AWS Deep Learning Station puede compensar todos mis esfuerzos. A medida que la tecnología continúa actualizándose, puedo continuar actualizando mis ejemplos, lo que me permite obtener más y más 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 para hablar sobre este tema. Este artículo hace esta 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 continúa desarrollándose, la combinación de ambos puede producir una nueva generación de aprendizaje profundo, lo que traerá mayor impacto e influencia. ¡Esta es una dirección que todos deben considerar y prestar atención!
Software
Además del entorno básico de hardware, el aprendizaje profundo. Los programadores estarán más preocupados por los recursos de software relacionados con el desarrollo. Aquí enumero algunos marcos y herramientas de software usados.
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/minería de datos simple, eficiente y extremadamente rica basada en NumPy, SciPy y matplotlib, integra todo el proceso desde el análisis exploratorio de datos, la visualización de datos hasta la implementación del algoritmo. Es de código abierto y tiene documentos de aprendizaje muy ricos.
Caffe se centra en el volumen, las redes neuronales y el procesamiento de imágenes. Pero Caffe no se actualiza desde hace mucho tiempo. Jia, el principal desarrollador de este marco, también cambió su trabajo a Google este año. Quizás el antiguo señor supremo dé paso a alguien más.
Theano es una biblioteca de aprendizaje automático de Python muy flexible. Es muy popular en el campo de la investigación, muy cómodo 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 Beijing de este año.
Jupyter notebook es un potente editor de código Python basado en ipython. Se implementa en una página web y se puede utilizar para procesamiento interactivo de manera muy conveniente. Ideal para investigación de algoritmos y procesamiento de datos.
Torch es una excelente biblioteca de aprendizaje automático. Está implementado mediante un lenguaje Lua relativamente pequeño. 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 ahora ha lanzado su propio marco mejorado, Torchnet.
Con tantos marcos de aprendizaje profundo, ¿sientes que cien flores están floreciendo? En lo que quiero centrarme hoy es en tensorflow.
Este es un marco de desarrollo de código abierto para aprendizaje automático lanzado por Google en 2015. También es el marco de aprendizaje profundo de segunda generación de Google. Muchas empresas han desarrollado muchas aplicaciones interesantes utilizando TensorFlow y los resultados son muy buenos.
¿Qué puede hacer TensorFlow? La respuesta es que se puede aplicar a modelos de regresión y redes neuronales para el aprendizaje profundo. En el aprendizaje profundo, integra representación distribuida, red neuronal convolucional (CNN), red neuronal recurrente (RNN) y red neuronal artificial de memoria a corto plazo (LSTM).
El primer concepto que debemos entender sobre el flujo tensorial son los tensores. La definición del diccionario de esta palabra es tensor, que es una función multilineal que se puede utilizar para representar relaciones lineales entre ciertos vectores, escalares y otros tensores. De hecho, esta expresión es difícil de entender. En mis propias palabras, un tensor es simplemente una "matriz de n dimensiones".
Para usar TensorFlow, como programador, debes comprender varios conceptos básicos, como TensorFlow: usa gráficos para representar tareas informáticas; ejecuta gráficos en un contexto llamado sesiones; usa tensores para representar variables de paso; state; feed y fetch se pueden utilizar para asignar valores u obtener datos de cualquier operación.
En resumen, TensorFlow es un entorno informático de gráficos de flujo de datos con gráficos de estado. Cada nodo realiza operaciones de datos y luego proporciona dependencias y direccionalidad, proporcionando 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 en el sitio web oficial es 7.5. Considere las nuevas y emocionantes características de CUDA 8 y el hecho de que está a punto de ser lanzado oficialmente. Tal vez quieras considerar experimentar CUDA 8 de inmediato, por lo que solo podrás obtenerlo compilando el código fuente de Tensorflow. TensorFlow ya es compatible con Python 2.7 y 3.3+.
Además, los programadores que utilizan el lenguaje Python necesitan instalar algunas bibliotecas necesarias, como numpy, protobuf, etc. Para el procesamiento de convolución, cuDNN es reconocida como la mejor biblioteca de desarrollo, así que asegúrese de instalarla. La instalación de Tensorsorflow normal es muy simple, un comando es suficiente:
$ pip3installation—upgrade/anishathalye/neural-style. El artista impresionista moderno bielorruso Leonid Afremov es bueno en el uso de colores fuertes que expresan temas urbanos y paisajísticos. , especialmente su serie de escenas de lluvia. Está acostumbrado a utilizar grandes bloques de colores para crear efectos de luces y sombras, y su comprensión de los objetos reflectantes y los colores ambientales es muy precisa.
Entonces encontré una foto 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 la Perla Oriental en un estilo de trabajo con ricas luces, sombras y colores. Utilizando Tensorflow y el código del proyecto mencionado anteriormente, se realizaron mil iteraciones en una instancia de tipo AWS p2 y los resultados del procesamiento se obtuvieron como se muestra a continuación.
El código para este procesamiento tiene solo 350 líneas y el modelo utiliza un VGG estrella que se hizo famoso en la competencia ImageNet de 2014. Este modo es muy bueno y su característica es la "eliminación profunda".
TensorFlow hace que estos trabajos no solo sirvan de entretenimiento para hacer reír a todos, sino que también pueden hacer cosas más interesantes. Si amplía las capacidades de procesamiento ahora al video, puede ver el efecto como se muestra a continuación. Se procesa en un estilo de video tan nuevo, con el estilo de la obra maestra de Van Gogh "Noche estrellada".
Imagínese, si este tipo de poder de procesamiento se aplica a más campos, ¿qué efectos mágicos producirá? La perspectiva es brillante y nos hace soñar despiertos sin fin. De hecho, el desarrollo de aplicaciones en muchas áreas en las que participamos actualmente se puede transformar mediante el uso de redes neuronales y aprendizaje profundo. Para el aprendizaje profundo, no es difícil de dominar. Cada programador puede dominar fácilmente esta tecnología y utilizar los recursos que tiene para convertirse rápidamente en desarrolladores de programas de aprendizaje profundo.
Conclusión
No podemos predecir cómo será el futuro. El autor Ray Kurzweil escribió el libro "La singularidad está cerca" en 2005. En este libro, nos dice claramente que esa era está por llegar.
Como personas antes del amanecer de esa era, ¿tenemos la capacidad de utilizar nuestras habilidades de aprendizaje para acelerar este proceso y hacer realidad este sueño?
El desarrollo de la inteligencia artificial en China
Sin duda, la era de la inteligencia artificial ha llegado. Por supuesto, lo que esta era necesita son ingenieros que dominen la inteligencia artificial y resuelvan problemas específicos. Francamente, este tipo de ingeniero todavía es relativamente raro en el mercado. El salario en el lugar de trabajo puede mostrar el grado de exigencia de este tipo de ingenieros. La disciplina de la inteligencia artificial se ha desarrollado hasta el día de hoy, y en lo que respecta al propio académico, tiene la capacidad de industrializarse a gran escala.
Por lo tanto, es imperativo que los ingenieros dominen la tecnología de aplicación de la inteligencia artificial lo antes posible. En la actualidad, se puede decir que los materiales de aprendizaje sobre inteligencia artificial en Internet están "sudando". Aquellos ingenieros que tengan la capacidad de aprender rápidamente definitivamente se destacarán en la marea de la inteligencia artificial.
El entorno para el desarrollo de la industria de inteligencia artificial de China ya está creado. Independientemente del entorno empresarial, la calidad del personal o incluso las oportunidades en el mercado, estamos totalmente equipados con todas las condiciones para el cambio industrial. En comparación con Estados Unidos, en muchos campos de la inteligencia artificial, se puede decir que el desempeño del equipo chino es intransigente. En lo que respecta a la tecnología de 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 tienen la oportunidad de mostrar su talento en este campo. Pero 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 propias fortalezas y debilidades, así como su especialización. Debemos basarnos en la acumulación existente y buscar avances graduales. El segundo es estar ansioso de éxito y perseguir ciegamente el mercado. La ingeniería de la inteligencia artificial requiere mucha acumulación básica y no puede replicarse de la noche a la mañana.
Los logros del personal científico y tecnológico de nuestro país en el campo de la inteligencia artificial son evidentes para todos. En un artículo de Wang Yonggang, contó los artículos de "aprendizaje profundo" incluidos en SCI de 2013 a 2015 y descubrió que China había superado a Estados Unidos para convertirse en líder en 2014 y 2015.
Otra cosa que me sorprendió fue que Jeff Dean de Google publicó un artículo titulado "Tensor Flow: Asymstem for Large-scale machine learning" en 2016. Entre los 22 autores del artículo, 1/5 son obviamente chinos. Si desea enumerar los gigantes en el campo de la inteligencia artificial en China/China, Andrew Ng, Sun Jian, Yang Qiang, Huang Guangbin, Ma Yi, Zhang Dapeng... puede enumerar fácilmente una larga lista de nombres.
Para China, la máxima prioridad actual es la industrialización de la tecnología de inteligencia artificial. Sólo así podremos decir que las ventajas en el campo de la investigación científica/inteligencia se transforman en ventajas globales e integrales. En este sentido, China es el mayor mercado consumidor y país fabricante del mundo, y tenemos todas las oportunidades para convertirnos en líderes en este campo aprovechando nuestras ventajas de mercado.
Empresas innovadoras en Silicon Valley
Aunque he estado en Silicon Valley muchas veces, nunca he podido trabajar allí por mucho tiempo. En el mercado de la inteligencia artificial, escuchamos más sobre las acciones de algunas grandes empresas de tecnología como Google, Apple, Intel y Amazon. Sin embargo, todavía hay una gran cantidad de pequeñas empresas emergentes en el mercado estadounidense con 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, que utiliza FPGA para proporcionar soluciones eficientes de redes neuronales convolucionales;
También está NetraDyne, que proporciona soluciones sin controlador.
La lista puede ser muy larga y muchos equipos que intentan hacer historia utilizando tecnología de inteligencia artificial están construyendo sus sueños. Vale la pena aprender y experimentar estos equipos y las áreas en las que se enfocan.