‫Bem-vindos de volta, todos, a esta discussão contínua sobre a teoria e a intuição por trás das máquinas
‫de vetores de suporte nesta palestra.
‫Vamos realmente nos concentrar no truque do kernel e na matemática por trás das máquinas de vetores de suporte.
‫Anteriormente, apenas discutimos a intuição por trás desses métodos.
‫Então, vamos fazer agora uma breve revisão da matemática geral de como construímos para suportar
‫máquinas de vetores e também discutiremos como a matemática está relacionada às chamadas seculares e de classe.
‫Começaremos com uma breve revisão do uso de classificadores baseados em margem, expandindo lentamente do classificador de margem máxima
‫para o classificador de vetor de suporte e, finalmente, usando o truque do kernel para máquinas de vetor de
‫suporte.
‫Agora sinta-se à vontade para considerar esta uma aula opcional, que você pode substituir pela leitura relativa.
‫A leitura de fundo pode ser encontrada no Capítulo nove de uma introdução ao Aprendizado Estatístico para uma visão geral
‫profunda e abrangente de tudo o que discutimos.
‫Você pode verificar a publicação original de Cortez e se o APNIC chamou Support Vector Networks no
‫Machine Learning Journal.
‫Agora, vamos primeiro falar sobre hiperplantas definidas matematicamente aqui, posso imaginar um espaço bidimensional
‫com duas características X1 e X2.
‫Um hiperplano é apenas uma linha em dois recursos, o que significa que eu poderia definir isso matematicamente como as linhas
‫que vimos antes.
‫Um beta, não para interceptar mais beta uma vez X1 mais beta duas vezes x2 e definir isso igual a zero e
‫haverá algum conjunto de betas que definirá esta linha.
‫Agora, lembre-se, eu poderia expandir isso para várias dimensões, apenas continuando onde há um
‫único coeficiente Beita para cada recurso.
‫Agora, esta é a definição matemática de um hiperplano para alguns recursos.
‫Vamos falar sobre como separar hiperplanos, toda a ideia por trás de hiperplanos para máquinas de vetores de suporte é
‫que eles estão separando as classes, o que significa que devo começar a pensar não apenas na linha do
‫plano híbrido em si, mas nas definições matemáticas do que eu '. vou considerar como um fator de
‫separação.
‫Então, eu quero considerar que os valores que estão acima de zero vão cair em um lado deste hiperplano.
‫Da mesma forma, os valores abaixo de zero cairão do outro lado do hiperplano.
‫Portanto, agora eu tenho um conjunto de equações que são capazes de definir de que lado do hiperplano você cai.
‫A última consideração que precisamos fazer para definir matematicamente algo como um classificador de margem
‫máxima são os próprios pontos de dados.
‫Algo a se notar aqui é que, quando realmente digitamos isso matematicamente, normalmente mostramos os
‫pontos de característica reais ou pontos de dados como a matriz transposta de X.
‫Isso quer dizer que X um a NP representa o número de pontos de dados e um a P representa o
‫número de recursos.
‫Portanto, observe que isso é diferente do modo como normalmente escrevemos nossos dados em algo como o quadro
‫de dados de um panda.
‫São os mesmos dados.
‫Apenas transponha.
‫Então, as colunas das linhas e as linhas das colunas, novamente, de um a N é o número de
‫pontos em si.
‫Uma terapia é o número de recursos reais.
‫Portanto, neste caso, teríamos duas características X1 e X2, dado o diagrama à direita e
‫teríamos seis pontos.
‫Então, um a seis seria um a.
‫Agora vamos usar todas essas informações para definir matematicamente um classificador de margem máxima.
‫Lembre-se de que todo o propósito de um classificador de margem máxima é maximizar M, onde m é essa margem que se estende
‫desde o aquário.
‫Portanto, estamos essencialmente tentando escolher os melhores coeficientes beta que podem maximizar essa margem, mas
‫temos algumas restrições.
‫Estamos sujeitos a essas duas restrições, dado o conjunto de dados, então o que isso realmente significa?
‫Bem, tudo isso significa que o que estamos tentando fazer é considerar os pontos de dados aqui.
‫Nesse caso, temos seis pontos de dados ou um por meio de NP.
‫E o que queremos fazer é ter certeza de cumprir este requisito de assunto em que essencialmente os pontos de
‫dados serão iguais ou maiores que a margem, dependendo de qual lado da margem eles
‫realmente caem.
‫Esta é essencialmente uma forma matemática de dizer que, para um classificador de margem máxima, nenhum ponto de dados
‫pode realmente estar dentro da margem.
‫Também estamos sujeitos a esta soma dos quadrados para os coeficientes beta serem iguais a um.
‫Agora, isso na verdade ajuda a corresponder à outra equação, determinando que se você plugasse os valores dos recursos
‫na equação abaixo, se você estivesse sujeito a beta ao quadrado e a soma deles sendo
‫igual a um, então por que eu multipliquei por esses coeficientes beta vezes?
‫O valor do recurso fornece a distância perpendicular do ponto à hiperplana e garante que essa distância
‫seja pelo menos tão grande quanto a própria margem.
‫Isso só quer dizer que, com essa restrição, podemos calcular matematicamente a distância
‫ortogonal de qualquer ponto até a hiperplana.
‫E aqui temos a definição completa, matematicamente falando, do classificador de margem Emax novamente, dada esta matriz de
‫transposição de pontos de dados, queremos descobrir os coeficientes beta que vão maximizar
‫este em sujeito a essas duas equações, o que essencialmente garante que os pontos estão fora dessas margens e estão
‫caindo no lado correto da margem de acordo com sua classe.
‫E estamos sujeitos a este beta ao quadrado, algum coeficiente sendo igual a um para determinar
‫a distância ortogonal dos pontos à hiperplana.
‫Agora, vamos passar para um classificador de vetor de suporte.
‫Lembre-se de que um classificador de vetor de suporte é diferente de um classificador de margem máxima
‫porque ele permite classificações incorretas, essencialmente permitindo que algum número de pontos caia dentro da margem.
‫Portanto, ainda queremos maximizar essa margem e ainda queremos ter certeza de que
‫estamos sujeitos à soma do quadrado sendo igual a um para poder determinar a distância ortogonal dos vetores
‫ao próprio plano.
‫Mas, como há um classificador de vetor de suporte, agora permito alguns termos de erro.
‫Portanto, observe que estou usando Epsilon e este épsilon é uma relação entre algum valor C definido ou este valor C
‫vai determinar quantas classificações erradas você realmente se permite.
‫Portanto, é praticamente a mesma equação, exceto que agora a margem tem esse fator de erro épsilon determinado pela soma
‫de Epsilon sendo Lessner igual para ver onde o C pode ser fornecido pelo usuário.
‫E poderemos usar a validação cruzada para resolver o C ideal a fim de maximizar a precisão ou maximizar
‫a precisão ou recall, dependendo do que realmente estamos tentando otimizar aqui.
‫Mas esta é a definição completa de um classificador de vetor de suporte, essencialmente a mesma coisa que um classificador
‫de margem máxima.
‫Mas com essas restrições adicionais ou acréscimos do fato de que podemos realmente ter classificações erradas restringidas
‫por algum valor de C e quando C vai para zero, então voltamos a um classificador de margem máxima,
‫essencialmente não permitindo nenhum erro.
‫Agora, uma nota rápida sobre este valor de SI, você deve notar que da maneira como você o definiu
‫aqui matematicamente, quanto maior o valor do mar, mais erros nos permitimos.
‫Saikat aprende devido ao fato de que eles desejam permanecer consistentes em vários modelos.
‫Eles dizem que C é um parâmetro de regularização inversamente proporcional ao C mostrado na equação aqui.
‫Isso tudo quer dizer que, matematicamente falando, nas equações que estamos mostrando aqui, conforme você
‫aumenta C, aumenta o número de classificações incorretas que permite que o insight aprenda que é inversamente proporcional à
‫equação mostrada aqui.
‫Obviamente, eles ficarão mais claros quando começarmos a experimentar o aprendizado do Saikat.
‫Mas é apenas algo para se ter em mente que o C na documentação dos cicladores e na chamada de classe para
‫máquinas de vetores de suporte não é exatamente a mesma coisa que estou mostrando aqui nas equações, ou que você
‫normalmente lerá quando estiver realmente lendo o equações para máquinas de vetores de suporte.
‫Na verdade, é inversamente proporcional a C, e isso só porque eles desejam que o parâmetro de
‫regularização permaneça consistente em vários modelos.
‫OK, então, finalmente, vamos passar para máquinas de vetor de suporte e como definimos isso matematicamente lembre-se de que precisamos usar
‫máquinas de vetor de suporte não foram capazes de encontrar qualquer hiperplano claramente separável para nossos pontos de
‫dados aqui temos o que parece algo que podemos realmente não separe com a linha.
‫Temos um monte de pontos no meio e, em seguida, outra classe em torno deles.
‫Então, o que fazemos, como discutimos anteriormente, é transformar isso em algum tipo de dimensão superior ou espaço de
‫recursos.
‫Então, agora eu poderia ter recursos x1 x2 até o número de recursos XP, e eu poderia usar
‫algo como uma transformação polinomial usando X1 e x1 ao quadrado x2 ao lado do quadrado para expandir XP ao quadrado
‫a fim de tentar descobrir se houver um hiper-hidroavião neste espaço maior, ele será
‫capaz de separar com sucesso essas duas classes.
‫E ainda posso permitir classificações erradas neste espaço de recursos superior.
‫Então, novamente, o que eu quero fazer é maximizar essa margem.
‫Mas agora tenho muito mais coeficientes beta a considerar, dependendo do espaço de recursos para o qual estou expandindo
‫isso.
‫Então, se apenas definirmos tudo matematicamente, o que estamos fazendo aqui é adicionar a adição
‫para este caso simples de um polinômio quadrado.
‫Lembre-se de que esta não é uma máquina de vetores de suporte generalizada.
‫Estou apenas mostrando a máquina de vetores de suporte que mostramos anteriormente, onde a expansão do espaço de recursos
‫era quadrada, essencialmente uma das máquinas de vetores de suporte mais simples que podemos fazer.
‫Portanto, não estamos mais considerando apenas x1 x2 até o XP, mas também estamos considerando o valor do recurso
‫ao quadrado.
‫Ainda quero maximizar minha margem m, mas agora tenho coeficientes não apenas para as características originais, mas
‫também coeficientes para as características quadradas.
‫E estou permitindo classificações erradas, que você notará que estão realmente no assunto ay
‫se I onde é maior ou igual à margem vezes um menos Epsilon ou Epsilon é novamente
‫definido por este parâmetro do usuário C, essencialmente permitindo alguns erros classificações mesmo neste espaço de recursos
‫superior.
‫Então, a máquina de vetores de suporte com a utilização deste espaço de recurso
‫maior me permitiria descobrir como separar o espaço de recurso real para classificar esses pontos corretamente,
‫mesmo além da restrição dos recursos originais.
‫Já que agora estou considerando algum espaço de recurso maior de coisas como X ao quadrado ou X2 ao quadrado, etc.
‫Agora, a principal questão que surge à medida que avançamos para um espaço de recursos maior é como realmente lidamos
‫com essa complexidade crescente?
‫Embora tenhamos mostrado apenas um exemplo simples de um grau polinomial de dois, é muito provável que, para conjuntos
‫de dados mais complexos, precisaremos aumentar esse polinômio para um grau muito maior.
‫E à medida que a ordem polinomial fica maior, o número de cálculos necessários
‫para resolver as margens também cresce a um ponto em que pode ser inviável calcular de fato tantos cálculos de margem.
‫A resposta para lidar com isso está no truque do kernel, que faz uso do produto interno de vetores.
‫Isso também é conhecido como produto DOT.
‫Antes de mostrarmos como podemos realmente usar o truque do kernel com nosso cálculo de máquina de vetor de suporte.
‫Vamos revisar rapidamente o que um produto DOT ou produto interno realmente representa.
‫Portanto, aqui vamos simplificar um produto para ficar apenas entre dois vetores e lembrar que os vetores podem ser
‫mais do que apenas duas dimensões que são mostradas aqui podem ser muitas, muitas dimensões.
‫Mas para simplificar, vamos apenas usar isso em um espaço bidimensional.
‫Eu tenho o vetor A e o vetor B, e o produto DOT ou produto interno entre esses dois vetores é
‫definido como a soma de cada um de seus subcomponentes multiplicados juntos.
‫Ou seja, se eu tiver um vetor bidimensional mostrado aqui, então haverá um subcomponente ao longo do eixo X
‫e um subcomponente ao longo do eixo Y, que eu poderia definir como A1 e B um ao longo do eixo X, e então A
‫dois e B dois ao longo do eixo Y.
‫Agora você pode imaginar que, à medida que avançamos para vetores tridimensionais, vetores de quatro dimensões,
‫cetera, haverá subcomponentes para cada uma dessas dimensões e para o produto DOT.
‫Isso significaria, neste caso específico, o produto interno ou produto DOT entre A e B
‫seria apenas a soma de cada um desses subcomponentes multiplicados juntos.
‫Agora, você também deve se lembrar de suas aulas de matemática que esta não é a única definição ou notação
‫matemática para isso.
‫Esse produto, o produto DOT, também pode ser definido como uma multiplicação da magnitude de cada
‫um dos vetores multiplicada pelo cosseno do grau entre eles.
‫Agora, por que é importante notar também que se começarmos a pensar em um produto neste
‫formato, é essencialmente uma semelhança entre os vetores.
‫Portanto, isso vai resultar no mesmo cálculo que dizer A1 vezes B1 mais A duas vezes B2.
‫É essencialmente outra definição para o produto DOT.
‫A razão pela qual isso é útil é porque, com essa produção de cosseno de teta, é uma medida de similaridade entre
‫os vetores.
‫Você pode pensar nisso considerando casos extremos.
‫Imagine que o grau entre eles fosse zero.
‫Cosseno de zero é igual a um, onde isso significa que esse produto é essencialmente
‫a multiplicação da magnitude do Vetor A. e o vetor B, isso faz sentido porque se o grau for
‫zero, isso significa que ambos os vetores estão apontando exatamente na mesma direção, o que significa que seu grau ou cosseno
‫teta é cem por cento semelhante.
‫Portanto, deve ser igual a um.
‫Você também notará que esses dois vetores são perpendiculares ou ortogonais entre si, cosseno
‫de 90 graus.
‫Isso seria igual a zero, o que significa que o produto interno é igual a zero.
‫E então, se eles estiverem apontando em direções opostas, isto é, cosseno de cento e
‫oitenta graus, então teríamos um negativo essencialmente dizendo que é negativo um vezes a magnitude de
‫A e a magnitude de B.
‫Portanto, é claro que podemos pensar neste produto interno como uma medida de similaridade.
‫Portanto, vamos agora discutir o Coronel, Eric.
‫Podemos pensar em um classificador de vetor de suporte linear em termos deste produto interno, ou podemos dizer
‫que temos alguma função de X igual a Beita, não mais a soma de alguns tempos de termo alfa, o produto
‫interno de cada par de giro pontos.
‫Basicamente, calculamos os produtos internos de todos os pares de observações de treinamento.
‫E você pode verificar a leitura no Capítulo nove do eSolar para uma visão mais aprofundada.
‫Ou você pode conferir a publicação de Cortez e Chapnick, e também porque somos
‫capazes de realizar esse cálculo de produtos internos.
‫Mas, por enquanto, é só pegar, pois sou capaz de reescrever um classificador de vetor de suporte linear em
‫termos de produtos internos.
‫Agora, como sou capaz de calcular os produtos internos de todos os pares de observações
‫de treinamento multiplicados por algum parâmetro alfa, você perceberá que, neste caso específico, o parâmetro alfa só é diferente de
‫zero para os vetores de suporte.
‫Então, vamos recuar um segundo e ver se isso faz sentido.
‫Eu acabei de dizer, posso reescrever o classificador de vetor de suporte linear usando esta
‫equação, que diz que em vez de calcular este coeficiente beta vezes o valor do próprio recurso,
‫tentarei calcular esse alfa multiplicado pelo produto interno de todos os pares de observações de treinamento.
‫Mas se eu reescrever dessa forma, você logo perceberá que Alpha só é diferente de zero para os vetores de
‫suporte marcados em amarelo naquele gráfico.
‫Agora, isso faz sentido?
‫Bem, intuitivamente falando, ele lembra que a margem depende apenas dos vetores de suporte.
‫Do ponto de vista das margens, realmente não importa, uma vez que você atinge o vetor de suporte,
‫quais vetores estão além dele, porque você é apenas a descoberta dessa margem pelos primeiros vetores de suporte com
‫os quais ela entra em contato, o que significa que você ' você já está poupando muitos cálculos, mas só
‫tendo que se preocupar com os vetores de suporte, ou seja, os vetores que entram em contato com a margem.
‫Agora, por causa disso, posso reescrever de I igual a um até qualquer número de pontos
‫e, em vez disso, considerar apenas I dito s, onde s é uma coleção dos índices desses pontos de suporte, essencialmente a
‫mesma equação.
‫Mas estou considerando apenas os pontos do vetor de suporte porque podemos mostrar que Alpha depende apenas
‫desses pontos de suporte, essencialmente não tendo que fazer tantos cálculos.
‫Em seguida, vem a função de coronel, então vamos encontrar uma função de coronel como uma função K entre dois pontos
‫de treinamento, olho do ponto de treinamento e ponto de treinamento I primário, e podemos mostrar que isso
‫será igual ao seguinte.
‫Algum X de IFJ multiplicado por X por primo de J.
‫E isso obviamente deve parecer familiar, porque se parece com um produto interno e um coronel.
‫Você pode pensar nisso como uma função que apenas quantifica a similaridade de duas observações.
‫E acabamos de falar sobre como o produto escalar e o produto interno são essencialmente medidas de similaridade.
‫Isso significa que se você começar a realmente olhar para a equação do classificador de vetor de suporte linear,
‫definiremos isso usando um produto interno.
‫Portanto, agora posso usar meu relacionamento de um produto interno sendo igual à soma dessas multiplicações de cada subcomponente, a
‫fim de trocar minha função de kernel para este classificador de vetor de suporte reescrito, essencialmente nos dando uma máquina
‫de vetor de suporte onde posso facilmente trocar em qualquer função de kernel que eu quiser, onde
‫novamente, a função de kernel é essencialmente uma medida de similaridade.
‫E, na verdade, existem muitas funções do kernel para escolher aqui.
‫Estamos mostrando a função de kernel mais simples, que é apenas um kernel linear, mas também posso ter um
‫aviso de kernel polinomial.
‫Agora estou apenas calculando esta função do kernel onde tenho uma relação entre
‫a função do kernel e o grau do que desejo calcular, economizando muitos cálculos porque não estou
‫mais computando cálculos no espaço de recursos completo.
‫Estou computando o kernel, que é um produto interno.
‫Outro coronel popular é o baixista de rádio, coronel, ou também conhecido como função de baixista de rádio RBF.
‫Este é um coronel muito mais complicado.
‫E, de fato, se você tentar calcular isso sem usar os produtos internos, isso
‫criará, em teoria, um número infinito de comparações computacionais.
‫Portanto, a única maneira de fazer isso matematicamente é com uma função do kernel que usará o produto interno.
‫Portanto, o uso de Col's como substituto é conhecido como truque do COL, e é o que realmente acontece quando usamos
‫o suporte.
‫As máquinas de vetores foram capazes de reescrever esse relacionamento do classificador de vetores de suporte em termos de um
‫produto interno.
‫E então temos uma variedade de opções de Khalsa que são essencialmente definidas como funções de similaridade,
‫que posso trocar sempre que vejo o produto interno acontecendo.
‫E então os Cols nos permitem evitar cálculos no espaço de recursos ampliado.
‫Eles só precisam realizar cálculos para cada par distinto de pontos de inflexão onde eu realmente só
‫preciso considerar os próprios vetores de suporte.
‫Os detalhes completos por trás disso podem ser encontrados na Seção nove vírgula três vírgula dois, eSolar.
‫Agora, intuitivamente, o que já vimos é que produtos internos agem como uma medida de similaridade entre vetores e a
‫melhor maneira que posso explicar intuitivamente as máquinas de vetores de suporte, caso você não tenha ficado um pouco confuso sobre
‫o truque do kernel é que o uso de os kernels podem ser considerados como uma medida de similaridade entre
‫o espaço do recurso original e o espaço do recurso ampliado.
‫Então, em vez de realmente realizar os cálculos brutos e o espaço de recurso ampliado, posso dizer que
‫os kernels me darão uma medida de semelhança entre o espaço de recurso original e o
‫grande espaço de recurso e usarão os kernels para realizar cálculos, em vez de me salvar muito trabalho computacional
‫nesse espaço de recursos ampliado.
‫OK, agora que entendemos a teoria e a intuição por trás das máquinas de vetores de suporte, vamos prosseguir
‫para realmente usá-las com o código.
‫Te vejo na próxima palestra.