paint-brush
Comprensión do gradiente medio estocásticopor@kustarev
31,731 lecturas
31,731 lecturas

Comprensión do gradiente medio estocástico

por Andrey Kustarev4m2024/06/06
Read on Terminal Reader
Read this story w/o Javascript

Demasiado longo; Ler

O descenso de gradientes é unha optimización popular que se usa para localizar mínimos globais das funcións obxectivas proporcionadas. O algoritmo usa o gradiente da función obxectivo para percorrer a pendente da función ata chegar ao punto máis baixo. Descenso de degradado completo (FG) e Descenso de degradado estocástico (SGD) son dúas variacións populares do algoritmo. FG usa todo o conxunto de datos durante cada iteración e proporciona unha alta taxa de converxencia cun alto custo de cálculo. En cada iteración, SGD usa un subconxunto de datos para executar o algoritmo. É moito máis eficiente pero cunha converxencia incerta. O Gradiente Medio Estocástico (SAG) é outra variación que proporciona os beneficios de ambos os algoritmos anteriores. Usa a media dos gradientes pasados e un subconxunto do conxunto de datos para proporcionar unha alta taxa de converxencia cun cálculo baixo. O algoritmo pódese modificar aínda máis para mellorar a súa eficiencia mediante a vectorización e mini-lotes.

People Mentioned

Mention Thumbnail

Companies Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Comprensión do gradiente medio estocástico
Andrey Kustarev HackerNoon profile picture
0-item


O descenso de gradientes é a técnica de optimización máis popular no modelado de aprendizaxe automática (ML). O algoritmo minimiza o erro entre os valores previstos e a verdade do terreo. Dado que a técnica considera cada punto de datos para comprender e minimizar o erro, o seu rendemento depende do tamaño dos datos de adestramento. Técnicas como Descenso de gradiente estocástico (SGD) están deseñadas para mellorar o rendemento do cálculo pero a costa da precisión da converxencia.


Gradiente medio estocástico equilibra o enfoque clásico, coñecido como Descenso de degradado completo e SGD, e ofrece ambos beneficios. Pero antes de poder usar o algoritmo, primeiro debemos comprender o seu significado para a optimización do modelo.

Optimización dos obxectivos de aprendizaxe automática con descenso de gradientes

Cada algoritmo de ML ten asociada unha función de perda que ten como obxectivo minimizar ou mellorar o rendemento do modelo. Matemáticamente, a perda pódese definir como:


É simplemente a diferenza entre a saída real e a prevista, e minimizar esta diferenza significa que o noso modelo achégase aos valores de verdade básicos.


O algoritmo de minimización usa o descenso de gradientes para atravesar a función de perda e atopar un mínimo global. Cada paso de percorrido implica actualizar os pesos do algoritmo para optimizar a saída.


Descenso en gradiente simple

O algoritmo de descenso de gradientes convencional utiliza a media de todos os gradientes calculados en todo o conxunto de datos. O ciclo de vida dun único exemplo de adestramento é o seguinte:



A ecuación de actualización de peso ten o seguinte aspecto:

Onde W representa os pesos do modelo e dJ/dW é a derivada da función de perda con respecto ao peso do modelo. O método convencional ten unha alta taxa de converxencia, pero resulta costoso computacionalmente cando se trata de grandes conxuntos de datos que comprenden millóns de puntos de datos.

Descenso de gradiente estocástico (SGD)

A metodoloxía SGD segue sendo a mesma que a GD simple, pero en lugar de usar todo o conxunto de datos para calcular os gradientes, utiliza un pequeno lote das entradas. O método é moito máis eficiente, pero pode saltar demasiado arredor dos mínimos globais xa que cada iteración usa só unha parte dos datos para aprender.

Gradiente medio estocástico

O enfoque do Gradiente Medio Estocástico (SAG) introduciuse como un punto medio entre GD e SGD. Selecciona un punto de datos aleatorios e actualiza o seu valor en función do gradiente nese punto e dunha media ponderada dos gradientes pasados almacenados para ese punto de datos en particular.


Semellante ao SGD, SAG modela cada problema como unha suma finita de funcións convexas e diferenciables. En calquera iteración, usa os gradientes actuais e a media dos gradientes anteriores para actualizar o peso. A ecuación toma a seguinte forma:



Taxa de converxencia

Entre os dous algoritmos populares, gradiente completo (FG) e descenso de gradiente estocástico (SGD), o algoritmo FG ten unha mellor taxa de converxencia xa que utiliza todo o conxunto de datos durante cada iteración para o cálculo.

Aínda que SAG ten unha estrutura similar á SGD, a súa taxa de converxencia é comparable e ás veces mellor que o enfoque de gradiente completo. A táboa 1 a continuación resume os resultados dos experimentos de Schmidt et. al .

Fonte: https://arxiv.org/pdf/1309.2388

Máis modificacións

A pesar do seu sorprendente rendemento, propuxéronse varias modificacións ao algoritmo SGD orixinal para axudar a mellorar o rendemento.


  • Reponderación nas primeiras iteracións: a converxencia SAG segue lenta durante as primeiras iteracións xa que o algoritmo normaliza a dirección con n (número total de puntos de datos). Isto proporciona unha estimación inexacta xa que o algoritmo aínda non viu moitos puntos de datos. A modificación suxire normalizar por m en lugar de n, onde m é o número de puntos de datos vistos polo menos unha vez ata esa iteración particular.
  • Mini-lotes: o enfoque de gradiente estocástico utiliza mini-lotes para procesar varios puntos de datos simultaneamente. O mesmo enfoque pódese aplicar ao SAG. Isto permite a vectorización e a paralelización para mellorar a eficiencia do ordenador. Tamén reduce a carga de memoria, un desafío destacado para o algoritmo SAG.
  • Experimentación de tamaño de paso: o tamaño de paso mencionado anteriormente (116L) proporciona resultados sorprendentes, pero os autores experimentaron aínda máis usando o tamaño de paso de 1L. Este último proporcionaba unha converxencia aínda mellor. Non obstante, os autores non puideron presentar unha análise formal dos resultados mellorados. Conclúen que o tamaño do paso debe ser experimentado para atopar o óptimo para o problema específico.


Pensamentos finais

O descenso de gradientes é unha optimización popular que se usa para localizar mínimos globais das funcións obxectivas proporcionadas. O algoritmo usa o gradiente da función obxectivo para percorrer a pendente da función ata chegar ao punto máis baixo.

Descenso de degradado completo (FG) e Descenso de degradado estocástico (SGD) son dúas variacións populares do algoritmo. FG usa todo o conxunto de datos durante cada iteración e proporciona unha alta taxa de converxencia cun alto custo de cálculo. En cada iteración, SGD usa un subconxunto de datos para executar o algoritmo. É moito máis eficiente pero cunha converxencia incerta.


O Gradiente Medio Estocástico (SAG) é outra variación que proporciona os beneficios de ambos os algoritmos anteriores. Utiliza a media dos gradientes pasados e un subconxunto do conxunto de datos para proporcionar unha alta taxa de converxencia cun cálculo baixo. O algoritmo pode modificarse aínda máis para mellorar a súa eficiencia mediante vectorización e mini-lotes.