Como o gradiente está aumentando como a descida do gradiente?

9

Estou lendo a útil entrada da Wikipedia sobre aumento de gradiente ( https://en.wikipedia.org/wiki/Gradient_boosting ) e tento entender como / por que podemos aproximar os resíduos pela etapa de descida mais íngreme (também chamada de pseudo-gradiente ) Alguém pode me dar a intuição de como a descida mais íngreme está ligada / semelhante aos resíduos? Ajuda muito apreciada!

insira a descrição da imagem aqui

Wouter
fonte

Respostas:

11

Suponha que estamos na seguinte situação. Temos alguns dados , onde cada pode ser um número ou vetor, e gostaríamos de determinar uma função que se aproxima do relacionamento , no sentido de que os mínimos quadrados erro:x i f f ( x i ) y i{xi,yi}xiff(xi)yi

12i(yif(xi))2

é pequeno.

Agora, entra a pergunta sobre o que gostaríamos que fosse o domínio de . Uma escolha degenerada para o domínio são apenas os pontos em nossos dados de treinamento. Nesse caso, podemos apenas definir , cobrindo todo o domínio desejado, e terminar com ele. Uma maneira de chegar a essa resposta é fazer uma descida gradual com esse espaço discreto como domínio. Isso leva um pouco de mudança no ponto de vista. Vamos ver a perda como uma função do ponto verdadeiro e a previsão (no momento, não é uma função, mas apenas o valor da previsão)f ( x i ) = y y f fff(xi)=yy ff

L(f;y)=12(yf)2

e depois pegue o gradiente com relação à previsão

fL(f;y)=fy

Em seguida, a atualização do gradiente, começando com um valor inicial de éy0

y1=y0f(y0,y)=y0(y0y)=y

Portanto, recuperamos nossa previsão perfeita em uma etapa gradiente com essa configuração, o que é bom!

A falha aqui é, obviamente, que queremos que seja definido em muito mais do que apenas nossos pontos de dados de treinamento. Para fazer isso, precisamos fazer algumas concessões, pois não podemos avaliar a função de perda ou seu gradiente em nenhum outro ponto que não seja nosso conjunto de dados de treinamento. f

A grande idéia é aproximar fraca . L

Startcom um palpite inicial em , quase sempre uma função constante simples , isso é definido em todos os lugares. Agora gere um novo conjunto de dados de trabalho avaliando o gradiente da função de perda nos dados de treinamento, usando o palpite inicial para :ff(x)=f0f

W={xi,f0y}

Now approximate L por encaixe aluno fraco para . Digamos que temos a aproximação . Ganhamos uma extensão dos dados em todo o domínio na forma de , embora tenhamos perdido precisão nos pontos de treinamento, uma vez que adaptamos um aluno pequeno.WFLWF(X)

Finally, use no lugar de na atualização gradiente de em todo o domínio:FLf0

f1(x)=f0(x)F(x)

Nós sair , uma nova aproximação das , um pouco melhor do que . Comece de novo com e itere até ficar satisfeito. f f 0 f 1f1ff0f1

Felizmente, você vê que o que é realmente importante é aproximar o gradiente da perda. No caso de minimização de mínimos quadrados, isso assume a forma de resíduos brutos, mas em casos mais sofisticados, não. A maquinaria ainda se aplica. Desde que se possa construir um algoritmo para calcular a perda e o gradiente de perda nos dados de treinamento, podemos usar esse algoritmo para aproximar uma função que minimiza essa perda.

Matthew Drury
fonte
iyilog(pi)+(1yi)log(1pi)
αmh(m)
0,1
11
f1f0F(x)f0αF(x)α
@ hxd1011 Sim, isso é absolutamente correto e crucial para o uso eficiente do gradiente.
Matthew Drury