Mostrando entradas con la etiqueta Microsoft. Mostrar todas las entradas
Mostrando entradas con la etiqueta Microsoft. Mostrar todas las entradas

lunes, 15 de agosto de 2016

La brecha

Para un periodista, algo que le sucede a un conocido es una tendencia, y si ese algo le sucede a un segundo conocido entonces se convierte en una tendencia confirmada. Hoy quiero hablarles de una tendencia confirmada según estos estándares que he detectado recientemente. Desconozco si se trata de un fenómeno real o una ilusión producto de la pequeña lente a través de la cual observo el mundo. Dos son mis fuentes de información en este caso. En primer lugar, la alta rotación de personal que hay en la empresa para la que trabajo. En segundo lugar, el hecho de que por sucesos imprevistos me he visto en la posición de entrevistador por primera vez en mi vida.

Imagen de Sawtooth
Quizá hayan oído en las noticias que faltan trabajadores cualificados en el sector de tecnologías de la información. Desde luego, mucho se ha escrito sobre ello. Las empresas aseguran que no encuentran personal preparado para cubrir los puestos vacantes mientras que los empleados sostienen que las compañías buscan «unicornios» o no están dispuestas a pagar por lo que demandan. Si están más interesados en este asunto la empresa TEKsystems es autora de unos interesantes informes e infografías al respecto. Sin embargo, la brecha a la que yo me refiero no es aquella entre lo que las empresas piden y lo que los empleados ofrecen, sino la que atañe al diferente nivel técnico que los trabajadores de este sector parecen exhibir.

Mi experiencia me dice que la distribución de capacidades técnicas en esto de «la informática» sigue una distribución bimodal, es decir, hay un grueso de trabajadores que andan justos de conocimientos y destreza, y otro grupo menos numeroso de verdaderos cracks. He buscado un poco por internet y he visto que no soy el único que piensa así:

I believe this is almost trivially true: developing ordered sequences of events to carry out specific tasks--algorithm development--is a completely unnatural activity that many people are really bad at. The average person is mediocre at following instructions. Actually creating them is much more difficult. And our evolutionary history does not suggest that the ability to create ordered sequences of instructions to carry out specific tasks has ever been strongly selected for, so we'd expect it--like any weakly selected trait--to have a pretty broad distribution in the population.
The model demonstrates that a broad distribution of ability when applied against a skill that has a highly non-linear contribution to success will result in a bimodal distribution of results of the kind observed in introductory computing (CS1). This does not mean that there is a "gene for programming" any more than there is a "gene for height", but that one or a small number of skills that must be above a given threshold to succeed in CS1 can easily explain the data.
Quizá sea cierto que no todo el mundo está capacitado para trabajar en el sector de TI. Cuando decidí dejar la fisioterapia y dedicarme a los ordenadores lo primero que hube de hacer es buscar un sitio donde formarme. Acudí a una academia privada donde nada más recibirme me dieron una batería de tests psicotécnicos bajo la premisa de que para dedicarse a esto «hay que tener la cabeza amueblada de cierta manera». Completé los ejercicios y la chica que me atendió me dijo que yo valía para este sector. Cuando finalmente entré en la formación reglada noté que en aquella clase había dos tipos de estudiantes: aquellos que sacaban sobresaliente en todo y aquellos otros que aprobaban a duras penas o suspendían, siendo el primer grupo mucho menor que el segundo.

He encontrado lo mismo en el mundo laboral. Como les decía, en mi empresa entra y sale gente a buen ritmo. Muchos son estudiantes sin experiencia pero también se contrata a gente ya curtida. Obviamente, eso significa que la gente de personal hace muchas entrevistas, habiendo yo colaborado en algunas de ellas. En ambos casos observo la misma brecha: la mayor parte de quienes se dedican a esto andan muy justos de talento y ganas, mientras que una pequeña parte son gente apasionada de gran capacidad. La brecha se nota también a nivel mundial: hay compañías cuya nacionalidad ya te adelanta que va a ser muy duro trabajar con ellos y otras cuya procedencia es sinónimo de calidad y exigencia. No creo que me equivoque si digo que los mejores ingenieros de este mundillo se hallan mayormente en Estados Unidos y en Irlanda, sede europea de las grandes empresas del sector (Google, Apple, Linkedin, Facebook, Twitter y demás).

Es un fenómeno que me inquieta, y no solo porque yo me halle en el vagón de cola del talento, lo que hace que me pregunte si seguiré encontrando trabajo en el futuro. Me inquieta porque las grandes empresas luchan entre ellas por lo más granado del sector (los gigantes) ofreciéndoles buenos salarios, beneficios sociales, planes de carrera y un largo etcétera. Además lideran la innovación, ya que su tamaño les hace enfrentarse a problemas radicalmente nuevos (por ejemplo: reconocimiento de voz, texto e imágenes, velocidad en las comunicaciones u optimización del uso de energía eléctrica). Por tanto, es lógico que la gente quiera trabajar, digamos, en Google. ¿Y qué pasa cuando a alguien lo contratan en una de las grandes del sector? Que recibe la mejor formación, que sus compañeros son los mejores y que lleva a cabo proyectos de gran alcance y complejidad. Los mejores se hacen así aún mejores.

Por su parte, las empresas más modestas solo pueden permitirse peces del Mar Muerto, así que no tienen otro remedio que cubrir sus posiciones con empleados mediocres, lo cual hace que sea aún más difícil luchar con las grandes firmas, máxime si tenemos en cuenta que estos negocios tienden a invertir lo mínimo posible en su fuerza de trabajo. Sus asalariados apenas reciben formación (si es que llegan a recibir alguna) y el único plan de carrera disponible es llegar a ser mando intermedio. Los trabajadores se ven obligados a pasar de un empleo a otro sin relación con el anterior para poder ganar algo más de dinero, desperdiciando así su capital de carrera.

Todo esto lleva a un ecosistema en el que las grandes compañías crecen monopolizando el talento, las startups aparecen con la misma velocidad con la que desaparecen, y los empleados se mueven de un lado para otro sin cesar (ya sea por voluntad propia u obligados) como si fueran todos iguales, cual peones en un tablero de ajedrez.

No voy a molestarme en tratar de averiguar las causas de este fenómeno que se retroalimenta. Obviamente, el sistema educativo de cada país tiene mucho que ver, así como la vocación individual. En cualquier caso, mi mayor preocupación es saber cómo seguir siendo relevante en este entorno. Yo no soy lo suficientemente bueno como para trabajar en sitios como Netflix, Intel o Microsoft pero tengo amigos que sí. Sus historias me hacen darme cuenta de que existe un «primer mundo» y un «tercer mundo» laboral en este sector, separados por un abismo que cada vez se hace mayor.

lunes, 28 de marzo de 2016

Estupidez natural

Pedro Domingos es un profesor de la Universidad de Washington bastante conocido en el ámbito del machine learning, una disciplina que mezcla inteligencia artificial con matemáticas estadísticas. El año pasado se publicó su primer libro para el gran público, obra que terminé de leer recientemente. Quiso la casualidad que poco después tuviera el enfrentamiento entre Lee Sedol y AlphaGo. Sedol es el mejor jugador del mundo de Go, un juego de tablero para dos personas originario de China y muy popular en Japón. Investigadores de Google crearon el mencionado programa de ordenador con la intención de batirle, igual que sucedió en su día con Gary Kasparov y Deep Blue. Como probablemente ya sepan, el resultado final fue de cuatro victorias para AlphaGo y una para Sedol.

Foto de Sean Davis
Esta semana la inteligencia artificial ha vuelto a ser noticia debido a un experimento que hubo de interrumpirse prematuramente. El pasado miércoles la gente de Microsoft activó Tay, un programa de conversación por Twitter que tenía como fin hablar y entretener al público estadounidense de dieciocho a veinticuatro años a través de Twitter. Tay no solo imitaba la forma de expresarse de su población objetivo, sino que era capaz de aprender de las conversaciones que tenía, de manera que cuanto más hablaba más lista se volvía. O esa era la idea, al menos.

A estas alturas ya sabrán (o imaginarán) cómo acabó el experimento. En apenas veinticuatro horas, Tay se convirtió en una racista que publicó tuits apoyando a Hitler y negando el holocausto, además de abogar por la muerte de todas las feministas y otras lindeces por el estilo. Microsoft tuvo que detener el experimento y, de momento, si intentan hablar con Tay les dirá que está en su actualización anual con los ingenieros.

El año pasado hablamos bastante sobre inteligencia artificial. Como ya dijimos, actualmente los algoritmos nos rodean:

You may not know it, but machine learning is all around you. When you type a query into a search engine, it’s how the engine figures out which results to show you (and which ads, as well). When you read your e-mail, you don’t see most of the spam, because machine learning filtered it out. Go to Amazon.com to buy a book or Netflix to watch a video, and a machine-learning system helpfully recommends some you might like. Facebook uses machine learning to decide which updates to show you, and Twitter does the same for tweets. Whenever you use a computer, chances are machine learning is involved somewhere.
Existen muchísimos algoritmos de aprendizaje, y cada año aparecen cientos de ellos más. A grandes rasgos, todos se agrupan en cinco grandes familias o «tribus» (ibídem Domingos):

Symbolists view learning as the inverse of deduction and take ideas from philosophy, psychology, and logic. Connectionists reverse engineer the brain and are inspired by neuroscience and physics. Evolutionaries simulate evolution on the computer and draw on genetics and evolutionary biology. Bayesians believe learning is a form of probabilistic inference and have their roots in statistics. Analogizers learn by extrapolating from similarity judgments and are influenced by psychology and mathematical optimization.
Aunque no todos los algoritmos funcionan igual sí que tienen en común una fase inicial de entrenamiento en la que se alimenta al algoritmo con un conjunto de datos que contienen aquello que queremos aprender. Por ejemplo, se le pueden proporcionar correos electrónicos etiquetados según sean o no correo basura para que el algoritmo pueda aprender a distinguirlos. También se le pueden proporcionar fotografías para que sea capaz de reconocer caras. O, como el caso de Tay, los datos de entrenamiento pueden ser tuits con los que el algoritmo aprenda cómo se expresan los jóvenes y qué piensan.

Los algoritmos de aprendizaje intentan hacer generalizaciones a partir de los datos con los que son entrenados, pero están limitados al contenido de dichos datos. Si a nuestro programa de detección de spam no le damos ningún correo de ese tipo, será incapaz de detectarlos. De la misma forma, si los datos con los que entrenamos nuestro programa de conversación contienen mensajes xenófobos, eso será lo que aprenda y acabe diciendo.

Que los modelos de machine learning dependan de los datos con los que son entrenados significa que no son neutrales, sino que incorporan el sesgo de sus creadores. Imaginen que alguien quiere crear un robot economista para descubrir nuevas formas de mejor la economía, al estilo de los algoritmos que diseñan nuevas antenas o teoremas matemáticos. Para poder entrenarlo habría que proporcionarle un montón de datos sobre países cuyas economías van bien y otros que van mal. Ahí es donde empezarían los problemas, pues alcanzar un consenso sobre lo que es una economía «buena» es mucho más difícil de lo que parece. Por ejemplo, algunos economistas piensan que la inflación debería ser del dos por ciento (esa es la misión del BCE), otros creen que del cuatro, y otros piensan que la inflación es mala siempre. Una discusión similar podría tener lugar acerca del déficit fiscal o la tasa de paro. Por tanto, los datos de entrenamiento estarán sesgados de un modo u otro. Como resultado, nuestro robot también lo estará.

Esta falta de objetividad nos hace ver por qué es tan peliagudo dejar en manos de un robot ciertas tareas como, pongamos por caso, apretar el gatillo. En principio, sería posible enseñarle a una máquina la ética suficiente para que pudiera tomar sus propias decisiones (ibídem Domingos):

First, teach the robot to recognize the relevant concepts, for example with data sets of situations where civilians were and were not spared, armed response was and was not proportional, and so on. Then give it a code of conduct in the form of rules involving these concepts. Finally, let the robot learn how to apply the code by observing humans: the soldier opened fire in this case but not in that case. By generalizing from these examples, the robot can learn an end-to-end model of ethical decision making [...]. Once the robot’s decisions agree with a human’s as often as one human agrees with another, the training is complete, meaning the model is ready for download into thousands of robot brains. Unlike humans, robots don’t lose their heads in the heat of combat. If a robot malfunctions, the manufacturer is responsible. If it makes a wrong call, its teachers are.
Pero esto tendría el problema evidente puesto de manifiesto por el robot de Microsoft: los humanos no siempre son unos profesores de fiar. Si, verbigracia, nuestro robot aprendiera a disparar viendo vídeos de la policía estadounidense acabaría matando a mucha gente, con un sesgo negativo hacia los jóvenes negros.

Deberíamos, por tanto, entrenar al robot de forma supervisada. Sin embargo, ello nos lleva de nuevo al problema anterior, en el que no hay acuerdo sobre lo correcto y lo incorrecto. La moral es un área repleta de casos límite, zonas grises y principios contradictorios en el que no existen respuestas objetivamente correctas. Si entrenamos de forma supervisada al robot, dándole ejemplos y especificando si el disparo fue correcto o no, estaremos introduciendo el sesgo de nuestra propia ética (ibídem Domingos):

We can clean up the training data by including only the examples where, say, a panel of ethicists agrees that the soldier made the right decision, and the panelists can also inspect and tweak the model post-learning to their satisfaction. Agreement may be hard to reach, however, particularly if the panel includes all the different kinds of people it should. Teaching ethics to robots, with their logical minds and lack of baggage, will force us to examine our assumptions and sort out our contradictions. In this, as in many other areas, the greatest benefit of machine learning may ultimately be not what the machines learn but what we learn by teaching them.
A estas horas, los ingenieros de Tay todavía están implentando en ella algo de corrección política. En otras palabras, están censurando los mensajes que el robot puede emitir. Eso quiere decir que, en lo sucesivo, Tay no podrá aprender cualquier cosa como hacía hasta ahora, sino lo que encaje con sus prejuicios. Igualito que los seres humanos.