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
Muchas gracias a Colin Heilbut, Account Executive de Deepgram por conceder su permiso para publicar este artículo
22 DE SEPTIEMBRE DE 2016
Si 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 y 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.
·
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!
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