ABC de la IA: “Aprendizaje automático. ABC de la IA: “Aprendizaje automático. Ahora estamos construyendo activamente modelos similares para usarlos para identificar grupos de personas con comportamiento similar.

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

Poder. Hay un ejemplo de una técnica de aprendizaje automático llamada Árbol de Decisión, que es una de las más antiguas. Hagámoslo ahora. Digamos que una persona abstracta te invita a salir. ¿Que es importante para ti?

- Primero que nada, lo conozca 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 entiendo, ¡este es el hilo de la zona de amigos! En general, escribo, si no lo sabes y no es atractivo, entonces la respuesta es "no, probablemente". Si lo sabes, la respuesta es “sí”.

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

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

Bien, entonces indiquemos aquí si es interesante o no. Aún así, cuando no se conoce a una persona, la primera reacción es la apariencia, con un conocido ya nos fijamos en lo que piensa y cómo.

Hagámoslo diferente. Si es ambicioso o no. Si es ambicioso, será difícil convertirlo en amigo, porque querrá más. Pero los poco ambiciosos perdurarán.

(Víctor termina de dibujar el árbol decisivo.)

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

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

Ahora imagínese: ¿fue difícil para la gente idear un plan así hace doscientos años? ¡Absolutamente no! Este esquema no implica ninguna ciencia espacial. Como fenómeno, el aprendizaje automático existe desde hace aproximadamente medio siglo. Ronald Fisher comenzó a hacer predicciones basadas en datos a principios del siglo XX. Tomó lirios y los distribuyó según el largo y ancho de los sépalos y pétalos, utilizando estos parámetros determinó el tipo de planta.

En la industria, el aprendizaje automático se ha utilizado activamente en las últimas décadas: no hace mucho que aparecieron máquinas potentes y relativamente económicas que se necesitan para procesar grandes cantidades de datos, por ejemplo, para tales árboles de decisión. Pero sigue siendo emocionante: 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, ¿qué 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ó a los humanos hace unos años en lo que respecta a la clasificación de imágenes. Por ejemplo, una computadora puede reconocer 20 razas de terrier, pero una persona común y corriente no.

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

A grandes rasgos, sí. Cuando trabajamos con datos, todos los objetos, incluido el comportamiento del usuario, se describen mediante un determinado conjunto de números. Y estas cifras reflejan las características 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 similares para usarlos para identificar grupos de personas con comportamiento similar. Cuando presentamos un nuevo servicio o queremos promocionar uno antiguo, lo ofrecemos a quienes estén interesados.

Por ejemplo, ahora disponemos de un servicio: dos sillas para niños en un taxi. Podemos enviar spam a todos con esta noticia, o podemos informar específicamente sobre ella solo a un determinado círculo de personas. A lo largo del año hemos acumulado un número de usuarios que escribieron en los comentarios que necesitaban dos sillas para niños. Los encontramos a ellos y a personas similares a ellos. Convencionalmente se trata de personas mayores de 30 años que viajan habitualmente y aman la cocina mediterránea. Aunque, por supuesto, hay muchas más señales, esto es sólo un ejemplo.

- ¿Incluso esas sutilezas?

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

¿Podría esto funcionar de alguna manera en una aplicación? 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 y destartalados, me suscribo a las noticias de SpaceX) y de vez en cuando me venden? ¿Un Tesla?

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


Todo el mundo tiene deseos pervertidos y, a veces, no es necesario encontrar una receta de un plato mediterráneo, sino, por ejemplo, fotografías sobre la coprofilia. ¿Seguirá funcionando la personalización en este caso?

Siempre hay un modo privado.

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

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

- ¿Hay una diferencia?

Problema complejo. No sé otros, pero Yandex es estricto con la protección de datos personales. Los empleados son especialmente monitoreados.

- Es decir, si rompí con un chico, ¿no podré saber si fue a esta casa de campo o no?

Incluso si trabajas en Yandex. Esto, por supuesto, es triste, pero sí, no hay forma de saberlo. La mayoría de los empleados ni siquiera tienen acceso a estos datos. Todo está cifrado. Es simple: no se puede espiar a las personas, se trata de información personal.

Por cierto, tuvimos un caso interesante sobre el tema de romper con chicos. Cuando hicimos un pronóstico para el punto "B", el punto de destino del taxi, introdujimos sugerencias. Aquí mira.

(Víctor inicia sesión en la aplicación Yandex.Taxi).

Por ejemplo, el taxi cree que estoy en casa. Me sugiere que vaya a trabajar o a la RUDN (donde doy conferencias como parte del curso de aprendizaje automático Minería de datos en acción). Y en algún momento, mientras desarrollábamos estos consejos, nos dimos cuenta de que debíamos evitar comprometer al usuario. Cualquiera puede ver el punto B. Por estas razones, nos negamos a sugerir lugares basados ​​en similitudes. De lo contrario, te sientas en un lugar decente con gente decente, pides un taxi y te escriben: "¡Mira, todavía no has estado en este bar!".

- ¿Qué son esos 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, puedes llamar a un lugar donde sería completamente inconveniente ir. Pero, en general, puedes llamar a cualquier lugar.

- Si en cualquier momento. De alguna manera volé dos cuadras con esto.

Últimamente ha habido varias dificultades con el GPS, lo que ha llevado a varias situaciones divertidas. Las personas, por ejemplo, en Tverskaya, fueron transportadas mediante navegación a través del Océano Pacífico. Como puedes ver, a veces hay fallos y más de dos bloqueos.

- Y si reinicia la aplicación y vuelve a hacer clic, el precio cambia en varios rublos. ¿Por qué?

Si la demanda supera la oferta, el algoritmo genera automáticamente un coeficiente creciente, lo que ayuda a aquellos que necesitan salir lo más rápido posible a utilizar un taxi, incluso durante los períodos de alta demanda. Por cierto, con la ayuda del aprendizaje automático se puede predecir dónde habrá mayor 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 acabará pronto con todo el mercado de taxis?

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

Por ejemplo, yo uso diferentes servicios de taxi. El tiempo de espera es importante para mí, por eso miro varias aplicaciones para ver qué taxi llega más rápido.


- Te asociaste con Uber. ¿Para qué?

No me corresponde a mí comentar. Creo que unirse es una decisión profundamente sensata.

En Alemania, un hombre instaló una bañera en drones y se fue volando a por una hamburguesa. ¿Has pensado que ha llegado el momento de dominar el espacio aéreo?

No sé sobre el espacio aéreo. Seguimos noticias como “Uber ha lanzado taxis en barcos”, pero no puedo decir nada sobre el aire.

- ¿Qué pasa con los taxis autónomos?

Hay un punto interesante aquí. Los estamos desarrollando, pero tenemos que pensar en cómo deben usarse exactamente. Es demasiado pronto para predecir en qué forma y cuándo aparecerán en las calles, pero estamos haciendo todo lo posible para desarrollar la tecnología de un coche totalmente autónomo, donde no será necesario un conductor humano en absoluto.

- ¿Existe el temor de que se piratee el software del dron para poder controlar el coche de forma remota?

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

- ¿Qué datos de usuario recopilan y cómo los protegen?

Recopilamos datos de uso anónimos, como dónde, cuándo y dónde se realizó el viaje. Todo lo importante está hash.

- ¿Cree que el número de puestos de trabajo disminuirá gracias a los drones?

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

- En cada una de sus conferencias, Gref dice que una persona cambiará radicalmente de profesión al menos tres veces.

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 necesitamos reconstruir. Con el aprendizaje automático, puedo sentir claramente cómo los chicos que son seis años más jóvenes que yo pueden pensar mucho más rápido que yo. Al mismo tiempo, las personas de 40 o 45 años lo sienten aún más.

- ¿La experiencia ya no influye?

Jugando. Pero los métodos cambian, puedes llegar a un área donde, por ejemplo, no se ha utilizado el aprendizaje profundo, trabajas allí durante algún tiempo, luego se introducen métodos de aprendizaje profundo en todas partes y no entiendes nada al respecto. Eso es todo. Tu experiencia sólo puede ser útil a la hora de planificar el trabajo del equipo, y aun así no siempre.

- Y su profesión es científica de datos, ¿tiene demanda?

La demanda de especialistas en ciencia de datos está simplemente fuera de serie. Obviamente, este es un período de gran revuelo. Gracias a Dios, la cadena de bloques ayudó a que este revuelo disminuyera un poco. Los especialistas en blockchain son elegidos aún más rápido.

Pero muchas empresas ahora piensan que si invierten dinero en aprendizaje automático, sus jardines florecerán de inmediato. Esto está mal. El aprendizaje automático debería resolver problemas específicos, no simplemente existir.

Hay ocasiones en las que un banco quiere hacer un sistema de recomendación de servicios para los usuarios. Preguntamos: “¿Cree usted que esto estará justificado económicamente?” Ellos responden: “No nos importa. Hazlo. Todo el mundo tiene sistemas de recomendación, estaremos en tendencia”.

El problema es que algo realmente útil para los negocios no se puede hacer en un día. Necesitamos observar cómo aprenderá el sistema. Pero siempre comete errores al principio, puede que le falten algunos datos durante el entrenamiento. Corriges los errores, luego los vuelves a corregir e incluso rehaces todo. Después de esto, necesitas configurar el sistema para que funcione en producción, para que sea estable y escalable, esto 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, fácilmente puede pasar por alto cuando comienzan a suceder algunas cosas locas. Hay una historia barbuda. Los militares pidieron desarrollar un algoritmo que permita analizar si hay un tanque en la imagen o no. Los investigadores lo hicieron, lo probaron, la calidad es excelente, todo está genial, se lo dieron a los militares. Vienen los militares y dicen que nada funciona. Los científicos están empezando a comprender nerviosamente. Resulta que en todas las fotografías con el tanque que trajeron los militares se colocó una garrapata en la esquina con un bolígrafo. El algoritmo aprendió perfectamente a encontrar la marca de verificación, no sabía nada sobre el tanque. Naturalmente, no había ninguna marca de verificación en las nuevas fotografías.

He conocido a niños que desarrollan sus propios sistemas de diálogo. ¿Alguna vez has pensado que necesitas colaborar con los niños?

Llevo bastante tiempo asistiendo a todo tipo de eventos para escolares, dando conferencias 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, estaba orgullosa de mí misma, comencé a transmitir y la chica dijo: "Oh, queremos minimizar esto". Miro y pienso, realmente, por qué, y la verdad se puede minimizar y no hay nada especial que demostrar aquí. Ya han pasado varios años, ahora escucha nuestras conferencias como estudiante en el Instituto de Física y Tecnología. Yandex, por cierto, tiene Yandex.Lyceum, donde los escolares pueden obtener conocimientos básicos de programación de forma gratuita.

- Recomendar universidades y facultades donde actualmente se imparte aprendizaje automático.

Hay MIPT, facultades de FIVT y FUPM. HSE también tiene un maravilloso departamento de informática, y en la Universidad Estatal de Moscú hay aprendizaje automático en el complejo de informática. Bueno, ahora puedes escuchar nuestro curso en la Universidad RUDN.

Como ya dije, esta profesión tiene demanda. Durante mucho tiempo, las personas que recibían educación técnica hacían cosas completamente diferentes. El aprendizaje automático es un ejemplo maravilloso de cómo todas las cosas que enseñaban las personas con educación técnica ahora son directamente necesarias, útiles y bien remuneradas.

- ¿Qué tan bien?

Nombra la cantidad.

- 500 mil por mes.

Puede hacerlo, pero sin ser un científico de datos corriente. Pero en algunas empresas un pasante puede ganar 50 mil por un trabajo sencillo, pero hay una gama muy amplia. En general, el salario de un científico de datos genial se puede comparar con el salario del director ejecutivo de alguna empresa mediana. En muchas empresas, además del salario, el empleado tiene muchos otros beneficios, y si está claro que la persona no vino a agregar una buena marca a su currículum, sino a trabajar, entonces todo estará bien para él.

Ha pasado casi un año desde el momento en que surgió en la FIVT un tema inusual: un taller innovador. Su esencia es la creación de startups de TI por equipos de estudiantes bajo la guía de mentores experimentados. Todo salió bien: gracias al curso, alguien pasó parte del verano en Cream Valley, alguien recibió una subvención de 800.000 rublos para el desarrollo del proyecto y ABBYY está lista para comprarle completamente el proyecto 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: durante el próximo año necesitarás crear tu propia startup. Los estudiantes no aceptaron esta idea de manera ambigua: no estaba claro en absoluto cómo hacerlo y la responsabilidad era inusual; después de todo, era necesario crear una empresa tecnológica y no un proyecto educativo más. Esto es lo que piensa al respecto el ganador de la Olimpíada de Física para estudiantes del MIPT, el estudiante del departamento de Yandeska, Viktor Kantor:

Cuando elegí FIVT al ingresar, esperaba que tuviéramos algo similar. Así que me alegro de que mis esperanzas no hayan sido en vano. Durante el año se sintió que el curso aún se estaba formando, había muchas novedades en él, muchos temas resultaron 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 se encontraban personas completamente diferentes: desde estudiantes de pregrado y posgrado del MIPT hasta el asesor de innovación de Ernst&Young, Yuri Pavlovich Ammosov (fue el líder de todo el curso) y Mikhail Batin, que se ocupa de la medicina regenerativa y la extensión de la vida. Como resultado, los estudiantes de física y tecnología eligieron las ideas que les resultaban más interesantes, los curadores se unieron a los equipos y comenzó el arduo pero emocionante trabajo.

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

Askeroide (anteriormente Ask Droid): busca teléfonos inteligentes ( Anastasia Uryasheva)

Una aplicación de 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 en empresas internacionales.

1minuto.ru – un minuto para siempre (Lev Grunin)

Este proyecto ofrece a cualquier persona la oportunidad de realizar obras solidarias 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 y todo el dinero de la publicidad se transfiere a una fundación benéfica. Una semana después de su lanzamiento, el proyecto reunió a más de 6.500 usuarios y no se detendrá allí. Como resultado, gracias a Lev y su equipo, 600 niños de orfanatos recibirán los preciados regalos de Papá Noel 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 paquete: un producto extremadamente útil para personas ocupadas que a menudo viajan en 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, en cualquier lugar donde pueda encontrar un monitor (un televisor también es adecuado), un teclado y un ratón. El proyecto recibió una subvención para desarrollar la idea y se presentó en la exposición Technovation Cup, y con el dinero recibido el equipo ya está comprando activamente equipos. El fabricante americano de procesadores MIPS está muy interesado en este desarrollo.

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

¿Qué deberías hacer si recuerdas que en algún lugar de tu buzón había una carta muy importante que hablaba sobre el último episodio de Big Bang Theory, pero no recuerdas ninguna palabra 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 de televisión. El proyecto ganó una subvención en el concurso UMNIK. ¡Un 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 reconociera fórmulas matemáticas de cualquier complejidad. Los estudiantes de FIVT, después de cooperar con los estudiantes interesados, completaron la tarea: el módulo realmente reconoce fórmulas escaneadas de libros de texto de matemáticas o física. Resultado: ABBYY está dispuesta a comprar este producto por una gran cantidad de dinero.

Como parte del proyecto conjunto "ABC de la IA" con MIPT, ya hemos escrito sobre los llamados que permiten "hacer crecer" programas de acuerdo con los principios y leyes de la evolución darwiniana. Sin embargo, por ahora, este enfoque de la inteligencia artificial es sin duda un “invitado del futuro”. Pero, ¿cómo se crean hoy en día los sistemas de inteligencia artificial? ¿Cómo se entrenan? Victor Kantor, profesor titular del Departamento de Algoritmos y Tecnologías de Programación del MIPT y jefe del grupo de análisis del comportamiento del usuario de Yandex Data Factory, nos ayudó a resolver esto.

Según un informe reciente de la firma de investigación Gartner, que actualiza periódicamente su “ciclo de madurez tecnológica”, el aprendizaje automático se encuentra actualmente en la cima de las expectativas en todas las TI. Esto no es sorprendente: en los últimos años, el aprendizaje automático ha salido de la esfera de intereses de un círculo reducido 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 corriente. Ahora, cualquiera que haya usado la aplicación Prisma, haya buscado canciones usando Shazam o haya visto imágenes transmitidas a través de DeepDream sabe que existen las redes neuronales con su "magia" especial.

Sin embargo, una cosa es utilizar la tecnología y otra entender cómo funciona. Palabras generales como “una computadora puede aprender si le das una pista” o “una red neuronal consta de neuronas digitales y está estructurada como el cerebro humano” pueden ayudar a alguien, pero lo más frecuente es que sólo confundan la situación. Quienes van a estudiar matemáticas en serio no necesitan textos populares: hay libros de texto y excelentes cursos en línea para ellos. Intentaremos tomar un camino intermedio: explicar cómo ocurre realmente el aprendizaje en una tarea muy simple 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 comprender exactamente cómo se produce el aprendizaje automático, definamos los conceptos. Tal como lo definió uno de los pioneros en este campo, Arthur Samuel, el aprendizaje automático se refiere a métodos que “permiten a las computadoras aprender sin programarlas directamente”. Hay dos clases amplias de métodos de aprendizaje automático: aprendizaje supervisado y aprendizaje no supervisado. El primero se utiliza cuando, por ejemplo, necesitamos enseñar a una computadora a buscar fotografías con imágenes de gatos, el segundo es cuando necesitamos que la máquina, por ejemplo, pueda agrupar noticias en historias de forma independiente, como ocurre en los 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á o no está), en el segundo caso no hay una única respuesta correcta, sino que hay diferentes formas. para resolver el problema. Nos centraremos específicamente en la primera clase de problemas como los más interesantes.

Entonces necesitamos enseñarle a la computadora a hacer algunas predicciones. Además, es deseable que sea lo más preciso posible. Las predicciones pueden ser de dos tipos: o debe elegir entre varias opciones de respuesta (si hay un gato en la imagen o no, es una opción entre dos, la capacidad de reconocer letras en imágenes es una opción entre varias docenas, etc.), o hacer una predicción numérica. Por ejemplo, prediga el peso de una persona en función de su altura, edad, talla de calzado, etc. Estos dos tipos de problemas sólo parecen diferentes, pero en realidad se resuelven de forma casi idéntica. Intentemos entender exactamente cómo.

Lo primero que necesitamos para crear 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 signos a partir de los cuales podemos sacar conclusiones sobre el peso. Está claro que uno de los signos "más fuertes" será la altura de una persona, por lo que como primera aproximación basta con tomar sólo esto. 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=kx+b. Todo lo que tenemos que hacer para entrenar una máquina para que prediga 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 relación que estamos estudiando es muy compleja, esencialmente nada cambiará en nuestro enfoque. Seguiremos lidiando con la misma regresión.

Digamos que el peso de una persona se ve afectado por su altura no de forma lineal, sino en tercer grado (lo que generalmente se espera, porque el peso depende del volumen corporal). Para tener en cuenta esta dependencia, simplemente introducimos otro término en nuestra ecuación, a saber, la tercera potencia de crecimiento con su propio coeficiente, obteniendo así y=k 1 x+k 2 x 3 +b. Ahora, para entrenar la máquina, necesitaremos encontrar no dos, sino tres cantidades (k 1, k 2 y b). Digamos que en nuestra predicción también queremos tener en cuenta el tamaño de los zapatos de una persona, su edad, el tiempo que pasa viendo televisión y la distancia desde su apartamento hasta el establecimiento de comida rápida más cercano. No hay problema: simplemente sumamos 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 existe, nos resultará casi indiferente qué características utilizar para la predicción, porque la máquina misma aprenderá a dar gran importancia a las importantes y pequeña a las que no lo son. Afortunadamente, este método ya se ha inventado y casi todo el aprendizaje automático funciona con éxito: desde los modelos lineales más simples hasta los sistemas de reconocimiento facial y analizadores de voz. Este método se llama descenso de gradiente. Pero antes de explicar cómo funciona es necesario 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. Formalmente, esto no es cierto: las redes neuronales no siempre se utilizan en el aprendizaje matemático; 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 proporcionan los resultados más "mágicos", como la capacidad de buscar a una persona en una fotografía, la aparición de aplicaciones que transfieren el estilo de una imagen a otra, o sistemas de generación de textos en la forma de hablar de una determinada persona.

La forma en que están estructuradas las redes neuronales, ya... Aquí solo quiero enfatizar que la fortaleza de las redes neuronales en comparación con otros sistemas de aprendizaje automático radica en su naturaleza de múltiples capas, pero esto no las convierte en algo fundamentalmente diferente en su forma de funcionar. Las capas múltiples realmente le permiten encontrar características y dependencias generales muy abstractas en conjuntos complejos de características, como píxeles en una imagen. Pero es importante comprender que desde el punto de vista de los 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í.

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

Expliquemos con un ejemplo. Nos decidimos por una predicción en la que el peso de una persona depende de su altura y de su altura al cubo, que se expresa mediante la fórmula y=k 1 x+k 2 x 3 +b. Con cierta exageración, pero de hecho incluso una fórmula de este tipo puede denominarse red neuronal. En ella, como en una red neuronal normal, hay una primera capa de "neuronas", que también es una capa de características: estas son x y x 3 (bueno, la "neurona unitaria" que tenemos en mente y para la cual el coeficiente b es el responsable). La capa superior, o resultante, está representada por una "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" simplemente significa encontrar estos mismos coeficientes.

La única diferencia con las redes neuronales "reales" aquí es que no tenemos una única capa intermedia (u oculta) de neuronas, cuya tarea es combinar características de entrada. La introducción de tales capas le permite no inventar posibles dependencias entre características existentes "fuera de su cabeza", sino confiar en sus combinaciones ya existentes en la red neuronal. Por ejemplo, la edad y el tiempo promedio frente al televisor pueden tener un efecto sinérgico en el peso de una persona, pero, al tener una red neuronal, no estamos obligados a saberlo de antemano e ingresar su producto en la fórmula. En una red neuronal seguramente habrá una neurona que combine la influencia de dos características cualesquiera, y si esta influencia es realmente notable en la muestra, luego del entrenamiento esta neurona recibirá automáticamente un gran peso.

Descenso de gradiente

Entonces, tenemos un conjunto de entrenamiento de ejemplos con datos conocidos, es decir, una tabla con el peso de una persona medido con precisión y algunas hipótesis de la relación, en este caso la regresión lineal y=kx+b. Nuestra tarea es encontrar los valores correctos de k y b, 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.

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

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

Resulta algo así como una determinada altura en un avión, 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 terreno, el punto donde la tasa de error es mínima.

¿Cómo puedes encontrar este punto? La forma más correcta es avanzar todo el tiempo hacia abajo desde el punto en el que nos encontramos inicialmente. Por eso, tarde o temprano llegaremos a un mínimo local, un punto por debajo del cual no hay nada en las inmediaciones. Además, es aconsejable dar pasos de diferentes tamaños: cuando la pendiente es pronunciada, se pueden dar pasos más anchos; cuando la pendiente es pequeña, es mejor acercarse sigilosamente hasta el mínimo local “de puntillas”, de lo contrario se puede sobrepasar.

Así es exactamente como funciona el método de descenso de gradiente: cambiamos los pesos de las características en la dirección de la caída más grande en la función de error. Los cambiamos de forma iterativa, es decir, con un determinado paso, cuyo valor es proporcional a la pendiente de la pendiente. Lo interesante es que cuando aumenta el número de características (sumando un cubo de la altura de una persona, su edad, talla de zapato, etc.), esencialmente nada cambia, simplemente 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 permite la fórmula actual para las personas cuyo peso ya conocemos con exactitud. Tomemos algunas variables aleatorias k y b, por ejemplo 0 y 50. Luego el sistema nos predecirá que el peso de cada persona en la muestra siempre es igual a 50 kilogramos y=0×x+50 En el gráfico, tal La dependencia se verá como una línea recta paralela a la horizontal. Claramente, esta no es una muy buena predicción. Ahora tomemos la desviación de peso de este valor predicho, la elevamos al cuadrado (para que también se tengan en cuenta los valores negativos) y la resumimos; este será el error en este punto. Si está familiarizado con los inicios del análisis, entonces puede incluso aclarar que la dirección de la caída más grande 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 para Razones prácticas: los pequeños pasos requieren mucho tiempo para calcularse y los grandes pueden llevarnos a sobrepasar el mínimo.

Bien, ¿qué pasa 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 de la misma manera con una red neuronal, solo que el entrenamiento ocurre 1) paso a paso, 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 estricta del algoritmo será necesario anotar derivadas parciales (como, por ejemplo), en un nivel intuitivo todo sucede de forma bastante sencilla: para cada uno de los ejemplos de la muestra, tenemos una determinada predicción 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 contribuya esta neurona particular de esta capa al error, más necesitamos reducir su peso (de hecho, estamos hablando nuevamente de tomar la derivada parcial, de avanzar por el máximo desnivel de nuestro paisaje imaginario). Cuando hayamos hecho esto, se debe repetir el mismo procedimiento para la siguiente capa, moviéndonos en dirección contraria, es decir, desde la salida de la red neuronal a la entrada.

Al recorrer la red neuronal de esta manera con cada ejemplo de la muestra de entrenamiento y "girar" los pesos de las neuronas en la dirección deseada, eventualmente 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 permite realizar una buena regresión o entrenar una red neuronal. Puede resultar útil saber por qué surgen tales dificultades.

Las dificultades del descenso de gradientes

Elección incorrecta del mínimo absoluto. El método de descenso de gradiente ayuda a buscar un extremo local. Pero no siempre podemos usarlo para lograr el mínimo o máximo global absoluto de la función. Esto sucede porque al avanzar por un 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 gradiente no siempre le ayudará, porque el primer punto bajo en su camino no será necesariamente el punto más bajo. Y si en la vida eres capaz de ver que si subes un poco y luego puedes bajar aún más, entonces el algoritmo en tal situación simplemente se detendrá. A menudo, esta situación se puede evitar si se elige el paso correcto.

Selección de paso incorrecta. 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 a la que bajamos. Al elegir un paso demasiado grande, podemos pasar volando el extremo que necesitamos y no encontrar el mínimo. Esto puede suceder si te encuentras ante una bajada muy pronunciada. Y elegir un paso demasiado pequeño corre el riesgo de hacer que el algoritmo sea extremadamente lento si nos encontramos en una superficie relativamente plana. Si volvemos a imaginar que estamos en la cima de una montaña empinada, entonces puede surgir una situación en la que, debido a un descenso muy pronunciado cercano al mínimo, simplemente sobrevolemos la misma.

Parálisis de la red. A veces sucede que el método de descenso de gradiente no logra encontrar ningún mínimo. Esto puede suceder si hay áreas planas a ambos lados del mínimo: el algoritmo, cuando llega a un área plana, reduce el paso y finalmente se detiene. Si estás parado en la cima de una montaña y decides moverte hacia tu casa en las tierras bajas, el viaje puede ser demasiado largo si accidentalmente deambulas por una zona muy plana. O, si hay "pendientes" casi verticales a lo largo de los bordes de las áreas planas, el algoritmo, habiendo elegido un paso muy grande, saltará de una pendiente a otra, prácticamente sin moverse hacia el mínimo.

Todas estas cuestiones complejas deben tenerse en cuenta al diseñar un sistema de aprendizaje automático. Por ejemplo, siempre es útil rastrear exactamente cómo cambia la función de error con el tiempo: si cae con cada nuevo ciclo o marca de tiempo, cómo cambia la naturaleza de esta caída dependiendo del cambio en el tamaño del paso. Para evitar caer en un mínimo local malo, puede ser útil comenzar desde diferentes puntos del paisaje seleccionados al azar; entonces la probabilidad de quedarse atascado es mucho menor. Hay muchos más secretos, grandes y pequeños, sobre el uso del descenso de gradientes, y también hay formas de aprendizaje más exóticas que son ligeramente similares al descenso de gradientes. Esto, sin embargo, es tema para otra conversación y un artículo aparte en el marco del proyecto ABC de la IA.

Preparado por Alexander Ershov

 
Artículos Por tema:
Fiesta de Ivan Kupala: historia y tradiciones.
¿En qué fecha se celebra Ivan Kupala? La mágica noche de Kupala es el mejor momento para la adivinación y la magia del amor. Para nuestros antepasados, la festividad de Ivan Kupala se programó para que coincidiera con el "pleno verano", el verano, que tendrá lugar en 2018 el 21 de junio. Según la tradición cristiana
Ensayo sobre el tema: “Cómo la amistad de Vasya, Valek y Marusya iluminó sus vidas” en la obra B
Obra de V.G. "Los niños del calabozo" de Korolenko es vital y veraz. A través de las líneas se puede sentir el dolor del autor por la suerte de las personas pobres y desfavorecidas. La obra muestra muy sutilmente que la infancia puede ser diferente en una misma sociedad. Vasya y Sonya están vivos
¿Puede un padre obtener capital de maternidad? ¿Puede un padre recibir capital de maternidad?
Todo el mundo sabe que en caso de nacimiento de un bebé, la madre recibe un documento de capital de maternidad. Pero, ¿puede un padre recibir capital de maternidad si los hijos no son de la misma madre? Intentemos resolverlo. Hay una serie de situaciones en las que la madre se ve privada de pagos: Muerte de la madre
Jardín de infantes con aprendizaje del idioma inglés.
English Nursery & Primary School (ENS) es una red de jardines de infancia bilingües donde los niños pequeños se sumergen en un entorno lingüístico desde la primera infancia hasta los cinco años. Este entorno es creado por profesores profesionales nativos de habla inglesa que trabajan en ENS.