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

Actualmente, la inteligencia artificial se ha convertido en una dirección cada vez más popular. Cómo los programadores comunes recurren a la inteligencia artificial es una cuestión de Zhihu.

1. Propósito

Este artículo tiene como objetivo proporcionar un método de aprendizaje simple, fluido y fácil de implementar para ayudar a los programadores "ordinarios" 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 sobre la IA "desde cero".

Dos. Introducción al campo de la inteligencia artificial

La IA, o inteligencia artificial, incluye algo más que 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 aprender IA es principalmente aprender aprendizaje automático.

Sin embargo, la inteligencia artificial no es lo mismo que el aprendizaje automático, y debes entenderlo claramente al ingresar a 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 el umbral de la IA? De hecho, es difícil cruzar. Tomemos como ejemplo el aprendizaje automático.

En el proceso de aprendizaje, se enfrentará a una gran cantidad de fórmulas complejas, falta de datos en proyectos reales y dificultades en el ajuste de parámetros. Si simplemente piensa que esta dirección será "caliente" en el futuro, entonces estas dificultades harán que sea fácil darse por vencido. Teniendo en cuenta las características de los programadores comunes, ¿es imposible aprender un tema tan difícil? La respuesta es no, siempre y cuando desarrolles métodos de aprendizaje adecuados.

Tres. Métodos de aprendizaje

La configuración de métodos de aprendizaje consiste simplemente en responder a las siguientes preguntas: ¿Qué quiero aprender? ¿Cómo estudio? ¿Cómo estudio? Estas tres cuestiones se pueden resumir en: objetivos de aprendizaje, políticas de aprendizaje y planes de aprendizaje. El objetivo de aprendizaje es muy claro, que es adentrarse en el campo de la IA. Este objetivo no es grande, por lo que es relativamente fácil de lograr. Una meta demasiado grande te dará suficientes razones para renunciar a ella en el futuro.

La política de aprendizaje se puede resumir en "primero el interés, combinando la práctica con el aprendizaje". En pocas palabras, primero cultive el interés y luego intercale la práctica con el aprendizaje para lograr una mejora en espiral. Esta forma de aprender es eficaz y no es fácil abandonarla. Una vez que tenga una política de aprendizaje, puede desarrollar un plan de aprendizaje, también conocido como ruta de aprendizaje. La siguiente es una introducción a la ruta de aprendizaje.

Cuatro. Ruta de aprendizaje

La ruta de aprendizaje que recomiendo es la siguiente:

Esta ruta de aprendizaje está diseñada así: primero comprenda este campo, establezca una visión integral, cultive suficiente interés y luego comience Máquinas de aprendizaje La base del aprendizaje. Aquí elegimos cursos desde menos profundos hasta más avanzados, y es mejor tener suficientes experimentos para la práctica real. Después de sentar las bases y tener una buena comprensión del aprendizaje automático, puede 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, puede considerar continuar aprendiendo. Hay dos opciones en este momento, aprendizaje profundo o aprendizaje automático continuo. El aprendizaje profundo es actualmente la dirección más popular en el aprendizaje automático. Algunos métodos son diferentes del aprendizaje automático tradicional y 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. Algunas reglas son comunes a ambas. Después de estudiar, ya tienes una gran reserva de conocimientos y puedes entrar en combates reales más difíciles. En este momento, hay dos opciones. Las personas de la industria pueden optar por ver proyectos de código abierto y leer el código para realizar cambios en el código. Los académicos pueden leer artículos en campos específicos y desean publicar artículos para resolver problemas.

No importa qué método utilices, necesitas un conocimiento excelente y una gran capacidad de codificación para poder examinar y ejercitar tu propio nivel. Pasada esta etapa, se puede decir que has entrado por la puerta del campo de la IA. "El Maestro me guía, la cultivación es personal". Después de eso, tuve que ir solo.

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

0. Comprensión del dominio

Antes de aprender cualquier conocimiento, primero debes saber qué es ese conocimiento. ¿Qué puede hacer? ¿Cuál es su valor? Si no comprendes estas cosas, entonces el aprendizaje en sí es un barco sin dirección. Si no sabes hacia dónde navegar, corres el riesgo de hundirte. Sólo comprendiendo estas cuestiones se puede desarrollar el interés. El interés es la mejor guía, y la motivación y la resistencia para aprender pueden permitirle afrontar las siguientes etapas.

Para más información sobre qué es el aprendizaje automático, qué puede hacer y su relación con el aprendizaje profundo y la inteligencia artificial, puedes leer mi blog "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 y repasar 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 sí suficiente para afrontar el aprendizaje posterior.

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

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

FQ: Puede acceder a Google en cualquier momento y en cualquier lugar, lo cual es una herramienta muy importante. No es que Baidu no pueda verlo, pero en muchos casos, la información buscada en Google es más útil que las docenas de páginas buscadas en Baidu, especialmente cuando se buscan palabras clave en inglés. Ahorrar tiempo puede ser una mejora importante en 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 de dificultad moderada y tiene suficientes ejemplos prácticos, lo que lo hace muy adecuado para principiantes. cs229 no se recomienda aquí. ¿Por qué? Hay varias razones:

Tiempo: cs229 es demasiado pronto y algunos conocimientos no pueden seguir el ritmo del desarrollo actual. La red neuronal más popular ha sido dejada de lado. ¡Pero Cousera pasó dos horas hablando de redes neuronales! Y muy detallada; Enseñanza: la enseñanza de ng en CS229 es un poco verde, probablemente debido a la enseñanza en línea. Hubo muchas preguntas que no explicó claramente, y las preguntas de las personas a continuación fueron en realidad muy molestas. Tiendes a no preocuparte por los problemas de esas personas. Esto se ha mejorado significativamente en Coursera. Descubrirá que el nivel de enseñanza de Ng ha mejorado enormemente. Él te dará una enseñanza persuasiva y de corazón a corazón, y te dirá que no te preocupes cuando encuentres palabras y términos que no comprendas. Más importante aún, las deducciones y los cuadros no deben ser demasiado perfectos, sino muy detallados y claros. Esto es realmente muy recomendable. Subtítulos: la calidad de los subtítulos de cs229 es peor que la de Coursera. Muchas personas revisan las traducciones de subtítulos en chino en Coursera y la calidad está garantizada. Asignaciones: No hay asignaciones para CS229. Aunque se pueden hacer algunas cosas, nadie está mirando. Esto es mucho menos que las tareas semanales de Coursera, y cada tarea se envía con una puntuación. Más importante aún, cada tarea tiene ejemplos prácticos, para que puedas practicarla, ver los resultados y sentir una sensación total de logro.

3. Practica haciendo proyectos

Después de estudiar los cursos básicos, tendrás una comprensión preliminar del aprendizaje automático. No hay problema en usarlos ahora. Puede pensar en el algoritmo de aprendizaje automático como una caja negra, ingresar los datos y obtendrá resultados. En el combate real, debes prestar más atención a cómo obtener datos y cómo ajustar los parámetros. Si tienes tiempo, lo mejor es que hagas tú mismo un proyecto sencillo y práctico.

Aquí debemos 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 aquí. Hay muchos proyectos de código abierto aquí y es relativamente fácil comenzar. OpenCV se puede utilizar para el desarrollo y se han implementado algoritmos de aprendizaje automático, como redes neuronales y SVM. Una vez completado el proyecto, se puede abrir en Github y luego mejorarlo continuamente. Después de completar el proyecto práctico, podrás continuar tus estudios. Hay dos opciones en este momento, aprendizaje profundo y aprendizaje automático continuo;

4. Aprendizaje profundo

Aprendizaje profundo: el aprendizaje profundo es actualmente la dirección de investigación más popular. Tiene las siguientes características: el conocimiento se actualiza rápidamente, está fragmentado y no existe un libro sistemático que lo explique. Por tanto, los recursos de aprendizaje están relativamente dispersos. A continuación se muestra una introducción a algunos recursos. Las partes que no se recomiendan no significan que no sean buenas, pero no son adecuadas para esta etapa de principiante:

Recomendado, UFLDL: un muy buen tutorial básico de DL, también escrito por Andrew Ng. Hay derivaciones y traducciones muy detalladas, y la calidad de la traducción es muy alta. Aprendizaje profundo recomendado (artículo): el artículo de 2015 en "Nature" escrito por los tres principales expertos en el campo del aprendizaje profundo le da a la gente la sensación de que es así; desde un lugar alto, y otras montañas quedan eclipsadas en comparación. , muy recomendable. Si solo puede leer un artículo para comprender el aprendizaje profundo, le recomiendo este. Este artículo tiene una traducción al chino del mismo nombre; Recomendado, 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; se recomienda Red neuronal recurrente: usaré un caso práctico para decirles qué es RNN. Después de completar el tutorial, comprenderá claramente cómo funciona RNN. Este efecto ni siquiera se ve en varios artículos relacionados. No se recomienda, Neural Networks for Machine Learning University of Toronto Coursera: Founding of Deep Learning El mayor problema con los cursos; Lo que otros enseñan es que son demasiado difíciles. A veces la pronunciación del anciano no es muy estándar; no lo recomiendo. Aprendizaje profundo (libro): también es un libro escrito por un experto en aprendizaje profundo, pero parece que lo es. escrito por un segundo autor, es decir, sus alumnos. Se dijo mucho, pero parecía como si no se hubiera dicho nada. Sólo les digo que proviene de ese documento, por lo que podría ser más apropiado mirarlo directamente. No recomendado, cs231n: el famoso curso de Li Feifei, centrado en CNN. Pero el mayor problema de este curso es que no hay subtítulos. Aunque hay subtítulos traducidos automáticamente por YouTube, es mejor que nada.

5. Continuar con el aprendizaje automático

Es posible que el aprendizaje profundo no sea la corriente principal en el futuro, al menos algunos expertos así lo creen. El aprendizaje automático tradicional tiene las siguientes características: sistema de conocimiento y libros relativamente clásicos. Entre ellos, el aprendizaje estadístico (representado por SVM) y el aprendizaje conjunto (representado por adaboost) son tecnologías de uso común en la práctica. Los siguientes son recursos relacionados:

Recomendado, aprendizaje automático (): PRML solía ser el primer libro de texto clásico sobre aprendizaje automático, pero ya no era así después de la publicación del libro del profesor Zhou. En primer lugar, recomiendo leer el libro del profesor Zhou. Una de las características de este libro es que incluso las verdades más difíciles pueden expresarse en un lenguaje sencillo y conciso. Como dijo el famoso profesor Zhou: "Lo que refleja tu nivel es hacer fáciles las cosas difíciles, no hacer difíciles las cosas fáciles. Hacer una cosa difícil es demasiado simple";

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. Y no hay traducción al chino de este libro, 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. transferido nuevamente a la etapa práctica. El enfoque 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. El efecto de aprendizaje de simplemente mirar el código a menudo no es muy bueno. Se pueden buscar buenos proyectos de código abierto en Github. Aquí tomamos el aprendizaje profundo como ejemplo. Existen muchas bibliotecas excelentes de código abierto para el aprendizaje profundo, como torch, theano, etc. Estos son dos de ellos:

Recomendado, DeepLearnToolbox: una biblioteca de aprendizaje profundo temprano escrita en lenguaje matlab, que es más adecuada para transferir desde cursos recién aprendidos. Desafortunadamente, el autor ya no lo mantiene;

Recomendado, tensorflow: la biblioteca de código abierto de Google, que hoy tiene más de 40.000 estrellas, es increíble y es compatible con dispositivos móviles;

7. Documentos de reuniones

Los mejores cursos le recomendarán algunos artículos. Algunas tecnologías y métodos famosos suelen nacer en algunas reuniones importantes. Por lo tanto, leer artículos de conferencias de años anteriores es una forma de aprender más profundamente. En este momento, el contenido de algunos trabajos lo llevará a estudiar las partes de matemáticas en las que no es bueno. A veces siento que mis conocimientos matemáticos no son suficientes y muchas veces necesito realizar algunos cursos complementarios.

Cuando hayas leído suficientes artículos, en esta etapa, si eres estudiante, puedes elegir un tema y realizar una investigación 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 tanto, el estudio de proyectos de código abierto y el trabajo de ponencias en congresos están relacionados.

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

Aquí hay dos conferencias importantes famosas en el campo de la imagen y el aprendizaje automático:

CVPR: esta y las otras dos conferencias, ICCV y ECCV, son conocidas como las tres principales conferencias en El campo de la visión por computadora.

Tenga en cuenta que la página de inicio de la conferencia cambia cada año, por lo que debe agregar el año al buscar Conferencia sobre sistemas de procesamiento de información neuronal (conferencia sobre sistemas de procesamiento de información neuronal): NIPS para abreviar, se han publicado muchos trabajos importantes en ella, como un artículo importante en CNN.

8. Aprendizaje libre

Hemos llegado y se puede decir que hemos entrado por esta puerta. Puedes estudiar libremente según tus intereses. También puedes estudiar los recursos de aprendizaje que no se recomiendan en la etapa anterior. Los siguientes son los comentarios:

CS 229: Las notas de la conferencia escritas por NG son muy buenas y la derivación de SVM es muy clara. Lo recomiendo si desea aprender SVM. Redes neuronales para el aprendizaje automático: la perspectiva de Daniel es simplemente diferente a la perspectiva humana. Observar las opiniones de Hinton sobre las redes neuronales a menudo te da una sensación original. De hecho, leer este curso equivale a leer un artículo, porque casi todos los cursos tienen artículos para leer en los materiales de referencia Redes neuronales convectivas para el reconocimiento visual: conocimientos más recientes y tareas detalladas. Debería haber un equipo en China que haya traducido los subtítulos, puedes buscarlos. PRML: Como libro clásico sobre aprendizaje automático, es necesario leerlo, lo que le brindará una visión diferente del aprendizaje automático.

Resumen de verbo (abreviatura de verbo)

Este artículo está destinado a ayudar a los estudiantes que no saben mucho sobre el campo de la IA pero que quieren adentrarse en él. Sólo hablo aquí de intervención porque la especialización en este campo es difícil y requiere años de acumulación y trabajo duro. Antes de estudiar en un 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 aprender, mantenga una política de aprendizaje paso a paso y no se apresure a aprender recursos difíciles; combine estrategias de aprendizaje y práctica para complementarse entre sí, tendrá una sensación de logro cuando realmente lo haga. . Aprender un recurso debe tener un propósito completo no es leer código para aprender proyectos de código abierto, sino leer para escribir proyectos de código abierto no es escribir artículos, sino hacer cosas;

Este artículo proviene de la cuenta oficial de WeChat: "Una colección de grandes tecnologías". Guanzhu comprende las rutas de aprendizaje y aprendizaje de la tecnología de big data en la industria de big data y tiene materiales de aprendizaje gratuitos.

Si un recurso de aprendizaje es demasiado difícil para usted, no significa necesariamente que sea su problema, pero puede ser un problema con el hablante o el autor del recurso de aprendizaje. Sólo aquellos que pueden simplificar los problemas difíciles son verdaderamente capaces. Así que asegúrese de estudiar recursos de alta calidad en lugar de estudiar al azar. Por último, recuerda estudiar con interés. Aprender lleva mucho tiempo y el proceso es muy difícil, y sólo el interés es la mejor ayuda para perseverar y superar las dificultades.