Todos os algoritmos de aprendizado de máquina separam os dados linearmente?

22

Sou um entusiasta da programação e aprendizado de máquina. Apenas alguns meses atrás, comecei a aprender sobre programação de aprendizado de máquina. Como muitos que não têm formação científica quantitativa, também comecei a aprender sobre ML, mexendo com os algoritmos e conjuntos de dados no pacote ML amplamente utilizado (caret R).

Há algum tempo, li um blog em que o autor fala sobre o uso da regressão linear no ML. Se bem me lembro, ele falou sobre como todo o aprendizado de máquina no final usa algum tipo de "regressão linear" (não tenho certeza se ele usou esse termo exato), mesmo para problemas lineares ou não lineares. Naquela época eu não entendi o que ele quis dizer com isso.

Meu entendimento sobre o uso de aprendizado de máquina para dados não lineares é usar um algoritmo não linear para separar os dados.

Este foi o meu pensamento

Digamos que para classificar dados lineares, usamos a equação linear para dados não lineares usamos a equação não linear, digamosy = s i n ( x )y=mx+cy=sEun(x)

insira a descrição da imagem aqui

Esta imagem foi tirada do site sikit learn da máquina de vetores de suporte. No SVM, usamos diferentes kernels para fins de ML. Então, meu pensamento inicial era que o kernel linear separa os dados usando uma função linear e o kernel RBF usa uma função não linear para separar os dados.

Mas então eu vi este blog onde o autor fala sobre redes neurais.

Para classificar o problema não linear na subparcela esquerda, a rede neural transforma os dados de tal maneira que, no final, podemos usar uma separação linear simples para os dados transformados na subparcela direita

insira a descrição da imagem aqui

Minha pergunta é se todos os algoritmos de aprendizado de máquina no final usam uma separação linear para classificar (conjunto de dados linear / não linear)?

Eka
fonte
1
Relacionado: stats.stackexchange.com/questions/164048/…
Sycorax diz Restabelecer Monica
3
pecado(x)s=pecado(x)y=θ0 0+θ1s
Também gosto da resposta do mbq neste tópico. Ajude-me a entender as máquinas de vetores de suporte .
21716 Andy W

Respostas:

26

A resposta é não. User20160 tem uma resposta perfeita, adicionarei 3 exemplos com visualização para ilustrar a ideia. Observe que esses gráficos podem não ser úteis para você ver se a "decisão final" está na forma linear, mas lhe dá algum sentido sobre árvore, aumento e KNN.

Começaremos com árvores de decisão. Com muitas divisões, é um limite de decisão não linear. E não podemos pensar que todas as divisões anteriores sejam "transformações de recursos" e que haja uma linha de decisão final no final.

Outro exemplo é o modelo de reforço, que agrega muitos "classificadores fracos" e o limite de decisão final não é linear. Você pode pensar que é um código / algoritmo complicado para fazer a previsão final.

Por fim, pense em K vizinhos mais próximos (KNN). Também não é uma função de decisão linear na camada final. além disso, não há "transformações de recursos" no KNN.

Aqui estão três visualizações no espaço 2D (Tree, Boosting e KNN de cima para baixo). A verdade fundamental é que 2 espirais representam duas classes, e a subparcela esquerda é a previsão do modelo e a subparcela direita é os limites de decisão do modelo.

Limite de decisão em árvore

Aumentando o limite de decisão

Limite de decisão do KNN


EDIT: a resposta de @ ssdecontrol neste post oferece outra perspectiva.

Depende de como definimos a "transformação" .

Qualquer função que particione os dados em duas partes pode ser transformada em um modelo linear desse formulário, com uma interceptação e uma única entrada (um indicador de qual "lado" da partição está o ponto de dados). É importante observar a diferença entre uma função de decisão e um limite de decisão.

Haitao Du
fonte
Não quero criticar, mas o impulso parece um pouco difícil, não? Não é possível obter um resultado mais suave com parâmetros diferentes? Desculpe ser pernickety, porque acho toda a explicação muito boa.
YCR
@YCR Eu acho que é o ponto de aumentar onde você tem um limite de decisão difícil. A rugosidade é causada pela agregação de muitos classificadores fracos (neste exemplo, são árvores). Mas eu concordo com você que o segundo exemplo não é um bom modelo, e é overfitting :)
Haitao Du
1
(+1) Ótima visualização (eu também uso spiralsmuito em minhas experiências). Uma sugestão: plote os limites da decisão como imagee, talvez, adicione níveis de probabilidade (se você estiver usando saídas probabilísticas) com contour.
Firebug
@Firebug ótima sugestão! esses gráficos são gerados em uma grade e apenas podem indicar o rótulo final. O contorno é muito melhor.
Haitao Du
Veja minha resposta aqui: stats.stackexchange.com/a/218578/60613
Firebug
21

Alguns algoritmos usam um hiperplano (função linear) para separar os dados. Um exemplo proeminente é a regressão logística. Outros usam um hiperplano para separar os dados após uma transformação não linear (por exemplo, redes neurais e máquinas de vetores de suporte com núcleos não lineares). Nesse caso, o limite de decisão não é linear no espaço de dados original, mas linear no espaço de recurso no qual os dados são mapeados. No caso de SVMs, a formulação do kernel define esse mapeamento implicitamente. Outros algoritmos usam vários hiperplanos de divisão em regiões locais do espaço para dados (por exemplo, árvores de decisão). Nesse caso, o limite de decisão é linear por partes (mas não linear em geral).

No entanto, outros algoritmos têm limites de decisão não lineares e não são formulados em termos de hiperplanos. Um exemplo de destaque é a classificação de vizinhos mais próximos. Classificadores de conjuntos (por exemplo, produzidos por reforço ou empacotamento de outros classificadores) geralmente não são lineares.

user20160
fonte
A Rede Neural não é um bom exemplo de uma classe de modelo que usa hiperplanos após transformação não linear. A camada de saída pode ser (em muitos casos) uma ativação sigmóide, desde que você assuma as camadas anteriores como uma transformação não linear em um espaço de feição.
Cagdas Ozgenc
1
@CagdasOzgenc Vamos considerar o caso da classificação binária e de uma rede com saída sigmoidal, como você está sugerindo. Isso é equivalente à regressão logística nas ativações da camada anterior (o uso de saídas softmax seria equivalente à regressão logística multinomial). Portanto, o limite de decisão é um hiperplano no espaço de recursos. A imagem na pergunta original mostra um bom exemplo disso.
user20160
Eu entendo que quando f (Ax) = 0 ef é um para um, você pode simplesmente fazer f ^ -1 de (Ax) = f ^ -1 (0) => Ax = 0 (ou alguma constante c). Portanto, no caso do sigmóide, você obtém um limite de decisão linear. Basicamente, estamos falando de casos em que f não é invertível?
Cagdas Ozgenc
A função de ativação do neurônio de saída ex é a saída da camada anterior? Não sei se entendi o que você está perguntando.
user20160
x é um vetor proveniente de neurônios da camada anterior ef é a função de ativação da saída.
Cagdas Ozgenc