Eu quero implementar um algoritmo em um documento que usa o SVD do kernel para decompor uma matriz de dados. Então, eu tenho lido materiais sobre métodos do kernel e PCA do kernel etc. Mas ainda é muito obscuro para mim, especialmente quando se trata de detalhes matemáticos, e eu tenho algumas perguntas.
Por que métodos de kernel? Ou, quais são os benefícios dos métodos do kernel? Qual é o objetivo intuitivo?
Ele está assumindo que um espaço dimensional muito mais alto é mais realista nos problemas do mundo real e capaz de revelar as relações não lineares nos dados, em comparação com os métodos que não são do kernel? De acordo com os materiais, os métodos do kernel projetam os dados em um espaço de recurso de alta dimensão, mas eles não precisam calcular explicitamente o novo espaço de recurso. Em vez disso, basta calcular apenas os produtos internos entre as imagens de todos os pares de pontos de dados no espaço de recursos. Então, por que projetar em um espaço dimensional mais alto?
Pelo contrário, o SVD reduz o espaço do recurso. Por que eles fazem isso em direções diferentes? Os métodos do kernel buscam dimensão mais alta, enquanto o SVD busca a dimensão mais baixa. Para mim, parece estranho combiná-los. De acordo com o artigo que estou lendo ( Symeonidis et al. 2010 ), a introdução do SVD do Kernel em vez do SVD pode resolver o problema de escassez nos dados, melhorando os resultados.
A partir da comparação na figura, podemos ver que o KPCA obtém um vetor próprio com maior variação (valor próprio) que o PCA, suponho? Como para a maior diferença de projeções dos pontos no vetor próprio (novas coordenadas), o KPCA é um círculo e o PCA é uma linha reta; portanto, o KPCA obtém uma variação maior do que o PCA. Então isso significa que o KPCA obtém componentes principais mais altos que o PCA?
fonte
Respostas:
O PCA (como uma técnica de redução de dimensionalidade) tenta encontrar um subespaço linear de baixa dimensão ao qual os dados estão confinados. Mas pode ser que os dados estejam confinados ao subespaço não linear de baixa dimensão . O que acontecerá então?
Dê uma olhada nesta figura, tirada do livro didático "Reconhecimento de padrões e aprendizado de máquina" de Bishop (Figura 12.16):
Os pontos de dados aqui (à esquerda) estão localizados principalmente ao longo de uma curva em 2D. O PCA não pode reduzir a dimensionalidade de dois para um, porque os pontos não estão localizados ao longo de uma linha reta. Mas ainda assim, os dados estão "obviamente" localizados em torno de uma curva não linear unidimensional. Portanto, embora o PCA falhe, deve haver outra maneira! E, de fato, o PCA do kernel pode encontrar essa variedade não linear e descobrir que os dados são de fato quase unidimensionais.
Isso é feito mapeando os dados em um espaço de maior dimensão. Isso pode realmente parecer uma contradição (sua pergunta # 2), mas não é. Os dados são mapeados em um espaço de maior dimensão, mas acabam se situando em um subespaço de menor dimensão. Então você aumenta a dimensionalidade para poder diminuí-la.
A essência do "truque do kernel" é que não é preciso considerar explicitamente o espaço dimensional mais alto; portanto, esse salto potencialmente confuso na dimensionalidade é realizado inteiramente à paisana. A ideia, no entanto, permanece a mesma.
fonte