¿Cómo debo diseñar mi curso en visión artificial / aprendizaje automático / robótica para mi maestría en EE?

A menos que sepa qué trabajo desea, es difícil saber qué habilidades debe aprender. Mi sugerencia: tomar los cursos que suenen divertidos. Es probable que sigan mejores calificaciones y recomendaciones si le gusta la asignatura y, por lo tanto, le va mejor.

El aprendizaje automático está de moda y esas habilidades son útiles en muchos trabajos diferentes. Estoy de acuerdo en que las habilidades de CS tienen más demanda que las EE directas (especialmente bases de datos, dispositivos móviles, redes, aplicaciones web y nube). Pero los temas cruzados como la visión y el procesamiento de imágenes también están creciendo (junto con habilidades de apoyo como la geometría computacional, la geometría de múltiples vistas y los gráficos). La robótica está avanzando, pero hasta ahora principalmente en el ejército (por ejemplo, aviones no tripulados), aunque es probable que se diversifique en mercados comerciales como los autos sin conductor en la próxima década. Es difícil decir si la impresión 3D (y CAM en pequeñas empresas o en el hogar) está a la vuelta de la esquina, pero estoy intrigado.

Puede hacer bien en elegir cursos en los que construya un proyecto que luego pueda consultar y promover cuando solicite empleo. A los empleadores les gusta ver ejemplos de su trabajo (código publicado en la web, participación en proyectos de software abiertos, un video de su robot en acción) en lugar de solo una lista de calificaciones. Creo que encontrará que esas compañías también serán lugares más interesantes para trabajar que las grandes corporaciones de arriba a abajo anticuadas que se preocupan solo por el GPA.

Verifique con los administradores del departamento si puede mezclar y combinar clases de 2-3 “Áreas de especialidad”. Supongo que probablemente puedas. Explicar por qué. SI no puede justificar sus razones, use esta respuesta como guía.

Con base en la información de una conversación privada, use los puestos de científico de datos como uno de sus planes de respaldo, si no es su objetivo principal.

Desde mi blog de Ingeniería Eléctrica + Ciencias de la Computación (EECS), notarías que hay mucho modelado y programación de computadoras en ingeniería eléctrica e informática (ECE). Específicamente, vea la respuesta del usuario de Quora a ¿Qué cantidad de programación hay en electrónica e ingeniería de comunicación? Usted mencionó que la programación, o más bien el desarrollo de software (incluida la depuración, las pruebas de software y lo que no), es una de sus debilidades. Entonces, sí, necesitas trabajar en eso. Sin embargo, si toma clases de CS este otoño (o cada vez que comienza su programa de posgrado) sin saber cómo desarrollar software con una cantidad decente de eficiencia y efectividad, se brindará por sus clases de CS de posgrado. Necesita 90% para obtener una “A” y 80% para obtener una “B”. El software que funciona mal o funciona parcialmente no hará el corte. Por lo tanto, si no está preparado, puede tener un mal desempeño en las clases de CS y perjudicar sus posibilidades (debido al mal promedio de calificaciones) de usar su CPT para obtener pasantías el próximo verano o durante el año académico después de 1-2 semestres.

Consulte Elección de un programa de posgrado en Diseño VLSI y áreas relacionadas: Cosas a considerar por Pasquale Ferrara en Ingeniería Eléctrica + Ciencias de la Computación (EECS) para ver el conjunto de habilidades deseado para los desarrolladores de software (punto # 2 del conjunto de habilidades deseado de los ingenieros de EDA) .

Sin embargo, recuerde que la programación es solo una de las herramientas que los ingenieros usan para resolver problemas del mundo real.

Debería aprender análisis estadísticos avanzados (p. Ej., Diseño de experimentos y estadísticas multivariadas), modelación estocástica (p. Ej., Esa clase en procesos aleatorios) y análisis numérico (p. Ej., Álgebra lineal, ecuaciones diferenciales y cálculo vectorial) y numéricos relevantes. métodos Con tu título de BS EE, ya deberías tener los conocimientos de matemáticas que mencioné. Si no, necesitas trabajar en ellos. Si tiene este conjunto de habilidades, además de habilidades de escritura y pensamiento analítico decentes, tiene el conjunto de habilidades básicas para el científico de datos y otros puestos de análisis. Para distinguirse del paquete, en lugar de solicitar cualquier análisis (por ejemplo, análisis de negocios, análisis social y análisis web) o posición de científico de datos, considere los dominios en los que tiene experiencia, como análisis de atención médica, análisis deportivo (por ejemplo, específicamente para baloncesto o incluso cricket), y la industria de la música / cine. Sé único y conoce tu dominio preferido. Mi sugerencia es encontrar un dominio en EE y dominarlo. Por ejemplo, Intel es conocido por automatizar su proceso de fabricación a mediados / finales de la década de 2000; consulte la Tecnología de fabricación automatizada (AMT) de Intel en AMT de Intel que permite un procesamiento rápido y un giro de información para el vehículo con chip de prueba DFM de Intel y la coincidencia automática de procesos estadísticos en la fábrica virtual. Por lo tanto, puede ser un científico de datos para el proceso de fabricación de Intel; utilizan una gran cantidad de minería de datos y aprendizaje automático. Además, utilizan la prueba de geometría computacional y una pequeña cantidad de visión por computadora para examinar las máscaras, el diseño (salida del proceso de diseño físico) y las micrografías de matriz. Pero, debe tomar clases de fabricación de semiconductores, en las cuales su universidad privada tiene una reputación decente.

Puede combinar la visión por computadora y la robótica como un ataque doble en su educación y carrera de posgrado, y usar el aprendizaje automático y la minería de datos como herramientas para ayudarlo a resolver problemas.

Una vez que se dé cuenta de que todos estos algoritmos, técnicas en análisis / optimización matemática, y lo que no son simplemente herramientas empleadas por ingenieros para resolver diferentes problemas, entonces enfóquese en un mercado en el que le apasiona resolver problemas. Las herramientas necesarias para todos los campos son más o menos lo mismo de todos modos, incluso si entras en el análisis de redes sociales (que requiere teoría de grafos + sistemas dinámicos no lineales, que es un enfoque tradicional para modelar redes sociales).

¿Cómo se combinan la visión artificial y la robótica? Utilice sistemas ciberfísicos (CPS).

Suposición:

  1. Tiene experiencia en sistemas de control, dado que tiene un BS EE. La ingeniería de control se utiliza en robótica y CPS (o sistemas integrados, si lo desea).
  2. Algunos de estos parecen clases intermedias que toman los estudiantes de último año (juniors y seniors, o 3er y 4to años en programas de BS EE) y estudiantes graduados junior (MS y estudiantes de doctorado junior). Si los ha tomado, puede continuar con las clases avanzadas. Su universidad puede requerir un examen de nivel para ubicarse fuera de las clases intermedias, que tienden a ser requisitos previos para las clases avanzadas. Consulte con los administradores del departamento.

Las sugerencias se basan en los cursos de posgrado de ECE en la Universidad Estatal de Carolina del Norte (NCSU), donde se dirigirá la persona que hace la pregunta anónima.

Clases para sistemas ciberfísicos (CPS):

  1. Ingeniería de control del sistema ECE 516 (todos los CPS o sistemas integrados deben ser estables)
  2. Diseño y tecnología de computadoras ECE 521 (CPS contiene sistemas integrados, que incluyen hardware y software)
  3. Diseño ECE 535 de sistemas electromecánicos (su CPS necesita interactuar con el mundo real, que tiende a ser de naturaleza “analógica”; piense en el dominio del tiempo continuo). La robótica también involucra sistemas mecánicos.
  4. Diseño del sistema embebido ECE 561
  5. Redes informáticas ECE 570 (para sistemas integrados en red)
  6. ECE 574 Seguridad informática y de red (desea proteger su red CPS, ¿verdad?)
  7. Introducción a la red inalámbrica ECE 575 (piense en redes inalámbricas de sensores o sistemas robóticos de múltiples agentes)
  8. ECE 720 Nivel de sistema electrónico y diseño físico … El componente de nivel de sistema electrónico, ESL, es una parte fundamental del diseño y verificación de CPS. Simplemente tome esta clase y aprenda sobre diseño físico; No debería matarte. Probablemente no tendrá que desarrollar herramientas de diseño físico, como herramientas de colocación y síntesis de red de reloj. Nuevamente, vea Elegir un programa de posgrado en Diseño VLSI y áreas relacionadas: Cosas a considerar por Pasquale Ferrara en Ingeniería eléctrica + Ciencias de la computación (EECS), y lea las secciones relevantes sobre automatización de diseño electrónico (EDA); Espero que se dé cuenta de que el diseño físico es parte de EDA, al igual que las herramientas de ESL.
  9. ECE 756 Mecatrónica avanzada
  10. Diseño y evaluación de rendimiento de ECE 776 de sistemas y servicios de red

Suponiendo que ha tomado ECE 561, ECE 521, ECE 570, ECE 574, le sugiero que tome las siguientes clases en orden de prioridad (no en secuencia temporal): ECE 720, ECE 756, ECE 516, ECE 535 y ECE 575. Puede omitir las clases restantes, como ECE 776.

Clases dirigidas a dominios CPS en visión por computadora integrada (respuesta del usuario de Quora a ¿Qué es la visión por computadora incorporada y en qué se diferencia de los sistemas integrados en términos de aplicación y carrera?), Así como a la fabricación, el consumidor, la rehabilitación y la robótica doméstica:

  1. Instrumentación médica ECE 522 (para robótica médica y sanitaria, incluida cirugía robótica y robótica de rehabilitación)
  2. ECE 555 Control informático de robots
  3. Laboratorio de Tecnología y Fabricación de Circuitos Integrados ECE 739 (para la fabricación de robótica y científicos de datos / puestos de análisis en la industria de semiconductores)
  4. ECE 763 Visión por computadora

Omita ECE 522 y ECE 739, si no está interesado en dichos dominios.

Clases para perfeccionar sus habilidades en matemáticas, modelado estocástico, análisis estadístico, desarrollo de software, desarrollo de software y pensamiento computacional:

  1. ECE 517 Lenguajes y sistemas orientados a objetos
  2. ECE 542 Redes neuronales
  3. ECE 751 Teoría de detección y estimación
  4. Teoría de la información ECE 752 (no tan útil)

Clases de CS

  1. CSC 503: lógica aplicada computacional (para la verificación formal de sistemas integrados; pero sin una clase de verificación formal, es inútil por sí sola)
  2. CSC 505- Diseño y Análisis de Algoritmos
  3. CSC 510- Ingeniería de software
  4. CSC 517 – Lenguajes y sistemas orientados a objetos (probablemente lo mismo que ECE 517)
  5. CSC 520- Inteligencia Artificial I
  6. CSC 521- Programación de Inteligencia Artificial
  7. CSC 522: aprendizaje automatizado y análisis de datos (léase: clase de aprendizaje automático)
  8. CSC 541- Estructuras de datos avanzadas (para prepararse para entrevistas técnicas)
  9. CSC 546- Sistemas de control y decisión de gestión (para puestos de analista / científico de datos)
  10. CSC 548- Sistemas paralelos
  11. CSC 554- Interacción hombre-computadora (útil para la robótica; piense en la interfaz hombre-máquina)
  12. CSC 570- Redes de computadoras (para sistemas embebidos en red)
  13. CSC 575- Introducción a las redes inalámbricas (ver ECE 575)
  14. CSC 579- Introducción al modelado de rendimiento informático
  15. CSC 580- Análisis numérico I
  16. CSC 583- Introducción a la computación paralela
  17. CSC 712- Pruebas de software y confiabilidad
  18. CSC 714- Sistemas informáticos en tiempo real (para CPS)
  19. CSC 720- Inteligencia Artificial II
  20. CSC 722- Temas avanzados en aprendizaje automático
  21. CSC 724: sistemas distribuidos avanzados (para sistemas integrados en red)
  22. CSC 762- Técnicas de simulación por computadora
  23. CSC 772- Redes de supervivencia (para sistemas embebidos en red)
  24. CSC 775- Temas avanzados en redes inalámbricas (para sistemas integrados en red)
  25. CSC 776- Diseño y evaluación del desempeño de sistemas y servicios de red (probablemente lo mismo que ECE 776)
  26. CSC 779: modelado avanzado de rendimiento informático
  27. CSC 780- Análisis numérico II
  28. CSC 783- Algoritmos Paralelos y Computación Científica

Además, consulte las clases de temas especiales cuando tenga disponible información sobre ellos, siempre que se registre para las clases (hágalo para cada semestre). Algunas de estas clases son increíblemente increíbles, desafiantes y divertidas. Tenga en cuenta que algunas clases de temas especiales no se ofrecen cada semestre / año, o nunca más.

Si ha sido flojo para adquirir habilidades de desarrollo de software antes de tomar clases de aprendizaje automático y visión artificial, tome CSC 510, CSC 517, CSC 541, CSC 712 y CSC 505 para comenzar.

Para el aprendizaje automático, tome CSC 520, CSC 521, CSC 522, CSC 546, CSC 720 y CSC 722.

Envolviendo cosas juntas

La robótica puede ser un área en crecimiento, dependiendo de cómo se desarrollen los sistemas ciberfísicos (incluida la robótica). Históricamente, las carreras en robótica tienden a limitarse a la defensa y a algunos mercados de fabricación (por ejemplo, en la industria de fabricación de automóviles). Con la robótica del consumidor para el cuidado de la salud (por ejemplo, la robótica de rehabilitación) y la robótica doméstica (incluidas las aspiradoras y los juguetes, ¡piense en la robótica de Lego!) Cada vez más frecuente, sí, las carreras en robótica se ven muy bien. Lo mismo para la visión artificial integrada. Las cámaras para tomar fotos y grabar videos se encuentran en muchos sistemas integrados, como teléfonos inteligentes y automóviles (cámaras de video traseras para automatizar o facilitar el estacionamiento en reversa). Cuando los vehículos autónomos lleguen al mercado, se necesitarán más sistemas integrados de visión por computadora. Entonces, sí, CPS une la robótica y la visión por computadora, muy bien. Lo mismo ocurre con el aprendizaje automático, que puede usarse en el diseño de robots y emplearse en algoritmos / técnicas de visión por computadora.

La macro tendencia tecnológica emergente / creciente a la que se debe prestar atención son los sistemas ciberfísicos (incluidos los sistemas integrados en red: consulte Internet de las cosas).

Entonces, con experiencia en EE, puede trabajar en dominios de sistemas ciberfísicos que involucran visión por computadora, robótica y aprendizaje automático, como sistemas integrados de visión por computadora para robots (implementados con técnicas de aprendizaje automático).

El diseño de cursos para estudios posteriores puede ser un poco confuso para los programas de posgrado. Antes de elegir cualquier curso, hable con un experto en su área de interés. Las personas que ya practican tienen una forma de poner las cosas en perspectiva. Al menos podrás decir en qué te gustaría especializarte. Es como multar a un ayudante de investigación. Si bien la mayor parte del trabajo es suyo, aún necesita orientación en algunas áreas. Asumir la robótica para los Maestros como un área de especialización es toda una tarea. Implica mucha computación y modelado, por lo que necesitaría ser impecable en estas áreas. En caso de que tenga problemas en alguna de estas áreas, lo mejor sería tomar algunos cursos que lo expongan más a estos aspectos y desarrollen su habilidad también. Tal movimiento protege contra el encuentro de grandes obstáculos en el camino. También necesitará aprender algunos análisis estadísticos para ser efectivo. Cualquiera que sea el caso, sería mejor hablar con alguien del departamento de la universidad. Podrías averiguar qué proporción de trabajo del curso, cuando se combina y combina, te ayudaría a lograr lo que te gustaría al tomar Computer Learning Machine Learning Robotics.

Temas que estudiaría:

Aprendizaje Bayesiano
Redes neuronales
Reconocimiento de patrones
Estadística
Wavelets
Procesamiento de señal / imagen
Procesos estocásticos / aleatorios
Ecuaciones diferenciales parciales
C / C ++ (para interactuar con hardware)

detección comprimida
mejoramiento
Aprendizaje bayesiano