Gradiente Descendente PDF
Gradiente Descendente PDF
Gradiente Descendente PDF
Gradiente descendente
(batch, stochastic e boosting)
yi = β t xi + εi , com ε ∼ N(0, σ 2 ).
• Isso implica em
(yi − β t xi )2
1
P(yi |xi ; β) = √ exp − .
2πσ 2σ 2
2
Solução de quadrados mı́nimos
• Seja X ∈ Mn×p (R), com n > p e posto(X) = p. Dado y ∈ Rn , definimos o
seguinte problema de minimização:
2
X β̂ − y
= min kX β − yk2 ; β ∈ Rp+1
2
Xt Xβ = Xt y.
3
Demonstração
• O Gradiente do funcional J no ponto β ∈ Rp+1 é definido por:
= ∇ β t Xt Xβ − β t Xt Xy − yt Xβ + yt y
= ∇tr β t Xt Xβ − β t Xt y − yt Xβ + yt y
= ∇ tr β t Xt Xβ − 2tr yt Xβ
= ∇ Xt Xβ + Xt Xβ − 2Xt y
= 2Xt Xβ − 2Xt y
4
Método do gradiente descendente (GD)
• O Gradiente descendente (GD) é um método para encontrar o mı́nimo
de uma função de forma iterativa;
5
Taxa de aprendizagem α
• Taxa de aprendizagem controla o tamanho do passo em cada iteração;
6
Exemplo 1
• Vamos começar com um exemplo simulado de regressão linear simples
set.seed(12345)
x <- sample(seq(from = -1, to = 1, by = 0.1), size = 50, replace = TRUE)
y <- 2 * x + rnorm(50)
7
Exemplo 1
X <- as.matrix(x)
y <- as.vector(y)
f <- function(X, y, b) {
(1/2) * norm(y - X %*% b, "F")^2
}
grad_f <- function(X, y, b) {
t(X) %*% (X %*% b - y)
}
simple_ex <- graddesc(f, grad_f, X, y, 0.01)
plot_loss(simple_ex)
8
Exemplo 2
9
Exemplo 2
f <- function(X, y, b) {
(1/2) * norm(y - X %*% b, "F")^2
}
grad_f <- function(X, y, b) {
t(X) %*% (X %*% b - y)
}
X <- as.matrix(moviebudgets$budget)
y <- as.vector(moviebudgets$rating)
movies1 <- graddesc(f, grad_f, X, y, 1e-04, 5000)
χ Não lida com funções não diferenciáveis (dica: use o método Subgradiente).
χ Utiliza todos os dados de treinamento para estimar os parâmetros. Assim,
para grandes bancos de dados torna-se lento;
• Diante deste último aspecto, por que não em cada iteração selecionar um
valor na amostra e com sua informação executar um passo?
11
Gradiente descendente estocástico (GDE)
12
Gradiente descendente estocástico (GDE)
13
Gradiente descendente estocástico (GDE)
14
Prós e contras do GDE
15
Gradiente boosting
16
Intuição
• Lembrando de regressão
n
X n
X n
X
(yi − ȳ )2 = (ŷi − ȳ )2 + (yi − ŷ )2 .
i=1 i=1 i=1
| {z } | {z } | {z }
SQT SQR SQE
• E, geometricamente, temos
• Isso quer dizer que toda variabilidade não explicada pela regressão ficará
no resı́duo (variáveis e funções delas!);
• Vejamos um exemplo.
17
Intuição
• Simular uma situação na qual a verdadeira relação entre X e Y é
y = 3, 5x 2 + 6x + 5
100
y
50
18
Intuição
• Agora, vamos ajustar um modelo de regressão linear simples
ajuste = lm(y ~ x)
ajuste$coef
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 33.3499 1.2533 26.61 <2e-16 ***
## x 6.2182 0.4409 14.11 <2e-16 ***
e = ajuste$residuals 50
qplot(x,e,
xlab="x",
Resíduos
ylab="Valores ajustados") 0
−50
19
Intuição
• Pode-se dizer que h(x) foi atualizada com uma parte do residuo, ou seja
20
Gradiente boosting e resı́duos
• Queremos minimizar
n
1 X
J(yi , h(x)) = [yi − h(xi )]2
2n i=1
21
Gradiente boosting
∂J(yi , h(x)(k) )
* Calcule − ;
∂h(xi )(k)
Exemplo:
Começando com um simples preditor Aprimorando com os resı́duos
22
Gradiente boosting
∂J(yi , h(x)(k) )
* Calcule − ;
∂h(xi )(k)
Exemplo:
Combinando, temos um melhor preditor Novamente, aprimorando com os resı́duos
23
Gradiente boosting
24
Outras funções perda
• Soma dos desvios absolutos (SDA)
n
1X
J(yi , h(x)) = |yi − h(xi )|
n i=1
25
Outras funções perda
26
Conclusão
27