MO432 -capitulo 7
veja figura 7.1
essa é uma rede neural de uma camada escondida (que é o caso mais comum)
é também chamada de MLP (multi layer perceptron).
o algoritmo de “back propagation” é na verdade uma decida do gradiente. So encontra um mínimo local!
redes neurais tem muitos parâmetros (que pode levar a overfitting)
soluções para overfitting
early stopping: use um pequeno conjunto de teste (chamado de validação) e pare a descida do gradiente quando o erro na validação começar a crescer.
weight decay: isso é uma regularização L2
mais modernamente, usa-se uma ativação chamada “relu” em vez da função logística g
hiperparametros: numero de neurônios na camada do meio, e o lambda da regularização L2.
variações nos algoritmos de descida do gradiente (momento, adam, RMSprop, nesterov AG, etc - veja MO431)
SVM é mais fácil de entender usando classificação - veja cap 13 do livro.
1a versão é uma regressão linear usando
uma função de loss linear com uma região \epsilon de “não faz diferença” - veja a 4a figura na fig 7.6. Desde que a sua previsão fique a menos do que \epsilon do valor correto isso não é considerado como erro.
regularização L2
o hiperparametro da regularização aparece “no lugar errado” multiplicando o erro (e não o termo de regularização) e é chamado de C
2a versão:
a 3a linha da equação 7.2 é o central. Em vez de usar os coeficientes \beta para cada dimensão/atributo a formula usa um coeficiente \alpha para cada dado do conjunto de treino!
isso é chamado da formula dual do SVM (e é muito mais clara quando falamos de classificação e não de regressão).
isso parece uma ideia super ruim pois provavelmente há muito mais dados que dimensões e portanto muito mais parametros para determinar - isso pode levar ao overfitting.
isso tambem é ruim pois temos que nos lembrar de todos os dados do treino.
mas o \alpha sera 0 para todos os pontos que não contribuem para o erro (pontos cuja previsão é menos que \epsilon do valor correto)
os pontos fora desta faixa sao os únicos onde \alpha>0, são os únicos que o algoritmo precisa se lembrar. Sao chamados de support vector
finalmente a ultima linha de 7.2 pode ser escrito como
f(u) = \beta_0 + \sum_{x_i \in s.v} \alpha_i \langle x_i , u \rangle
onde \langle x_i , u \rangle é o produto interno.
esse produto interno pode ser trocado por outras funções que dado 2 vetores retornem um numero. Essas funções são chamadas de kernel
isso permite que a regressão seja nao-linear
Kernel K(x,u)
linear = produto interno \langle x, u \rangle = x^T u
RBF = e^{\frac{|x-u|^2}{\gamma}} O livro usa \sigma = 1/\gamma
polinomial
e outros
Kernel RBF é normalmente muito bom, mas ele tem um novo hiperparametos o \gamma (gamma).
Hiperparametros: C, \gamma e \epsilon.
\epsilon esta em unidades do y e deve ser buscado linearmente, ou é fixo meio que arbitrariamente (talvez 0?)
C alto significa muito custo para erros e portanto maior possibilidade de overfitting. A curva vai ser seguir mais os dados. Poucos support vectors
C deve ser procurado logaritmicamente entre 2^{-5} a 2^{15} (para classificação)
\gamma alto indica que a função de regressão pode ser rugosa. \gamma baixo indica que ela deve ser mais suave, perto da reta. Deve ser procurado logaritmicamente entre 2^{-9} e 2^3 (para atributos normalizados).
sklearn: https://scikit-learn.org/stable/modules/generated/sklearn.svm.SVR.html?highlight=svm#sklearn.svm.SVR
e https://scikit-learn.org/stable/modules/generated/sklearn.svm.LinearSVR.html#sklearn.svm.LinearSVR para o kernel linear
K é um hiperparametro
Escolha os K vizinhos mais próximos (no conjunto de treino) do dado novo. Retorne a média do valor desses vizinhos.
Os dados devem estar normalizados para que a distancia possa ter sentido.
K baixo implica num modelo complexo e potencial de overfitting.
K alto modelo menos complexo (tira a media de vários dados e não depende tanto do mais próximo) K=n retorna a media dos dados de treino sempre!
KNN não demora nada para treinar mas O(n) para testar cada dado! Pode-se usar estruturas de dados para achar mais rapidamente os k-vizinhos (kd-tree, ball tree)
Alternativas:
media ponderada pelo inverso da distancia em vez de média
mediana em vez de média
outras medidas de distancia
problema: curse of dimensionality ou maldição da dimensionalidade. Distancias em espaços de muitas dimensões podem não significar muito - a maioria dos pontos esta a uma mesma distancia de todos os outros!!