¿Cuál es tu algoritmo de aprendizaje automático favorito?

Mi favorito Procesos gaussianos!

Son tan malditamente diferentes . Cuando leí por primera vez acerca de ellos, sentí que debían estar rompiendo algunas reglas básicas de probabilidad y estadística.

Entonces, déjame explicarte qué es un médico de cabecera .

En (¿casi?) Todos los algoritmos de ML supervisados, nos preocupa determinar una función [math] f () [/ math] que se mapee aproximadamente desde nuestras características [math] \ mathbf {x} _i [/ ​​math] a nuestras predicciones [ matemáticas] y_i [/ ​​matemáticas]. A menudo, la elección de la función está determinada por una elección de parámetros [math] \ boldsymbol {\ theta} [/ math]. En última instancia, determinamos funciones probables (de acuerdo con nuestros datos) determinando una distribución (posterior) sobre estos parámetros.

OK, piensa en lo absurdamente general que es el último párrafo. Resolver sus ambigüedades lo llevará a un algoritmo de ML específico y existente. Ahora, trate de pensar en un enfoque que esté fuera de ese marco general.

Difícil ¿verdad? *

Bueno, los médicos logran hacer esto de una manera particularmente inteligente. En lugar de determinar las distribuciones de probabilidad sobre los parámetros, nosotros Determinar las distribuciones de probabilidad sobre las funciones mismas . ¿Cómo demonios es eso posible? Las funciones son asignaciones que pueden relacionar un número infinito de entradas con un número infinito de salidas. Si no tenemos estos vectores de parámetros finitos para determinar funciones, ¿qué más podríamos hacer?

Bueno, utilizamos una herramienta matemática llamada Proceso Gaussiano (confuso, la técnica ML y este objeto matemático tienen el mismo nombre), que nos permite hacer referencia a funciones mediante un conjunto arbitrario y finito de pares de entrada-salida. Formalmente, especificamos una distribución sobre las funciones escribiendo:

[matemáticas] f (x) = GP (m (x), \ kappa (x, x ‘)) [/ matemáticas]

donde [math] m (x) [/ math] y [math] \ kappa (x, x ‘) [/ math] son ​​algunas funciones proporcionadas, llamadas la función media y la función del núcleo. Para entender esto, imagine que podría probar una gran cantidad de funciones de esto. Llamémoslos [math] f_1 (), f_2 (), \ cdots, f_N () [/ math]. Si tuviera que evaluar estas funciones [matemáticas] N [/ matemáticas] en una entrada particular [matemáticas] x ^ * [/ matemáticas], entonces, en promedio, las salidas de funciones serían [matemáticas] m (x ^ *) [/ mates]. De manera similar, si evaluó estas funciones en dos entradas [matemática] x_1 [/ matemática] y [matemática] x_2 [/ matemática], la covarianza de las salidas sería [matemática] \ kappa (x_1, x_2) [/ matemática].

Al igual que puede muestrear valores de la distribución de una variable aleatoria, puede muestrear funciones de un proceso gaussiano. Por ejemplo, si especificó [math] m (x) = 0 [/ math] y [math] \ kappa (x, x ‘) [/ math] como Matern Kernel (la fórmula es desordenada), las funciones de muestreo pueden verse como esta:

(fuente – scikit learn)

Con esta idea, un Proceso Gaussiano (refiriéndose al algoritmo ML aquí), implica especificar una distribución previa sobre nuestras funciones (llámelo [math] GP _ {\ textrm {prior}} [/ math]). Luego, usando algo de magia **, condicionamos nuestros datos y determinamos una distribución posterior sobre las funciones (llámela [math] GP _ {\ textrm {post}} [/ math]).

En la implementación real, parametrizamos [math] \ kappa (x, x ‘) [/ math] *** con un vector y elegimos un vector específico que maximice el acuerdo entre nuestros datos y la GP [math] GP _ {\ textrm { post}} [/ math]. El verdadero arte de esta técnica se reduce a seleccionar la función de núcleo adecuada. La intuición rectora es que un proceso gaussiano producirá salidas similares para entradas similares al núcleo. Depende del artista determinar qué forma debe tomar la similitud del núcleo.

Al final, manejamos una GP optimizada [matemática] _ {\ textrm {post}} [/ matemática]. Se puede evaluar en cualquier entrada dada y no solo obtenemos un valor de salida, sino más bien una distribución sobre las salidas.

Ahora, usemos un GP . Específicamente, me enfocaré en cómo pensaría en un problema, no en la implementación (mucha documentación sólida de scikit-learn para eso).

Voy a usar 6 meses de mi peso:

¿Ves un patrón? Yo tampoco, pero pensemos: ¿qué pasa con mi función de “tiempo” que dicta mi peso? Si me peso dos veces, es probable que esos pesos sean similares si …

  1. esos momentos en el tiempo están cerca.
  2. esos momentos están en la misma parte de algún ciclo (mismo día de la semana, mes, alguna otra periodicidad).

Así que construyamos estos en nuestra métrica del núcleo.

Además de eso, la función de tiempo probablemente no sea el único factor de conducción. Si entendemos que hay otras influencias fuera de nuestro conjunto de datos, no deberíamos esperar tener un poder explicativo completo. Por lo tanto, anticipamos algo de ‘ruido’; también podemos incorporarlo en nuestro núcleo.

Por último, es probable que existan algunas irregularidades de tendencia a largo plazo. Tal vez tengo más de espagueti durante 2 semanas. Tal vez me enfermé por unos días y perdí algunas libras. Nada en la función de tiempo podría predecir esto, pero nuestras distribuciones sobre las funciones deberían ser flexibles para adaptarse a la muestra . La flexibilidad a este respecto alivia la presión sobre otros parámetros (por ejemplo, la periodicidad que mencioné) y evita que las influencias se propaguen fuera de la muestra. Para hacer eso, construimos en el Kernel Matern, como viste antes.

Con todo eso, probémoslo. Ocultaré el último 25% de nuestra muestra de nuestro procedimiento de calibración y los predeciré. Trazaré predicciones junto con uno y dos intervalos de confianza de desviación estándar. Obtenemos:

Ahora el patrón es claro. Mi peso tiene una periodicidad más o menos semanal y tiende a evolucionar durante algunas semanas, como lo permitiría una función inducida por Matern. Fuera de la muestra, obtenemos predicciones decentes porque se basa en la periodicidad y no se extrapola de las tendencias espurias. El resultado distributivo parece (*) bastante bien calibrado.

Entonces, en general , me encantan los médicos de cabecera: son sumamente inteligentes, flexibles y satisfactorios. Ciertamente no son herramientas universales (no escalan bien), pero son excelentes para insertar sus intuiciones en problemas más pequeños.


* Si dijo algo no paramétrico, tiene razón.

** La matemática aquí en realidad depende en gran medida de las buenas propiedades de la distribución gaussiana, que permite soluciones analíticas para integrales que de otra manera serían intratables. ¡Gracias Gauss!

*** La función media no está parametrizada porque a menudo la establecemos en una función constante de valor promedio [math] y [/ math].

(*) No tenemos suficientes datos de muestra para saber realmente si están bien calibrados. Entonces estoy siendo optimista aquí.

Soy fanático de los algoritmos simples pero flexibles. Si tuviera que elegir uno, diría que mi algoritmo favorito es el Conjunto, que considero mi propio “Algoritmo Maestro”. Independientemente del algoritmo con el que empiece, siempre puede usar un conjunto para mejorarlo. Ensembles ganó el Premio Netflix y muestra de manera rutinaria su gran desempeño, pero también es relativamente fácil de entender, optimizar e inspeccionar.

En caso de que me acusen de hacer trampa por elegir un “súper algoritmo”, elegiré otro: Regresión logística. LR es un algoritmo muy simple pero eficiente y flexible que se puede utilizar para muchas aplicaciones, en particular la clasificación, pero también la clasificación.

Mi favorito actual es el agrupamiento espectral. Es una especie de algoritmo emblemático para toda una clase de métodos llamados Algoritmos espectrales [1], que han recibido cada vez más atención de la comunidad de ML en los últimos años.

¿Por qué es mi favorito? Porque reúne algunas de las áreas más fascinantes de las matemáticas de una manera interesante. Nunca he visto un algoritmo que combine tantas ideas e ideas de campos aparentemente dispares.

Entonces, ¿qué es el agrupamiento espectral?

Es un algoritmo para detectar comunidades entre una red de entidades (usuarios en una red social, píxeles en una imagen, expresiones genéticas, etc.). El objetivo es dividir las entidades en grupos de manera que las entidades del grupo sean similares, mientras que las entidades de los diferentes grupos no lo sean.

(Detección de comunidades en una red social. Fuente)

¿Cómo funciona el agrupamiento espectral?

Primero, construimos una matriz de similitud a partir de la red (o gráfico) dada. Luego extraemos los vectores propios más relevantes de la matriz de similitud usando la descomposición de valores propios y la usamos para derivar una nueva representación ‘espectral’ para las entidades en nuestra red. Finalmente, realizamos k-means en la nueva representación y sacamos los clústeres.

Para ser honesto, la primera vez que me encontré con el agrupamiento espectral, no tenía idea de por qué este método debería dar una buena partición de la red. Simplemente está sucediendo demasiado, y definitivamente no es intuitivo a primera vista. Pero si te quedas con él y profundizas un poco más, comienzas a ver algunas conexiones sorprendentes. Aquí, trataré de enumerar algunas cositas sobre la agrupación espectral para despertar su curiosidad.

  • Cortes de gráficos: es un hecho bien conocido que encontrar el corte mínimo equilibrado de un gráfico es un problema NP difícil [2]. Resulta que la agrupación espectral resuelve una relajación continua de este problema discreto de optimización combinatoria.
  • Paseos aleatorios: considere una caminata aleatoria en un gráfico [3]. En cada paso de tiempo, el caminante aleatorio salta desde el vértice actual a cualquiera de sus vecinos al azar. Resulta que la agrupación espectral minimiza el tiempo de tránsito entre grupos (el tiempo que pasa caminando entre los grupos en lugar de dentro de los grupos) del caminante aleatorio.
  • Física: la agrupación espectral tiene conexiones sorprendentes con el operador laplaciano [4] que se usa ampliamente en física como una medida de la suavidad de una superficie.
  • Procesamiento de señal gráfica [5] : considere una señal gráfica en la red dada que identifique claramente el mejor agrupamiento posible de sus vértices. La agrupación espectral minimiza la variación total de esta señal gráfica del indicador.
  • Teoría de la perturbación matricial: considere una matriz de similitud ideal construida por un gráfico con grupos disjuntos. Resulta que perturbar esta matriz de ideas al agregar unos ‘pocos’ bordes a través de los grupos hace poco para cambiar la representación espectral de los vértices. Por lo tanto, el agrupamiento espectral funciona y es inmune al ‘ruido’.

..y podría seguir y seguir. A diferencia de los algoritmos de aprendizaje automático más populares en la actualidad (redes neuronales y aprendizaje profundo), que son básicamente cajas negras donde nadie entiende por qué algo funciona, los métodos espectrales tienen una base teórica sólida con varias interpretaciones sobre por qué funcionan. Me gusta pensar en el agrupamiento espectral como un poema bien escrito que significa cosas diferentes para diferentes personas y, al mismo tiempo, es elegante.

Notas al pie

[1] https://www.cc.gatech.edu/~vempa

[2] Corte k mínimo – Wikipedia

[3] https://users.wpi.edu/~yli15/cou

[4] Operador de Laplace – Wikipedia

[5] https://pdfs.semanticscholar.org

No tengo un algoritmo favorito absoluto, pero algunos de mis favoritos son (no en orden de relevancia):

  1. Algoritmo de retropropagación: una idea relativamente simple que hizo que las redes neuronales fueran útiles.
  2. Abandono: si podemos considerarlo un algoritmo (me gusta pensar que es una idea útil para usar en redes neuronales). Te hace crear clasificadores de conjunto sin hacer muchos modelos.
  3. PCA – matemáticas en su mejor momento (o por ahí). Muy útil muchas veces, aunque probablemente un poco usado en exceso.
  4. Perceptrones: solo para estudiar el teorema de convergencia, una cosa de belleza.
  5. Regresión lineal: la matemática detrás de cómo viene la función de costo es muy agradable.
  6. Regresión logística: bueno, queremos un modelo simple pero poderoso para hacer la clasificación.
  7. KNN: ¿por qué no? Tonto, pero muy útil.
  8. K-means: uno de los algoritmos más famosos de la historia. Hay muchos algoritmos de agrupación mucho más sofisticados, y k-means sigue siendo tan útil como siempre.
  9. Dinámica del replicador: porque la teoría del juego es interesante y divertida. Y debido a que puede usarse como una herramienta de construcción para hacer muchas cosas completamente diferentes, como la coincidencia o agrupación de gráficos (conjuntos dominantes).
  10. El lema de regularidad de Szemeredi: no es un algoritmo de aprendizaje automático, sino algo que se puede usar en el aprendizaje automático (y en cualquier problema de gráficos cuando queremos reducirlos). Y lo más importante, porque trabajé en ello en mi tesis de maestría e hice mi primer artículo sobre él.
  11. Admite máquinas de vectores, porque las matemáticas allí son impresionantes. Y debido a que todas esas horas de análisis de la función de aprendizaje, finalmente se ponen a trabajar.
  12. Regularización, porque nada funciona sin ella.

Bueno, más de lo que pensé que pondría, pero todos ellos tienen sus usos.

Al igual que con las películas, no tengo un algoritmo de aprendizaje automático (ML) favorito, sino algunos favoritos, cada uno por su propia razón. Estos son algunos de mis mejores algoritmos y modelos:

  • Más elegante: el algoritmo Perceptron . Desarrollado en los años 50 por Rosenblatt y sus colegas, este algoritmo extremadamente simple puede verse como la base de algunos de los clasificadores más exitosos de la actualidad, incluidas las máquinas de vectores de soporte y la regresión logística, resueltos mediante el descenso de gradiente estocástico. La prueba de convergencia para el algoritmo Perceptron es una de las piezas matemáticas más elegantes que he visto en ML.
  • Más útil: Impulso , especialmente árboles de decisión impulsados. Este enfoque intuitivo le permite construir modelos ML altamente precisos, combinando muchos modelos simples. Impulsar es uno de los métodos más prácticos en ML, es ampliamente utilizado en la industria, puede manejar una amplia variedad de tipos de datos y puede implementarse a escala. Recomiendo revisar XGBoost para una implementación realmente escalable de árboles potenciados. Impulsar también se presta a pruebas muy elegantes.
  • Mayor retorno: aprendizaje profundo de redes neuronales convolucionales Este tipo de redes neuronales ha existido desde principios de los años 80. Aunque hubo una disminución en el interés por ellos desde finales de los noventa hasta finales de la década de 2000, han visto un regreso sorprendente en los últimos 5 años. En particular, las redes neuronales convolucionales forman el núcleo de los modelos de aprendizaje profundo que han tenido un gran impacto, especialmente en la visión por computadora y el reconocimiento del habla.
  • El algoritmo más bello: programación dinámica (p. Ej., Viterbi , algoritmos de avance-retroceso, eliminación variable y propagación de creencias). La programación dinámica es una de las técnicas algorítmicas más elegantes en informática, ya que le permite buscar en un espacio exponencialmente grande para encontrar la solución opcional. Esta idea se ha aplicado de varias maneras en ML, especialmente para modelos gráficos, como los modelos ocultos de Markov, las redes bayesianas y las redes de Markov.
  • Línea de base inmejorable: algoritmo vecino más cercano . A menudo, cuando intentas escribir un artículo, quieres demostrar que “tu cuve es mejor que mi curva”. 🙂 Una forma de hacerlo es introducir un enfoque de referencia y demostrar que su método es más preciso. Bueno … el vecino más cercano es la línea de base más simple de implementar, por lo que a menudo la gente lo intentará primero, pensando que lo superarán fácilmente y mostrarán que su método es increíble. Para su sorpresa, ¡el vecino más cercano puede ser extremadamente difícil de superar! De hecho, si tiene suficientes datos, ¡el vecino más cercano es extremadamente poderoso! Y, este método es realmente útil en la práctica.

Mi algoritmo de aprendizaje automático favorito es la regresión logística.

La regresión logística es básicamente un algoritmo de clasificación supervisado . En un problema de clasificación, la variable objetivo (o salida) – y , solo puede tomar valores discretos para un conjunto dado de características (o entradas) – x . La variable de salida también se puede llamar como variable categórica . Según el número de categorías, la regresión logística se puede clasificar como:

  1. Binomial : la variable de destino tiene 2 categorías. Ejemplo: Sí / No, Verdadero / Falso, 0/1, etc.
  2. Multinomial : la variable objetivo tiene 3 o más categorías.
  3. Ordinal : se trata de variables objetivo con categorías ordenadas. Por ejemplo, el puntaje de un examen se puede clasificar como: “muy pobre”, “pobre”, “bueno” y “muy bueno”.

En Regresión logística, tratamos de encontrar la probabilidad de un problema. Por lo tanto, nuestro resultado siempre se encuentra entre 0 y 1.

No podemos usar una ecuación lineal y = m * x + c para ajustar una probabilidad entre 0 y 1.

Por lo tanto, usamos una función sigmoide para evaluar el problema. La ecuación de la función sigmoide viene dada por:

Aquí “z” representa la ecuación lineal y = m * x + c.

El siguiente gráfico representa la curva Sigmoide también conocida como la curva S para la regresión logística:

Entonces, en el gráfico anterior, la línea recta azul representa la línea de regresión lineal y la línea naranja representa la curva de regresión logística.

La regresión logística se puede usar en varios problemas del mundo real como:

  1. Reconocimiento de escritura a mano
  2. Predecir el tipo de enfermedad
  3. Segmentación de imagen
  4. Probabilidad de resultados electorales.
  5. Predecir si un estudiante aprobará un examen o no.

Para obtener más información sobre la regresión logística, consulte los siguientes videos:

Para obtener más información sobre Machine Learning y obtener experiencia en él, consulte nuestra Capacitación de certificación de Simplilearn’s Machine Learning .

Permítanme responder primero una pregunta más simple: definitivamente tengo algoritmos de aprendizaje que claramente no son mis favoritos (aunque no voy a nombrar nombres), porque tienen un defecto innecesario. Pero hay una gran frontera de Pareto en el espacio de los algoritmos de aprendizaje automático que son todos sensibles e importantes. De hecho, la teoría básica del aprendizaje automático nos dice que no existe un único algoritmo de aprendizaje automático que funcione mejor en todos los problemas. Por ejemplo, si tengo datos dispersos de muy alta dimensión (por ejemplo, clasificar texto por tema) con comparativamente pocos ejemplos de entrenamiento, usaría un modelo lineal regularizado como un SVM o regresión logística. Pero, si tuviera grandes cantidades de ejemplos de entrenamiento para un problema con datos densos de baja dimensión (por ejemplo, reconocimiento de voz o visión), usaría una red profunda.

En general, preguntas como esta son difíciles de responder, pero en este caso, resulta que tengo un algoritmo favorito. Antes de derramar los frijoles, quiero hacer algunos comentarios entre paréntesis sobre cómo hacer una investigación impactante en ML (o cualquier otro campo), ya que este sesgo colorea mi respuesta. ¡Resista la tentación de desplazarse hacia abajo para ver mi respuesta! Confía en mí, vale la pena leer el largo preludio si eres un estudiante principiante que aprende lo básico o un investigador experimentado en aprendizaje automático. En una vida de dar charlas sobre LD en docenas de países y en todos los lugares y audiencias imaginables, he descubierto que es quizás el método menos conocido.

Vale la pena repetir que las ideas más grandes y duraderas son simples por su naturaleza. Por ejemplo, el principio de selección natural de Darwin tiene más de 150 años. Es la idea más impactante en biología. Ha sobrevivido prácticamente a todas las pruebas que se le han realizado a lo largo de los años, a partir de observaciones de ecosistemas cerrados de varias décadas (lea el brillante libro ganador del Premio Pulitzer “El pico del pinzón” de Jonathan Weiner que narra la historia de un grupo de biólogos que hemos pasado cada verano durante más de 30 años en una roca volcánica solitaria y caliente de una isla en Galápagos, midiendo las tasas de supervivencia de varias especies de pinzones) para estudiar la evolución de las colonias bacterianas en las placas de Petri y las comparaciones de ADN de especies relacionadas.

El principio de la selección natural es lo suficientemente simple como para que se pueda enseñar a los estudiantes de secundaria. Sin embargo, sus implicaciones son tan profundas para el hombre como especie que incluso hoy, 150 años después de su publicación y posterior confirmación, ningún candidato presidencial o presidente en ejercicio en los Estados Unidos se atrevería a declarar abiertamente su creencia en la evolución. Hacerlo sería un suicidio político, ya que el candidato probablemente perdería los votos de millones de estadounidenses que incluso hoy se niegan a creer en la evolución. Es un testimonio del poder de la idea de Darwin de que es simultáneamente tan universal como controvertido. La gente preferiría creer en los agujeros negros o incluso en el viaje en el tiempo.

Por lo tanto, necesitamos encontrar un algoritmo de ML que sea lo suficientemente simple como para ser tan poderoso como la idea de Darwin, pero que sea lo suficientemente elemental como para ser enseñado en la escuela secundaria sin usar ninguna o muchas matemáticas. No hace falta decir que esto descarta inmediatamente la mayor parte de la competencia. Casi todos los trabajos publicados en NIPS o ICML durante la última década están plagados de matemáticas barrocas y no logran calificar.

También necesitamos encontrar un método que aborde un problema que sea lo suficientemente profundo como para que se aplique no solo a los humanos, sino también a muchas otras especies. Uno de esos problemas es la adquisición de comportamientos aprendidos. Darwin resolvió el problema de la adaptación a lo largo de la historia multimillonaria de la vida en la Tierra (y otros planetas), aunque todavía no hemos encontrado vida en otros planetas, cuando lo hacemos, como las leyes universales de la física, es muy probable que la vida extraterrestre se regirá por el principio de Darwin). Lo que queda para el aprendizaje automático es explicar cómo los organismos individuales aprenden el comportamiento de sus propias experiencias.

Para mí es muy satisfactorio que mi algoritmo de aprendizaje automático favorito sea también el algoritmo más antiguo que se implementó en el software de la computadora, y en este punto, el único algoritmo de aprendizaje automático que se ha estudiado intensamente en cerebros de animales y se ha comprobado que es cierto. También es el algoritmo responsable de la demostración espectacular más reciente de ML, lo que confirma su longevidad durante seis décadas. Si tuviera que reescribir el libro de mi colega erudito Pedro Domingo “El algoritmo maestro”, este sería mi método elegido.

Ahora, solo me queda abrir la cortina y revelar mi respuesta: aprendizaje de diferencia temporal (TD). El aprendizaje de TD se descubrió por primera vez (o quizás se redescubrió desde que el filósofo danés Kierkegaard tenía la intuición básica en el siglo XIX) y se utilizó en el primer programa de aprendizaje automático escrito por el investigador de IBM Arthur Samuel a fines de la década de 1950 para permitir que una computadora aprendiera el juego de Damas de juego propio sin humanos proporcionando ejemplos de entrenamiento. Arthur Samuel acuñó el término “aprendizaje automático”.

En 2017, 60 años después de Samuel, los investigadores de Google (¿Alfabeto?) Deep Mind utilizaron el aprendizaje de TD para vencer al actual campeón mundial de Go en lo que se consideró el juego humano más difícil de aprender para una computadora. La versión más reciente de AlphaGo Zero aprendió completamente del juego propio, a diferencia de la variante anterior de AlphaGo, y fácilmente derrotó a la última. Más que cualquier demostración previa de IA, AlphaGo convenció al liderazgo chino del verdadero poder de la IA y provocó una reorganización radical de las prioridades de investigación de ese país para poner muchos miles de millones de dólares en IA.

Hasta hoy, el aprendizaje TD sigue siendo el algoritmo mejor estudiado en el cerebro, y un marco teórico básico de cientos de neurocientíficos que estudian cómo el cerebro de los animales y los insectos aprende de las recompensas. Se ha probado en cerebros de mono y cerebros de insectos como la abeja. Ahora sabemos cómo se implementa el aprendizaje de TD en el cerebro, qué estructuras cerebrales están involucradas y qué neurotransmisores están involucrados (dopamina).

Si bien el algoritmo es notablemente simple y puede codificarse en pocas líneas en problemas simples, su análisis matemático ha tomado varias décadas en completarse. La primera versión original no converge de manera confiable.

Rich Sutton, quien después de Arthur Samuel ha contribuido más al aprendizaje de TD durante más de tres décadas, comenzando con su tesis doctoral de 1984 en UMass Amherst, propuso un algoritmo de “TD gradiente” más estable hace unos 10 años.

Me complace decir que, junto con mi antiguo estudiante de doctorado Bo Liu, pudimos demostrar que el nuevo gradiente TD está resolviendo esencialmente un problema de punto de silla de montar en un espacio de optimización dual, abriendo así la puerta a la primera prueba matemática de muestra finita para la convergencia para la forma de gradiente de TD. Lamentablemente, nuestro trabajo utiliza matemáticas demasiado avanzadas para ser enseñadas incluso a estudiantes universitarios muy brillantes. La mayoría de los estudiantes graduados de CS, a menos que estén especialmente capacitados en optimización y teoría de aproximación estocástica, no entenderían nuestro artículo. Para mí, fue un triunfo personal culminar 25 años de estudio del aprendizaje por refuerzo con la capacidad de arrojar luz más profunda sobre su método más utilizado.

Sin embargo, no me engaño que nuestro trabajo teórico logre algún tipo de popularidad. La simplicidad siempre gana. Mi artículo más citado sigue siendo un artículo de la revista Artificial Intelligence publicado en 1992 que mostró quizás por primera vez que los robots podían aprender de su propio comportamiento utilizando el aprendizaje TD. En robótica, fue un gran avance ya que mostró cómo obtener robots de autoaprendizaje. La investigación de aprendizaje de robots con TD continúa hoy 25 años después en muchas universidades, laboratorios de investigación y empresas, con demostraciones más impresionantes como helicópteros autónomos.

En resumen, por ser el primer algoritmo que inició el campo del aprendizaje automático en la década de 1950 y se convirtió en el método utilizado en la demostración espectacular más reciente en 2017 del poder del aprendizaje automático que influyó en las prioridades de investigación de la segunda economía más grande del mundo , para ser el método biológicamente mejor entendido en el cerebro, y por ser posiblemente el método más simple con estos atributos, declaro que el aprendizaje TD es mi método de aprendizaje automático favorito.

Debo terminar con una nota más triste. Para mí, es inexplicable que el aprendizaje de TD no esté incluido en la mayoría, si no en todos los libros de texto de ML actualmente populares. Es una lástima que un método tan hermoso, uno que podría agregar que los científicos informáticos puedan reclamar orgullosamente como propio y no robado de las estadísticas, sea tan lamentablemente ignorado. Refleja por parte de los escritores de libros de texto muy poco juicio.

Afortunadamente, el brillante texto clásico sobre aprendizaje por refuerzo de mi colega Andrew Barto a largo plazo de la Universidad de Massachusetts con su antiguo estudiante de doctorado Rich Sutton es muy legible y ha sido citado más de 25,000 veces en Google Scholar. Solo haz una pausa para reflexionar sobre este absurdo. El texto sobre RL se cita con mucha más frecuencia que cualquier otro libro de texto de ML, o de hecho, cualquier otra publicación de ML. Sin embargo, su algoritmo central, el aprendizaje de TD, se ignora en todos los libros de texto de ML utilizados hoy en día.

Para volver a mi analogía con Darwin, es como si se hubiera escrito un libro de texto sobre biología que no incluyera una sección larga sobre selección natural. Se reiría de él. ¡Espero que los futuros escritores de libros de texto presten atención a mis palabras!

Termino con una cita de mi poema favorito en inglés del inmortal John Keats, llamado “Una oda a una urna griega”.

“La belleza es verdad, y la verdad belleza. Eso es todo lo que sabes en la tierra y todo lo que necesitas saber ”.

El aprendizaje de TD es hermoso porque es cierto, y cierto porque es un método tan sublimemente bello y poderoso que ha servido a la comunidad de ML durante más de seis décadas.

Si usted es uno de los muchos en mi experiencia que no conoce el aprendizaje de TD, si esta nota lo alienta a aprenderlo, será una gran recompensa por mi trabajo al escribirlo. Puede ser la mejor hora que pases en tu vida, como lo fue para mí cuando aprendí TD por primera vez en 1989.

Recuerde tener en cuenta que las ideas más simples son siempre las más consecuentes al final. ¡Gracias por leer esta respuesta demasiado larga!

Dicen “la brevedad es el alma del ingenio”, pero de alguna manera parece que no puedo dominar ese arte.

Sin duda regresión logística (con muchas campanas y silbatos como el descenso de gradiente estocástico, hashing de características y penalizaciones).

Sé que en la época de Deep Learning esto parece ser una respuesta realmente extraña. Entonces, comencemos con un poco de historia:

En 1995–1998 estaba usando redes neuronales, 1998–2002 estuve trabajando principalmente con métodos basados ​​en árboles y desde 2002 en adelante, la regresión logística (y los modelos lineales en general, incluyendo la regresión cuantil, la regresión de Poisson, etc.) terminaron lentamente haciendo su camino a mi corazón En 2003 publiqué un artículo en Machine Learning que muestra los resultados de la comparación de métodos basados ​​en árboles con la regresión logística en 35 conjuntos de datos (en ese momento grandes).

La respuesta corta (si desea omitir las 30 páginas): si la relación señal / ruido es alta, los árboles tienden a ganar. Pero, si tiene problemas muy ruidosos y el mejor modelo tiene un AUC <0.8, la logística casi siempre supera a los árboles. En última instancia, no es muy sorprendente: si la señal es demasiado débil, los modelos de alta varianza se pierden en las malezas.

Entonces, ¿qué significa esto en la práctica? El tipo de problemas con los que tiendo a tratar son súper ruidosos con un bajo nivel de previsibilidad. Piénselo en términos de determinista (ajedrez) hasta el azar (supuestamente el mercado de valores). Algunos problemas son más predecibles (dados los datos que tiene) que otros. Y esta no es una cuestión de algoritmos, sino más bien una declaración conceptual sobre el mundo.

La mayoría de los problemas que me interesan están muy cerca del extremo del espectro del mercado de valores. El aprendizaje profundo es realmente genial en el otro extremo: “¿Esta imagen muestra un gato?”. En el mundo de la incertidumbre, la compensación de la variación de sesgo a menudo termina siendo favorable del lado de más sesgo, lo que significa que desea un modelo ‘simple’ muy restringido. Y aquí es donde entra en juego la regresión logística. Personalmente, he encontrado que es mucho más fácil ‘reforzar’ un modelo lineal simple al agregar características complicadas que tratar de restringir una clase de modelo muy potente (alta varianza). De hecho, todas y cada una de las competencias de minería de datos que gané (KDD CUP 07–09) utilizaron un modelo lineal.

Más allá del rendimiento: los modelos lineales son robustos y tienden a necesitar mucho menos agarre (ok, bien, el descenso de gradiente estocástico y las penalizaciones lo hacen un poco más difícil). Esto es extremadamente importante cuando desea realizar modelos predictivos en una industria en la que no tiene el lujo de pasar 3 meses construyendo el modelo perfecto.

Y finalmente, tengo una mejor oportunidad de entender lo que está sucediendo en un modelo lineal.

Chicos !!! ¡Mira mi nuevo canal de Youtube!

Echa un vistazo a la nueva serie de tutoriales. Hit Suscribir

Mantra analítica

Si te gustó el video, no olvides SUSCRIBIRTE. Nunca te pierdas una actualización.

Árbol de decisión – Clasificación

El árbol de decisión crea modelos de clasificación o regresión en forma de estructura de árbol. Desglosa un conjunto de datos en subconjuntos cada vez más pequeños, mientras que al mismo tiempo se desarrolla un árbol de decisión asociado de forma incremental. El resultado final es un árbol con nodos de decisión y nodos hoja . Un nodo de decisión (por ejemplo, Outlook) tiene dos o más ramas (por ejemplo, Sunny, Overcast y Rainy). El nodo hoja (p. Ej., Jugar) representa una clasificación o decisión. El nodo de decisión superior en un árbol que corresponde al mejor predictor llamado nodo raíz . Los árboles de decisión pueden manejar datos categóricos y numéricos.

Algoritmo

El algoritmo central para construir árboles de decisión llamado ID3 por JR Quinlan que emplea una búsqueda codiciosa de arriba hacia abajo a través del espacio de posibles ramas sin retroceso. ID3 utiliza la entropía y la ganancia de información para construir un árbol de decisión.

Entropía

Un árbol de decisión se construye de arriba hacia abajo desde un nodo raíz e implica la partición de los datos en subconjuntos que contienen instancias con valores similares (homogéneos). El algoritmo ID3 usa entropía para calcular la homogeneidad de una muestra. Si la muestra es completamente homogénea, la entropía es cero y si la muestra está igualmente dividida, tiene una entropía de uno.

Para construir un árbol de decisión, necesitamos calcular dos tipos de entropía usando tablas de frecuencia de la siguiente manera:

a) Entropía utilizando la tabla de frecuencias de un atributo:

b) Entropía utilizando la tabla de frecuencias de dos atributos:

Ganancia de información

La ganancia de información se basa en la disminución de la entropía después de que un conjunto de datos se divide en un atributo. La construcción de un árbol de decisión consiste en encontrar un atributo que devuelva la mayor ganancia de información (es decir, las ramas más homogéneas).

Paso 1

: Calcular la entropía del objetivo.

Paso 2

: El conjunto de datos se divide en los diferentes atributos. Se calcula la entropía para cada rama. Luego se agrega proporcionalmente, para obtener la entropía total de la división. La entropía resultante se resta de la entropía antes de la división. El resultado es la ganancia de información, o disminución de la entropía.

Paso 3

: Elija el atributo con la mayor ganancia de información como nodo de decisión, divida el conjunto de datos por sus ramas y repita el mismo proceso en cada rama.

Paso 4a

: Una rama con entropía de 0 es un nodo hoja.

Paso 4b

: Una rama con entropía mayor que 0 necesita más división.

Paso 5

: El algoritmo ID3 se ejecuta de forma recursiva en las ramas que no son hojas, hasta que se clasifiquen todos los datos.

Árbol de decisión a reglas de decisión

Un árbol de decisión se puede transformar fácilmente en un conjunto de reglas mediante el mapeo del nodo raíz a los nodos hoja uno por uno.

Echemos un vistazo a tres estilos de aprendizaje diferentes en algoritmos de aprendizaje automático: [1]

1. Aprendizaje supervisado

Los datos de entrada se denominan datos de entrenamiento y tienen una etiqueta o resultado conocido, como spam / no spam o el precio de una acción a la vez.

Un modelo se prepara mediante un proceso de capacitación en el que se requiere hacer predicciones y se corrige cuando esas predicciones son incorrectas. El proceso de capacitación continúa hasta que el modelo alcanza el nivel deseado de precisión en los datos de capacitación.

Ejemplos de problemas son la clasificación y la regresión.

Los algoritmos de ejemplo incluyen Regresión logística y la Red neuronal de propagación hacia atrás.

2. Aprendizaje no supervisado

Los datos de entrada no están etiquetados y no tienen un resultado conocido.

Un modelo se prepara deduciendo las estructuras presentes en los datos de entrada. Esto puede ser para extraer reglas generales. Puede ser a través de un proceso matemático para reducir sistemáticamente la redundancia, o puede ser organizar los datos por similitud.

Ejemplos de problemas son la agrupación, la reducción de dimensionalidad y el aprendizaje de reglas de asociación.

Los algoritmos de ejemplo incluyen: el algoritmo Apriori y k-Means.

3. Aprendizaje semi-supervisado

Los datos de entrada son una mezcla de ejemplos etiquetados y no etiquetados.

Hay un problema de predicción deseado, pero el modelo debe aprender las estructuras para organizar los datos y hacer predicciones.

Ejemplos de problemas son la clasificación y la regresión.

Los algoritmos de ejemplo son extensiones de otros métodos flexibles que hacen suposiciones sobre cómo modelar los datos sin etiquetar.

Visión general

Cuando se procesan datos para modelar decisiones comerciales, generalmente se utilizan métodos de aprendizaje supervisados ​​y no supervisados.

Un tema candente en este momento son los métodos de aprendizaje semi-supervisados ​​en áreas como la clasificación de imágenes donde hay grandes conjuntos de datos con muy pocos ejemplos etiquetados.

Algoritmos agrupados por similitud

Los algoritmos a menudo se agrupan por similitud en términos de su función (cómo funcionan). Por ejemplo, métodos basados ​​en árboles y métodos inspirados en redes neuronales.

Creo que esta es la forma más útil de agrupar algoritmos y es el enfoque que usaremos aquí.

Este es un método de agrupación útil, pero no es perfecto. Todavía hay algoritmos que podrían encajar fácilmente en múltiples categorías, como Learning Vector Quantization, que es un método inspirado en la red neuronal y un método basado en instancias. También hay categorías que tienen el mismo nombre que describen el problema y la clase de algoritmo, como Regresión y Agrupación.

Podríamos manejar estos casos enumerando algoritmos dos veces o seleccionando el grupo que subjetivamente sea el “mejor” ajuste. Me gusta este último enfoque de no duplicar algoritmos para mantener las cosas simples.

En esta sección, enumero muchos de los algoritmos populares de aprendizaje automático agrupados de la manera que creo que es más intuitiva. La lista no es exhaustiva ni en los grupos ni en los algoritmos, pero creo que es representativa y le será útil para tener una idea de la disposición del terreno.

Tenga en cuenta: Existe un fuerte sesgo hacia los algoritmos utilizados para la clasificación y la regresión, los dos problemas de aprendizaje automático supervisados ​​más frecuentes que encontrará.

Si conoce un algoritmo o un grupo de algoritmos que no figuran en la lista, escríbalo en los comentarios y compártalo con nosotros. Vamos a sumergirnos.

Algoritmos de regresión

La regresión se refiere a modelar la relación entre variables que se refina iterativamente usando una medida de error en las predicciones hechas por el modelo.

Los métodos de regresión son un caballo de batalla de las estadísticas y se han incorporado al aprendizaje automático de estadística. Esto puede ser confuso porque podemos usar la regresión para referirnos a la clase de problema y la clase de algoritmo. Realmente, la regresión es un proceso.

Los algoritmos de regresión más populares son:

Regresión de mínimos cuadrados ordinarios (OLSR)

Regresión lineal

Regresión logística

Regresión gradual

Splines de regresión adaptativa multivariante (MARS)

Suavizado de diagrama de dispersión estimado localmente (LOESS)

Algoritmos basados ​​en instancias

Notas al pie

[1] Un recorrido por los algoritmos de aprendizaje automático

Me encanta el filtrado de Kalman, la estimación no paramétrica y la factorización espectral cuando se trata del ” algoritmo de aprendizaje automático favorito”.

Análisis in-stream organizamos ontología ML como

Soluciones de análisis in-stream mediante la fusión de las aplicaciones Teorema de Bayes y Teorema de la cubierta . Primero fue “BRANN” – “Red neuronal artificial recurrente de Bayes”. La característica principal era que el filtro Bayes se usa para actualizar los “pesos” de la red neuronal artificial.

El otro enfoque puede ser el filtro Kalman de proyección del núcleo (“KP Kalman Filter”). Kalman Filter funciona como la capa de salida del método ML para el mapeo no lineal que implementa el teorema de la cubierta. Este enfoque controla la “maldición de la dimensionalidad” ya que el número de estados de Kalman no está vinculado al número de pesos de la red neuronal artificial.

En realidad, en relación con el aprendizaje dinámico, el filtro Kalman ofrece un procedimiento recursivo computacional eficiente para aprender procesos dinámicos.

Consulte nuestra REPLICACIÓN DynaML : trascendent-ai-labs / DynaML

Gracias A2A

Probablemente el favorito de todos debería ser el algoritmo Perceptron. Es el punto de partida para tantos desarrollos importantes. Sólo para nombrar unos pocos:

  • Métodos de kernel (solo cambie el preprocesamiento)
  • Redes profundas (solo agregue más capas)
  • Descenso de gradiente estocástico (solo cambie la función objetivo)
  • Teoría del aprendizaje (la garantía contradictoria para las actualizaciones)

Entonces, ¿cuál es el algoritmo: supongamos que tenemos una función lineal de la forma
[matemática] f (x) = \ langle w, x \ rangle + b [/ math] y queremos estimar el vector w y la constante b de modo que f sea positivo siempre que tengamos clase 1 y negativo siempre que tengamos clase – 1) Entonces podemos hacer lo siguiente.

  • Inicialice w y b a cero (o cualquier otra cosa que pueda ser mejor)
  • Siga iterando a través de los pares de datos (x, y) hasta que no haya más errores
  • Si [matemática] yf (x) <0 [/ matemática] entonces actualice [matemática] w + = yx [/ matemática] y [matemática] b + = y [/ matemática]

Se garantiza que este algoritmo converge y el tiempo que lleva depende de cuán difícil sea el problema (más técnicamente, con qué facilidad puede dividir los conjuntos positivos y negativos). Más concretamente, desea cometer todos los errores lo más rápido posible.

He trabajado en programación de redes neuronales en C ++, Perl y Matlab y recientemente en algunas herramientas integradas de Microsoft. La programación de redes neuronales y aprendizaje profundo implementada en R también es muy atractiva.

Aparte de eso, hace mucho tiempo resolví un problema de predicción en bioinformática que es predecir la isla CpG en una secuencia genómica larga con la ayuda del Modelo de Morkov Oculto y el Algoritmo de Viterbi.

Además, tengo curiosidad por resolver un rompecabezas sobre el juego de tablero de ajedrez. Quiero determinar que la proporción casi exacta de victorias blancas es para ganancias negras es para dibujar o colgar casos, siempre que la promoción de peones esté restringida. Creo que esta relación se puede determinar mediante el uso efectivo del algoritmo genético.

Aunque soy analista de negocios, me encanta programar mucho … 🙂

ML es en realidad un proceso iterativo. Un científico de datos en la vida real intenta constantemente nuevas ideas y cambia los pasos de su cartera. El conocimiento y la intuición del algoritmo ML ayudan a un científico de datos a encontrar un buen modelo más rápido. Pero nunca se sabe con certeza cuáles le aportarían el mejor valor. Es por eso que el tiempo de iteración es un parámetro crítico en el proceso de ciencia de datos. Cuanto más rápido itere, más podrá verificar ideas y construir un mejor modelo.

Para acelerar las iteraciones en proyectos de ciencia de datos, la herramienta de control de versiones de datos (DVC): cómo un científico de datos puede mejorar su productividad – fue creado. Se encarga de las dependencias entre los comandos que ejecuta, los archivos de datos generados y los archivos de código, y le permite reproducir fácilmente cualquier paso de su investigación con respecto a los cambios de archivos:

Mi algoritmo favorito hasta ahora es …… Regresión logística. La regresión logística es una forma estadística poderosa de modelar un resultado binomial con una o más variables explicativas. Mide la relación entre la variable dependiente categórica y una o más variables independientes mediante la estimación de probabilidades utilizando una función logística, que es la distribución logística acumulativa.

Algunas aplicaciones de regresiones son

  • Puntuacion de credito
  • Medir las tasas de éxito de las campañas de marketing.
  • Predecir los ingresos de un determinado producto.
  • ¿Habrá un terremoto en un día en particular?

Mis algoritmos de aprendizaje automático favoritos son modelos de conjunto: bosques aleatorios, árboles extremadamente aleatorios, refuerzo, embolsado, etc. Para conjuntos de datos estructurados de hasta millones, generalmente funcionan a la par de métodos mejores que los de aprendizaje profundo.

Este es a menudo el tipo de conjunto de datos más común que encontrará. Aunque no son tan interpretables como los modelos lineales como la regresión lineal / logística o los modelos basados ​​en reglas como los árboles de decisión o los basados ​​en la distancia como el vecino k más cercano, los conjuntos son más fáciles de interpretar. Especialmente si puede tener un rendimiento comparable con menos árboles de decisión en un bosque aleatorio, puede mostrar los árboles y comprender las reglas. Para mí, ofrecen el mejor equilibrio entre velocidad de implementación, rendimiento e interpretabilidad.

Factorización matricial: una forma simple y hermosa de reducir la dimensionalidad, y la reducción de la dimensionalidad es la esencia de la cognición. Los sistemas de recomendación serían una gran aplicación de factorización matricial. Otra aplicación que he estado utilizando a lo largo de los años (a partir de 2010 con datos de video) está factorizando una matriz de información mutua por pares (o información mutua puntual, que es más común) entre las características, que se pueden usar para la extracción de características, cálculo de palabras incrustaciones, incrustaciones de etiquetas informáticas (ese fue el tema de un reciente trabajo mío [1]), etc.

Utilizado en una configuración convolucional, esto actúa como un excelente extractor de funciones sin supervisión para imágenes y videos. Sin embargo, hay un gran problema: es fundamentalmente un algoritmo superficial. Las redes neuronales profundas lo superarán rápidamente si hay algún tipo de etiquetas de supervisión disponibles.

[1] [1607.05691] Incrustaciones de etiquetas teóricas de información para la clasificación de imágenes a gran escala

Según el conocimiento limitado que tengo sobre Machine Learning, diría que mi algoritmo favorito es el Perceptrón de múltiples capas (MLP) .

Para entender eso, comencemos primero con el perceptrón de capa única (SLP) .

Un ejemplo simple de SLP se puede ver en la imagen a continuación

Aquí x1, x2, .. xn son n puntos dimensionales desde el punto de entrenamiento, el -1 aquí es el sesgo. Se combinan linealmente con el peso correspondiente como se muestra como w1, w2, … wn. Después de que se combinan linealmente, pasamos el resultado a una función de activación como tanh, sigmoide, etc.

Ahora MLP consiste en muchos SLP interconectados entre sí en cuanto a la capa. A continuación se muestra un diagrama para representar un MLP simple.

Aquí la entrada representa el punto n dimensional del conjunto de entrenamiento y cada círculo en la imagen representa un SLP. Cada SLP de una capa está conectado a cada SLP de la siguiente capa con algo de peso. La salida de un SLP se alimenta a todos los SLP de la siguiente capa y así sucesivamente hasta llegar a la capa final.

Ahora, ¿qué tiene de especial?

Resuelve el problema de ajustar una curva complicada en un conjunto de datos dado y también nos ayuda a optimizar el resultado usando el descenso de gradiente.

Puedes ver desde la imagen de arriba que la forma de la curva se vuelve cada vez más complicada cuando agregamos más y más neuronas.

Después de aprender acerca de la regresión, quería saber cómo se puede aplicar la regresión a los datos donde las funciones polinómicas no funcionan porque la regresión no da buenos resultados e incluso si es muy complicada. Cuando supe por primera vez sobre esto, me sorprendió y sobre su propiedad de ajustarse incluso en gráficos complicados. Esta es una manera fácil y muy eficiente de ajustar la curva y funciona mejor que otros algoritmos de regresión. Obviamente, MLP no solo hace eso, son mucho más que esto y lo sabrás a medida que te sumerjas en él.

PD: en esto se basa la red neuronal convolucional (CNN)

No tengo un algoritmo ML favorito porque dicho algoritmo no existe [1]. Sin embargo, el primer algoritmo que implementé fue el clasificador Naive Bayes; por lo tanto, en cierto sentido, siguió siendo “especial” para mí. Sin embargo, no pudo realizar la tarea que estaba haciendo esa vez. La razón era que estaba tratando de hacer una Clasificación de clase [2]; El algoritmo Naive Bayes calcula las probabilidades previas para cada una de las clases en función de sus conteos de frecuencia. Sin embargo, si los datos de una clase no están presentes durante el entrenamiento, su probabilidad previa será CERO, no puede calcular su probabilidad debido a que no hay datos de entrenamiento y, por lo tanto, nada se clasificará en ‘esa’ clase NUNCA. Al implementarlo, me di cuenta de la limitación de este algoritmo simple en este problema en particular.

Notas al pie

[1] Sin teorema del almuerzo gratis

[2] https://cs.uwaterloo.ca/~s255kha