Andrew Ng máquina de aprendizaje notas (17) - un aprendizaje automático a gran escala

Capítulo XVIII de aprendizaje automático a gran escala

Estudiar grandes conjuntos de datos

En este capítulo se describe el algoritmo será capaz de procesar grandes cantidades de datos.

Pregunta: ¿Por qué quiere utilizar grandes conjuntos de datos? Para llegar a conocer una máquina de alto rendimiento de aprendizaje enfoque de sistemas es el uso del algoritmo de aprendizaje bajo sesgo y tren con grandes volúmenes de datos.

Mencionó antes para llegar aquí confundirse fácilmente palabras para, por ejemplo, para el desayuno comí __ huevos, aquí para llenar dos, pero no demasiado o, las siguientes cifras de claro, siempre y cuando el uso de algoritmo de datos de gran tamaño para entrenar a sus efectos parece ser mejor.
Aquí Insertar imagen Descripción

Se pueden extraer de estos resultados, en el aprendizaje de máquina, "No es quién tiene el mejor algoritmo que gana. Es lo que tiene la mostdata.", Lo que significa que el factor determinante no es a menudo el mejor algoritmo, pero que la mayor parte de los datos de entrenamiento.

Pero gran conjunto de datos tiene sus propios problemas especiales, a saber, problemas computacionales. m Supongamos que es igual a un millón de muestras de entrenamiento, quiere entrenar un modelo de regresión lineal o un modelo de regresión logística, y luego con la actualización de descenso de gradiente: Aquí Insertar imagen Descripción, que puede ser visto Calcular el término gradiente, cuando m es igual a un millón de coste calculado también, así que espero encontrar un algoritmo alternativo de algoritmos o buscar formas más eficientes para calcular esto, entonces, introducirá dos métodos principales: el descenso de gradiente estocástico y reducir el mapeo de manejar grandes conjuntos de datos.

descenso de gradiente estocástico

Para muchos algoritmo de aprendizaje automático, como la regresión lineal, regresión logística y el algoritmo de red neuronal es proponer un método para obtener una optimización de la función de coste o sugerir un objetivo, y el valor mínimo de dicho algoritmo de descenso de gradiente de la función de costos, pero cuando el conjunto de entrenamiento es cuando una gran cantidad de cálculo utilizando un algoritmo de descenso de gradiente puede llegar a ser muy grande, la siguiente discutirá la mejora del algoritmo de descenso de gradiente: método de descenso de gradiente estocástico.

Mira modelo de regresión lineal se mencionó anteriormente:

La función y la función de coste es asumido como sigue:
Aquí Insertar imagen Descripción

descenso de gradiente utilizando la siguiente ecuación:
Aquí Insertar imagen Descripción

Luego, cuando el conjunto de entrenamiento de tiempo es grande, disminuir el uso de tales cambios de gradiente va a ser muy lento, que toma mucho gasto, siguiendo vistazo a un algoritmo más eficiente que pueda manejar mejor grandes conjuntos de datos.

Escribir la función de coste de otra manera:
Aquí Insertar imagen Descripción

La función de coste es en realidad una medida del rendimiento en el supuesto de que la función de una muestra, con la función de coste global es:

Aquí Insertar imagen Descripción

La aplicación de este método a un modelo de regresión lineal, el procedimiento de descenso de gradiente estocástico para escribir:

▷ aleatoria azar todos los conjuntos de datos (malestar al azar: m todas las muestras re-formación están dispuestas al azar);

▷ realizar todas las muestras de formación de recorrido, fecha: Aquí Insertar imagen DescripciónEste es un hecho;Aquí Insertar imagen Descripción

Por lo tanto, el descenso de gradiente estocástico realmente atravesar todas las muestras de entrenamiento, primero el primer conjunto de muestras de entrenamiento Aquí Insertar imagen Descripción, entonces sólo la primera función de coste es una operación de muestra de entrenamiento de descenso de gradiente, y modificar ligeramente los parámetros, de manera que el accesorio mejor. Luego, en la misma manera que este último para continuar con la muestra de entrenamiento, hasta que todo el conjunto de entrenamiento.

descenso de gradiente estocástico no es el mismo lugar que no es necesario para obtener todos los términos gradiente de m muestras suma, sólo tiene que encontrar los términos gradiente de muestras individuales de formación, mirada en el proceso de iteración de descenso de gradiente estocástico:
Aquí Insertar imagen Descripción

En general, los parámetros se mueven en la dirección hacia el mínimo global, o en el proceso de la trayectoria de desvío al azar hacia delante, hacia el mínimo global, en comparación con el descenso normal de gradiente (curva roja), la forma de descenso de gradiente estocástico Convergencia es diferente, no se movía continuamente dirección hacia el mínimo global en un área determinada.

Mini-lotes descenso de gradiente

En esta sección se presentará el descenso de gradiente mini-lotes, a veces es más de descenso de gradiente estocástico, sino también más rápido.

Para resumir:

(1) descenso de gradiente común: cada iteración de m se debe utilizar para todas las muestras;

(2) estocástico descenso de gradiente: uso solamente una muestra por cada iteración;

(3) Mini-Batch descenso de gradiente: es en el medio de lo anterior, cada iteración utilizará muestra b (b es un parámetro llamado tamaño Mini-Batch, b generalmente cubre la 2-100).

Por ejemplo: Supongamos que b = 10, para obtener 10 muestras: Aquí Insertar imagen Descripcióny actualización gradiente: Aquí Insertar imagen Descripción, aperturas de actualización seguido desde i + 10, se continúa el tiempo para escribir el algoritmo completo es el siguiente:

Aquí Insertar imagen Descripción

Uno de los inconvenientes mini-lotes algoritmo de descenso de gradiente es calcular el tamaño del parámetro b, puede tardar algún tiempo, pero si usted tiene un buen método para cuantificar, a veces se ejecutará declive más rápido que el gradiente estocástico.

Estocástico pendiente de descenso

En esta sección, el valor de la tasa de aprendizaje alfa asegurar una convergencia adecuada del algoritmo y el ajuste del descenso de gradiente estocástico.

descenso de gradiente ordinaria antes de la revisión, para asegurar un método de descenso de gradiente estándar ha convergido se representa la función de coste; y por el descenso de gradiente estocástico, con el fin de comprobar si el algoritmo ha convergido, se pueden realizar las siguientes tareas:

▷ sigue la función de coste definida anteriormente:
Aquí Insertar imagen Descripción

▷ Cuando estocástico descenso de gradiente método de aprendizaje, utilizando una muestra antes de parámetros de actualización, puede calcular lo bien que las muestras de entrenamiento correspondientes a las hipótesis de comportamiento (es decir, la función de coste calculado);

▷ Con el fin de comprobar si la convergencia de descenso de gradiente estocástico, para hacer cada 1000 iteraciones, se dibuja el paso anterior en la función de coste calculado, poner la función de coste medio se extrae antes de las 1000 muestras, elaborado mediante la observación la figura, puede comprobar si una convergencia método de descenso de gradiente estocástico.

El siguiente es un ejemplo que se muestra en los dibujos:
Aquí Insertar imagen Descripción

Si un gráfico tales obtenido anteriormente, se puede observar en la disminución del valor de la función de coste, se puede determinar que el algoritmo de aprendizaje ha convergido;

Aquí Insertar imagen Descripción

Si lo anterior sucede esto, no busque función de costes disminuyendo, por lo que no parece que el algoritmo de aprendizaje
Aquí Insertar imagen Descripción

Sin embargo, si más muestras de formación dados promediados, el resultado podría aparecer como una curva que se muestra en la figura por encima de la curva roja, este hecho se puede ver en la función de coste se reduce, pero el caso de la muestra de promediado demasiado pequeña a continuación, lleva a una posible ver realmente tiende a disminuir;

Aquí Insertar imagen Descripción

Si tales curvas obtenidas anteriormente figura, que parece estar en aumento, tal caso una es divergente señal del algoritmo, cuando de hacer esto con una α tasa de aprendizaje más pequeño.

Por lo tanto, por estas figuras dibujadas anteriormente, puede conocer las diferentes situaciones que pueden surgir, es posible hacer frente a diferentes situaciones diferentes medidas.

Por último, la charla sobre la situación con respecto a la tasa de aprendizaje α:

En la aplicación más típica de la de descenso de gradiente estocástico, una constante de velocidad de aprendizaje α es típicamente constante, y por lo tanto el resultado final se obtendrá flotando cerca se obtiene el mínimo global un valor muy cercano al mínimo global. Si desea una mejor estocástico convergen descenso de gradiente al mínimo global, permitiendo que el valor de la tasa de aprendizaje α disminuye gradualmente con el tiempo.

Un método típico es fijar el valor para que una constante igual a 1 dividido por el número de iteraciones más una constante 2 ( Aquí Insertar imagen Descripción), su inconveniente es determinar el valor de las dos constantes de llevar algún tiempo, pero si usted lo puede encontrar dos constantes, el efecto resultante es muy bueno.

El aprendizaje en línea

En esta sección se discuten a nuevos mecanismos de aprendizaje automático a gran escala: mecanismo de aprendizaje en línea.

Caso de aprendizaje en línea:

Supongamos que usted proporciona servicios de transporte a los usuarios que piden que enviar el paquete de A a B servicio, también se supone que tiene un sitio que los usuarios visitan el sitio web que le diga lo que quieren y dónde enviar el enviado paquete a dónde ir, a continuación, su sitio web por los precios del servicio de paquetes de transporte, de acuerdo con este precio para sus usuarios, los usuarios a veces aceptar los servicios de transporte (y = 1), y, a veces no aceptará (y = 0), en la que desea utilizar un aprendizaje ayuda a optimizar los algoritmos para el usuario del precio:

Supongamos que el usuario ha adquirido las características de las funciones descritas, tales como la demografía de los usuarios, parcela de usuario de origen y de destino, lo que tenemos que hacer es aprender la probabilidad de estas características usuario utilizará los servicios de transporte de paquetes de transporte por lo tanto, el uso de estas probabilidades, podemos proporcionar el precio correcto en el momento del nuevo usuario.

Considere algoritmo de regresión logística: Supongamos que hay un funcionamiento continuo del sitio, la siguiente se realiza algoritmo de aprendizaje en línea:

Aquí Insertar imagen Descripción

Si realmente ejecuta un sitio grande, los usuarios del sitio tienen un flujo continuo, entonces este algoritmo de aprendizaje en línea es muy aplicable.

Otro ejemplo de la utilización de aprendizaje en línea:

Esta aplicación es una búsqueda de productos, queremos usar un algoritmo de aprendizaje para aprender cómo buscar un buen feedback con la lista de usuarios. Supongamos que hay una tienda de telefonía móvil de venta, hay una interfaz de usuario que permite a los usuarios iniciar sesión en su sitio y el tipo en una entrada de búsqueda, por ejemplo, "los teléfonos Android, 1080p cámara", en el supuesto de que la tienda tiene 100 tipos de teléfonos móviles, debido a que el diseño del sitio, cuando se escribe un usuario Buscar comandos, identificará 10 de teléfono adecuado para que los usuarios elijan. Aquí desea utilizar un algoritmo de aprendizaje para ayudar a encontrar lo 10 teléfonos este teléfono es 100 debe retroalimentación al usuario.

A continuación son las ideas de resolución de problemas:

▷ Para cada auricular y un comando de búsqueda de usuario dado, se puede construir un vector de características x, el vector de características puede indicar las diversas funciones del teléfono, podría ser: qué tan alto grado de similitud búsquedas con este usuario del teléfono, la búsqueda de los usuarios comando cuántas palabras pueden coincidir con el nombre de este teléfono y así sucesivamente.

▷ que tenemos que hacer es estimar el usuario hace clic en una probabilidad enlace telefónico, se define como y = 1 usuarios de telefonía móvil hecho clic en el enlace, e Y = 0 significa que el usuario no hace clic en el enlace, entonces, de acuerdo a las características de predecir el usuario hace clic en un determinado x la probabilidad de que el enlace.

▷ Si cualquiera puede estimar del teléfono porcentaje de clics, el usuario puede utilizar esto para mostrar 10 que son más propensos a hacer clic en el teléfono.

Este es el mecanismo de aprendizaje en línea, que están utilizando este algoritmo y estocástico pendiente de descenso algoritmo es muy similar, la única diferencia es que no utiliza un conjunto fijo de datos, pero los usuarios obtener una muestra, aprender de esta muestra, y luego procesar el siguiente uno, y si su aplicación tiene un flujo continuo de datos, el mecanismo de aprendizaje en línea es muy digna de consideración.

Mapeo de datos con una reducción paralela

En esta sección se discuten otra idea se puede aplicar a la máquina de aprendizaje a gran escala: se llama MapReduce.

Ideas MapReduce:

Para método general de descenso de gradiente, se supone que hay conjunto de entrenamiento como sigue:

Aquí Insertar imagen Descripción

pensó que el MapReduce, el conjunto de entrenamiento se divide en diferentes subconjuntos, suponiendo m = 400 (por conveniencia de la descripción en el presente documento, los datos reales a gran escala procesando 400 millones de m debe ser el número set), hay cuatro máquinas pueden procesar datos,

La primera máquina con el primer trimestre del conjunto de entrenamiento:Aquí Insertar imagen Descripción

suma:Aquí Insertar imagen Descripción

Después se trató posteriormente de modo conjunto de entrenamiento más adelante:

https://img-blog.csdn.net/20180703111344105?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NjExNTc5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70

Cada máquina está haciendo ahora una cuarta parte de la obra, de modo que puedan aumentar cuatro veces la velocidad original, después de completar su temperatura de computación, temperatura y luego se envían a un servidor central para integrar los resultados, los parámetros Última actualización: Aquí Insertar imagen Descripción.

A continuación se muestra un diagrama esquemático de MapReduce:

Aquí Insertar imagen Descripción

Si desea que las aplicaciones MapReduce en la idea de algún tipo de algoritmo de aprendizaje para lograr acelerado, pensando a través de varios equipos de computación en paralelo: si el aprendizaje de algoritmos muestra un par de resumir el conjunto de entrenamiento?

De hecho, muchos algoritmos de aprendizaje se pueden expresar en pares de entrenamiento conjunto de funciones de suma, mientras se ejecuta en grandes conjuntos de datos, calcular la cantidad consumida es que la necesidad de grandes sumas de formación establecido, siempre que el algoritmo de aprendizaje se puede expresar como conjunto de entrenamiento suma, entonces usted puede utilizar MapReduce aprenderá a extender el uso de algoritmos para grandes conjuntos de datos.

Vea los siguientes ejemplos:

Supongamos que se desea utilizar un algoritmo de optimización avanzada, tales como L-BFGS, algoritmos de gradiente conjugado, etc., que se supone debe ser la formación de un algoritmo de regresión logística, necesidad de calcular las cantidades siguientes dos aprendizaje:

(1) Calcular la función de coste óptimo objetivo:

Aquí Insertar imagen Descripción

(2) el algoritmo de optimización avanzada requiere el cálculo de la expresión derivada parcial de:

Aquí Insertar imagen Descripción

Mientras el algoritmo de aprendizaje se puede representar como una forma serie suma o en la forma de representación de la función resumen, las técnicas de MapReduce se pueden utilizar en el conjunto de entrenamiento de algoritmos de aprendizaje en paralelo, de modo que se puede aplicar a grandes conjuntos de datos.

Este es el uso de MapReduce paralelo para lograr los datos operativos, efectivamente puede mejorar la eficiencia operativa, por lo que el estudio de este capítulo, con la esperanza de una máquina a gran escala de los métodos de aprendizaje puedan entender un poco y maestro.

Publicado 80 artículos originales · ganado elogios 140 · vistas 640 000 +

Supongo que te gusta

Origin blog.csdn.net/linjpg/article/details/104434124
Recomendado
Clasificación