¿En qué lenguaje de programación están escritos los algoritmos de aprendizaje automático de Google: C ++ o Java? ¿Por qué?

Antes de entrar en su respuesta, me gustaría explicar qué es realmente el aprendizaje automático y qué algoritmo de aprendizaje automático utiliza Google.

¿Qué es el aprendizaje automático?

El aprendizaje automático es donde una computadora se enseña a sí misma cómo hacer algo, en lugar de ser enseñado por humanos o siguiendo una programación detallada.

¿Cuál es el nombre del algoritmo de búsqueda de Google?

Se llama Colibrí, como informamos en el pasado. Durante años, el algoritmo general no tenía un nombre formal. Pero a mediados de 2013, Google revisó ese algoritmo y le dio un nombre, Hummingbird.

¿Qué algoritmo de aprendizaje automático usa Google?

RankBrain es el nombre de Google para un sistema de inteligencia artificial de aprendizaje automático que se utiliza para ayudar a procesar sus resultados de búsqueda, como informó Bloomberg y también lo confirmó Google. Es parte del “algoritmo” general de búsqueda de Google, un programa de computadora que se utiliza para clasificar los miles de millones de páginas que conoce y encontrar las que se consideran más relevantes para consultas particulares.

Otra prueba de la eficacia de RankBrain radica en su capacidad para sintetizar consultas con una mayor tasa de precisión que sus predecesores humanos. Google reveló que en las pruebas comparativas de clasificación de consultas, los ingenieros de búsqueda de Google tenían razón el 70 por ciento del tiempo, mientras que RankBrain disfrutaba de una tasa de éxito del 80 por ciento.

RankBrain es uno de los “cientos” de señales que entran en un algoritmo que determina qué resultados aparecen en una página de búsqueda de Google y dónde están clasificados, dijo Corrado. En los pocos meses que se ha implementado, RankBrain se ha convertido en la tercera señal más importante que contribuye al resultado de una consulta de búsqueda , dijo.

¿Cómo ayuda RankBrain a refinar las consultas?

RankBrain está diseñado para ayudar a interpretar mejor las consultas de ‘cola larga’ y traducirlas de manera efectiva, entre bastidores, para encontrar las mejores páginas para el buscador. Puede ver patrones entre búsquedas complejas aparentemente desconectadas para comprender cómo son realmente similares entre sí. Este aprendizaje, a su vez, le permite comprender mejor las futuras búsquedas complejas y si están relacionadas con temas particulares. Lo más importante es que puede asociar estos grupos de búsquedas con los resultados que cree que a los buscadores les gustarán más.

Google no proporcionó ejemplos de grupos de búsquedas ni dio detalles sobre cómo RankBrain adivina cuáles son las mejores páginas. Pero esto último probablemente se deba a que si puede traducir una búsqueda ambigua en algo más específico, puede traer mejores respuestas.

¿Qué tal un ejemplo de RankBrain?

Google dio un nuevo ejemplo: “¿Cuántas cucharadas en una taza?” Google dijo que RankBrain favoreció resultados diferentes en Australia frente a Estados Unidos para esa consulta porque las mediciones en cada país son diferentes, a pesar de los nombres similares.

¿Qué tecnología respalda a RankBrain?

Google todavía guarda muchas cosas para sus propios programadores. Internamente, la compañía tiene una caja de herramientas de prótesis ML probablemente incomparable , una de las cuales es una innovación que ha estado utilizando durante años pero que anunció recientemente: la Unidad de Procesamiento de Tensor . Este es un chip de microprocesador optimizado para las peculiaridades específicas de ejecutar programas de lenguaje de máquina, similar a la forma en que las Unidades de procesamiento de gráficos están diseñadas con el único propósito de acelerar los cálculos que arrojan píxeles en una pantalla de visualización. Muchos miles (solo Dios y Larry Page probablemente saben cuántos) están dentro de los servidores en los enormes centros de datos de la compañía. Al potenciar sus operaciones de red neuronal, los TPU le dan a Google una tremenda ventaja. Como parte de los lenguajes de programación, se utilizaron principalmente C / C ++, Python, MATLAB y Haskell. “No podríamos haber hecho RankBrain sin él”, dice Dean.

¡¡¡Disfruta aprendiendo!!!

En general, la industria de robótica y ML utiliza C ++ y Python. También es cierto en Google.

¿En cuanto a por qué? Bueno, por donde empezar? Las personas en ML generalmente son bastante inteligentes y no necesitan una capa adicional entre ellos y la máquina para verificar si hay errores de programación para principiantes, como los límites de la matriz. Y las personas de ML tienen mucho acceso a la matriz y ya saben que sus índices están dentro de límites. Y deben hacerlo de tal manera que los accesos a la memoria sean aciertos de caché tanto como sea posible.

ML en Google es una GRAN oferta, con muchos estantes enormes de máquinas MUY caras dedicadas a cálculos en bruto. Además de ser mucho más rápido en este tipo de trabajo, C ++ puede interactuar directamente con el hardware dedicado (GPU y TPU). Entonces, si va a perder al menos la mitad de su rendimiento en Java, eso es una gran cantidad de dinero desperdiciado.

Por lo que veo, los sistemas ML de Google parecen ser C ++ para sistemas computacionales con scripts para entrenamiento / prueba escritos en Python u otros lenguajes de scripting (¿quizás lenguajes de cerdo en MapReduce?).

Las siguientes son las cosas de Google que veo usando C / C ++:

Biblioteca de aprendizaje profundo de Tensorflow http://tensorflow.org

Sibyl: utiliza componentes de GFS / MapReduce que están en C ++ para los sistemas internos de Google.

MR4C (no en Google (google no usa jado hadoop de código abierto) sino en skybox, una compañía adquirida por Google) MapReduce para C: Ejecutar código nativo en Hadoop

¿Por qué es una pregunta que Google puede responder mejor? No es que no pudieran escribir sistemas similares en Java. Aunque escribir código de muy bajo nivel es más fácil en C ++ que Java de lo que puedo pensar.

En cuanto a Tensorflow, la biblioteca de aprendizaje automático de fuente abierta de Google, parece probable que usen C ++ para levantar objetos pesados ​​y Python para hacer las secuencias de comandos.

More Interesting

¿Cómo funciona un algoritmo de bogosort cuántico?

¿Es seguro decir que las recomendaciones sociales siempre superarán a los algoritmos controlados por computadora?

¿Cómo explica la localidad de caché el hecho de que la ordenación rápida suele ser más rápida que la ordenación por fusión?

¿Cuáles son los principales usos de un diagrama de flujo?

¿Qué tipo de algoritmos han escrito los ingenieros de Facebook para que funcione la búsqueda de gráficos de Facebook?

¿Dónde debo desarrollar mi lógica, en matemáticas relacionadas con la programación?

Matemáticas generales que uno debe saber antes de tomar la clase de algoritmo? Especialmente para estudiantes con antecedentes no informáticos.

¿Cómo podrían analizarse las preguntas arbitrarias de Quora para adivinar si el cartel es suicida?

¿Qué necesitas saber para aprender algoritmos? Probé los algoritmos gratuitos de Coursera y el curso de estructuras de datos de Princeton y me perdí por completo.

¿Cómo son útiles la estructura de datos y los algoritmos en el aprendizaje automático?

¿Qué es un programa Java para calcular el factorial de un número dado?

¿Cuáles son algunos ejemplos interesantes con algoritmos evolutivos que se pueden implementar en una tarde o menos?

¿Por qué los programadores experimentados dicen que la programación del mundo real es completamente diferente a la programación competitiva?

¿Por qué la notación Big-O es una forma muy útil de analizar la complejidad del algoritmo?

¿Qué algoritmo se usa para contar la cantidad de personas en un video?