Red de conocimiento informático - Aprendizaje de código fuente - ¿Cómo se transforman los programadores comunes y corrientes en inteligencia artificial?

¿Cómo se transforman los programadores comunes y corrientes en inteligencia artificial?

En la actualidad, la inteligencia artificial se ha convertido en una dirección cada vez más popular. Cómo los programadores comunes pueden orientarse hacia la inteligencia artificial es una pregunta de Zhihu.

1. Propósito

El propósito de este artículo es proporcionar un método de aprendizaje simple, fluido y fácil de implementar para ayudar a los programadores "comunes" a ingresar al campo de la IA. . Aquí, mi definición de programador común es: tener conocimientos universitarios generalmente ocupados en el trabajo y los datos que pueden obtener son limitados; Por lo tanto, este artículo se parece más a un tutorial introductorio de IA "desde cero".

2. Introducción al campo de la IA

La IA, también conocida como inteligencia artificial, no incluye únicamente el aprendizaje automático. Érase una vez, los símbolos y la lógica se consideraban claves para la realización de la inteligencia artificial, pero ahora domina el aprendizaje automático basado en estadísticas. El aprendizaje profundo recientemente popular es un subelemento del aprendizaje automático. En la actualidad, se puede decir que lo principal para aprender IA es aprender el aprendizaje automático.

Sin embargo, la inteligencia artificial no es lo mismo que el aprendizaje automático, lo cual debe entenderse claramente al adentrarse en este campo. Para obtener una introducción a la historia del desarrollo del campo de la IA, se recomienda leer la "Introducción al aprendizaje automático" escrita por el profesor Zhou. La siguiente pregunta es: ¿Es fácil cruzar la puerta de la IA? De hecho, es muy difícil de cruzar. Tomemos como ejemplo el aprendizaje automático.

Durante el proceso de aprendizaje, enfrentará una gran cantidad de fórmulas complejas. En proyectos reales, enfrentará falta de datos y ajustes de parámetros difíciles. Si es solo porque cree que esta dirección será "caliente" en el futuro, entonces estas dificultades facilitarán que la gente se dé por vencida. Teniendo en cuenta las características de los programadores comunes, ¿no hay forma de aprender un tema tan difícil? Simplemente desarrolle métodos de estudio apropiados.

3. Métodos de aprendizaje

La configuración de los métodos de aprendizaje consiste simplemente en responder a las siguientes preguntas: ¿Qué quiero aprender? ¿Cómo aprendo? Un resumen de estas preguntas es: objetivos de aprendizaje, políticas de aprendizaje y planes de aprendizaje. El objetivo de aprendizaje es relativamente claro: ingresar al campo de la IA. Este objetivo es pequeño, por lo que es relativamente fácil de lograr. "Una meta que es demasiado grande significa que encontrarás suficientes razones para renunciar a ella más tarde".

La política de aprendizaje se puede resumir en "primero el interés, combinando la práctica con el aprendizaje". En pocas palabras, primero se trata de cultivar el interés y luego intercalar la práctica con el aprendizaje para lograr una mejora en espiral. Este método de aprendizaje es eficaz y dificulta que las personas se rindan. Una vez que tenga una política de aprendizaje, puede desarrollar un plan de aprendizaje, también llamado ruta de aprendizaje. La siguiente es una introducción a la ruta de aprendizaje.

4. Ruta de aprendizaje

La ruta de aprendizaje que recomiendo es la siguiente, como se muestra a continuación:

Esta ruta de aprendizaje está diseñada así: primero comprenda este campo. Establezca una visión integral, cultive suficiente interés y luego comience a aprender los conceptos básicos del aprendizaje automático. Aquí, elija un curso de superficial a profundo. Es mejor tener suficientes experimentos para llevar a cabo un combate real. Después de sentar las bases, tendrá una comprensión suficiente del aprendizaje automático y podrá utilizar el aprendizaje automático para resolver un problema práctico.

En este momento, el método de aprendizaje automático todavía puede tratarse como una caja negra. Después de acumular experiencia práctica, puedes considerar continuar estudiando. Hay dos opciones en este momento, aprendizaje profundo o aprendizaje automático continuo. El aprendizaje profundo es actualmente la dirección más popular del aprendizaje automático y algunos de sus métodos son diferentes del aprendizaje automático tradicional, por lo que se pueden aprender por separado. Además del aprendizaje profundo, el aprendizaje automático también incluye métodos prácticos como el aprendizaje estadístico y el aprendizaje conjunto.

Si las condiciones son suficientes, puedes aprender ambas cosas al mismo tiempo, y algunas reglas son comunes a ambas. Después de estudiar, ya tienes una gran reserva de conocimientos y puedes entrar en combates prácticos más difíciles. En este momento, hay dos opciones: aquellos en la industria pueden optar por mirar proyectos de código abierto y leer el código con el fin de cambiar el código; aquellos en el mundo académico pueden mirar artículos en campos específicos y querer publicar artículos para resolverlos; problemas.

No importa cuál, debes tener buenos conocimientos y una gran capacidad de codificación, para que sea fácil probar y entrenar tu nivel. Después de pasar esta etapa, se puede decir que ha ingresado al campo de la IA. "El maestro te guía y el cultivo depende del individuo".

El camino posterior depende de usted.

La siguiente es una introducción detallada a cada etapa:

0. Comprensión del campo

Antes de aprender cualquier conocimiento, el primer paso es comprender qué es el conocimiento. ¿Qué puede hacer? ¿Cuál es su valor? Si no los comprende, entonces el aprendizaje en sí es un barco sin dirección y corre fácilmente el riesgo de hundirse. Sólo después de comprender estas cuestiones podrás desarrollar el interés. El interés es la mejor guía. Sólo la motivación y la perseverancia en el aprendizaje pueden permitirte afrontar las siguientes etapas. Respecto a qué es el aprendizaje automático, qué puede hacer y su relación con el aprendizaje profundo y la inteligencia artificial, puedes leer el blog que escribí sobre cómo empezar con el aprendizaje automático.

1.Preparación de conocimientos

Si has estado fuera de la escuela por mucho tiempo o sientes que tu base no es sólida, es mejor prepararte un poco y revisar el trabajo con anticipación. . "Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." El siguiente trabajo de preparación no es mucho, pero es suficiente para afrontar las últimas etapas del aprendizaje.

Matemáticas: Repasar los siguientes conocimientos básicos. Álgebra lineal: multiplicación de matrices; números superiores: derivación teoría de la probabilidad: probabilidades condicionales y posteriores. Se pueden complementar algunos otros conocimientos según sea necesario en el proceso de aprendizaje posterior;

Inglés: tenga siempre un diccionario de inglés en línea, como iPowerWord, para que pueda leer algunas páginas web de información en inglés sin dificultad;

FQ: Puedes acceder a Google en cualquier momento y en cualquier lugar. Esta es una herramienta muy importante. No es que no puedas leer lo que buscaste en Baidu, pero en muchos casos la información buscada en Google es más útil que las docenas de páginas de información buscadas en Baidu, especialmente cuando se buscan palabras clave en inglés. Ahorrar tiempo es una forma muy importante de mejorar la eficiencia del aprendizaje;

2. Aprendizaje automático

El primer curso sobre aprendizaje automático es Machine Learning de Andrew Ng. Este curso tiene las siguientes características: es moderadamente difícil y tiene suficientes ejemplos prácticos, lo que lo hace muy adecuado para estudiantes primerizos. No recomiendo el curso cs229 aquí. Las razones son las siguientes:

Tiempo: cs229 es demasiado temprano y algunos conocimientos no pueden mantenerse al día con el desarrollo actual. La red neuronal más popular en la actualidad es breve. mencionado. ¡La red neuronal en Cousera tomó dos clases para enseñar y fue muy detallada! Enseñanza: la enseñanza de Ng en cs229 fue un poco verde, probablemente porque se enfrentaba a la enseñanza en línea. Hay muchas preguntas que no explicó claramente, y las preguntas de las personas a continuación son en realidad muy molestas. A usted a menudo no le importan las preguntas de esas personas. Obviamente, esto se ha mejorado en Coursera. Descubrirá que el nivel de enseñanza de Ng ha mejorado enormemente. Será paciente y considerado, le enseñará desde lo más simple a lo más profundo y también lo llamará cuando encuentre palabras y términos que usted no entiende. No lo entiendo, no se preocupe, lo más importante es que no haga la derivación y los diagramas demasiado perfectos, sea muy detallado y claro, estos subtítulos son realmente muy recomendables: la calidad de los subtítulos en cs229 es un poco peor que la de los subtítulos. Coursera. Muchas personas han verificado la traducción de los subtítulos en chino en Coursera y la calidad está garantizada. Tarea: no hay tarea para cs229, aunque puedes hacer algunas, pero nadie las leerá. Esto es muy inferior al tipo de tareas de Coursera que tienen fechas límite semanales y cada tarea se califica cuando se envía. Más importante aún, cada tarea tiene ejemplos prácticos, lo que te permite practicar paso a paso, ¡y podrás ver tus resultados y sentirte lleno de logros!

3. En el curso básico, tendrá una comprensión preliminar del aprendizaje automático. No hay problema en usarlos ahora. Puede tratar los algoritmos de aprendizaje automático como cajas negras, colocar datos en ellos y obtener resultados. En el combate real, debes preocuparte más por cómo obtener datos, cómo ajustar los parámetros, etc. Si tienes tiempo, lo mejor es que hagas tú mismo un proyecto práctico sencillo.

Aquí debe elegir la dirección de la aplicación, ya sea imagen (visión por computadora), audio (reconocimiento de voz) o texto (procesamiento del lenguaje natural). Se recomienda elegir el campo de imagen. Hay muchos proyectos de código abierto aquí y es relativamente fácil comenzar. Puede usar OpenCV para el desarrollo, que ya ha implementado redes neuronales, SVM y otros algoritmos de aprendizaje automático.

Una vez completado el proyecto, puede abrirlo en Github y continuar mejorándolo. Después de completar el proyecto práctico, puede continuar estudiando. En este momento, tiene dos opciones: aprendizaje profundo y aprendizaje automático continuo;

4. Aprendizaje profundo Es actualmente la dirección de investigación más candente. Tiene las siguientes características: el conocimiento se actualiza rápidamente, está relativamente fragmentado y no existe ningún libro que lo explique sistemáticamente. Por lo tanto, los recursos de aprendizaje están relativamente dispersos. A continuación se presentan algunas introducciones de recursos. Las partes que no se recomiendan no significan que no sea bueno, sino que no es apropiado en esta etapa de principiante:

Recomendado, UFLDL: un muy buen tutorial básico de DL, también escrito por Andrew Ng. Hay una derivación muy detallada, hay una traducción y la calidad de la traducción es muy alta. Aprendizaje profundo (artículo): un artículo publicado en Nature en 2015, escrito por tres expertos en el campo del aprendizaje profundo. Te da una buena perspectiva, la sensación de tener una vista panorámica de las montañas, muy recomendable. Si solo puede leer un artículo para aprender sobre el aprendizaje profundo, le recomiendo este. Este artículo tiene una traducción al chino del mismo nombre; se recomienda Redes neuronales y aprendizaje profundo: el autor de este libro es muy bueno expresando verdades profundas en un lenguaje sencillo. Aunque no hay traducción, no es difícil de leer; Redes neuronales recurrentes: combinación Un caso práctico le dirá qué es RNN. Después de completar todo el tutorial, comprenderá claramente cómo funciona RNN. Este efecto no está disponible incluso después de leer varios artículos relacionados, Redes neuronales para máquinas. Learning University of Toronto Coursera: un curso impartido por el fundador del aprendizaje profundo. El mayor problema es que es demasiado difícil y la pronunciación del anciano a veces no es muy estándar. Aprendizaje profundo (libro): también lo imparte un profesor. Libro de expertos en aprendizaje profundo, pero parece que fue escrito por un segundo autor, uno de sus alumnos. Se ha cubierto una gran cantidad de contenido, pero creo que no dice mucho. Solo indica de qué artículo proviene. En este caso, puede ser más apropiado leer el artículo directamente. No recomendado, cs231n: el curso de Li Feifei es muy famoso y se especializa en CNN. Pero el mayor problema de este curso es que no hay subtítulos. Aunque hay subtítulos de traducción automática en YouTube, es peor que nada.

5. Continuar con el aprendizaje automático

Es posible que el aprendizaje profundo no sea necesariamente la corriente principal en el futuro, al menos algunos expertos así lo creen. El aprendizaje automático tradicional tiene las siguientes características: conocimiento sistemático y libros relativamente clásicos. Entre ellas, el aprendizaje estadístico (que representa SVM) y el aprendizaje conjunto (que representa adaboost) son muchas tecnologías utilizadas en la práctica. Los siguientes son recursos relacionados:

Recomendación, aprendizaje automático (Zhou Zhihua): en el pasado, PRML fue el primer libro de texto clásico sobre aprendizaje automático, pero ahora que salió el libro del profesor Zhou, ya no lo es. el caso. En primer lugar, recomiendo leer el libro del profesor Zhou. Una característica de este libro es que por difícil que sea la verdad, se puede expresar en un lenguaje sencillo y conciso. Como dijo el famoso profesor Zhou: "El lugar que refleja tu nivel es hacer fáciles las cosas difíciles, en lugar de hacer las cosas fáciles difíciles. Es demasiado fácil hacer algo difícil";

No recomendado, reconocimiento de patrones y Aprendizaje automático: no recomendado en esta etapa. PRML analiza muchos métodos de aprendizaje automático desde una perspectiva bayesiana, que también es una característica importante. Pero para los principiantes, esta vista es realmente innecesaria. Además, este libro no tiene traducción al chino, por lo que es fácil darse por vencido en esta etapa.

6 Proyectos de código abierto

Cuando la reserva de conocimientos es suficiente, se puede aprender. ser transferido nuevamente a la etapa práctica. La práctica en este momento todavía se puede dividir en dos pasos: aprender proyectos clásicos de código abierto o publicar artículos de alta calidad. El aprendizaje de proyectos de código abierto debe apuntar a la optimización tanto como sea posible. Aprender simplemente leyendo código a menudo no es muy efectivo.

Se pueden buscar buenos proyectos de código abierto en Github. Aquí tomamos el aprendizaje profundo como ejemplo. Hay muchas bibliotecas de código abierto excelentes para el aprendizaje profundo, como torch, theano, etc. Aquí hay dos de ellas:

Recomendada, DeepLearnToolbox: una biblioteca de aprendizaje profundo anterior, escrita en lenguaje matlab, más adecuada para a partir de El curso que acaba de estudiar se transfiere a estudio. Desafortunadamente, el autor ya no lo mantiene;

Recomendado, tensorflow: la biblioteca de código abierto de Google. Hoy en día, tiene más de 40.000 estrellas, lo cual es sorprendente y es compatible con dispositivos móviles;

7. Artículos de conferencias

Los mejores cursos le recomendarán algunos artículos. Algunas tecnologías y métodos famosos suelen nacer de reuniones importantes. Por lo tanto, leer artículos de conferencias de años anteriores es una forma de aprender más profundamente. En este punto, parte del contenido del artículo lo llevará a estudiar partes de matemáticas en las que no es bueno. A veces sientes que tus conocimientos matemáticos no son suficientes, por lo que a menudo necesitas realizar algunos cursos complementarios.

Después de haber leído suficientes artículos, en esta etapa, si eres un estudiante de la escuela, puedes elegir un tema determinado para estudiar e investigar con el propósito de publicar un artículo. En términos generales, un artículo es producto del trabajo. A veces, un artículo basado en experimentos a menudo requiere que usted escriba código o se basa en un proyecto de código abierto. Por lo tanto, existe una correlación entre aprender sobre proyectos de código abierto y trabajar en artículos de conferencias.

Ambos se pueden estudiar al mismo tiempo. En cuanto a dónde leer artículos, puede consultar las clasificaciones de recomendaciones de la CCF para conocer las excelentes conferencias en este campo.

A continuación se presentan dos de las principales conferencias famosas en el campo de la imagen y el aprendizaje automático:

CVPR: junto con las otras dos conferencias ICCV y ECCV, se denominan las tres conferencias del campo de la visión por computadora Tenga en cuenta que la conferencia se lleva a cabo todos los años La página de inicio está cambiando, por lo que debe agregar el año al buscar Conferencia sobre sistemas de procesamiento de información neuronal: NIPS para abreviar, se publican muchos trabajos importantes en ella, por ejemplo, se publicó un artículo importante en CNN;

8. Aprendizaje libre

Ahora que estamos aquí, podemos decir que hemos entrado por esta puerta. Puedes estudiar libremente según tus intereses. También puede estudiar los recursos de aprendizaje que no se recomiendan en la etapa anterior. Aquí están los comentarios:

cs229: Las notas de la conferencia escritas por Ng son muy buenas y la parte de derivación sobre SVM es muy clara. Si desea aprender SVM, lo recomiendo; Redes neuronales para el aprendizaje automático: la perspectiva de Daniel es diferente a la de otros. Ver las opiniones de Hinton sobre las redes neuronales a menudo le brindará una comprensión diferente. De hecho, tomar este curso equivale a leer un artículo, porque hay artículos para leer en los materiales de referencia de casi todas las clases; CS231n: Redes neuronales convolucionales para el reconocimiento visual: los conocimientos más recientes y tareas detalladas. Debería haber un equipo en China que haya traducido los subtítulos, puedes buscarlo: PRML: como libro clásico sobre aprendizaje automático, es necesario leerlo y te dará otra perspectiva sobre el aprendizaje automático;

5. Resumen

El propósito de este artículo es ayudar a los estudiantes que no tienen un conocimiento profundo del campo de la IA pero que desean entrar por esta puerta. Aquí sólo hablo de empezar porque es muy difícil especializarse en este campo y requiere varios años de acumulación y mucho trabajo. Antes de realizar estudios de campo, es muy importante comprender completamente sus propias características y desarrollar métodos de aprendizaje adecuados.

En primer lugar, debes comprender plenamente este campo y cultivar el interés. Al estudiar, mantenga una política de aprendizaje paso a paso y no se apresure a buscar recursos difíciles; combine estrategias de aprendizaje y práctica, no se limite a leer y mirar, sólo haciéndolo sentirá una sensación de logro. Al aprender un determinado recurso, debe tener un propósito suficiente: no es leer el código para aprender sobre proyectos de código abierto, sino leerlo para escribir proyectos de código abierto, no es escribir un artículo para publicar un artículo; , sino escribir un artículo para hacer cosas.

Este artículo proviene de la cuenta pública: "Big Technology Technology Exchange", Guanzhu comprende la industria de big data, aprende tecnología de big data y rutas de aprendizaje, y también proporciona materiales de aprendizaje gratuitos.

Si un recurso de aprendizaje es demasiado difícil para usted, no significa necesariamente que sea su problema. Puede ser el problema del hablante o escritor del recurso de aprendizaje. Sólo aquellos que pueden hacer simples los problemas difíciles son personas verdaderamente talentosas. Por tanto, debes estudiar recursos de alta calidad en lugar de estudiar indiscriminadamente. Finalmente, recuerda aprender con interés. Aprender lleva mucho tiempo y el proceso es difícil, pero sólo el interés es la mejor manera de perseverar y superar las dificultades.