Hogar Verduras Workshop Innovador en la Quinta: Casos de Éxito Real de Phystechs. "A un gran científico de datos se le paga como el CEO de una empresa promedio". El experto en aprendizaje automático Yandex.Taxi habla sobre cómo los datos predicen el futuro y dan forma al mundo Ahora estamos activamente

Workshop Innovador en la Quinta: Casos de Éxito Real de Phystechs. "A un gran científico de datos se le paga como el CEO de una empresa promedio". El experto en aprendizaje automático Yandex.Taxi habla sobre cómo los datos predicen el futuro y dan forma al mundo Ahora estamos activamente

- ¿Puedes usar un ejemplo completamente primitivo para decir cómo funciona el aprendizaje automático?

Puedo. Hay un ejemplo de un método de aprendizaje automático llamado Árbol de decisión, una de las cosas más antiguas. Hagámoslo ahora. Digamos que una persona abstracta te invita a una cita. ¿Que es importante para ti?

En primer lugar, si lo conozco o no...

(Víctor escribe esto en la pizarra.)

…Si no lo sé, entonces necesito responder a la pregunta de si es atractivo o no.

Y si lo sabes, ¿no importa? Creo que lo descubrí, ¡es una rama de la friendzone! En general, escribo, si no sabe y no es atractivo, entonces la respuesta es "sí, no, probablemente". Si lo sabes, la respuesta es sí.

- ¡Si lo sé, también es importante!

No, será una sucursal de la zona de amigos.

Bien, entonces señalemos aquí si es interesante o no. Sin embargo, cuando no conoces a una persona, la primera reacción es la apariencia, con un amigo ya estamos viendo qué piensa y cómo.

Hagámoslo diferente. Ambicioso o no. Si es ambicioso, será difícil hacerse amigo de él, querrá más. Y los poco ambiciosos sufrirán.

(Víctor completa el árbol de decisiones).

Listo. Ahora puedes predecir con qué chico es más probable que tengas una cita. Por cierto, algunos servicios de citas predicen este tipo de cosas. Por analogía, puede predecir cuántos productos comprarán los clientes y dónde estarán las personas a esta hora del día.

Las respuestas pueden ser no solo "sí" y "no", sino también en forma de números. Si desea un pronóstico más preciso, puede hacer varios árboles de este tipo y promediarlos. Y con algo tan simple, puedes predecir el futuro.

Ahora imagine lo difícil que fue para las personas idear un esquema de este tipo hace doscientos años. ¡Absolutamente no! Este esquema no lleva ninguna ciencia espacial. Como fenómeno, el aprendizaje automático existe desde hace aproximadamente medio siglo. Ronald Fisher comenzó a predecir basándose en datos a principios del siglo XX. Tomó lirios y los distribuyó a lo largo y ancho de los sépalos y pétalos, por estos parámetros determinó el tipo de planta.

La industria del aprendizaje automático se ha utilizado activamente en las últimas décadas: máquinas poderosas y relativamente económicas que se necesitan para procesar grandes cantidades de datos, por ejemplo, para tales árboles de decisión, aparecieron no hace mucho tiempo. Pero sigue siendo impresionante: dibujamos estas cosas para cada tarea y las usamos para predecir el futuro.

- Bueno, definitivamente no es mejor que cualquier pulpo predictor de partidos de fútbol...

No, bueno, ¿dónde nos importan los pulpos? Aunque tenemos más variabilidad. Ahora, con la ayuda del aprendizaje automático, puede ahorrar tiempo, dinero y mejorar la comodidad de la vida. El aprendizaje automático venció al hombre hace unos años cuando se trataba de clasificar imágenes. Por ejemplo, una computadora puede reconocer 20 razas de terriers, pero una persona común no puede.

- ¿Y cuando analizas a los usuarios, cada persona es para ti un conjunto de números?

En términos generales, sí. Cuando trabajamos con datos, describimos todos los objetos, incluido el comportamiento del usuario, con un determinado conjunto de números. Y estos números reflejan las peculiaridades del comportamiento de las personas: con qué frecuencia toman un taxi, qué clase de taxi usan, a qué lugares suelen ir.

Ahora estamos construyendo activamente modelos parecidos para identificar grupos de personas con un comportamiento similar. Cuando introducimos un nuevo servicio o queremos promocionar uno antiguo, lo ofrecemos a aquellos que estén interesados.

Por ejemplo, aquí tenemos un servicio: dos asientos para niños en un taxi. Podemos enviar spam a todos con esta noticia, o podemos dirigirla solo a un determinado círculo de personas. A lo largo del año, hemos acumulado una cierta cantidad de usuarios que escribieron en los comentarios que necesitan dos asientos para niños. Los encontramos y gente como ellos. Convencionalmente, se trata de personas mayores de 30 años que viajan regularmente y son amantes de la cocina mediterránea. Aunque, por supuesto, hay muchos más signos, este soy yo para un ejemplo.

- ¿Incluso esas sutilezas?

Este es un asunto sencillo. Todo se calcula mediante consultas de búsqueda.

¿Y en la aplicación puede funcionar de alguna manera? Por ejemplo, ¿sabes que soy un mendigo y me suscribo a grupos como "Cómo sobrevivir con 500 rublos al mes" -solo me ofrecen autos baratos maltratados, me suscribo a las noticias de SpaceX- y recibo Tesla de vez en cuando?

Puede funcionar de esta manera, pero esas cosas no están aprobadas en Yandex, porque esto es discriminación. Cuando personaliza un servicio, es mejor ofrecer no el más aceptable, sino el mejor disponible y lo que le gusta a la persona. Y la distribución según la lógica “este necesita un auto mejor, y este necesita uno menos bueno” es mala.


Todos tienen deseos pervertidos y, a veces, no es necesario encontrar una receta para un plato mediterráneo, sino, por ejemplo, imágenes sobre la coprofilia. ¿Funcionará la personalización en este caso también?

Siempre hay un modo privado.

Si no quiero que nadie se entere de mis intereses o, digamos, los amigos vienen a mí y quieren ver algo de basura, entonces es mejor usar el modo de incógnito.

También puede decidir qué servicio de empresa usar, por ejemplo, Yandex o Google.

- ¿Hay una diferencia?

Problema complejo. No sé los demás, pero Yandex es estricto con la protección de datos personales. Supervisar especialmente a los empleados.

- Es decir, si rompí con un chico, ¿no podré averiguar si fue a esta dacha o no?

Incluso si trabajas para Yandex. Esto, por supuesto, es triste, pero sí, no será posible averiguarlo. La mayoría de los empleados ni siquiera tienen acceso a estos datos. Todo está encriptado. Es simple: no puedes espiar a las personas, es información personal.

Por cierto, tuvimos un caso interesante sobre el tema de romper con chicos. Cuando hicimos la predicción del punto "B", el punto de destino en un taxi, introdujimos pistas. Aquí mira.

(Víctor ingresa a la aplicación Yandex.Taxi).

Por ejemplo, el taxi cree que estoy en casa. Me ofrece ir al trabajo o a la Universidad RUDN (doy conferencias allí como parte del curso sobre aprendizaje automático Minería de datos en acción). Y en algún momento, mientras desarrollábamos estas sugerencias, nos dimos cuenta de que no necesitamos comprometer al usuario. Punto "B" que cualquiera puede ver. Por estas razones, nos negamos a ofrecer plazas por similitud. Y luego te sientas en un lugar decente con gente decente, pides un taxi y ahí te escriben: “¡Mira, todavía no has estado en este bar!”.

- ¿Qué son los puntos azules que parpadean en tu mapa?

Estos son puntos de recogida. Estos puntos muestran dónde es más conveniente llamar a un taxi. Después de todo, puede llamar a un lugar donde será bastante inconveniente llamar. Pero en general, puedes llamar a cualquier lugar.

- Sí, en cualquiera. De alguna manera volé dos cuadras con él.

Recientemente, ha habido varias dificultades con el GPS, lo que llevó a varias situaciones divertidas. Las personas, por ejemplo, en Tverskaya, fueron trasladadas por navegación a través del Océano Pacífico. Como puede ver, a veces hay fallas y más de dos bloques.

- Y si reinicia la aplicación y vuelve a tocar, el precio cambia en unos pocos rublos. ¿Por qué?

Si la demanda supera la oferta, el algoritmo genera automáticamente un multiplicador; esto ayuda a aquellos que necesitan salir lo antes posible para usar un taxi, incluso durante los períodos de alta demanda. Por cierto, utilizando el aprendizaje automático, puede predecir dónde habrá más demanda en, por ejemplo, una hora. Esto nos ayuda a decirles a los conductores dónde habrá más pedidos para que la oferta coincida con la demanda.

- ¿No crees que Yandex.Taxi pronto acabará con todo el mercado de taxis?

Creo que no. Estamos a favor de la sana competencia y no le tenemos miedo.

Yo mismo, por ejemplo, utilizo diferentes servicios de taxi. El tiempo de espera es importante para mí, así que busco en varias aplicaciones qué taxi llegará más rápido.


- Te uniste a Uber. ¿Para qué?

No es mi lugar comentar. Creo que unirnos es una decisión profundamente sensata.

En Alemania, un tipo instaló una bañera en drones y voló por una hamburguesa. ¿Has pensado que es hora de dominar el espacio aéreo?

No sé acerca de los espacios de aire. Seguimos las noticias con el espíritu de "Uber lanzó botes de taxi", pero no puedo decir nada sobre el aire.

¿Qué pasa con los taxis con drones?

Aquí hay un punto interesante. Los estamos desarrollando, pero tenemos que pensar en cómo usarlos exactamente. Todavía es demasiado pronto para predecir cómo y cuándo aparecerán en las calles, pero estamos trabajando arduamente para desarrollar tecnología para un automóvil totalmente autónomo, donde no se necesita un conductor humano en absoluto.

- ¿Hay alguna preocupación de que el software de los drones pueda ser pirateado para controlar la máquina de forma remota?

Los riesgos están siempre y en todas partes donde hay tecnologías y artilugios. Pero junto con el desarrollo de la tecnología, se está desarrollando otra dirección: su protección y seguridad. Todos los que están involucrados en el desarrollo de la tecnología de una forma u otra están trabajando en los sistemas de protección.

- ¿Qué datos de usuario recopila y cómo los protege?

Recopilamos datos de uso no identificados, como dónde, cuándo y dónde viajó. Todo lo importante es hash.

- ¿Crees que los drones reducirán el número de puestos de trabajo?

Creo que solo se hará más grande. Aún así, estos drones también necesitan mantenimiento de alguna manera. Esto, por supuesto, es una situación un poco estresante, cambiar su especialidad, pero ¿qué puede hacer?

- Gref dice en cada una de sus conferencias que una persona cambiará su profesión al menos tres veces dramáticamente.

No puedo nombrar ninguna especialidad que dure para siempre. Un desarrollador no trabaja en el mismo lenguaje y con las mismas tecnologías toda su vida. En todas partes hay que reconstruir. Con el aprendizaje automático, puedo sentir claramente cómo los chicos que tienen seis años menos que yo son mucho más rápidos que yo. Al mismo tiempo, las personas de 40 o 45 años lo sienten aún con más fuerza.

¿Ya no importa la experiencia?

Obras de teatro. Pero los métodos cambian, puedes llegar a un área donde, por ejemplo, no se usó el aprendizaje profundo, trabajas allí por un tiempo, luego se introducen métodos de aprendizaje profundo en todas partes y no entiendes nada al respecto. Y eso es todo. Tu experiencia solo puede ser útil en materia de planificación de equipos, y no siempre.

- Y tu profesión es científico de datos, ¿tiene demanda?

La demanda de científicos de datos se está disparando. Es obvio que ahora es un período de locura. Gracias a Dios, la cadena de bloques ayudó un poco a calmar esta exageración. Los especialistas en blockchain se desmantelan aún más rápido.

Pero muchas empresas ahora piensan que si invierten en aprendizaje automático, sus jardines florecerán de inmediato. Esto no es verdad. El aprendizaje automático debe resolver problemas específicos, y no solo existir.

Hay momentos en que un banco quiere hacer un sistema de servicio de recomendación para los usuarios. Preguntamos: “¿Crees que se justificará económicamente?” Ellos responden: “Sí, no nos importa. Hazlo. Todo el mundo tiene sistemas de recomendación, estaremos en tendencia”.

El dolor es que algo realmente útil para los negocios no se puede hacer en un día. Tenemos que ver cómo se entrenará el sistema. Y siempre trabaja con errores al principio, puede que le falten algunos datos durante el entrenamiento. Corrige los errores, luego los vuelve a corregir e incluso rehace todo. Después de eso, debe configurarlo para que el sistema funcione en producción, para que sea estable y escalable, aún es tiempo. Como resultado, un proyecto lleva seis meses, un año o más.


Si observa los métodos de aprendizaje automático como una caja negra, puede pasar fácilmente por alto cómo comienzan a suceder algunas tonterías. Hay una historia barbuda. Los militares pidieron desarrollar un algoritmo que pueda usarse para analizar si hay un tanque en la imagen o no. Los investigadores hicieron, probaron, la calidad es excelente, todo es genial, se lo dieron a los militares. Los militares vienen y dicen que nada funciona. Los científicos comienzan a entender con nerviosismo. Resulta que en todas las fotos con el tanque, que trajeron los militares, había una marca de verificación en la esquina con un bolígrafo. El algoritmo aprendió perfectamente a encontrar una garrapata, no sabía nada del tanque. Naturalmente, no había marcas de verificación en las nuevas imágenes.

Conocí niños que desarrollan sus propios sistemas de diálogo. ¿Alguna vez has pensado que necesitas cooperar con los niños?

Llevo mucho tiempo asistiendo a todo tipo de eventos para escolares, dando charlas sobre aprendizaje automático. Y por cierto, uno de los temas me lo enseñó un alumno de décimo grado. Estaba absolutamente segura de que mi historia sería buena e interesante, orgullosa de mí misma, comencé a transmitir y la chica dijo: "Ah, queremos minimizar esto". Miro y pienso, pero realmente, por qué, y la verdad se puede minimizar, y no hay nada especial que probar aquí. Ya han pasado varios años, ahora escucha nuestras conferencias como estudiante de Phystech. Yandex, por cierto, tiene un Yandex.Lyceum, donde los escolares pueden obtener conocimientos básicos de programación de forma gratuita.

- Asesorar universidades y facultades donde ahora se enseña aprendizaje automático.

Hay Instituto de Física y Tecnología de Moscú, facultades de FIVT y FUPM. También hay un maravilloso departamento de informática en HSE y aprendizaje automático en la Universidad Estatal de Moscú. Bueno, ahora puedes escuchar nuestro curso en la Universidad RUDN.

Como dije, esta profesión está en demanda. Durante mucho tiempo, las personas que recibieron educación técnica se dedicaron a cosas completamente diferentes. El aprendizaje automático es un gran ejemplo, cuando todas las cosas que aprendieron las personas con formación técnica ahora son directamente necesarias, útiles y bien pagadas.

- ¿Que bien?

Nombra la cantidad.

- 500 mil por mes.

Puede, simplemente no ser un científico de datos ordinario. Pero en algunas empresas, un muy, muy aprendiz puede recibir 50 mil por un trabajo simple.Hay una distribución muy amplia. En general, el salario de un científico de datos genial se puede comparar con el salario del director ejecutivo de una empresa promedio. En muchas empresas, además del salario, muchos beneficios recaen sobre el empleado, y si está claro que la persona no vino a escribir una buena marca en el currículum, sino a trabajar realmente, entonces todo estará bien con a él.

Ha pasado casi un año desde el inicio de un tema inusual en la FIFT: un taller innovador. Su esencia es la creación de nuevas empresas de TI por equipos de estudiantes bajo la guía de mentores experimentados. No resultó mal: gracias al curso, alguien pasó parte del verano en el valle de Kremieva, alguien recibió una subvención de 800,000 rublos para el desarrollo del proyecto, y ABBYY está lista para comprarle el proyecto por completo a alguien. ¡Y estos no son todos los resultados del taller!

A principios de 2011, los estudiantes de tercer año de la FIVT se reunieron en el Salón de Actos y les dijeron que durante el próximo año necesitarán crear su propia startup. Los estudiantes tomaron esta idea de manera ambigua: no estaba claro cómo hacerlo y la responsabilidad era inusual; después de todo, era necesario crear un negocio de tecnología, y no solo otro proyecto educativo. Esto es lo que opina Victor Kantor, ganador de la Olimpiada Estudiantil de Física del MIPT, estudiante del Departamento de Yandeska:

Cuando elegí la FIVT al ingresar, esperaba que tuviéramos algo similar. Así que me alegro de no haber esperado en vano. Durante el año, se sintió que el curso aún se estaba formando, gran parte es nuevo, muchos temas son controvertidos no solo para los estudiantes, sino también para los organizadores, pero en general, creo que las tendencias son positivas. Me gustó este curso.

Para facilitar el trabajo de los estudiantes, se invitó a varios curadores a ofrecer sus ideas para construir negocios innovadores. Entre ellos había personas completamente diferentes: desde estudiantes de último año y estudiantes graduados del Instituto de Física y Tecnología de Moscú hasta el asesor de innovación de Ernst & Young, Yuri Pavlovich Ammosov (fue el director de todo el curso) y Mikhail Batin, involucrado en medicina regenerativa y vida. problemas de extensión. Como resultado, los físicos eligieron las ideas que les resultaban más interesantes, los curadores se unieron a los equipos y comenzó un trabajo duro pero emocionante.

En casi un año que ha pasado desde entonces, los chicos se han enfrentado a muchos problemas, algunos de los cuales se han resuelto. Ahora puedes evaluar sus resultados: a pesar de las dificultades, los muchachos lograron. Los estudiantes del MIPT (además de la Facultad de Física, se sumaron al proceso algunos estudiantes de la FAPF y otras facultades) lograron preparar varios proyectos bastante interesantes y viables:

Askeroid (anteriormente Ask Droid) - búsqueda de teléfonos inteligentes ( Anastasia Uryasheva)

Una aplicación para Android que te permite buscar cómodamente en una gran cantidad de motores de búsqueda. Algunos expertos mostraron interés en el desarrollo y, como resultado, Anastasia pasó todo el verano pasado en una de las incubadoras más famosas de Silicon Valley: Plug & Play. aprender los conceptos básicos del emprendimiento tecnológico y hablar con expertos internacionales de capital de riesgo.

1minute.ru - un minuto para siempre (Lev Grunin)

Este proyecto permite que cualquier persona pueda realizar obras de caridad de forma sencilla, rápida y totalmente gratuita. El modelo es simple: los anunciantes ofrecen un determinado conjunto de actividades en el sitio, los usuarios participan voluntariamente en ellas, todo el dinero publicitario se transfiere a una fundación benéfica. Una semana después del lanzamiento, el proyecto ha reunido a más de 6.500 usuarios y no se va a quedar ahí. Como resultado, gracias a Lev y su equipo, 600 niños de orfanatos recibirán preciados regalos de Santa Claus para el Año Nuevo. ¿Ya has dedicado un minuto a una buena acción?

Escritorio integrado: una computadora en su teléfono (Alexey Vukolov)

Una aplicación que le permite combinar las capacidades de una computadora y la movilidad de un teléfono en un solo caso es un producto extremadamente útil para personas ocupadas que a menudo realizan viajes de negocios. Basta con instalarlo en un teléfono inteligente, y el usuario podrá "obtener" su propia computadora en cualquier hotel, oficina y, de hecho, donde pueda encontrar un monitor (también es adecuado un televisor), un teclado y un mouse . El proyecto recibió una subvención para el desarrollo de la idea y se presentó en la exposición Technovation Cup, y el equipo ya está comprando activamente equipos con el dinero recibido. El fabricante estadounidense de procesadores MIPS está sumamente interesado en el desarrollo.

Smart Tagger - búsqueda semántica a través de documentos (Viktor Kantor)

¿Qué pasa si recuerdas que había una carta muy importante en algún lugar del buzón que hablaba sobre el último episodio de Big Bang Theory, pero no recuerdas ninguna de las palabras clave del texto? Yandex y la búsqueda de Google son impotentes. El desarrollo de Smart Tagger vendrá al rescate: un programa "inteligente" que utiliza la búsqueda semántica le proporcionará todos los textos, cuyo significado está entrelazado con la popular serie. El proyecto ganó una beca en la U.M.N.I.K. cantidad total de 400.000 rublos!

MathOcr - reconocimiento de fórmulas (Viktor Prun)

ABBYY propuso una tarea interesante para la implementación: crear un programa que reconozca fórmulas matemáticas de cualquier complejidad. Los estudiantes de FIVT, habiendo cooperado con fopfs interesados, completaron la tarea: el módulo realmente reconoce fórmulas escaneadas de libros de texto sobre matan o física. Resultado: ABBYY está lista para comprar este producto por mucho dinero.

Como parte del proyecto ABC AI junto con MIPT, ya hemos escrito sobre los llamados, que le permiten "crecer" programas de acuerdo con los principios y leyes de la evolución darwiniana. Sin embargo, aunque tal enfoque de la inteligencia artificial es, por supuesto, un "invitado del futuro". Pero, ¿cómo se crean hoy en día los sistemas de inteligencia artificial? ¿Cómo se entrenan? Viktor Kantor, profesor titular del Departamento de Algoritmos y Tecnologías de Programación del Instituto de Física y Tecnología de Moscú, jefe del Grupo de Análisis de Comportamiento de Usuarios de Yandex Data Factory, nos ayudó a resolver esto.

Según un informe reciente de la firma de investigación Gartner, que actualiza regularmente su ciclo de madurez tecnológica, de todas las TI, el aprendizaje automático está en la cima de las expectativas en la actualidad. Esto no es sorprendente: en los últimos años, el aprendizaje automático se ha salido de la esfera de interés de un estrecho círculo de matemáticos y especialistas en teoría de algoritmos y ha penetrado primero en el vocabulario de los empresarios de TI y luego en el mundo. de la gente común. Ahora que existen las redes neuronales con su "magia" especial, cualquiera que haya usado la aplicación Prisma, buscado canciones usando Shazam o visto imágenes pasadas a través de DeepDream lo sabe.

Sin embargo, una cosa es usar la tecnología y otra entender cómo funciona. Palabras comunes como "una computadora puede aprender si le das una pista" o "una red neuronal consta de neuronas digitales y está organizada como un cerebro humano" pueden ayudar a alguien, pero más a menudo solo confunden la situación. Quienes van a dedicarse seriamente al aprendizaje de las matemáticas no necesitan textos populares: existen libros de texto y excelentes cursos en línea para ellos. Intentaremos ir por el camino medio: explicar cómo ocurre realmente el aprendizaje en la tarea más simple posible y luego mostrar cómo se puede aplicar el mismo enfoque para resolver problemas realmente interesantes.

Cómo aprenden las máquinas

Para empezar, para entender exactamente cómo ocurre el aprendizaje automático, definamos los conceptos. Como lo define uno de los pioneros en el campo, Arthur Samuel, el aprendizaje automático se refiere a métodos que "permiten que las computadoras aprendan sin ser programadas directamente". Hay dos clases amplias de métodos de aprendizaje automático: aprendizaje supervisado y aprendizaje no supervisado. El primero se usa cuando, por ejemplo, necesitamos enseñarle a la computadora a buscar fotos con la imagen de gatos, el segundo, cuando necesitamos que la máquina, por ejemplo, pueda agrupar noticias en historias de forma independiente, como sucede en servicios como Yandex.News o Google News. Es decir, en el primer caso, estamos ante una tarea que implica la existencia de una respuesta correcta (el gato de la foto está ahí o no), en el segundo, no hay una única respuesta correcta, sino que hay diferentes maneras de resolver el problema. Nos centraremos en la primera clase de problemas como los más interesantes.

Entonces, necesitamos enseñarle a la computadora a hacer algunas predicciones. Y, preferiblemente, lo más preciso posible. Las predicciones pueden ser de dos tipos: debe elegir entre varias opciones de respuesta (¿hay un gato en la imagen o no? Esta es la elección de una opción entre dos, la capacidad de reconocer letras en las imágenes es la elección de una opción entre varias docenas, etc.), o hacer una predicción numérica. Por ejemplo, predecir el peso de una persona en función de su altura, edad, número de calzado, etc. Estos dos tipos de problemas solo parecen diferentes; de hecho, se resuelven casi de la misma manera. Tratemos de entender cómo.

Lo primero que necesitamos para hacer un sistema de predicción es recopilar la llamada muestra de entrenamiento, es decir, datos sobre el peso de las personas en la población. El segundo es decidir sobre un conjunto de características, sobre la base de las cuales podemos sacar conclusiones sobre el peso. Está claro que uno de los más "fuertes" de estos signos será el crecimiento de una persona, por lo tanto, como primera aproximación, basta con tomarlo solo. Si el peso depende linealmente de la altura, entonces nuestra predicción será muy simple: el peso de una persona será igual a su altura multiplicada por algún coeficiente, más algún valor constante, que se escribe mediante la fórmula más simple y \u003d kx + b. Todo lo que tenemos que hacer para entrenar una máquina para predecir el peso de una persona es encontrar de alguna manera los valores correctos para k y b.

La belleza del aprendizaje automático es que incluso si la adicción que estamos estudiando es muy compleja, esencialmente hay pocos cambios en nuestro enfoque en sí. Todavía estaremos lidiando con la misma regresión.

Digamos que la altura de una persona no afecta el peso de una persona linealmente, sino hasta el tercer grado (lo que generalmente se espera, porque el peso depende del volumen del cuerpo). Para tener en cuenta esta dependencia, simplemente introducimos un término más en nuestra ecuación, a saber, el tercer grado de crecimiento con su propio coeficiente, obteniendo y=k 1 x+k 2 x 3 +b. Ahora, para entrenar la máquina, necesitaremos encontrar no dos, sino tres valores (k 1, k 2 y b). Digamos que queremos tener en cuenta en nuestra predicción el tamaño de los zapatos de una persona, su edad, el tiempo que pasó viendo la televisión y la distancia desde su apartamento hasta la tienda de comida rápida más cercana. No hay problema: simplemente ponemos estas características como términos separados en la misma ecuación.

Lo más importante es crear una forma universal de encontrar los coeficientes requeridos (k 1 , k 2 , … k n). Si lo es, nos será casi indiferente qué características usar para la predicción, porque la propia máquina aprenderá a dar mucho peso a las características importantes y poco a las características sin importancia. Afortunadamente, este método ya se ha inventado y casi todo el aprendizaje automático funciona con éxito en él: desde los modelos lineales más simples hasta los sistemas de reconocimiento facial y los analizadores de voz. Este método se llama descenso de gradiente. Pero antes de explicar cómo funciona, debemos hacer una pequeña digresión y hablar de redes neuronales.

Redes neuronales

En 2016, las redes neuronales entraron en la agenda de la información con tanta fuerza que casi se identificaron con cualquier aprendizaje automático y TI avanzada en general. Hablando formalmente, esto no es cierto: las redes neuronales no siempre se utilizan en el aprendizaje de las matemáticas, existen otras tecnologías. Pero en general, por supuesto, tal asociación es comprensible, porque son los sistemas basados ​​​​en redes neuronales los que ahora dan los resultados más "mágicos", como la capacidad de buscar una persona por foto, la aparición de aplicaciones que transfieren la estilo de una imagen a otra, o sistemas para generar textos a la manera de hablar de una determinada persona.

La forma en que se organizan las redes neuronales, ya lo sabemos. Aquí solo quiero enfatizar que la fuerza de las redes neuronales en comparación con otros sistemas de aprendizaje automático radica en su multicapa, pero esto no las convierte en algo fundamentalmente diferente en términos de la forma en que funcionan. La superposición realmente le permite encontrar funciones y dependencias comunes muy abstractas en conjuntos complejos de funciones, como píxeles en una imagen. Pero es importante comprender que, en términos de principios de aprendizaje, una red neuronal no es radicalmente diferente de un conjunto de fórmulas de regresión lineal convencionales, por lo que el mismo método de descenso de gradiente también funciona muy bien aquí.

La “fuerza” de la red neuronal radica en la presencia de una capa intermedia de neuronas que combinan los valores de la capa de entrada sumando. Debido a esto, las redes neuronales pueden encontrar características de datos muy abstractas que son difíciles de reducir a fórmulas simples como una relación lineal o cuadrática.

Vamos a explicar con un ejemplo. Nos decidimos por una predicción en la que el peso de una persona depende de su altura y la altura al cubo, que se expresa mediante la fórmula y=k 1 x+k 2 x 3 +b. Con algo de estiramiento, pero de hecho, incluso esa fórmula puede llamarse red neuronal. En ella, como en una red neuronal convencional, hay una primera capa de “neuronas”, que también es una capa de características: estas son x y x 3 (bueno, la “neurona única” que tenemos en mente y para la cual el coeficiente b es el responsable). La capa superior, o resultante, está representada por una sola "neurona" y, es decir, el peso previsto de la persona. Y entre la primera y la última capa de "neuronas" hay conexiones, cuya fuerza o peso está determinado por los coeficientes k 1 , k 2 y b. Entrenar esta "red neuronal" significa simplemente encontrar estos mismos coeficientes.

La única diferencia con las redes neuronales "reales" aquí es que no tenemos una sola capa intermedia (u oculta) de neuronas, cuya tarea es combinar características de entrada. La introducción de dichas capas permite no inventar posibles dependencias entre las funciones disponibles, sino confiar en sus combinaciones ya existentes en la red neuronal. Por ejemplo, la edad y el tiempo promedio de televisión pueden tener un efecto sinérgico en el peso de una persona, pero, al tener una red neuronal, no tenemos que saber esto de antemano e ingresar su producto en la fórmula. Definitivamente habrá una neurona en la red neuronal que combine la influencia de dos características cualquiera, y si esta influencia es realmente notable en la muestra, luego de entrenar esta neurona automáticamente recibirá un gran peso.

descenso de gradiente

Entonces, tenemos un conjunto de ejemplos de entrenamiento con datos conocidos, es decir, una tabla con el peso de una persona medido con precisión y alguna hipótesis de dependencia, en este caso, la regresión lineal y=kx+b. Nuestra tarea es encontrar los valores correctos de k y b, y no manualmente, sino automáticamente. Y preferiblemente, un método universal que no dependa de la cantidad de parámetros incluidos en la fórmula.

Hacer esto, en general, es fácil. La idea principal es crear una función que mida el nivel de error total actual y "torcer" los coeficientes para que el nivel de error total disminuya gradualmente. ¿Cómo hacer que el nivel de error baje? Necesitamos ajustar nuestros parámetros en la dirección correcta.

Imagine nuestros dos parámetros que estamos buscando, los mismos k y b, como dos direcciones en el plano, como los ejes norte-sur y oeste-este. Cada punto en tal plano corresponderá a un cierto valor de los coeficientes, una cierta relación específica entre altura y peso. Y para cada uno de esos puntos en el plano, podemos calcular el nivel total de errores que da esta predicción para cada uno de los ejemplos de nuestra muestra.

Resulta algo así como una altura específica en el plano, y todo el espacio circundante comienza a parecerse a un paisaje montañoso. Las montañas son puntos donde la tasa de error es muy alta, los valles son lugares donde hay menos errores. Está claro que entrenar nuestro sistema significa encontrar el punto más bajo del suelo, el punto donde la tasa de error es mínima.

¿Cómo puedes encontrar este punto? La forma más correcta es moverse hacia abajo todo el tiempo desde el punto donde originalmente terminamos. Así que tarde o temprano llegaremos a un mínimo local, un punto por debajo del cual no hay nada en las inmediaciones. Además, es deseable tomar pasos de diferentes tamaños: cuando la pendiente es empinada, puede caminar más ancho, cuando la pendiente es pequeña, es mejor acercarse sigilosamente al mínimo local "de puntillas", de lo contrario puede deslizarse.

Así es como funciona el descenso de gradiente: cambiamos los pesos de las características en la dirección de la mayor caída en la función de error. Los cambiamos iterativamente, es decir, con un cierto paso, cuyo valor es proporcional a la inclinación de la pendiente. Curiosamente, con un aumento en la cantidad de características (agregando un cubo de la altura, la edad, el número de zapatos de una persona, etc.), de hecho, nada cambia, es solo que nuestro paisaje no se vuelve bidimensional, sino multidimensional.

La función de error se puede definir como la suma de los cuadrados de todas las desviaciones que la fórmula actual permite para las personas cuyo peso ya conocemos con exactitud. Tomemos algunas variables aleatorias k y b, por ejemplo 0 y 50. Entonces el sistema nos predecirá que el peso de cada persona en la muestra es siempre 50 kilogramos y=0×x+50 En el gráfico, tal dependencia será parece una línea recta paralela a la horizontal. Está claro que esta no es una muy buena predicción. Ahora tomemos la desviación en el peso de este valor predicho, elévelo al cuadrado (para que también se tengan en cuenta los valores negativos) y resuma: este será el error en este punto. Si está familiarizado con el comienzo del análisis, incluso puede aclarar que la dirección de la mayor caída está dada por la derivada parcial de la función de error con respecto a k y b, y el paso es un valor que se elige de consideraciones prácticas: los pasos pequeños toman mucho tiempo para calcular, y los grandes pueden llevar a que nos perdamos el mínimo.

De acuerdo, pero ¿y si no solo tenemos una regresión compleja con muchas características, sino una red neuronal real? ¿Cómo aplicamos el descenso de gradiente en este caso? Resulta que el descenso de gradiente funciona exactamente igual con una red neuronal, solo que el entrenamiento se produce 1) por etapas, de capa a capa, y 2) gradualmente, de un ejemplo de la muestra a otro. El método utilizado aquí se llama retropropagación y fue descrito de forma independiente en 1974 por el matemático soviético Alexander Galushkin y el matemático de la Universidad de Harvard Paul John Webros.

Aunque para una presentación rigurosa del algoritmo será necesario escribir derivadas parciales (como, por ejemplo, ), en un nivel intuitivo, todo sucede de manera bastante simple: para cada uno de los ejemplos de la muestra, tenemos una predicción determinada en la salida de la red neuronal. Teniendo la respuesta correcta, podemos restar la respuesta correcta de la predicción y así obtener un error (más precisamente, un conjunto de errores para cada neurona de la capa de salida). Ahora necesitamos transferir este error a la capa anterior de neuronas, y cuanto más contribuyó esta neurona particular de esta capa al error, más necesitamos reducir su peso (de hecho, nuevamente estamos hablando de tomar una derivada parcial, de transitar por los máximos desniveles de nuestro paisaje imaginario). Cuando hayamos hecho esto, se debe repetir el mismo procedimiento para la siguiente capa, moviéndonos en sentido contrario, es decir, desde la salida de la red neuronal hacia la entrada.

Pasando a través de la red neuronal de esta manera con cada ejemplo de la muestra de entrenamiento y "torciendo" los pesos de las neuronas en la dirección correcta, finalmente deberíamos obtener una red neuronal entrenada. El método de retropropagación es una modificación simple del método de descenso de gradiente para redes neuronales multicapa y, por lo tanto, debería funcionar para redes neuronales de cualquier complejidad. Decimos "debería" aquí porque, de hecho, hay casos en los que el descenso de gradiente falla y no le permite hacer una buena regresión o entrenar una red neuronal. Es útil saber qué causa tales dificultades.

Dificultades de descenso de gradiente

Elección incorrecta del mínimo absoluto. El método de descenso de gradiente ayuda a encontrar un extremo local. Pero no siempre podemos usarlo para alcanzar el mínimo o máximo global absoluto de la función. Esto sucede porque al movernos por el antigradiente, nos detenemos en el momento en que alcanzamos el primer mínimo local que encontramos, y el algoritmo deja de funcionar.

Imagina que estás parado en la cima de una montaña. Si desea descender a la superficie más baja del área, el método de descenso en pendiente no siempre lo ayudará, porque el primer punto bajo en su camino no es necesariamente el punto más bajo. Y si en la vida puede ver que vale la pena subir un poco y luego puede bajar aún más, entonces el algoritmo simplemente se detendrá en tal situación. A menudo, esta situación se puede evitar eligiendo el paso correcto.

Elección del paso equivocado. El método de descenso de gradiente es un método iterativo. Es decir, nosotros mismos debemos elegir el tamaño del paso, la velocidad con la que descendemos. Al elegir un paso demasiado grande, podemos volar más allá del extremo que necesitamos y no encontrar el mínimo. Esto puede ocurrir si te enfrentas a una bajada muy pronunciada. Y elegir un paso demasiado pequeño amenaza con una operación extremadamente lenta del algoritmo si nos encontramos en una superficie relativamente plana. Si volvemos a imaginar que estamos en la cima de una montaña empinada, entonces puede darse una situación en la que, debido a un descenso muy pronunciado cerca del mínimo, simplemente la sobrevolemos.

Parálisis de la red. A veces sucede que el método de descenso de gradiente no logra encontrar un mínimo. Esto puede suceder si hay áreas planas a ambos lados del mínimo: el algoritmo, al llegar a un área plana, reduce el paso y finalmente se detiene. Si, parado en la cima de una montaña, decide mudarse a su casa en las tierras bajas, el camino puede ser demasiado largo si accidentalmente deambula por un área muy plana. O bien, si hay “pendientes” prácticamente empinadas en los bordes de las áreas planas, el algoritmo, al elegir un paso muy grande, saltará de una pendiente a otra, prácticamente sin moverse al mínimo.

Todos estos puntos complejos deben tenerse en cuenta al diseñar un sistema de aprendizaje automático. Por ejemplo, siempre es útil realizar un seguimiento exacto de cómo cambia la función de error con el tiempo, ya sea que caiga con cada nuevo ciclo o marca el tiempo, cómo cambia la naturaleza de esta caída según el cambio en el tamaño del paso. Para evitar alcanzar un mínimo local incorrecto, puede ser útil comenzar desde diferentes puntos elegidos al azar en el paisaje; entonces, la probabilidad de quedarse atascado es mucho menor. Hay muchos más secretos grandes y pequeños para lidiar con el descenso de gradientes, y hay formas de aprendizaje más exóticas que se parecen poco al descenso de gradientes. Esto, sin embargo, ya es un tema para otra conversación y un artículo aparte en el marco del proyecto AI ​​ABC.

Preparado por Alexander Ershov

Nuevo en el sitio

>

Más popular