¿Cómo es tomar CS 189 (Introducción al aprendizaje automático) en Berkeley?

Estoy de acuerdo con mucho de lo que dijo Benj Shapiro, y tal vez pueda arrojar algo de luz sobre una oferta más reciente del curso. Actualmente estoy tomando CS 189 (primavera de 2016), y ha pasado suficiente semestre (~ 2/3) que me siento con suficiente experiencia para responder.

En primer lugar, ya no es necesario obtener una buena calificación en CS 188 antes de tomar 189; de hecho, 188 ya ni siquiera es un requisito previo difícil. Creo que tomar 188 primero beneficiará a la mayoría de las personas, pero estoy de acuerdo en que los prerrequisitos matemáticos (álgebra lineal, probabilidad, cálculo multivariable básico) son predictores de éxito mucho más útiles en 189. Todavía es cierto que la clase está en la lista cruzada como 289A, y hay una buena cantidad de estudiantes graduados en la clase. La única diferencia que conozco es que tienen que completar un proyecto. Los estudiantes graduados de Berkeley están excepcionalmente calificados, por lo que esto debería decirle algo sobre el nivel de dificultad de la clase (alto) y el agarre de la mano (casi ninguno).

En segundo lugar, aunque esta clase se ha ofrecido varias veces antes, es la primera vez que el profesor Shewchuk la enseña, por lo que hay una gran cantidad de imprevisibilidad. Tiene un estilo muy vago ( vago en el sentido de los lenguajes de programación; se ocupa de las cosas como se necesitan, y no antes): el primer día de clase, los estudiantes llegaron con un montón de preguntas sobre el formato del curso , tareas, exámenes, etc., y la mayoría de sus respuestas fueron “No sé; ya veremos”. Todavía no ha decidido cómo va a curvar la clase, y el tema de futuras conferencias no se anuncia de antemano.

No creo que el aprendizaje automático sea el área de especialización de Shewchuk, pero él sabe mucho sobre geometría, por lo que es capaz de hacer buenas tramas e imágenes para darnos una interpretación visual de los métodos que estamos aprendiendo. Me gusta mucho este aspecto de su enseñanza.

Y debo decir que así es como se siente esta clase: un montón de métodos. Hay una cantidad muy pequeña de teoría, que básicamente equivale a una compensación de desviación de sesgo, pero la gran mayoría del contenido es una especie de enfoque de “bolsa de herramientas”. Esto no es necesariamente algo malo, ya que conocer una variedad de métodos y sus pros / contras es muy útil para las personas que desean aplicar el aprendizaje automático en la industria, pero desearía que solo pasáramos una o dos conferencias en una introducción al aprendizaje teoría (dimensión VC, aprendizaje PAC, etc.).

No hay proyectos, pero la mayoría de las tareas implican la implementación de varios algoritmos. Los estudiantes generalmente usan Python + NumPy, aunque algunos usan MATLAB. También hay un par de tareas que son todas o principalmente matemáticas, para que los estudiantes se pongan al día con conceptos importantes sobre probabilidad, álgebra lineal y cálculo matricial. Disfruto de las tareas pero para las presentaciones requeridas de Kaggle. Esto hace que cada tarea se sienta como una competencia, y también agrega una cantidad de estrés no trivial porque solo se permiten dos presentaciones de prueba por día, por lo que debe hacer que cuenten.

El examen de mitad de período fue justo, pero no fácil, y la política de opción múltiple es brutal. Cualquier subconjunto no vacío de cuatro opciones podría ser correcto, pero no hay crédito parcial, por lo que se deben elegir todas las opciones correctas y no incorrectas para ganar puntos por una pregunta. Esto hace que adivinar al azar, o incluso el conocimiento parcial, sea básicamente inútil, así que asegúrese de estudiar.

Sin embargo, en general, la clase es muy agradable y el material fascinante, por lo que se lo recomendaría a cualquier estudiante interesado de Berkeley.

Como alguien que tomó el curso el semestre pasado, espero poder agregar más perspectiva a lo que ya se ha dicho. Este es también el primer semestre que el profesor Anant Sahai ha enseñado en el curso y ha cambiado parte del plan de estudios de los semestres anteriores. También lo está enseñando el próximo semestre y puede volver a enseñarlo en futuros semestres.

En primer lugar, permítanme comenzar diciendo que este curso no es una broma. En mi opinión, desde un punto de vista conceptual, fue una de las clases más desafiantes que tomé en Berkeley. Sahai es un profesor orientado a la teoría y profundizamos mucho en las matemáticas. Estoy bastante seguro de que profundizamos en muchos temas más de lo que los profesores han ido en el pasado.

Debido a lo profundamente que quiere entrar en el lado matemático del aprendizaje automático, Sahai recomienda tener más requisitos previos. Además del EE16A / EE16B obligatorio para álgebra lineal, Math 53 para cálculo multivariable y CS70 para probabilidad, recomienda encarecidamente EE126 para una comprensión de probabilidad más profunda y EE127 para un fondo de optimización.

Personalmente, no había tomado EE126 o EE127 y lo hice bien en el curso, pero definitivamente puedo ver su utilidad, especialmente cuando se trataba de comprender gaussianos multivariados (EE126) y formulaciones duales de máquinas de vectores de soporte (EE127).

Lo más importante para lo que debes prepararte cuando tomas esta clase con el profesor Sahai es la tarea. La clase es extremadamente pesada en conjuntos de problemas desafiantes que toman un promedio de 15 a 20 horas a la semana. También es probable que tengas que ir al horario de oficina y trabajar junto con tus compañeros de clase para resolverlos. La tarea generalmente es una mezcla de problemas matemáticos y teóricos, así como un problema de aplicación / codificación bastante complicado.

Si bien esto puede parecer desalentador, también hay un buen lado de esta configuración. La tarea es, con mucho, la parte más importante de la clase y la mayor parte de su aprendizaje se realizará a través de la tarea. Si comprende la tarea, puede hacerlo muy bien en el curso porque nada más que encontrará será más difícil que la tarea.

En cuanto a los exámenes, tuvimos un examen de mitad de período y uno final y sentí que ambos exámenes eran justos en el sentido de que nada de los exámenes parecía que salía del campo izquierdo. Si entendía la tarea y estaba bien preparado, podría obtener buenos resultados en el examen. Una política que me gustó especialmente de la versión de CS189 de Sahai es que él personalmente está muy en contra de determinar las calificaciones en asociación con otros estudiantes. En la mayoría de las clases de CS en Berkeley, se lo compara implícitamente con otros porque las calificaciones están determinadas por promedios y cuántas desviaciones estándar está lejos del promedio.

Sin embargo, Sahai determina las calificaciones de los exámenes a través de un sistema que evita la comparación con otros estudiantes. Después de hacer un examen, Sahai junto con los TA determina un límite establecido para lo que espera que obtenga un estudiante de nivel A y establece estándares similares para A- ‘, B +’, etc. Después de un examen, luego detalla las decisiones para el grado límites para la transparencia. En mi opinión, este sistema generalmente conduce a una competencia menos inherente y a un mayor enfoque en el dominio del material.

En general, prepárate para trabajar muy duro en esta clase. Recomiendo tomarlo en un semestre en el que no tenga tantas clases técnicas hardcore para que pueda dividir la cantidad de tiempo adecuada. Sin embargo, después de salir de la clase, sentirás que has aprendido mucho. A pesar de todo el dolor que puede haber pasado al tomar la clase, definitivamente vale la pena en retrospectiva.

Permítanme comenzar señalando que tomé CS 189 en el primer semestre que me ofrecieron, y que ahora puede haber evolucionado un poco.

CS 189 es un curso difícil, y esto se refleja tanto en el trabajo como en el tipo de personas que asisten a la clase. Entrar en el curso será casi imposible sin una A (tal vez una A-) en CS 188 (Inteligencia Artificial) y al menos un tercio del curso serán estudiantes graduados (el curso está en la lista cruzada con CS 289A).

También fue mi curso favorito hasta ahora en UC Berkeley. Se enseña claramente con la intención de educar; Aunque obviamente hay calificaciones en la línea, el objetivo principal del instructor es ante todo brindarle una excelente experiencia en aprendizaje automático, y esto se hace exponencialmente más claro que en muchos otros cursos universitarios de ciencias de la computación en Berkeley. Cuando tomé el curso, el profesor aprovechó todas las oportunidades para recordar a los estudiantes que se concentren en el contenido y no en la calificación. Esto no quiere decir que no nos clasificaron severamente, porque lo estábamos, y los exámenes fueron brutales, pero estaba claro que los instructores estaban de nuestro lado y que si íbamos a la clase con la intención de absorber cada pedazo de información que pudiéramos, tendríamos éxito.

La clase en sí está muy basada en conferencias. Cuando lo tomé, rara vez se publicaron o usaron diapositivas de conferencias, y solo notas ocasionales (en una o dos conferencias particularmente complejas). Había muchos trabajos académicos avanzados para leer, y esto me pareció refrescante y realmente muy interesante, especialmente en contraste con la mayoría de los otros cursos de CS en Berkeley. Si bien gran parte del contenido fue avanzado, los instructores hicieron todo lo posible para ayudarnos a superar el contenido, y existía una clara expectativa de que si tuviéramos los antecedentes adecuados y estuviéramos lo suficientemente interesados, de alguna manera podríamos leer el complejo material. Este fue definitivamente el caso, pero sería muy difícil completar el curso sin asistir regularmente a la conferencia y mantenerse al día con las lecturas, ¡muchos profesores de UCB dicen esto sobre su clase, pero los instructores de CS189 lo dicen en serio! Sé que muchos estudiantes de CS tienden a disminuir la asistencia, particularmente hacia el final del semestre, pero en CS189 eso simplemente no puede ser una opción.

Los proyectos fueron muy prácticos. Cuando tomé el curso, esencialmente se redujeron a “Aquí hay un conjunto de datos, use este algoritmo / modelo y haga que funcione en MATLAB o python”. Aprendimos a usar LibLinear, que definitivamente era un fondo útil, pero en su mayor parte todo el trabajo se realizó desde cero. La creatividad y las optimizaciones adicionales fueron muy recomendadas. Nuevamente, el aprendizaje fue el énfasis. También hubo algunos conjuntos de problemas, que se parecían al tipo de trabajo que vería en CS 170 (Algoritmos), quizás con más énfasis estadístico.

Larga historia corta: mucho trabajo, el contenido se mantiene principalmente en lectura y lectura altamente avanzada, el énfasis está enormemente en sumergirse en el material y explorarlo lo mejor que pueda, y las buenas calificaciones llegan a aquellos que están de acuerdo con eso. Definitivamente una de las mejores clases que he tomado en Berkeley.

¡Buena suerte!