WOT

Tuesday, September 27, 2016

Cómo conseguir trabajo en aprendizaje profundo (Deep Learning)

Nota: Este artículo es una traducción del original que aparece en el sitio de Deepgram titulado How to Get a Job in Deep Learning

Muchas gracias a Colin Heilbut, Account Executive de Deepgram por conceder su permiso para publicar este artículo

22 DE SEPTIEMBRE DE 2016
altSi eres ingeniero de software (o estás aprendiendo el oficio), lo más probable es que hayas oído hablar del aprendizaje profundo (que a veces lo abreviamos por las siglas en inglés de Deep Learning, 'DL'). Es un campo de investigación interesante que se está desarrollando muy rápidamente, y actualmente se utiliza en la industria para hacer frente a una amplia gama de problemas, desde la clasificación de imágenes y reconocimiento de escritura, a la traducción automática y tristemente conocido por ganar al jugador de go campeón del mundo en cuatro juegos de cinco. 
Mucha gente piensa que necesita tener un doctorado o una gran experiencia para conseguir un trabajo en aprendizaje profundo, pero si ya eres un buen ingeniero, puedes adquirir rápidamente las habilidades y las técnicas necesarias. Al menos, esa es nuestra forma de pensar. (Así que incluso si eres principiante en aprendizaje profundo, te invitamos a solicitar uno de nuestros puestos vacantes.)
Cuestión importante: Es necesario tener motivación y también ser capaz de codificar y resolver problemas. Eso es todo.
En Deepgram utilizamos el aprendizaje profundo para abordar el problema de la búsqueda de expresiones. Básicamente, enseñamos a las máquinas a escuchar y recordar el contenido de conversaciones grabadas, llamadas telefónicas, vídeos en línea, podcasts, y todo lo que se refiere al tema del audio cuando la gente habla. Pero escuchar es sólo la mitad del trabajo. También estamos enseñando a las máquinas a recordar palabras y frases clave de estas grabaciones, de  manera similar a la forma en que lo hace nuestro cerebro cuando recuerda conversaciones: por el sonido de las palabras y frases clave que se teclean en la barra de búsqueda. (En el caso de que todavía no hayas practicado con Deepgram, tenemosuna pequeña demo que muestra algunas de sus posibilidades.)
Al principio puede parecer desalentador iniciarse en el aprendizaje profundo, pero la buena noticia es que ahora hay más recursos que nunca. (También hay una enorme demanda a la espera de ingenieros que sepan cómo implementar en software el aprendizaje profundo.) Pero si quieres conseguir un puesto de trabajo en aprendizaje profundo, antes necesitas ponerte al día, ¡permítenos que seamos tu guía! (Si ya sabes mucho sobre aprendizaje profundo y sólo está buscando información sobre cómo obtener un trabajo en este campo, puedes ir directamente al final de la página.)
¿Qué es el aprendizaje profundo?
En pocas palabras, el aprendizaje profundo consiste en la creación y entrenamiento de una gran red neuronal artificial con muchas capas ocultas situadas entre la entrada y la salida de la red. El término de red neuronal 'profunda' se debe a las muchas capas ocultas que constituyen la red. Las redes neuronales profundas tienen al menos tres capas ocultas, pero algunas redes neuronales pueden lelgar a tener cientos de ellas.

Las redes neuronales son modelos estadísticos complejos que permiten a los computadores crear una representación abstracta notablemente precisa de la información. ¿Qué tipo de información?, te preguntarás. Como hemos mencionado, la red neuronal profunda de Deepgram está entrenada específicamente para 'comprender' y actuar sobre los datos correspondientes a palabras habladas, pero las redes neuronales profundas se han utilizado en muchos otros contextos, desde la detección de cánceres en las exploraciones médicas al pronóstico del precio de la energía y a la modelización del clima.
Hay un buen número de jugadores importantes en el espacio del aprendizaje profundo. En el campo académico, el Geoffrey Hinton's lab de la University of Toronto, el Yann LeCun's group de la New York University y el Stanford's AI lab son algunos de los líderes más importantes en la investigación sobre aprendizaje profundo. En el sector privado, Google ha liderado la aplicación del aprendizaje profundo en sistemas de búsqueda y de visión por ordenador, y el jefe científico de Baidu, Andrew Ng, es un importante contribuyente a la literatura científica del aprendizaje profundo aparte de ser el co-fundador de Coursera.
¿Por qué ahora es tan accesible el aprendizaje profundo, incluso para los recién llegados a este campo? Hay dos factores principales. En primer lugar, el hardware de computación es ahora lo suficientemente rápido y barato para hacer el aprendizaje profundo accesible a casi cualquier persona que tenga instalada en su PC una tarjeta gráfica decente. (En las pruebas queu hemos realizado, hemos descubierto que un servidor GPU es casi tan rápido como 400 núcleos de CPU para ejecutar los algoritmos que utilizamos.) En segundo lugar, nuevas plataformas de código abierto de aprendizaje profundo como TensorFlow,Theano Caffe permiten al usuario desarrollar  su propia red neuronal profunda de forma sencilla, especialmente si se compara con el hecho de tener que construir una red desde cero.
Hay mucho más sobre aprendizaje profundo, por supuesto, pero ¡ese es el motivo de está esta guía!
Lo que deberías saber antes de zambullirte en el aprendizaje profundo
Hablando de matemáticas, debes tener una cierta familiaridad con el cálculo, la estadística y el álgebra lineal. Todas estas disciplinas te ayudarán a entender la teoría y los principios de DL.
Obviamente, también va a ser necesario programar. Como puedes ver  de la lista de bibliotecas de aprendizaje profundo, la mayor parte de las bibliotecas más populares están escritas en Python y en R, por lo que ayudaría tener algún conocimiento de Python o de R.
Si necesitas ponerte al tanto en matemáticas o adquirir habilidades de programación, hay un montón de recursos en línea de muy alta calidad que puedes utilizar.
También ayuda, como hemos mencionado anteriormente, si tienes una tarjeta gráfica decente (o acceso a una GPU a través de una plataforma de computación en la nube como Amazon Web Services o de otros proveedores de alojamiento que figuran  aquí).
Dónde aprender aprendizaje profundo
Conferencias y artículos Sobre DL
Si eres nuevo en este campo y estás buscando determinadas explicaciones de cierto nivel de los conceptos que hay detrás del aprendizaje profundo sin perderte en los aspectos matemáticos y de programación, hay algunas charlas informativas para familizarizarte con los conceptos y la terminología.
·         La University of Wisconsin tiene una magnífica, página web sobre redes neuronales.
·         Brandon Rohrer, director científico de datos de Microsoft, dio una charla en Boston sobre la ciencia de datos abiertos en la que explicaba y desmitificaba el aprendizaje profundo sin necesidad de utilizar unas matemáticas de lujo ni la jerga informática asociada. Brandon tienee el video y las transparencias es esta página.
·         El pionero en aprendizaje profundo Geoffrey Hinton fue el primero en demostrar el uso de algoritmos de propagación hacia atrás para la formación de redes neuronales profundas. En la actualidad dirige la investigación sobre AI de Google cuando no está atendiendo a sus responsabilidades académicas en la Universidad de Toronto. Dió una breve pero exclarecedora charla sobre 'Cómo funcionan realmente las redes neuronales' que nos gusta mucho. Puedes también encontrar una lista de documentos sobre DL 'sin muchas matemáticas en su  página de la facultad.
·         Steve Jurvetson, socio fundador de DFJ, una gran empresa de capital riesgo de Silicon Valley, dirigió una mesa redonda en la Escuela de Negocios de Stanford sobre el tema. I Si estás interesado en aprender sobre aprendizaje profundo desde el punto de vista de algunos emprendedores así como de ingenieros de aplicación de DL en la industria,  consulta este video.
ISi lo que deseas es zambullirte y te sientes cómodo con un poco de matemáticas, con ejemplos de código sencillos, y con las reflexiones sobre la aplicación de DL en la práctica, consulta el blog del graduado de Stanford  Andrej Karpathy  publicado en "The Unreasonable Effectiveness of Recurrent Neural Networks".
Cursos en línea
Si eres el tipo de persona que disfruta  con realizar cursos en línea, estás de suerte. Hay varios cursos recomendables de aprendizaje profundo disponibles en línea.
·         El de Andrew Ng  Stanford course on machine learning es muy popular y está revisado. Se considera uno de los mejores cursos de iniciación en aprendizaje automático y te proporcionará una preparación rigurosa para profundizar en el aprendizaje profundo.
·         Udacity tiene un curso introductorio de dos semana sobre aprendizaje automático que se centra tanto en la teoría como el aplicaciones del mundo real. Una vez más, se trata de un curso de preparación recomendable para los interesados en la larga búsqueda del aprendizaje profundo.
·         El curso de Caltech’s Yaser S. Abu-Mostafa’s "Learning From Data" es menos denso en matemáticas, pero es un sólido recurso de la teoría y las técnicas del aprendizaje automático.
·         El de Andrej Karpathy 'CS231n: Convolutional Neural Networks for Visual Recognition' de Stanford es un reto, pero un curso bien hecho sobre redes neuronales profundas, y las notas del programa de estudios y el curso detallado están disponibles en línea.
·         El curso de Geoffrey Hinton sobre 'Neural Networks for Machine Learning' es bueno, y lo enseña uno de los padrinos en este campo.
Libros
Tal vez los cursos en línea no sean lo tuyo, o tal vez lo que prefieres es leer en lugar de ver las conferencias y estudiar las presentaciones de diapositivas. Hay unos cuantos libros interesantes por ahí que vale la pena echarles un vistazo. Nuestras recomendaciones:
·          Grokking Deep Learning de Andrew Trask tiene como objetivo proporcionar una guía accesible y práctica sobre las técnicas de aprendizaje profundo. Si sabes algo de Python y estudiaste álgebra en la escuela secundaria estás 100% preparado para leer este libro.
·         El libro de Ian Goodfellow, Yoshua Bengio y Aaron Courville, Deep Learning, que será publicado por el MIT Press.  Ahora hay  una nueva versión gratis del libro disponible en línea, además de las diapositivas de las clases y los ejercicios.
Otros recursos de aprendizaje y sitios web
·         Metacademy es un sitio muy interesante con un muy, muy buen resumen de aprendizaje profundo y toneladas de enlaces a temas específicos en este campo.
·         Denny Britz del equipo de Google Brain tiene un estupendo glosario completo de terminología de aprendizaje profundo  en su sitio web, WildML. También crea un boletín semanal que incluye enlaces a artículos tanto técnicos como no técnicos sobre aprendizaje automático y aprendizaje profundo.
Dónde practicar aprendizaje profundo
Una vez que tengas algunos de los fundamentos en tu haber, estarás preparado para incar el diente a algunos datos y ejercicios reales. Aquí hay algunos sitios web donde se puedes encontrar conjuntos de datos de muestra y pruebas de codificación:
·         Kaggle tiene una colección bastante extensa de conjuntos de datos que van desde puntos de regeneración de SF/Bay Area Pokemon Go  a empresas Y Combinator al gigante corpus de texto de los correos filtrados de Hillary Clinton.
·         UC Irvine tiene también una gran colección de conjuntos de datos para entrenar a redes neuronales profundas.
Dónde encontrar personas interesadas en aprendizaje profundo
Independientemente de si eres aficionado o tienes un doctorado en investigación sobre aprendizaje profundo, siempre es bueno onectar con la comunidad. Aquí se facilitan algunos sitios en los que se puede conocer a otras personas interesadas en aprendizaje profundo:
·         Deberías ver si en tu ciudad hay algún grupo de aprendizaje automático en sitios como Meetup.com.  En la mayoría de las ciudades importantes hay algo.
·         Hay varias comunidades en línea dedicadas al aprendizaje profundo y al análisis desde el puntos de vista de los datos:
o    Deeplearning.net es uno de los más más importantes en información relacionada con el aprendizaje profundo. Los recursos incluyen: una lista completa de lecturas, unalista de laboratorios de investigación sobre aprendizaje profundo, y una colección de demos inteligentes con los que se puede ver el funcionamiento de DL.
o    Datatau is una especie de Hacker News, pero específicamente enfocado a datos y a aprendizaje automático. Las secciones de comentarios no son muy activos pero hay nuevos enlaces que se publican con regularidad.
o    Hay un subreddit de aprendizaje automático que es bastante activo. (También tienen un wiki muy útil, incluso con más recursos.) El subrredit de aprendizaje profundo es un poco más tranquilo.
o    Hay un Hay un grupo de Google Plus sorprendentemente activo que se dedica al aprendizaje profundo y tiene más de 30000 miembros. (¿Quién sabía que la gente todavía utiliza Google Plus?)
Dónde conseguir trabajo en aprendizaje profundo
La buena noticia es que, básicamente, todo el mundo está contratando personas que comprenden la disciplina del aprendizaje profundo.
Probablemente tú ya conoce todos los lugares habituales en los que buscar: AngelList, el hilo mensual de noticias de hackers'Who is Hiring', el portal de empleo StackOverflow, y las docenas de sitios de búsqueda de trabajo en general.
Una de las pocas bolsas de trabajo especializadas en puestos de DL se encuentra enDeeplearning.net, y hay una bolsa de trabajo más general en Kaggle.
Estos son sin duda los puntos más importantes. La mayoría de las empresas que buscan talento DL / ML no están interesadas en que el solicitante pase por el aro de recursos humanos.
Qué hacer cuando se solicita un trabajo
Las empresas quieren ver si has hecho cosas interesantes antes solicitar el trabajo.
Si no has hecho nada, seguramente no te citarán para una entrevista, pero si has hecho algo, tendrás una oportunidad, sin importar cuál sea tu formación. Por supuesto, surge la cuestión de '¿qué cosas interesantes nos puedes mostrar?'
Si tu única experiencia es la elaboración de pequeños proyectos con los que has tenido un éxito relativo, eso probablemente no ayudará (aunque podría funcionar para grandes empresas, o empresas que necesitan realizar trabajos sencillos de aprendizaje automático). Si dices:
'Hice un análisis DNN de twitter desde cero, utilizando Teano, que puede predecir con una buena precisión el número de retweets que conseguirá un tweet:
·         esta es la precisión que he conseguido
·         este es el enlace al documento
·         este es un enlace a github para el código'
Con este tipo de cosas vas a conseguir entrar. A continuación, puedes hacer funcionar tu magia, mostrar tus apuntes de codificación y exponer tus habilidades en la resolución de problemas durante la entrevista. :)
Deepgram también está buscando candidatos, por lo que si estás interesado en la solución de problemas difíciles y la creación de herramientas interesantes, avísanos!
En la redacción de este artículo ha colaborado Jason D. Rowley.
Físico especialista en materia oscura y co-fundador de Deepgram, la firma  más segura del mundo en la búsqueda de audio.
San Francisco, CA http://www.deepgram.com