Transcrições
1. Fundamentos da aprendizagem de máquina: Ei, pessoal, é o Max. E bem-vindo ao meu curso sobre o essencial do aprendizado de máquina. E essa palestra nós vamos fazer e entrar na verdadeira aprendizagem de máquina. Então eu vou te dizer sobre o que é este curso, o que você vai aprender e também as coisas que não vamos cobrir neste curso apenas para ter certeza de que você sabe o que esperar e que você também pode decidir se isso é o certo curso para você que você quer estar tomando neste momento nesta palestra. Eu também vou dar uma breve introdução sobre quem eu sou, e então vamos falar sobre o que é aprendizado de máquina e como aprendizado de máquina geralmente se
parece quando você está fazendo isso na prática. Ok, então o que vamos cobrir em todo esse curso? Primeiro, vamos aprender sobre uma tonelada de termos essenciais e esses termos aéreos que o tipo de abrangem todo o campo do aprendizado de máquina, e por isso é importante conhecer esses termos. Quando você está falando sobre qualquer coisa relacionada ao aprendizado de máquina, então vamos olhar para as técnicas de preparação de dados. Então vamos olhar para as mães de performance. Então, como você pode avaliar o quão bem sua implementação de aprendizado de máquina está indo. Então vamos olhar mais especificamente para diferentes
algoritmos de regressão e classificações . E, finalmente, também
vamos aprender sobre diferentes otimizações que você pode usar e como você pode decidir usar ou qual otimizador você deve decidir usar para diferentes algoritmos de aprendizado de máquina. Tudo bem, então o que você vai conseguir com este curso? Enquanto você vai ter uma boa compreensão do que você precisa considerar quando você está se aproximando de problemas de aprendizado de máquina, então você vai aprender sobre algoritmos de aprendizado de máquina e o que você precisa considerar quando você está escolhendo um como bem é o que você precisa considerar antes e enquanto estiver treinando um, você poderá falar sobre diferentes implementações de aprendizado de máquina com as pessoas. Então você vai ter você vai ser capaz de ter conversas com pessoas onde eles
te falam sobre sua implementação. Você vai ser capaz de entender o que eles estão falando, e você pode até ser capaz de dar feedback ou sugestões para as coisas a considerar. E você vai ter uma visão completa de como todo o
processo de aprendizado de máquina se parece. Então, o que não inclui este curso? Este curso não inclui exemplos codificados de implementações de aprendizado de máquina. Então, como eu disse, isso é para dar uma compreensão dos tópicos de aprendizado de máquina para que você saiba tudo o que está acontecendo e que você possa falar sobre isso, que você possa entender quando as pessoas falam sobre isso, e então você pode ter conversas sobre isso e dar feedback. Mas ele não inclui nenhum exemplo codificado de realmente implementar qualquer um dos algoritmos. E também não vamos rever o fundo matemático e a privação dos algoritmos e das diferentes técnicas. Agora, neste ponto, eu também quero salientar que o aprendizado de máquina é um campo extremamente vasto, e há muita pesquisa ativa acontecendo. É um campo muito rápido e em desenvolvimento, e neste curso nós não vamos para áreas como redes neurais profundas, e nós também não vamos para a pesquisa mais recente novamente. O objetivo deste curso é que você se sente confortável falando sobre aprendizado de máquina como um todo sobre o qual você poderia ter conversas. Que você pode entender a implementação é que as pessoas têm feito. Você pode fornecer feedback sobre isso, e muito disso vai te dar. Ele vai ser baseado na compreensão das técnicas
fundamentais de aprendizado de máquina que existem há um tempo e que toda essa nova pesquisa está sendo construído sobre. Certo, então quem sou eu? Oi, meu nome é Max, e eu vou ser seu instrutor para este curso. Trabalho como cientista de dados há mais de três anos, e também tive a sorte de ensinar mais de 13 mil alunos sobre o mundo da
ciência de dados . Então, o que é aprendizado de máquina? Bem, o propósito geral do aprendizado de máquina é que você treina uma máquina para executar uma tarefa e esta máquina aprenderá as regras por trás do sistema. Então isso é muito legal porque você não precisa escrever todas as regras individuais e você não precisa continuar alterando. Então seu sistema vai aprender as regras, e ele pode realmente evoluir com o tempo e aprender novas regras à medida que as coisas mudam. E, finalmente, você está deixando a máquina generalizar seu conhecimento, então ela vai aprender uma certa coisa, e então ele vai ser capaz de aplicar esse conhecimento em um campo maior e também em novos problemas que ele pode não ter visto antes. Então, o que um engenheiro de aprendizado de máquina faria? Bem, é um processo bonito. Então primeiro você precisa ter dados. Então você precisa entrar em dados de processo. Preciso convertê-lo de um formato raw em um formato limpo. E você também precisará ser capaz de analisar e entender seus dados e criar recursos e indicadores. Então, esta primeira parte é muito semelhante é na verdade baseado em todas as habilidades de sinais de dados. Então, se você não tem certeza sobre ciência de dados, eu também tenho um monte de coisas sobre ciência de dados. Então, se você não tem certeza sobre essas primeiras 2 coisas, eu recomendo que você confira essas coisas. Mas é claro, aprendizado
de máquina se baseia em todas as habilidades de sinais de dados. Agora, onde você vai continuar fazendo então é uma vez que você fez todas essas coisas, você vai pesar os diferentes algoritmos de aprendizado de máquina. Você vai aplicar diferentes que você vai escolher. Vários querem testar, e você vai identificar os melhores ou os que você quer usar. E durante todo esse processo, eles iam se libertar, e você vai treiná-lo até que você esteja satisfeito, e então ele vai ser lançado em produção. Então vai ser ele vai entrar ao vivo essencialmente, e mesmo depois que ele está indo para a vida, você ainda vai precisar monitorá-lo. Você ainda vai precisar ver como ele está funcionando e, ao longo do tempo, também corrigi-lo irá melhorá-lo ou apenas mantê-lo atualizado.
2. Termos essenciais de aprendizagem de máquina: Nesta palestra, vamos rever a primeira parte dos termos essenciais. Agora, eu quero apenas mencionar que se você não entende tudo o que está acontecendo agora, não se preocupe. Quero apresentar todos esses termos antes de
entrarmos nas diferentes áreas para que quando eles aparecerem de novo, você esteja pronto, familiar, e não precisamos nos desviar para explicar novos termos. Então, a maioria desses termos vamos ver novamente, e se você não entender o agora, novamente, não se preocupe com isso. Vamos cobri-los novamente provavelmente em palestras posteriores. A idéia aqui é apenas para obter uma compreensão de todos os termos possíveis que não são realmente pertencentes a uma área específica ou outra que você pode, você viu tudo isso e que você entende estes e sabe como contextualizá-los. E que você entende o quadro geral de tudo. E então sabemos, mergulhe um pouco mais em detalhes em cada uma das coisas que mencionamos no vídeo anterior. Tudo bem, então vamos direto para isso. A primeira coisa sobre a qual vamos falar são diferentes abordagens que você pode tomar um aprendizado de máquina. Estes são divididos em uma abordagem supervisionada e não supervisionada e de reforço. Agora, uma abordagem supervisionada é quando você tem dados e você também é fornecido solução, então respostas ideais que você deseja. Então, neste caso, o que vemos na imagem à esquerda como você tem uma linha reta. E cada um desses valores pode vir com uma resposta ideal. Então você pode obter todos os valores
no eixo x e você quer prever os valores no eixo y. Neste caso, você já sabe o que é o emparelhamento. E a idéia de abordagens supervisionadas de aprendizado de máquina é que você separe seus dados. Então, você só pega os dados nos quais deseja fazer previsões
e, em seguida, você verifica essas previsões em relação às respostas. E com base em quão corretas ou erradas suas previsões são, você então muda seu algoritmo de aprendizado de máquina para última análise, torná-lo melhor em se aproximar muito dessas respostas. Agora, o outro tipo de abordagem que você pode tomar é sem supervisão, onde não há respostas corretas ou você não tem respostas específicas. E então o objetivo do seu algoritmo aqui é tentar encontrar padrões por si mesmos. Então, um bom exemplo é se olharmos para a imagem no meio, se tivermos apenas um conjunto de dados como este e queremos entender, queremos saber se existem diferentes grupos presentes. Algo que podemos executar é encontrar clusters, sobre os
quais falaremos mais em um segundo e também mais em palestras posteriores. E então a idéia é que nosso algoritmo de aprendizado de máquina neste caso vai encontrar dois grupos diferentes, que são mostrados aqui em azul e uma laranja, que ele aprendeu a separar. Finalmente, a terceira
abordagem de aprendizado de máquina que você pode usar como uma abordagem de reforço. E isso é, em algum sentido, semelhante ao não supervisionado, mas realmente leva para o próximo nível em que você deixa seu algoritmo de aprendizado de máquina ir por conta própria. E vai começar a fazer coisas. E ele receberá feedback baseado em se sua ação foi boa ou se o leilão foi ruim. E você pode definir o que é bom e você pode definir o que é ruim. E essas são algumas
das abordagens mais modernas e também são muito complexas e podem, você sabe, você pode realmente ser muito específico. E, essencialmente, a idéia é que isso é meio que emular a maneira que aprendemos. E então o ponto aqui é que você deixa seu algoritmo de aprendizado de máquina e cada um tipo de alimentação de dados e, em seguida, você deixa que ele tome suas próprias decisões. E baseado na decisão que toma, então
você diz, sim, mas esta foi uma boa decisão ou esta foi uma má decisão. E então aprenderá ao longo do tempo a tomar mais boas decisões. Mão também evitar que decisões. Assim, os diferentes tipos de algoritmos de aprendizado de máquina que existem, essencialmente você pode ter objetivos diferentes com seus algoritmos de aprendizado de máquina. Há regressão, faz classificação, e há também redução da dimensionalidade. Então vamos passar por cada uma dessas regressão é quando você está tentando prever um valor específico. Então o objetivo aqui é, digamos que você está tentando prever um número. Então, se tivermos nossos dados X aqui, estamos apenas tentando prever o valor y correspondente. Então isso pode ser que você está tentando prever uma série contínua de números onde você está tentando prever números e intervalos específicos ou algo assim. Mas o objetivo aqui é que você está tentando prever um certo número a partir dele. Enquanto a classificação, por outro lado, é que você está tentando dividir seus dados em grupos diferentes. Então, neste caso, e este é o mesmo gráfico que usamos da última vez, teríamos dois grupos diferentes. E o objetivo do algoritmo é apenas classificar pontos de dados em grupo a ou grupo B. Então, por exemplo, se você tiver usos em seu site, o algoritmo de aprendizado de máquina poderia olhar para o que o usuário faz. E eles poderiam então dizer, este é um usuário que provavelmente comprará de nós no futuro. Ou este é um usuário que precisa de mais mão ou eles precisam de mais educação sobre como usar nosso produto ou qualquer outra coisa que você grupos podem vir sobre. Mas essa é a idéia de que você não está tentando atribuir nenhum valor numérico a ele. Em vez disso, você está tentando dividi-los em grupos diferentes. Agora, a redução da dimensionalidade é uma abordagem que você pode adotar para preparar dados para aprendizado de máquina. E na verdade é um tipo de conjunto completo de algoritmos de aprendizado de máquina. Mas o objetivo é que muitas vezes quando você tem dados e especialmente quando as coisas ficam muito complicadas, você tem muitas dimensões diferentes. Então vamos dar um exemplo aqui. Se você tiver uma imagem e estiver tentando identificar algo nessa imagem, uma imagem será composta por vários pixels diferentes, dependendo da sua resolução. E cada pixel, se a imagem for colorida, também tem valores de cor diferentes com ela. Então ele vem com três valores de cores diferentes. Então, muito rapidamente, mesmo que você tenha apenas 100 pixels, você tem 100 pixels vezes três cores. São 300 valores diferentes que você pode tirar. E 100 pixels também não é uma imagem muito grande. Então você pode ver isso muito rapidamente. Suas dimensões podem ficar muito, muito grandes. E então a idéia de redução da dimensionalidade é que você tira todas essas imagens. Eles não são apenas imagens, mas todas essas fontes de dados que têm toneladas e toneladas de dados. E você tenta reduzi-lo para que, em vez de ter um milhão ou 5 milhões de pontos de dados diferentes para cada conjunto de dados que você tem, você possa reduzir esse número para aqueles muito mais baixos, que ajudará seu algoritmo de aprendizado de máquina , em última análise, você está apenas focando nas coisas importantes. Certo, então vamos mergulhar um pouco mais fundo no prédio ou na evolução de um algoritmo de aprendizado de máquina solo, fluxo de aprendizado de máquina. A primeira coisa que vamos precisar fazer é que você vai precisar treinar seu algoritmo. Agora, você pode usar um algoritmo completamente novo ou você pode ter um algoritmo parcialmente treinado ou já existente que você precisa melhorar. Mas seja lá o que
você começar, você ainda vai querer treiná-lo em qualquer dado que você coletou. Então você vai usar esses dados. Vou fazer previsões. E então você vai avaliar essas previsões e você vai procurar os erros com base nos dados que você tem disponível para. Agora, juntamente com o treinamento, você também vai querer fazer a validação. O objetivo da validação é, em última análise, ter um conjunto de dados no qual você pode avaliar suas previsões ou seu modelo atual e ver como ele funciona em dados que ainda não foram vistos. E o propósito disso é que você pode evitar problemas de agora sobreajuste. Voltaremos a falar um pouco mais tarde. Mas geralmente é apenas o seu algoritmo encontra padrões que realmente não existem. Então o ponto de validação é que uma vez que você
treinou, você queria testá-lo em alguns dados que ele não viu antes para que suas previsões não foram corrigidas e ver como ele faz sobre isso. E a validação é muito legal porque basicamente você está apenas pegando seu conjunto de treinamento e você está dividindo parte dele fora. E você está usando a maior parte do seu conjunto de treinamento para treinamento e eles vão usar outra parte para validar contra. E isso pode realmente ajudá-lo a identificar problemas de ajuste excessivo. E ele pode dizer quando você precisa parar de treinar. E você sabe, o que é um bom 0.1 é que meu modelo não está realmente funcionando bem? Agora a última parte vai ser a parte do teste. E o ponto de teste é realmente muito semelhante à validação. Mas há uma grande diferença é que seu modelo só consegue ver os dados de teste de uma só vez. E você não vai continuar a melhorar seu modelo para tentar ajustar melhor os dados de teste. Então geralmente o que você quer fazer é pegar seu conjunto de dados inicial e dividir 80 e colocar isso na parte de treinamento. Então, esses são os dados que seu modelo provavelmente verá mais de uma vez. E 20 por cento você apenas deixaria de lado e você não toca nele, você nem sequer olha para ele. Nem mesmo fora do humano porque você não quer
introduzir qualquer preconceito em seu algoritmo. Você apenas coloca isso de lado e você apenas deixá-lo lá e você não tocá-lo até o final, até que você realmente quer saber, ok, como é que o meu algoritmo funciona agora com os dados de treinamento para que 80 por cento, você pode dividir isso até o treinamento e a validação. E a grande diferença entre a validação e a coisa de teste é que tanto a validação quanto teste do seu modelo não vai ver o datum e não vai aprender a prever a partir desses dados, mas é vai ser avaliado contra ele. Agora, com a validação, você pode treinar seu modelo várias vezes e você sempre pode testá-lo contra dados não vistos e a validação onde você vai ver e você vai testar com esses dados de validação várias vezes. Enquanto que para o conjunto de testes, você realmente apenas deixá-lo para a variante. E você pega o que você acha que é o seu modelo final. E então você executá-lo com os dados de teste e você vê como ele funciona. E a partir daí, você obtém uma boa representação real de como seu modelo provavelmente funcionará quando ele vê dados completamente novos. Agora o importante é que uma vez que você
executá-lo, ele contra o conjunto de testes, você não quer. Treiná-lo mais e você não quer ajustá-lo mais para que desempenho melhor no centro de testes por causa de todo o objetivo
do conjunto de testes é introduzir dados completamente invisíveis e desconhecidos e sem qualquer viés e sem qualquer entrada do que está correto ou não. Então, se você começar a ajustar seus dados contra o conjunto de testes novamente, então ele não é mais um conjunto de testes, então é apenas outro conjunto de validação. E a partir daí, não é provável que o resultado que você vai obter na validação seja representativo do que você realmente vai ver quando você implantar seu modelo em onde você pode usá-lo completamente invisível dados. Em. O objetivo do conjunto de testes é obter uma perspectiva quase completamente nova e realmente
ter uma boa compreensão de como seu modelo vai funcionar quando ele está realmente lá fora e quando novos valores entram que ele nunca foi visto antes. Certo, então um termo importante para saber durante todo
o processo de treinamento é algo chamado hiperparâmetros. Agora, os hiperparâmetros são essencialmente parâmetros
ajustáveis do seu modelo ou de todo o seu processo, de todo o seu processo de aprendizagem. Então esse é o seu modelo, como você decide criar os erros, e também como você decide fazer o aprendizado. Então, um exemplo seria, quão rápido seu algoritmo aprende? Agora você pode dizer, Oh, bem, isso é fácil. Vamos fazer isso o mais rápido possível. Agora o problema com isso
é, às vezes, se seu modelo aprender muito rápido, ele pode realmente funcionar pior e pior com o tempo porque ele está tentando corrigir mais. Portanto, escolher o quão rápido aprender é um equilíbrio muito importante porque é o equilíbrio entre levar muito tempo para alcançar a solução ou supercorreção e nunca se tornar tão bom quanto potencialmente pode ser. Então, hiperparâmetros são coisas que seu modelo geralmente não aprende. Olá, você pode usar diferentes algoritmos de aprendizado de máquina para aprender hiper parâmetros para seu modelo. Mas há muitos desses parâmetros livres que você escolhe. Outro exemplo é o quão complicado é o meu modelo que vamos ser. Então todas essas coisas que são meio que deixadas para você, e isso é parte dessa arte de aprendizado de máquina. São esses hiperparâmetros que você está decidindo, certo? Como deveria, você sabe, como, quais são as coisas que ele deveria experimentar? Isso precisa ser muito complicado? Precisa ser simples? Quão rápido eu quero que isso aprenda? Todo esse tipo de coisas? Então, uma boa coisa a saber sobre parâmetros
híbridos é que você pode fazer essa coisa chamada pesquisa em grade. Então, em vez de apenas escolher hiperparâmetros e esperar que tudo funcione bem, você pode usar essa técnica chamada pesquisa em grade, onde você pode dar uma lista dos hiperparâmetros que você deseja
experimentar e apenas executar os cálculos várias vezes e execute o treinamento várias vezes. E então compare como os modelos funcionam com base nesses diferentes hiperparâmetros. E então você pode ver, ok, qual combinação de todos esses parâmetros livres é a melhor. Isso, em última análise, me dá um bom desempenho de modelo. E talvez também isso faça com que o modelo aprenda rápido. Então essas são também algumas das coisas que você pode precisar considerar é ok, quanto tempo eu realmente tenho disponível para treiná-lo? E de quanto desempenho eu realmente preciso? Quanta precisão eu realmente preciso? Agora, pesquisa em grade você pode fazer redefinindo os parâmetros que você deseja usar. Então você pode dizer, tudo bem, eu quero que você experimente todas essas combinações diferentes. Ou você pode simplesmente deixar seu computador escolher combinações
aleatórias e dizer-lhe por quanto tempo você deseja que ele seja executado. Então o trade-off aqui é um, você pode escolher arte. O que eu quero explorar? E a outra é, ok, quanto tempo eu quero deixá-lo correr até que eu possa pegá-lo e ir para o próximo passo. E finalmente, também algo importante a saber é a validação cruzada. Então falamos sobre validação na parte anterior. Mas a ideia de validação cruzada é
pegar seus dados e dividi-los em subconjuntos menores. Mão, você pega todos, menos um desses subconjuntos para treinamento, e então você pega o último para validação. E assim você pode treinar vários modelos diferentes e, ou o mesmo modelo várias vezes usando diferentes conjuntos de treinamento e validação. E então você pode ter seu modelo ter diferentes tipos de dados que vêm em e também diferentes dados não vistos. E a coisa legal para a validação cruzada é que você não só entende, ok, como meu modelo funciona agora, mas também quanto meu modelo varia? Então, qual é o tipo de faixa de desempenho esperado que eu posso esperar desse modelo?
3. ML essencial continuou: Esta palestra vamos continuar olhando para termos essenciais. Agora, neste momento você pode estar perguntando, ok, legal. Então eu meio que entendo como todo o processo de treinamento funciona. Mas como posso começar sabendo qual modelo escolher? Bem, a primeira coisa a saber, e isso é extremamente importante, é que cada modelo é sempre apenas uma aproximação da realidade ou é apenas uma aproximação do que você está tentando fazer. Agora, isso é verdade para essencialmente tudo vai para a física. Até os modelos de física são apenas aproximações. Agora, o objetivo que você está tentando alcançar com o modelo é que você está tentando imitar ou entender a realidade próximo
possível para que as diferenças entre seu modelo na realidade não sejam mais importantes porque eles essencialmente se comportam da mesma maneira. Agora, cada modelo geralmente vem com uma suposição. E com base em quaisquer suposições que você tem sobre seus dados, você vai escolher um modelo específico. Então, por exemplo, se você assumir que seus dados são lineares, você pode querer escolher regressão linear. Se você assumir que seus dados são mais complicados, você pode querer escolher uma regressão polinomial ou árvores de decisão, ou você pode até mesmo querer ir para baixo as raízes das redes
neurais dependendo da complexidade que você deseja adicionar. Agora, se você não fizer quaisquer suposições sobre seus dados, então há um teorema legal que é chamado de Teorema de Sem Almoço Livre. E isso basicamente diz que é impossível para você saber quais modelos a escolha correta. São todos igualmente viáveis. Então, aplicando isso ao aprendizado de máquina, realmente o que isso diz é que você pode ter uma compreensão inicial de seus dados, mas é sempre uma boa idéia pegar vários modelos diferentes que você acha que irão funcionar bem na tarefa que você estão tentando alcançar e treinar todos esses modelos. Você sabe, você não precisa otimizá-los completamente. Mas apenas uma espécie de escolher alguns parâmetros padrão são alterados-los sobre apenas um pouco, e treinar esses diferentes modelos e ver como cada um deles funciona. Agora, o que você vai conseguir,
às vezes, se você tiver sorte, você vai ter modelos diferentes e alguns têm um desempenho extremamente ruim e outros geralmente funcionam bem. Então você quer escolher seus vencedores. Agora, se todos eles funcionam igualmente bem, então neste ponto você meio livre para escolher. Mas normalmente você está tentando reduzir o número de modelos. E então muitas vezes você não apenas tipo de vir acima com o modelo porque muitas vezes é quase, é extremamente difícil saber o que a abordagem correta inicial se aproxima. Então a coisa boa a fazer é escolher vários modelos, treiná-los todos, experimentá-los todos, ver quais têm o melhor desempenho,
e depois usá-los, e depois usá-los otimizá-los ainda mais, ver como eles executá-los,
e, em seguida, finalmente, decidir sobre um e percorra totalmente o caminho de realmente otimizá-lo e treiná-lo em todo
o seu grande conjunto de dados ou qualquer coisa que você possa ter disponível. Falando em conjuntos de dados, vamos rever alguns
dos termos importantes que você encontrará ao falar sobre conjuntos de dados, especificamente também no campo do aprendizado de máquina. O primeiro termo vai ser recursos. Agora, recursos são todos os dados que você vai usar para treinar seu algoritmo. Então digamos que você está construindo um algoritmo para prever a altura de um indivíduo. As características podem ser seu sexo, sua altura, sua ocupação, onde eles vivem, sua atividade diária, qualquer coisa que
você usa, você quer alimentar seu algoritmo que seu algoritmo usará para tentar prever esse caminho final. Será que vai ser um recurso? Agora, isso pode ser dados brutos que podem ser dados formatados ou podem ser processados. Isso não importa. É só que estes são os dados que você vai estar alimentando para o seu algoritmo. E esses são os dados que você vai usar para tentar fazer suas previsões. Agora, se olharmos para a direita, isto é geralmente como tudo é meio denotado quando você está falando sobre ter múltiplas observações é o que eles são chamados, mas isso é apenas várias linhas de dados. Assim, cada uma dessas linhas neste exemplo corresponderia a uma pessoa diferente. E cada característica, que é o que temos no topo lá, corresponderia às diferentes características. Então recurso um, por exemplo, poderia ser sexo, recurso dois poderia ser sua altura, e então por diante. E o recurso n pode estar onde quer que eles possam viver. Agora, a observação um seria a pessoa número 1, observação 2 seria a pessoa número 2, e assim por diante até chegar à pessoa número m, que é quantas observações você tem. E como você pode ver, isso é muitas vezes denotado por apenas X maiúscula. e X contém a matriz. Onde cada linha contém uma observação e cada coluna é para uma feição específica. Agora, a outra coisa que é importante saber sobre são os alvos, e estes são muitas vezes denotados por y minúsculas. Agora o alvo é o valor de referência que seu algoritmo está tentando aprender. Neste exemplo, nossos alvos seriam apenas o peso final. E podemos ver que não temos várias colunas, temos apenas uma coluna, mas ainda temos o mesmo número de observações. E assim para cada observação, que neste caso seria apenas uma pessoa, temos em nosso x e nossas características, todas as características relevantes. E em nosso y, em nossos alvos, seria apenas o peso. Então y, y1 seria o peso da pessoa um, Y2 seria o peso da pessoa 2, e assim por diante. Agora, também há termos importantes para saber sobre modelos de aprendizado de máquina. O primeiro disso é chamado de viés. Agora, isso vai ser
diferente de outro tipo de preconceito sobre o qual vamos aprender. Mas a idéia de um viés em modelos de aprendizado de máquina é apenas para fornecer um deslocamento, e isso também é conhecido como interceptação. E a maneira mais fácil de pensar sobre isso é se você apenas pensar em uma linha reta aqui viés ou sua interceptação é deslocar essa linha para cima e para baixo, deslocando em torno dessa interceptação y. A outra coisa que você tem, nossos pesos de característica. Então, neste vetor, armazenamos a importância de cada recurso. E, finalmente, se você tiver vários recursos, seu algoritmo tentará aprender esses recursos com base em qualquer fórmula que ele está usando, qualquer algoritmo que ele está usando. E vai atribuir pesos às suas feições. Vai atribuir importância relativa. E então o que temos é que cada característica tem um peso específico associado a eles. Finalmente, nós também temos o vetor de parâmetro. Agora, o vetor de parâmetro é apenas uma combinação
do viés e os pesos da feição até um vetor completo m. E muitas vezes você faz isso apenas porque torna a anotação mais fácil para que você tenha um vetor que contém ambos os seus offset ou sua interceptação ou seu preconceito, o que você quiser, chame-o, mais todos os pesos de seus recursos. Então podemos ver se voltarmos, temos nossos recursos aqui. E então, quando avançamos novamente, temos um peso para cada característica. E isso é o que nossos algoritmos vão querer aprender. E alguns algoritmos terão vários conjuntos de pesos de feição. E alguns algoritmos usaremos um único conjunto de pesos de feição junto com um viés. E a maneira mais fácil, é
claro, de representar isso é usar o vetor de parâmetros, porque isso permite que você agrupe tudo, que apenas torna um pouco mais limpo.
4. Envolvendo termos essenciais: Agora você pode estar se perguntando, quais são as diferentes abordagens que eu posso tomar para criar um algoritmo ou como eu
tenho certeza de que meu modelo permanece atualizado? Geralmente, quando você treina, há duas abordagens diferentes que você pode tomar. Agora, o primeiro é chamado de aprendizagem em lote e o segundo é chamado de aprendizagem on-line. Agora, a grande diferença entre os dois é a aprendizagem em lote. E você pode ver que também na imagem à direita é você treinar seu modelo de antemão. Então você tem lotes de dados que entram. Então pedaços de dados sobre todas essas crianças não eram subconjuntos menores ou podem ser enormes. Lotes são conjuntos de dados que vêm em que você treina seu modelo. E basicamente cada linha vertical de sonho que você vê há um novo modelo sendo criado. Então você treina seu modelo várias vezes e você continua a fazer melhorias nele. E em algum momento você decide que não é, é hora de se apresentar muito bem. Vamos torná-lo disponível, vamos colocá-lo em produção, ou vamos fazer um show ao vivo ou o que você quiser chamá-lo. E então você tem dados em tempo real chegando. Mas neste momento seu modelo não está mais mudando. Seu modelo foi consertado de antemão. Agora os dados entram e ajustam, saídas, sua previsão ou o que o modelo deve fazer. Aprendizagem on-line, por outro lado, geralmente você também começa com um Bacharel nele. Então você quer treiná-lo primeiro para que ele faça bem de antemão. Mas a opção com o aprendizado on-line é que você pode continuar treinando isso à medida que novos dados estão chegando. Agora, isso soa muito bom, mas é claro que também há complicações que vêm com ele. Por exemplo, quando novos dados estão chegando,
como você sabe qual é a decisão certa ou qual é a resposta certa? Se a resposta certa não vier junto com ela. Então, se você não tem uma resposta correta óbvia que vem com seu sistema quando ele está on-line e é uma, ele está apenas trabalhando em desempenho. Você pode ter alguns problemas porque você só vai ter que adivinhar a resposta ou você vai ter que encontrar alguma outra solução inteligente para chegar a como avaliar
qual é a resposta certa e o que você deve estar usando para treinar ele. O ponto, porém, é que se você tiver essas respostas ou se seu conjunto de dados mudar com o tempo, aprendizado
on-line pode ser muito bom porque seu modelo vai
se adaptar à medida que o tipo de dados evolui com o tempo. Então, digamos que você crie um produto e você tenha apenas alguns milhares de usuários no início. E você tem seu modelo on-line e você tem uma boa compreensão de como
avaliar seu desempenho e como fazer uma mudança com o tempo à medida que novos usuários entram, fazer um monte de coisas que seu algoritmo pode desenvolver ou seu modelo pode desenvolver com esses usuários. E assim, à medida que
seu produto cresce, seus modelos também vão crescer e vai mudar. E você pode ver aqui todas essas pequenas linhas verticais verdes também estão ao vivo, é basicamente novas versões do seu modelo. Agora, também é importante aqui, ou que ambos os casos avaliem o desempenho por um longo período de tempo. Então você quer voltar pelo menos alguns
meses depois de implantá-lo para ver como as coisas estão agora
Para o Bachelor, caso isso seja indoagora
Para o Bachelor, caso isso seja
importante porque seu modelo provavelmente estará desatualizado em algum momento. E assim pode não estar mais funcionando tão bem quanto, como inicialmente era, só porque as coisas mudaram. Para o caso de aprendizagem on-line, pode ser que seu modelo tipo de sai em sua própria direção. E em algum momento é apenas, ele não aprendeu corretamente e foi para uma direção errada, e ele não está mais funcionando tão bem quanto você gostaria. E então, nesse ponto, você precisa parar e então você precisa reverter para uma versão anterior. Ou você quer retreiná-lo em alguns dados mais recentes, ou você só precisa atualizá-lo. Então, em ambos os casos, você não quer apenas colocá-los on-line e meio que deixá-los lá. Para o caso de aprendizagem em lote, pode ser que o tipo de dados de atualizações e seu modelo vai ficar fora de moda. Considerando que para o caso de aprendizagem on-line, o modelo pode mudar com os dados sobre onde seu modelo pode começar a ir na direção errada. Agora, neste ponto, também é importante falar sobre dados e como os dados são eficazes. E é importante observar, em primeiro lugar, que mais dados geralmente significam melhor desempenho. E com dados suficientes, até mesmo modelos simples podem funcionar muito bem em tarefas complexas. Então, se você tem toneladas e toneladas de dados, em algum momento, você pode não querer gastar tanto tempo pensando sobre, ok, qual algoritmo exatamente. E mais uma vez, vou usar? Você vai querer ir com um que geralmente executou um tipo de tarefa pequenez. E você vai querer se concentrar mais em, ok, qual modelo pode aprender rapidamente. Porque quando você tem toneladas e toneladas de dados, o que essa eficácia de Theta basicamente significa é que, bem, vários algoritmos podem funcionar igualmente bem. E assim vai se tornar importante. rapidez você pode obter um modelo para funcionar bem? Então, como posso economizar tempo com o treinamento para que eu
possa aumentar meu modelo mais rápido ou para que eu possa fazer melhorias nele mais rapidamente. Agora, outra coisa importante para saber sobre dados ou para
pensar ao criar um modelo e tentar modelar dados é adequado. Agora, sob ajuste é quando seu modelo é muito simples para entender corretamente os dados. E isso também pode ser chamado de viés. Agora sob ajuste e viés são ambas as variações são formas de mais de simplicidade. Então o que você tem neste caso é, você está assumindo que algo é muito mais simples do que realmente é. Então vamos dar um exemplo. O mercado de ações, que é uma
das coisas mais complicadas e há tanta coisa que se alimenta. Se você tentar prever o mercado de ações usando um modelo linear simples, ele não vai funcionar particularmente bem. E isso porque o mercado de ações não é algo que é tão simples que pode ser entendido apenas usando modelo linear. E se você tentar ir por esse caminho, você está indo para fortemente underfit ou você vai ter um modelo fortemente underfit porque você está assumindo tanta simplicidade e o mercado de ações é extremamente complicado. Outra forma que a simplicidade pode ser introduzida em seu modelo é através da regularização. Agora, regularização é parte da função de perda ou a função de custo vai ser algo que vamos olhar para ele em mais, nas palestras posteriores. Mas, em última análise, o que
é e muito curto, é que você está penalizando o modelo e você está tentando
torná-lo o mais simples possível como você está tentando limitar sua flexibilidade. Agora, por outro lado, você pode ter overfitting ou variância também vai ser tipo, eles estão indo para a mesma direção. E é quando seu modelo é excessivamente complexo ou quando ele tem muita liberdade e encontra coisas que realmente não estão lá. Então, se o seu modelo está sobreajustado, isso significa que encontrou padrões que realmente não existem. E da mesma forma, quando você tem mais variância, isso significa que seu modelo está se tornando extremamente complexo. E tem muita liberdade. E porque tem muita liberdade, não
está mais funcionando bem porque está se concentrando em coisas que não são importantes. E é encontrar essas coisas porque você está dando muita liberdade. E overfitting ou variantes podem vir se você usar modelos extremamente complicados. Então, por exemplo, se você decidir ir com como árvores de decisão profunda são altas funções polinômios ou redes neurais profundas. E você não tenta restringir a liberdade deles se você apenas deixá-los correr em liberdade, é bem provável que eles vão sobrepor seus dados porque eles vão tão fundo nisso e eles vão pensar que encontraram algo extremamente Interessante, extremamente complexo. E provavelmente não será verdade. E assim a idéia de sobremontagem e na mesma região, a idéia de variância é a complexidade de um modelo. E muitas vezes você quer pensar sobre,
ok, qual é o meu preconceito e qual é a minha variação? Quais são as negociações? Essencialmente, a água é uma das simplicidade e quais são as complexidades? E como posso fazer meu modelo que não é muito simples, que não encontra coisas importantes, nem que é muito complexo, que tem tanta liberdade que encontra coisas que nem sequer estão lá. Então, se você olhar no gráfico à esquerda, por exemplo, um dos conjuntos de dados de teste que você tem de uma biblioteca chamada SKLearn, que é uma biblioteca de aprendizado de máquina para Python. É um desses conjuntos de dados de teste para o conjunto de dados da íris especificamente. E o que temos aqui é apenas uma árvore de decisão simples, que também aprenderá em palestras posteriores. E o importante a observar aqui é que temos três classes diferentes, que você pode ver para os três tipos diferentes de pontos coloridos. E também temos três identificações diferentes que nosso modelo faz, que você pode ver com as três cores diferentes. Então nós temos este roxo, este rosa, e este amarelo. E você pode ver no amarelo, há uma raia. E a raia de rosa só atinge um ponto amarelo. E mesmo que esses dados sejam bastante simples, isso já é um exemplo de overfitting onde o modelo está tentando se tornar muito complexo e está introduzindo essas complexidades acima, neste caso, uma pequena linha estreita para caber um ponto de dados em uma região que de outra forma é dominada por outra classe. E mesmo em, meu ponto é aqui que mesmo para esses conjuntos de dados muito simples, overfitting pode se tornar um problema se você deixar seu modelo com muita liberdade, e se você apenas tipo de deixá-lo sair por conta própria sem controlá-lo. Então, como o fluxo do projeto de um projeto de aprendizado de máquina de impressão em máquina geralmente se parece? Bem, a primeira coisa que você vai precisar fazer é pensar sobre o objetivo. E antes de fazer qualquer outra coisa, você quer saber qual é o caso de negócios ou qual é o caso de uso do meu modelo? Qual é o objetivo real que estou tentando alcançar? Qual é a precisão que eu quero? E o que as coisas são aceitáveis. Então água erros aceitáveis e quais são erros inaceitáveis? Então, por exemplo, se você está no campo da medicina, ele, e se você está tentando detectar algum nu, se você está tentando ajudar médicos a detectar doenças ou ter algum tipo de pretos. Um erro aceitável seria às vezes detectar algo que não existe. Então, um falso positivo. Então, às vezes você pode dizer, oh, isso, podemos querer fazer mais investigação porque esta doença pode estar presente. E se não estiver lá, então está tudo bem porque a pessoa não vai ser difícil. Mesmo que a curto prazo não seja tão bom passar por isso e ansiedade. E a longo prazo tem efeitos bons. Mas um erro inaceitável porque se o seu modelo perde a doença, então se ele diz que não está lá e não há mais testes que são feitos e a pessoa acaba tendo esse diagnóstico. Então, neste caso, por exemplo, você vai querer se concentrar fortemente nisso. Você não comete erros quando você perde algo que está realmente lá porque pode causar danos irreparáveis e não é um caminho que você quer percorrer. Então, neste caso, você pode ver
que às vezes não é apenas sobre o quanto você acerta, quanto você erra? Mas, o mais importante, quais são as coisas mais importantes que você precisa para acertar? E onde está tudo bem fazer as coisas erradas? E então você precisa, porque, em última análise, seus modelos tropic nunca vai ser perfeito. Então você precisa sintonizá-lo para ter certeza de que as coisas que você precisa para
acertar nosso direito o mais rápido possível. E só depois disso, você
quer ter certeza de que as coisas que, você sabe, você deve acertar também estão corretas o mais rápido possível. Mas o mais importante, é tão importante que antes de fazer qualquer outra coisa, você sabe qual é o objetivo final. Rosnar. Então você vai ir na direção errada. Você vai gastar tanto tempo tentando ir para um nível extremamente alto de precisão que nem é necessário porque isso é apenas, você sabe, algo que é o objetivo do seu negócio. Agora, uma vez que você tem uma idéia do que você realmente quer fazer e o que você realmente precisa fazer. Então é hora de dar um mergulho profundo em seus dados. Você quer ter certeza de que entende seus dados corretamente. E você também quer se certificar de passar por todas as etapas de preparação de dados sobre as quais falamos anteriormente. Então, grande parte desta primeira parte é na verdade o processo de ciência de dados. Então, entendendo as questões de negócios, entendendo, tudo bem, como eu analiso meus dados? Quais são as diferentes maneiras pelas quais posso contextualizar meus dados? Como posso trazer mais informações por meio do meu conhecimento de domínio para os dados que o algoritmo de aprendizado de máquina pode usar? Então a primeira parte vai ser muito baseada em habilidades de ciência de dados. Agora, a segunda parte é onde o aprendizado de máquina realmente começa. Que é então você vai querer criar sua divisão de trem e teste ou sua validação de trem e divisão de teste. E você vai querer começar a treinar, validar e executar validações em seus dados ou em seu modelo para que você possa melhorá-los com o tempo. Claro, você quer escolher vários modelos no início e você quer
escolher uma função de perda ou uma medida de erro que você acha que é bom. E então ele, então você vai querer treinar esses modelos diferentes e nós vamos querer compará-los, escolher alguns dos vencedores, otimizá-los. Neste ponto, você também precisará de bons otimizadores para garantir que seus modelos aprendam o mais rápido possível. Você vai querer fazer pesquisa em grade com validação cruzada e apenas iterar em lotes de dados de treinamento. E, em última análise, você quer avaliar em seu conjunto de testes e você quer ver se há algum sinal de baixo ou excesso de ajuste. E você também quer levar isso para outras pessoas, obter informações deles. Veja o que eles pensam sobre o processo, veja se eles têm alguma outra entrada com base no desempenho do modelo ou com
base em quais dados você decidiu fornecê-lo e, em seguida, iterar a partir daí. E quando você se sentir bem sobre o desempenho do seu modelo, então é hora de lançá-lo para disponibilizá-lo para você. - Não. Coloque-o onde quer que ele precise ir. E mesmo assim, você ainda vai querer monitorar o desempenho do seu modelo. E você quer, você vai querer voltar para ele e ver
como ele está indo uma semana depois, um mês depois. E, em última análise, você também precisará
alcançá-lo, em novos dados para garantir que o modelo permaneça atualizado.
5. Preparação de dados: Bem-vindo à lição sobre técnicas de preparação de dados. Preparar corretamente seus dados tem efeitos surpreendentes no desempenho de seus algoritmos de aprendizado de máquina e é um passo crucial no aprendizado de máquina. E isso definitivamente não é algo que você deve pensar em pular. Esta é, na verdade, uma das partes mais importantes para garantir que seus algoritmos de aprendizado de máquina fora estão configurados corretamente. Então, vejamos primeiro um exemplo. Como você lidaria com uma distribuição que se parece com a seguinte. Então o que temos aqui é apenas uma distribuição de geradores para mim mostra a distribuição de renda de qualquer cidade. E no eixo y você tem as contagens ou também pode olhar para ele. E como a taxa de ocorrência. E no x você tem a renda e dezenas de milhares de dólares. E então o que você vê aqui é uma cidade com um tipo de classe média média, mas é claro que tem pessoas cujo salário é estendido para taxas muito altas. Então, essencialmente, o que temos aqui é que temos uma distribuição distorcida ou algo que tem uma cauda muito longa. Temos um tipo de distribuição normal que reconhecemos no centro. E, em seguida, para a direita, essa distribuição apenas tipo de continua. E isso tem efeitos significativos em nosso
algoritmo de aprendizado de máquina porque a escala dos dados e se torna extremamente grande. Então você pode ver que nós estamos apenas tipo de estendendo em direção à direita e à direita e nossa contagem está diminuindo. Mas podemos sempre encontrar valores a menos que alcance mais alto. E isso pode realmente ser problemas. Quando estamos tentando colocar esses dados em nosso algoritmo de aprendizado de máquina. E pode nem sempre lidar com isso tão bem quanto você pode querer. Então, como abordamos problemas como este? Como abordamos esses tipos de distribuições? Bem, uma coisa que você pode fazer é pegar o registro da renda e você pode ver os efeitos aqui. O que ele faz é em vez de ter uma escala de cerca de 2,5 a 20, que é o que tivemos nesta distribuição. Aqui, vamos para cerca de um a 3,25 ou algo assim. Então, reduzimos drasticamente o alcance
dos dados em nossa distribuição e o intervalo de uma parte significativa dos dados e nossa distribuição. Então, ao invés de ir de cerca de oito vezes, que é de 2,5 para 20, nós só temos uma mudança três vezes de um para três. E isso é extremamente importante para o nosso algoritmo de aprendizado de máquina porque o anúncio agora tem que se concentrar em uma faixa muito menor de dados. E outra coisa importante que estamos fazendo com esse dimensionamento de log é estamos dizendo que os números mais altos são menos diferentes um do outro. Então, neste caso, a diferença entre 2,55, então 25000 e 55 mil é muito maior do que a diferença entre digamos, cento e cinquenta mil e cento e setenta e cinco mil. E isso também faz sentido, certo? Como em algum momento, essa diferença já não importa muito. E isso é o que estamos dizendo fisicamente quando estamos usando o dimensionamento de log. Mas também tem impactos significativos para um algoritmo de aprendizado de máquina porque é muito bom se pudermos reduzir esse intervalo e não torná-lo tão grande. Outra coisa que podemos fazer para reduzir o alcance que nossos dados estão passando é apenas tomar um limite. Então poderíamos dizer, por exemplo, que, você sabe, tudo depois de 125 mil ou 12,5
neste caso é basicamente o mesmo para qualquer projeto que estamos considerando. Digamos que nosso projeto é ver que tipos de pessoas podem pagar quais casas. E dizemos, bem, qualquer um que tenha 125 mil ou mais, pode basicamente pagar todas as casas que estamos olhando. E não há mais diferença real entre eles porque essa renda extra não faz diferença no nosso projeto. Então podemos dizer, ok, vamos pegar um limite difícil aqui, que é baseado neste significado físico de porque exatamente escolhemos um 125 K porque decidimos que neste ponto, isso não faz mais diferença. E assim, desta forma, também estamos reduzindo para baixo ou alcance de 2,5 para 20 para 2,5 para 12,5. Então não estamos tendo uma redução tão grande quanto temos no caso da lei, mas ainda assim é uma boa redução. No entanto, o problema neste caso é se olharmos para a distribuição dessa distribuição normal que vemos em torno da marca de cinco ou da marca de 50 k. E eu coloquei uma barra verde acima para que você possa visualizar onde está a distribuição. E agora, se olharmos para a cauda direita, vemos que os indicadores verdes são sobre o tamanho da distribuição que temos à esquerda. E podemos ver que a cauda ainda é muito mais longa do que eles. E assim a nossa distribuição neste caso ainda tem uma cauda extremamente longa. E assim este limite pode ser uma coisa boa para usar em alguns casos, mas na verdade para este exemplo específico, não
seria uma coisa boa para usar apenas porque nossa cauda ainda é tão longa, mesmo que tenhamos usado um limite e tipo de corte, uma parcela significativa indo de 12,5 para 20. Ainda é extremamente longo e na verdade é mais longo. A parte principal da própria distribuição. Agora, outra coisa que você pode fazer é pegar percentis de seus dados. Então você está basicamente pegando todos os dados que você tem e você está dividindo-os em 100 grupos. E então você pode pegar cada um desses valores de renda e substituí-lo pelo percentil. E o que você obtém daqui é o que você pode ver na tela. Você obtém um 100 grupos igualmente distribuídos e você obtém pontuação é entre 0 e um 100, que você também pode escalar para ir de 0 para um ou o que você gosta. Mas o importante aqui é que você tem um alcance bem definido e não há desequilíbrio como vemos, especialmente neste caso, onde a cauda se estende tanto em uma direção e há
uma espécie de incompatibilidade para a parte principal de sua distribuição e até onde os dados se estendem para longe dela. Isso não é algo que vemos aqui. Então, agora que sabemos sobre escalabilidade, algo mais sobre o qual precisamos falar é preparar a entrada para nossos dados. Neste caso, analisamos uma escala que vai de cerca de 2,5 a 20. E se tivermos apenas um intervalo de entrada e fizermos parte da preparação de dados que falamos anteriormente, onde tentamos movê-lo ou dimensioná-lo para reduzir o impacto da cauda, isso pode ser uma coisa boa. Mas se tivermos vários recursos diferentes que usamos para entrada e suas escalas são significativamente diferentes
, isso pode ter efeitos negativos no desempenho do algoritmo. Então os algoritmos, e geralmente os algoritmos de aprendizado de máquina gostam de ter números que vêm em intervalos semelhantes. Então, por exemplo, se você tem valores aqui indo de cerca de 2,5 a 20, ou cerca de um a 20, então você quer ter certeza de que seus outros valores também estão dentro do intervalo comparável. Então, por exemplo, indo de cinco para 30 ou de um para 15 ou algo assim. Você não quer é uma distribuição que vai de
cerca de 0 a 20 e outra que vai de cerca de 0 a 100, e então uma que vai de 50 a 500 mil. Algoritmos de aprendizado de máquina às vezes têm problemas para lidar com esses tipos de distribuição. E então o que você realmente quer é que a escala que suas entradas têm sejam comparáveis entre si. Então o que estamos falando aqui é não reduzir o efeito da cauda. Isso foi o que fizemos anteriormente, mas certificando-se de que suas entradas são de tamanho
comparável entre si quando você está usando várias entradas. Então, o que você quer fazer aqui é essencialmente você deseja dimensionar seus recursos para ter mais alcance concreto ou um intervalo menor e mais definido. E uma maneira que você pode fazer isso é apenas usando algo chamado escala mínimo-máx. Então o que você faz é pegar o valor mínimo e você pega o valor máximo e você diz, não há nenhum número que está no mínimo é 0. E o número que está no máximo é um. E qualquer coisa no meio, como um número entre 01, que linearmente depende de onde está. Então, se estiver a meio caminho para o máximo, seu valor será 0,5. Agora, o problema com isso é que ainda podemos ter uma distribuição desigual de dados. Então podemos ver que mudamos a escala na parte inferior aqui. Estamos indo de 0 para um em vez de 2,5 para 20. Mas ainda estamos mantendo a cauda. Então, neste caso, é claro que ainda é importante que, além de fazer esse dimensionamento de recursos, também
façamos alguma outra forma de preparação de dados para garantir que reduzimos os efeitos dessa cauda. No entanto, esta é uma boa maneira de abordar
ter, ter vários recursos e colocá-los no mesmo intervalo. Agora, é claro, um problema que você também pode obter a partir disso é se nós temos a maioria de nossos dados dentro da parte inferior e nós temos alguns outliers. Esses outliers podem afetar fortemente o alcance de nossa distribuição. Então, neste caso, podemos ver que a maioria de nossos dados está em torno da marca do ponto 3, mas apenas alguns dos outliers, que é o 20 aqui em cima, é o que puxa tudo até um. Então, neste caso, ainda
temos o problema de que
ainda temos um menor alcance dominante em nossa distribuição. Assim, a maioria dos dados está agora entre cerca de 0.1.4. Mas a nossa gama vai até um só por causa dos efeitos do outlier. Portanto, ainda é importante fazer um pouco
da escala ou da preparação que falamos anteriormente para reduzir os efeitos desses outliers que foram para reduzir os efeitos da cauda longa que estamos vendo. Agora, outra abordagem que você pode tomar é algo chamado padronização. Agora, o que você faz aqui, em vez de definir uma escala definida como fazemos nelas e maiúsculas, usamos uma escala relativa. E então encontramos a média de todos os nossos dados e encontramos o desvio padrão. E aplicamos uma transformação a cada ponto de dados onde pegamos o valor, subtraímos a média, e então a dividimos pelo desvio padrão. E assim podemos ver a partir do gráfico à esquerda, nossos dados organizados agora vão de um a quatro negativos. Mas isso não é algo que está predefinido. Isso é apenas, estamos diminuindo com base em nosso conjunto de dados e como ele é distribuído. Então, esta é uma boa maneira de regularizar seus dados porque você não está definindo uma escala definida e você está meio que deixando a distribuição
dos dados governar como a nova escala se parece. Mas ainda é útil porque se você fizer isso em vários recursos ou várias entradas diferentes, ele irá reduzi-lo a uma escala comparável. E assim, ao invés de definir uma escala absoluta, como fazemos para o mínimo-máx, que vai de, por exemplo, 0 para um, podemos ter escalas ainda variáveis que ainda são comparáveis entre si usando a técnica de padronização.
6. Preparação de dados Continuação: Nesta palestra, vamos continuar analisando técnicas de preparação de dados. Tudo bem, então outra coisa que é importante
saber é um viés de amostragem e amostragem. Porque, em última análise, quando você está treinando um algoritmo de aprendizado de máquina, você está escolhendo os dados que você usa para o treinamento e você está escolhendo os dados que você usa para testes. Agora é importante saber que, às vezes a distribuição de seus dados pode ter impactos significativos sobre o desempenho do algoritmo de aprendizado de máquina em seu treinamento, bem como em seus conjuntos de testes. Então, se olharmos para o gráfico à direita, o que temos é uma distribuição de faixas etárias. Então vamos de 15 para 25. Esse é o nosso primeiro grupo, que tem cerca de 30 participantes nele. Então temos de 2006 a 59, que tem quase 15, e então temos o 60 mais, que tem cerca de 20. Agora, uma técnica que você pode fazer é pegar
aleatoriamente participantes dessa faixa etária. E se você fizer isso, então você não pode imitar a distribuição subjacente. Às vezes isso não é uma coisa ruim, às vezes tudo bem. Mas em alguns casos, quando há um, um recurso importante que você deseja imitar e sua distribuição. Às vezes, essas características importantes podem ter efeitos sobre como os sujeitos se comportam ou qual o resultado de qualquer que seja o seu experimento. Assim, por exemplo, no caso da faixa etária, as diferentes idades podem ter opiniões ou perspectivas diferentes
e, portanto, suas respostas a perguntas ou qualquer outra coisa pode ter um efeito significativo sobre o resultado. E então, se fizermos apenas uma amostragem aleatória, então o que essas barras de erro mostram é o tipo de desvio padrão que podemos esperar. E assim podemos ver que o que temos
na distribuição real versus os valores que podemos obter se apenas amostragem aleatória. Há muitas variantes lá e há muita incerteza. E assim podemos, aqui por exemplo, ver que, tudo bem, se temos nosso conjunto de trem, que é representado em azul, e nosso conjunto de testes que tem representado em verde. Alguns desses grupos etários podem estar sob estão sobre-representados. Neste caso, a faixa etária de 60 mais está sub-representada no treinamento e sobre-representada nos testes. Agora, o efeito que isso tem em nosso algoritmo é que nosso algoritmo terá menos entradas do 60 plus. E terá que avaliar mais sobre o 60 plus. E assim pode dizer que os pensamentos
da faixa etária de 60 mais não são tão importantes ou algo assim. Bem, eles não são tão significativos. Mas quando ele está sendo testado contra, ele realmente tem que avaliar muitos dos 60 mais pensamentos da faixa etária. E não está devidamente preparado para isso. Há uma desproporção do que a quantidade de treinamento em relação às outras faixas etárias que fizemos
no treinamento versus a quantidade de testes que está sendo feito. E isso pode ter consequências
significativas no desempenho do seu algoritmo de aprendizado de máquina. Então o que você pode fazer é algo chamado amostragem estratificada, onde você está tentando imitar a distribuição subjacente. E assim podemos ver no treinamento e no teste, que é novamente mostrado em azul e em verde, que as distribuições são agora muito mais semelhantes. Agora nem sempre será uma combinação perfeita. E em alguns casos, a amostra aleatória pode realmente parecer uma amostra estratificada, como nós temos. Esta é a amostra estratificada que vemos aqui. Então, às vezes, quando você escolhe grupos aleatoriamente, ele vai ficar assim, mas você não está garantido. Enquanto que com uma amostra estratificada, você está garantindo a si mesmo que essas distribuições parecem semelhantes no treinamento, bem como no caso de teste. E assim você pode se certificar de que essas distribuições subjacentes são mantidas as mesmas. Que a forma como esses dados, que a forma como esses dados são alocados em
seu treinamento e seus conjuntos de testes é mantida da mesma forma que você não mexa com alguns desses recursos importantes. Agora, em alguns casos, o que você realmente quer fazer é ter uma superrepresentação de uma amostra. Então, às vezes você não quer estratificar sua amostra, você quer, você não quer estratificar sua amostra. Você não quer uma distribuição uniforme porque isso pode ter efeitos negativos em seu algoritmo de aprendizado de máquina. Então, por exemplo, vamos pegar um filtro de spam que estava tentando detectar se um e-mail é spam ou não. E vamos dizer que a maioria dos dados que não temos spam. Agora, se você fizer amostragem estratificada aqui, o que seu algoritmo de aprendizado de máquina pode aprender é que se classificar tudo como não spam, vai fazer muito bem. Se a chance de o e-mail ser spam for muito baixa, ele fará um bom trabalho dizendo que nada é spam, mas isso não é o que você quer. Esse tipo de derrota todo o propósito. Então, algo que você pode fazer aqui é que você pode fazer uma amostra excessiva da quantidade de spam. Então, em vez de ter muito pouco spam, você pode criar seus conjuntos para que você esteja excedendo a quantidade de spam. E dessa forma o seu algoritmo não vai aprender que o spam
não é importante porque aparece tanto quanto o conteúdo não-spam. Por isso, tem de aprender a identificá-lo. E então, quando você voltar para o caso de teste ou o caso on-line, o caso real, você ainda pode não estar recebendo muito spam, mas agora ele pode novamente, muito melhor identificar spam porque ele teve que fazer isso durante o processo de treinamento. Então, às vezes, quando você tem caso extremamente baixo. Eventos, você pode querer pensar sobre sobreamostragem esses eventos,
incluindo mais desses eventos, incluindo mais desses eventos, então você pode realmente esperar quando seu algoritmo como ao vivo para se certificar de que seu algoritmo aprende, taxas partes importantes e aprende a distinguir até eventos raros que aprende a identificá-los. Então, mesmo que a amostragem estratificada possa parecer uma boa idéia inicialmente, às vezes você quer ter certeza de que a distribuição de dados, não
é a mesma, porque isso realmente terá implicações
muito melhores para o desempenho do O teu algoritmo. Tudo bem, a próxima coisa que eu quero falar é como você lida com dados não-numéricos? Então vamos olhar para os primeiros tipos de dados de dados, que vai ser dados categóricos. Então você tem categorias diferentes. Agora, novamente, em dados categóricos, podemos dividir isso em coisas diferentes. Um deles é números de tipo ordinal, o que podemos fazer aqui é, por exemplo, temos o sistema de classificação estelar. Temos uma estrela, duas estrelas, três estrelas, quatro estrelas e cinco estrelas. E o que podemos fazer é podemos fazer, podemos tratar esses números normalmente. E podemos dizer, tudo bem, vamos dizer que uma estrela, vamos dar que o valor numérico de um para sars, valor numérico de 2, três andares,
três, quatro estrelas para cinco estrelas, cinco. Então o que precisamos fazer para dados categóricos é que precisamos transformá-los em valor numérico. Agora fazer esse tipo de transformação para números sequenciais é bom. Quando os valores subjacentes têm um distinto, distinto foi entre eles se houver uma hierarquia, então duas estrelas é melhor do que uma estrela, quatro estrelas é melhor do que três estrelas, e cinco estrelas é o melhor. Portanto, esta é uma boa maneira de tratar dados que têm uma ordem subjacente. Outro exemplo é se você tem avaliações de revisão que geralmente dizem que isso é ruim, isso é bom, isso é bom, ótimo, que você pode novamente atribuir valores numéricos que estão aumentando. Então você vai 12345 e o cinco é realmente melhor que o quatro. Portanto, usar esse tipo de transformação é bom quando há uma ordem clara em seus dados. Mas, caso contrário, pode causar problemas. Então, se você fizer isso, por exemplo, se você tiver categorias de
alunos, ex-alunos, professores e pais, você não pode realmente atribuir 1234 porque dessa forma seu algoritmo pode aprender que um aluno é menor que um ex-aluno, que é menor que um professor, que é menor que um pai. E você não pode realmente comparar as categorias como essa porque estas são categorias
diferentes e elas podem estar experimentando a mesma coisa de diferentes perspectivas. Então, o que você pode fazer neste caso, quando não há uma ordem clara entre essas diferentes categorias, você pode fazer algo chamado codificação one-hot. E isso é o que vemos na tabela à esquerda, onde para cada uma das categorias, você cria sua própria coluna. E sempre que esse valor está presente, esse valor então recebe um 1. E assim podemos ver aqui, se é um estudante, a coluna de estudantes vai ter um 1 e cada outra coluna vai ter um 0 se for um ex-aluno, cada outra coluna vai ter um 0 exceto para a coluna de alumni que tem um um 1. Se for um professor, a coluna
de professores vai ter um 1 e todo o resto vai ser 0. E se for pai, o pai vai acontecer um e todo o resto será 0. E então o que você pode fazer aqui é que você pode pegar categorias e você pode transformá-las em vez deste codificador one-hot, que permite ouvir algoritmo melhor lidar com esses tipos categóricos. Agora isso geralmente é bom para fazer se você tem um número baixo de categorias, então cerca de 10. Mas você não quer fazer isso se você tem cerca de 100 categorias, porque isso apenas inflama a quantidade de entrada que você tem e seu algoritmo pode não lidar com isso muito bem porque ele tem que aprender todos esses diferentes fatores de entrada. Então, outra maneira que você pode fazer isso é usar algo chamado incorporações. Agora, este é um muito usado para texto, é por isso
que nós também vamos estar olhando para ele
a partir da parte de texto dos dados não-numéricos. Mas incorporações é algo que você pode fazer para categorias, bem como texto. E a ideia aqui é que você pegue um valor e
transforme isso em um conjunto de valores numéricos. Então, por exemplo, o que podemos fazer é pegar a palavra potato e podemos usar uma incorporação 3D. E assim cada palavra ou cada categoria é atribuído três números. Agora esses números podem inicialmente, inicialmente ser randomizados, bem, inicialmente
serão definidos aleatoriamente. Mas essas categorias são, essas incorporações são realmente algo que você pode aprender. E a dimensão de incorporação é, na verdade, hiperparâmetro do seu modelo agora também. Mas um exemplo disso é se tomarmos as palavras nuvens, sol, chuva e osso da chuva, então se descobrirmos que essas incorporações são, incorporações podem realmente parecer com o que vemos à esquerda. E você pode ver que para obter um arco-íris, o que você tem é, bem, você vai para o Sol, você subtrai as nuvens, você adiciona a chuva, e basicamente você tem um arco-íris. Então você pode fazer, ou, desculpe, você vai para as nuvens, adiciona a chuva, e você adiciona o sol, e você tem um arco-íris aqui. E assim você pode ver que há um, há uma relação entre os números que atribuímos a cada uma das palavras. E então nós somos categorias relacionadas ou palavras
relacionadas estão realmente indo para ser começar a agrupar juntos. E palavras diferentes vão ser ainda mais espalhadas. Assim, as incorporações são extremamente úteis porque permitem que você pegue um grande número de palavras ou um grande número de categorias e
reduza-as para um conjunto muito menor de dimensões. Então, por exemplo, se fizermos incorporações 3D, que podem levar uma tonelada de palavras e podemos reduzi-las a três valores numéricos diferentes, em vez de termos, digamos, um codificador de 100 unidades. Então, 100 colunas diferentes. Em vez disso, só temos três. E isso é muito melhor para o nosso algoritmo porque ele pode, então, muito melhor lidar com essas incorporações. E ele pode saber quais valores são semelhantes, bem como quais valores são diferentes. E pode tratá-los mais apropriadamente e não tem que
aprender ou não tem que lidar com todas essas categorias diferentes.
7. Algoritmos de classificação: Nesta palestra, vamos aprender sobre algoritmos de classificação. Então, em primeiro lugar, o que são eles? Bem, eles são essencialmente algoritmos que permitem prever categorias a partir de seus dados. Agora, há também algoritmos de classificação que permitem identificar grupos dentro de seus dados. Então vamos fazer isso com um exemplo mais prático usando o gráfico à direita. O que temos é apenas uma simples distribuição de tempo. Então, cada ponto de dados representa, por exemplo, uma pessoa no eixo x, temos o tempo gasto no trabalho com a direita sendo mais tempo, a esquerda sendo menos tempo. E no eixo y temos o tempo gasto com a família, novamente superando mais e inferior sendo menos. Agora, digamos também que sabemos que este grupo está dividido em duas categorias diferentes. Temos o grupo A, que é o que está no canto superior esquerdo, que é mais tempo com a família e menos no trabalho. E temos o que está no canto inferior direito. Esses grupos podem não ser identificados apenas pela forma como agem socialmente, mas talvez isso também esteja relacionado com a forma como as pessoas compram. Você tem dois tipos diferentes de consumidores, que por acaso se enquadram nesta categoria de alguns passam mais tempo com a família e outros passam mais tempo no trabalho. Agora, vamos também olhar para o ponto verde no meio. Esta é uma nova pessoa que está sendo inserida e queremos ser capazes de prever que categoria eles vão cair para que
saibamos a maneira certa de abordá-los,
por exemplo, de uma perspectiva de marketing, que tipo de catálogos talvez estariam interessados em? Que tipo de comportamento de compra podemos esperar deles e como podemos ajustar sua experiência de acordo? Então queremos saber em que grupo de pessoas elas se encaixam. E então uma ótima maneira de fazer isso é usar algoritmos de classificação, que permitirá que você atribua um grupo ou preveja um grupo em vez de que essa nova pessoa vai cair em. Então, quando você usa algoritmos de classificação, bem, você vai sobre usá-los quando você está mais interessado em um atributo em vez de um valor numérico exato. Por exemplo, digamos que temos duas categorias de gatos e cães são apenas gatos e não bonés. E agora temos outra imagem neste caso, e queremos atribuir esta imagem a uma categoria que queremos classificar esta imagem. Esta é a imagem de um gato ou não é um gato? E então este é outro exemplo muito simples do que um algoritmo de classificação pode fazer. Vamos atribuir esta imagem para as classes já definidas de gato. Não somos gatos. Tudo bem, então vamos entrar em um pouco mais de detalhes em alguns dos algoritmos e realmente ver alguns exemplos desses algoritmos. Vamos usar o conjunto de dados da Iris incluído no SKLearn. E é basicamente apenas olhando para três tipos diferentes de flores, que é o que temos aqui à esquerda. Cada uma dessas flores são tiradas da página da Wikipédia para o conjunto de dados da íris. Então você também pode procurá-los lá em cima e encontrá-los lá. E, essencialmente, existem duas formas. Primeiras duas formas abrangentes da forma como podemos abordar a classificação. Um deles é supervisionado, o outro não é supervisionado. A grande diferença aqui, é
claro, sendo supervisionado, já
conhecemos alvos para quando estamos treinando, enquanto não supervisionados, não temos certeza de qual é a solução correta. Agora, outra parte dos algoritmos de classificação são algoritmos classificação de classe
única ou multi-classe. Então ser capaz de prever uma única classe ou ser capaz de prever várias classes. E vamos olhar para cada um desses casos e um pouco mais de detalhes agora. Então, primeiro de tudo, vamos olhar para algoritmos supervisionados de classe única. Agora, o que temos à esquerda aqui é apenas duas das quatro feições sendo traçadas a partir do conjunto de dados Iris. Então, à esquerda, temos a largura da pétala em centímetros e no eixo y em vez disso, e no eixo x para ambos os gráficos, temos o comprimento da pétala. Agora também dividimos nossos dados em duas categorias. Nós temos o não VR, rig Nika. Não faço ideia de como pronunciar isto, mas é uma das flores. E então você tem a outra categoria que é esse tipo de flor. Então basicamente nós podemos ver, e a maneira que eu rotulei esses dados é que tudo em preto não é aquela flor, e tudo em verde é essa flor. Agora, o que você vê nas cores de fundo são dois algoritmos de classificação diferentes. Um deles é um classificador de descida de gradiente estocástico, o SGD, usando uma máquina vetorial de suporte linear. Novamente, estes são apenas nomes para classificadores. Então, se isso for, parece confuso, pense nisso como um nome para alguma coisa. E a outra coisa é um classificador de regressão logística. Agora, a grande diferença aqui é a área azul. Representa onde o algoritmo de aprendizado de máquina diz, este não é esse tipo de flor. E a área vermelha diz que este é o tipo de flor. E o que temos no meio é o limite de decisão. Essencialmente, se você cruzar essa linha no meio desse tipo de linha verde rabiscada. Se você for para a esquerda, por exemplo, para o caso SGD, então você vai para a categoria não essa flor. E se você for para o canto superior direito e você vai para a categoria de flores. Agora você pode ver, a propósito, que eu decidi exibir os dados. Este algoritmo é claro que não é 100% preciso. Nós temos algumas das flores de nós
nessa categoria aparecendo onde o algoritmo prevê que,
que é realmente esse tipo de flor. Então, novamente, o preto representa o que a flor é realmente, e as cores no fundo representam o que o algoritmo prevê um pouco. Então preto não é essa flor, verde é essa flor, e azul é o algoritmo prevê que não é essa flor e vermelho é o algoritmo prediz que é esse tipo de flor. Agora, uma coisa interessante a observar aqui é que se compararmos o gráfico superior e inferior, podemos ver que os dois algoritmos diferentes que estamos usando aqui têm limites de decisão diferentes. Eles não só estão localizados em posições diferentes, mas também estão em ângulos diferentes. Nesse caso, ambos estão, em algum sentido, separando quase linearmente os dados. Então o que eles estão fazendo é que eles estão basicamente apenas desenhando uma linha reta entre os dados que os separa. Mas podemos ver que a descida do gradiente estocástico, que está apenas usando uma máquina vetorial de suporte linear neste ponto, tem mais de uma separação diagonal, enquanto a regressão logística é mais uma separação horizontal. Então vamos olhar para cada um desses algoritmos com um pouco mais de detalhes. No caso da regressão logística, o que nosso algoritmo está tentando fazer é tentar otimizar as equações inferiores, apenas tentando encontrar a melhor probabilidade. E está usando a equação logística para eles. E assim vemos que temos os recursos como x, temos y como nossa previsão, e temos nossa interceptação e nossos coeficientes ou nossos pesos, como nós os introduzimos anteriormente. E então o que podemos ver, o que obtemos daqui do lado esquerdo é que temos uma probabilidade se nesta largura de pétalas e comprimento de pétalas, isto é, essa é a flor ou não? Qual é a probabilidade de que, dado esses dois valores, esta é a flor. E assim podemos ver que em baixa largura PDL e basicamente qualquer comprimento do pedal, a probabilidade é muito baixa. Então, se voltarmos e olharmos para
isso, é exatamente o que vemos em baixa largura do pedal. Não importa o comprimento do pedal ou a probabilidade seja baixa. que significa que o classificador classifica isso como não aquele tipo de planta. Considerando que quando vamos para alta largura PDL para basicamente qualquer comprimento de pedal ou probabilidade é alta, que significa que nosso classificador agora classifica essa região como esse planejador. Então podemos ver que qualquer coisa em vermelho tem, basicamente nosso algoritmo está dizendo que é uma alta probabilidade que, que tem essa planta. E então eu vou atribuir esses valores aqui e dizer que qualquer coisa aqui é aquela planta. Enquanto que na região azul temos uma baixa probabilidade de que qualquer coisa nessa região seja a nossa planta. Então isso é o que temos no gráfico inferior aqui para regressão logística. Se olharmos para o SVM linear ou o classificador SGD, o classificador de descida de gradiente estocástico aqui. O que o SVM linear faz é tentar encontrar um hiperplano que separa linearmente os dados. Agora o que é um hiperplano, é basicamente apenas uma linha, neste caso, no caso bidimensional aqui. E se for de três dimensões, é uma superfície. E se forem quatro dimensões, é uma espécie de área interna, mas tenta encontrar algo que eu possa desenhar que separa os dados. E isso é exatamente o que vemos aqui. O que o algoritmo está tentando fazer é
encontrar uma boa linha que separa os dados. Mas também o que ele está fazendo é tentar manter a distância
dos pontos de dados para a linha o maior possível. E assim os algoritmos tomam diferentes abordagens para o problema. E, portanto, também podemos ver que eles saem com resultados diferentes. E assim com a regressão logística, podemos ver que temos uma probabilidade para cada valor é atribuída uma probabilidade entre 0 e 1 de pertencer ou não pertencer a esse tipo de classe. Considerando que para o caso da máquina vetorial de suporte linear, temos uma região de 0 que não é essa classe e de uma que é essa classe. E basicamente temos uma região no meio onde há um grande salto de não aquela classe para aquela classe. Então podemos ver que um é uma probabilidade que vai muito mais suavemente e o outro basicamente tem um grande salto entre eles.
8. Algoritmos de classificação Continuação: Nesta palestra, vamos continuar com os algoritmos de classificação que começamos na última palestra. Certo, então vamos dar uma olhada em algoritmos supervisionados multiclass. Então o que fizemos antes foi tentarmos diferenciar entre essa flor ou não esse tipo de flor. Mas, na verdade, neste conjunto de dados, existem três tipos diferentes de flores contidas nele, que é o que vemos aqui. Então, no gráfico superior à esquerda, temos nossos três tipos diferentes de flores. Eles são separados usando um algoritmo chamado KNN para se posicionar para os vizinhos mais próximos do K. E no fundo temos, temos uma regressão logística usando uma abordagem de um versus repouso. Então vamos falar sobre isso em um pouco mais de detalhes, especificamente o um contra o resto. Agora, o que temos no primeiro caso é bem aqui, estamos apenas tentando separar entre uma classe de sim ou não. E então é isso que a parte de classe única se refere, onde quer tentando dizer sim ou não, é, é binário. Agora, alguns desses algoritmos não têm uma contraparte multi-classe. Eles só podem dizer sim ou não. Eles não têm opção ABC. E então a maneira que você pode usar esses algoritmos para, em vez de dizer apenas sim ou não, transformá-los em um ABC, é usar uma abordagem um versus repouso, que significa que você treina um classificador que prediz a probabilidade de cada um destes pertencer a esse tipo de flor. Então nós temos, neste caso, três regressões logísticas, cada uma delas dando uma pontuação para um certo comprimento de pétalas e largura de pétalas pertencentes a um tipo específico de flor. E o classificador que nos dá a maior probabilidade que este comprimento do pedal e este correspondam a esta flor. Esse é o que vai ser escolhido. E isso é chamado de abordagem de um contra descanso. E desta forma podemos transformar uma única classe ou um classificador binário que só pode prever valores sim ou não e usar vários deles juntos para então prever várias classes. E assim podemos ver aqui na parte inferior, esse é o limite de decisão que temos. E faz um bom trabalho separando-os. Novamente, você pode ver que alguns dos pontos tipo de derramamento. Então nós temos a flor verde meio que derramando sobre o regime vermelho e algumas
das flores vermelhas derramando no que o algoritmo previa ser o regime verde. Mas faz um bom trabalho separando estes três. Agora, para os vizinhos mais próximos, este algoritmo que ele só olha são, quais são os pontos ao meu redor? E, baseado
nisso, tenta adivinhar. E uma coisa importante a observar aqui é que para a regressão logística para a máquina vetorial de suporte, mas sempre tivemos é essencialmente, basicamente uma linha reta separando. Considerando que, para o vizinho mais próximo, podemos ver que há realmente uma curva indo para dentro, especificamente para a parte difícil entre ir entre as duas flores e o canto superior direito. E assim podemos ver que algoritmos diferentes dão diferentes limites de decisão. Os limites de decisão novamente, são aquelas linhas rabiscadas que separam a saída dos classificadores. E, claro, existem muitos outros tipos diferentes de classificadores que você pode entrar. E estes são apenas alguns dos exemplos. Agora, como todos esses classificadores se comportam de forma tão diferente, muitas vezes não
é nota se você aprender cada algoritmo de classificação, em vez disso, é mais importante que você tenha uma compreensão muito boa de alguns deles. Então escolha 34 ou cinco e entenda com mais detalhes e sinta-se confortável com eles. E muitas vezes apenas ter esse tipo de gama de algoritmos para escolher e compreendê-los completamente, muitas vezes tornará seu modelo muito melhor. Em vez de tentar usar toneladas de algoritmos de classificação
diferentes onde você realmente não entende o que eles estão fazendo, como eles estão se comportando, e qual deles seria mais apropriado usar e esse tipo de situação. Assim, por exemplo, outros tipos de
algoritmos supervisionados multi-classe são Bayes ingênuos ou você pode usar redes neurais, mas há, claro, muitos mais. Mas, em última análise, a melhor coisa é apenas familiarizar-se com um casal e, em seguida, ficar eles porque
esses são os que você entende melhor. E se você tem um punhado de algoritmos de classificação para escolher, as chances são, um deles sempre vai fazer um bom trabalho ajudando você a resolver qualquer problema que você está enfrentando. Muito bem, vamos ver algoritmos multiclass não supervisionados. Agora. Essencialmente, agora só vamos olhar para um, porque estes podem tornar-se bastante complicados. E vamos olhar para um algoritmo de agrupamento chamado k-means. Agora o que o algoritmo de agrupamento faz é separá-lo. Ele separa nossos dados em diferentes clusters, em diferentes grupos. Novamente, vemos aqui que temos um limite de decisão e temos classes diferentes. E o caso principal, estamos dizendo de antemão, queremos que este algoritmo divida esses dados em dois grupos diferentes. E isso é o que ele faz. Vemos que o lado esquerdo é um grupo e o lado direito como outro grupo. E na metade inferior vemos, ou dizemos, queremos que este algoritmo divida-o em três grupos diferentes. Então isso é algo que dizemos de antemão. E neste caso vemos que temos um no canto inferior esquerdo, um no meio, e outro à direita. Agora, essa abordagem é chamada novamente agrupamento. E quando definimos de antemão quantos grupos diferentes queremos que o algoritmo identifique. E neste caso, ele tenta agrupar os dados para que
haja variância mínima dentro de cada grupo. Certo, então como você
avaliaria o desempenho do seu algoritmo de classificação? Bem e fácil, tipo de abordagem direta seria apenas para medir a precisão. Basicamente, veja qual é a proporção de resultados ou previsões corretamente classificados. Mas isso pode começar a causar problemas se você tiver um número alto de classes. Então, digamos que você está prevendo 20 classes diferentes. Isso significa que cada classe é de cerca de 5% se eles são distribuídos uniformemente. Se você tem uma precisão de 95%, isso é quase mais, Isso é basicamente ainda apenas adivinhação aleatória porque você pode estar vendo não todas as vezes e 95% do tempo você ainda vai estar correto. Portanto, a precisão geralmente não é uma boa maneira de avaliar algoritmos de classificação. Mas podemos ver no fundo aqui, eu ainda mostrei a precisão da descida do gradiente estocástico, bem
como a regressão logística, que é apenas o número de previsões corretas, que neste caso Na verdade, não é tão ruim porque só temos duas aulas. Mas novamente, a precisão pode realmente começar a causar problemas quando você está indo para um maior número de classes. Então, quais são as opções deles? Estão lá? Bem, outra opção é olhar para a precisão. Precisão que você olha ou calcula observando o número de previsões corretas. São previsões positivas corretas, e dividindo-as pelo número de previsões positivas corretas, bem
como previsões positivas incorretas. Então isso significa que uma verdadeira previsão positiva ou positiva correta é se você diz que esta ou esta flor é esse tipo de flor. E se não é fato esse tipo de flor, então isso é um verdadeiro positivo. Um falso positivo é quando você diz que esta flor é esse tipo de flor, mas na verdade não é esse tipo de flor. Se você disser, Sim, esta é a flor que eu estou procurando, mas na verdade não é essa flor do que o que você tem aqui é um falso positivo. Precisão é realmente bom para usar quando você quer saber quão confiável são minhas verdades? Quando eu digo que este é o caso, então é muito provável que este seja o caso. Agora, o outro tipo, mas você pode usar ou outro tipo que você pode usar é algo chamado recall, onde você olha para o número de verdadeiros positivos sobre a soma dos verdadeiros positivos e os falsos negativos. Então o falso negativo é quando você está dizendo que isso não é de fato essa classe, enquanto na verdade é essa classe. Então você está dizendo que isso não é esse tipo de flor, mas uma realidade, é esse tipo de flor. Agora lembre-se, é bom usar quando você quer avaliar quantas vezes eu sinto falta dos meus valores verdadeiros? Agora, o que você também pode usar algo chamado matriz de confusão. A matriz de confusão faz é mostrar quantas vezes uma classe foi confundida como outra. Então, neste caso, podemos ver aqui à direita que temos as duas mesas para o SGD. Temos as linhas estão mostrando
os valores verdadeiros e nossas colunas estão mostrando os valores previstos. E assim podemos ver 78 onde previu negativo e nós somos realmente negativos. Considerando que 20 para usar previu positivo, mas na verdade somos negativos. Então, temos uma confusão acontecendo aqui. Mas não temos valores negativos previstos que foram positivos. E então o que você está olhando com uma matriz de confusão é com que
frequência uma classe é confundida com outra classe? Agora isso pode ser extremamente útil, especialmente se você estiver fazendo multi-classe. Mas é claro, isso requer mais algumas verificações porque não é apenas um número, é uma matriz e C que você pode entrar e você pode realmente ver, ok, onde está meu algoritmo fazendo erros? Mas é claro que requer mais trabalho porque você precisa entrar e você precisa olhar para todo
o conjunto de números em vez de apenas ter um número para medir o desempenho. Agora, estas são apenas algumas das ferramentas que você pode usar para avaliação. Existem, é claro, também outras ferramentas, mas estas são as mais básicas que você deve saber. E esses também são os que devem lhe dar um gostinho e uma compreensão de por que nem
sempre é ideal usar a precisão e quais outras maneiras você pode abordar a avaliação de algoritmos de classificação.
9. Algoritmos de regressão: Neste vídeo, vamos rever algoritmos de regressão. Então, em primeiro lugar, o que são? Bem, algoritmos de regressão são essencialmente algoritmos que nos permitem prever valores numéricos. Então, quando você quer usá-los? Bem, um caso muito bom para usá-los seria se você quiser preencher os valores que faltam. Por exemplo, se você tiver um conjunto de dados um pouco incompleto, mas tiver dados comparáveis antes. E você pode treinar seus algoritmos para eles, preencher valores ausentes para que você ainda possa usar esses dados,
em vez de ter que descartá-los. Outro lugar que você poderia usá-lo para ele, é muitas vezes usado para isso é para previsão. Então isso pode ser previsão de tempo ou isso também pode ser previsão apenas em diferentes áreas. Portanto, algoritmos de regressão são muitas vezes usados se você quiser usar uma parte de seus dados e quiser fazer previsões sobre outra parte na qual você pode não ter dados. Agora, você também pode usar algoritmos de regressão quando quiser entender como seu sistema se comporta em diferentes regimes. E o que eu quero que vocês notem no gráfico à direita aqui é que nós temos exatamente a mesma curva para esta curva parecia linear. Então, se voltarmos, vemos que esta é na verdade uma linha reta que temos aqui à direita. E agora, se olharmos para o gráfico mais longe, podemos ver que esta cápsula não é mais linear. Podemos ver que é um polinômio. Então, como curvas nele. Estes dados foram obviamente gerados por mim. Isto não é extremamente realista. Mas o ponto que eu quero deixar aqui é que em algumas regiões os dados podem realmente parecer lineares. Então, se ampliarmos a região entre 01 ou 0,51, que é o que fazemos aqui. Podemos realmente ver que uma linha linear ou uma linha, uma linha linear, uma linha. Um bom trabalho de ajustar os dados aqui, mas quando reduzimos o zoom, isso não é mais o caso. Então uma linha reta não vai mais fazer um bom trabalho de modelar isso. E então, se tivermos um bom modelo ou um bom algoritmo, então podemos ir para diferentes regimes e espero que possamos entender como os dados se comportam nessas diferentes partes. E assim, um modelo muito bom pode nos ajudar a entender algo que ainda não fomos capazes de investigar. Mas, claro, isto é, você também deve estar ciente de que, às vezes ou frequentemente, quando você treina um modelo, ele só será válido para o intervalo de dados que você está criando em vez de em todo o conjunto de dados. Então, mesmo que os algoritmos de regressão possam ser muito poderosos para ajudar você a prever valores numéricos, você quer ter certeza de que, quando os estamos usando, você os está usando em seu intervalo de dados apropriado. E que se você estiver recebendo dados que estão completamente fora do intervalo que você normalmente considerou. Você quer reavaliar o desempenho do seu algoritmo nessas partes de dados. Porque como podemos ver a partir da comparação aqui à direita, primeiro começamos linear e depois vamos para este polinômio. Então, se entrarmos em dados de muito fora do intervalo que estamos acostumados a isso antes, a maneira como nossos dados em nosso sistema se comportam pode mudar. Certo, então vamos dar uma olhada em alguns dos algoritmos. Vamos usar novamente o conjunto de dados
da íris que também usamos para o caso de classificação. Agora, quando você está fazendo regressão, você geralmente só fala sobre supervisionado. supervisionado não é particularmente bem definido para algoritmos de regressão. E é por isso que quando estamos falando de regressão, geralmente vai ser um caso supervisionado onde você tem seus dados de treinamento e você também tem rótulos apropriados para um valor-alvo apropriado que você deseja alcançar. Certo, então vamos considerar novamente esses dados da íris. O que temos aqui no eixo x, que você pode ver no gráfico à esquerda, é o comprimento sepal. E então no eixo y temos o comprimento do pedal. E o que você pode ver a partir deste gráfico é essas duas características parecem estar um pouco relacionadas. Então vamos tentar usar alguns algoritmos de regressão para ver se podemos prever alguns dos valores ou se
podemos ter um modelo que tenta modelar esse comportamento que estamos vendo aqui. Agora existem diferentes maneiras de nos aproximarmos regressão e existem muitos algoritmos diferentes. O mais simples é uma regressão linear. Linear apenas sendo um polinômio de linha reta é uma linha curva. Foi o que vimos aqui. Então isso vai ser linear. Isto vai ser um polinômio. E então você também tem máquinas vetoriais de suporte que você pode usar para regressão. Você também pode usar os Vizinhos K-mais próximos. Regressão. Redes neurais são muitas vezes, é claro, também usadas para regressão, e eles também são muitos outros algoritmos supervisionados que você pode usar para agressão. Assim como para a classificação que temos e muitos algoritmos para escolher que podemos usar para regressão. E muitas vezes se resume apenas a, ok, qual é o problema e qual é o nosso conjunto e qual modelo é mais apropriado para usar para este tipo de dados. Então vamos dar uma olhada na regressão linear. O que temos aqui é um modelo de regressão linear treinado neste conjunto de dados. E o que eu usei é como se você usasse uma codificação única. Lembre-se que falamos sobre isso no caso de preparação de dados, onde codificamos os três tipos diferentes de flores. E assim nosso modelo linear na verdade cria três melhores ajustes diferentes para cada um dos tipos de flores individuais. E podemos ver que este é o resultado. E então o que você pode ver a partir do modelo linear é que podemos descer para menor comprimento sepal e podemos prever comprimentos PDL apropriados. Não sabemos se esse valor seria correto ou não, mas podemos pelo menos tentar prever. E podemos fazer a mesma coisa. E podemos fazer isso para todos os flatworms desde que usamos uma codificação única. E então o que nosso modelo linear é realmente feito é dividi-lo em três diferentes, então você tem três flores diferentes neste caso, através de diferentes modelos lineares, que tudo iria apenas usar m. E ele iria verificar qual codificação Isto é. Então, qual flor é. E então você usaria o apropriado quando nosso modelo para fazer previsões? Também podemos fazer a mesma coisa usando uma regressão de vizinho K-mais próxima. Agora, o vizinho k mais próximo, em vez do que o modelo linear faz é tentar encontrar a melhor linha linear para percorrer os dados e o vizinho k mais próximo ele olha para os vizinhos circundantes para um datapoints. A previsão é apenas o valor médio dos pontos de dados circundantes. E assim podemos ver que quando estamos indo para menor ou maior comprimento sepal nosso algoritmo KNN realmente não fornece muitas grandes previsões mais. Então podemos ver quando entramos no comprimento SQL inferior, É basicamente tudo plano. E no caso linear, está diminuindo agora porque nós não temos dados nesse caso, nós realmente não sabemos qual deles está correto ou se flores dessas características ainda existem. Então, até termos dados lá, não
podemos realmente validar qual dessas ruas mais precisa. Mas podemos ver que o comportamento destes dois é muito diferente. E nós também podemos ver que para o caso linear, ele não vai realmente é apenas uma linha reta. Considerando que para o caso de vizinho k mais próximo, temos um pequeno tipo de linhas horizontais que
pulam para cima e para baixo à medida que atravessamos o SQL diferente. E novamente aqui temos três modelos diferentes, que também são codificados por cores em um roxo, preto e cinza para as flores cor laranja, azul e vermelho, respectivamente. E assim você pode ver que temos pequenos regimes onde essas previsões seriam as mesmas. E nós estamos tendo, quase
parece uma escada que não está totalmente conectada que estamos fazendo previsões. Assim como no caso do classificador, podemos ver que algoritmos diferentes, é claro, se comportam
de forma muito diferente. E então uma ótima maneira de, sua grande coisa a fazer, é claro, é apenas ver, ok, que tipo de previsões consternação algoritmo faz ou como meu algoritmo realmente se parece? Se assim for, visualizar a previsão é que seu algoritmo onde o espaço faria para todos esses diferentes comprimentos SQL é
uma boa maneira de entender o que seu algoritmo realmente faz. Claro, eram apenas dois algoritmos. Então nós olhamos aqui para o caso linear. Olhamos aqui para os vizinhos mais próximos. Novamente, como eu disse, existem muitos algoritmos de regressão diferentes e cada um deles tem uma abordagem diferente. E assim a forma como as previsões vão parecer também vai ser muito diferente. Então, como avaliaríamos esses diferentes modelos? Bem, a coisa boa a fazer é olhar para o erro. Agora, eu vou usar você para denotar nossos alvos aqui, e eu vou usar o seu chapéu para denotar nossa previsão. E uma maneira que você pode olhar para o erro é apenas olhando para o erro médio absoluto. Então você olha para cada previsão e você vê o quão longe a previsão está longe do valor verdadeiro. Você toma um valor absoluto para que os números são apenas positivos. Você soma-os e dividi-lo pelo número de pontos de dados. E assim, dessa forma, você obtém uma medida de, em média, quão longe está sua previsão do valor verdadeiro. E assim podemos ver à direita, temos dois modelos. À esquerda, temos a regressão linear no canto superior esquerdo,
à minha direita temos o vizinho mais próximo. E na parte inferior podemos ver que usando o erro médio absoluto, a regressão linear está desligada em cerca de 0,2. Então isso significa que, em média, ele está fora em cerca de 0,2 centímetros. E a previsão do comprimento do pedal, enquanto o vizinho K-mais próximo está desligado apenas cerca de 0,17 centímetros. Usando essa medida, parece que o vizinho mais próximo trabalha. Agora, há também uma maneira diferente de olhar para o ar. E este é muitas vezes um preferido, que é olhar para o erro médio quadrado e basicamente a saída do aprendizado de máquina, é muitas vezes também referido como o erro raiz média quadrado ou que é uma maneira diferente de se referir a ele. Falaremos sobre isso em um segundo. O erro médio ao quadrado é em vez de tomar sua previsão e ver o quão longe ele está do alvo e apenas tomando valores absolutos, você quer nivelar isso. E a razão pela qual você acerta isso é porque isso significa que outliers ou previsões que estão muito fora são punidos muito mais fortemente. Então, por exemplo, no caso de erro médio absoluto, se tivermos uma previsão que está desligada por 0,1 e outra que está desligada por 0,5. Estes serão, essencialmente, igualmente ponderados. Enquanto no caso do erro quadrado médio, o erro maior terá um efeito muito maior na nossa avaliação aqui. E a razão pela qual o erro médio ao quadrado é bom é porque ele não só nos dá uma medida de quão bom é o nosso algoritmo, mas pesadamente punido quando as previsões estão muito fora do alvo real. E assim podemos ver aqui se olharmos para o erro quadrado médio para a regressão linear e os vizinhos mais próximos k. Novamente, a regressão linear neste caso também tem uma média maior ao quadrado. Então isso significa que a partir do erro médio absoluto, vemos não só o modelo em média é mais fora, mas a partir do caso de erro quadrado médio, vemos que também outliers não são tão ricos ou os extremos não são tão bem ajustados como no caso vizinho k mais próximo. Agora, o que é essa raiz significa caso de erro quadrado? Enquanto a raiz média do erro quadrado está apenas tomando a raiz quadrada do erro quadrado médio. Agora, a razão pela qual você quer fazer isso é porque o erro quadrado médio nos dá valores e quadrados. Então o que temos aqui a partir do erro quadrado médio é
que temos uma diferença de centímetros ao quadrado essencialmente, que não é, realmente não faz sentido. Não é o que procuramos. Então podemos pegar a raiz quadrada e agora
podemos ler que a partir do caso de erro médio quadrado raiz, temos um erro de cerca de 0,2 centímetros, enquanto que para o caso de vizinho k mais próximo, temos um erro de cerca de 0,2 centímetros. Então tomar a raiz quadrada traz ou unidades de volta para o que estamos realmente medindo e nos permite atribuir um valor mais físico. Agora, a razão pela qual você realmente não usa o erro de raiz média quadrada e os casos de aprendizado de máquina. Porque a performance é a mesma, você só está pegando a raiz quadrada no final. E a raiz quadrada é apenas uma operação extra que levará mais tempo. E então você pode apenas usar o erro quadrado médio, porque se o erro quadrado médio for maior, então a raiz quadrada desse valor também será maior do que qualquer valor que você está comparando. Então, tomar a raiz quadrada não adiciona nada extra quando você quer usar isso para avaliar seu algoritmo. Tomar a raiz quadrada adiciona muito extra quando você deseja interpretar o erro de uma perspectiva humana. Mas quando você está usando em seu algoritmo para treinar o erro quadrado médio, faz, é, faz exatamente a mesma coisa. E você não precisa usar o custo extra de calcular a raiz quadrada sempre.
10. Técnicas de otimização: Nesta palestra, vamos analisar técnicas de otimização para nossos algoritmos. Antes disso, vamos fazer uma breve recapitulação do que fizemos até agora. Primeiro, analisamos a preparação para o treinamento. Assim, identificando potenciais recursos bons e simplesmente geralmente indo sobre a compreensão de nossos dados. Em seguida, entramos em mais detalhes sobre a preparação nossos dados com técnicas usando como normalização, escala e a importância da amostragem. E então olhamos para diferentes tipos de algoritmos, especificamente para regressão e classificação. Mas como fazemos nossos algoritmos aprenderem mais rápido? Então, para isso, acabamos de falar sobre quais algoritmos podemos usar? O que vamos fazer? Ou até mesmo todo o fluxo de ciência de dados, que é basicamente tudo até a escolha do algoritmo. Então, como vamos sobre nossos dados? Como preparamos nossos dados? Como entendemos nossos dados? Como identificamos boas características? Como nos saímos? Como exploramos todos esses tópicos importantes? E então conversamos sobre usar nosso modelo e como avaliamos nosso modelo. Mas agora, como fazemos nosso algoritmo aprender mais rápido? Porque às vezes, quando você está usando muitos dados, seu algoritmo pode realmente levar um bom tempo para treinar e você só precisa esperar que ele termine. E então, é claro, uma coisa que você pode fazer é apenas usar mais ou mais forte ou computadores. Mas também há outras técnicas que você pode usar para tentar fazer seus algoritmos aprenderem mais rápido para que eles se tornem melhores, mais rápidos. E é isso que vamos olhar agora. Então aqui vamos cobrir os diferentes tipos de otimizadores. Vamos começar com descida de gradiente, que é algo que também usamos antes. Vamos olhar para o momento, depois nag, eeta grad e RMS prop e finalmente átomo, bem como N átomo. Ok? Antes de entrarmos nisso, eu rapidamente quero introduzir outro termo chamado taxa de aprendizagem. Agora, a taxa de aprendizagem define quão rápido nosso algoritmo aprende ou basicamente quanto seu algoritmo é afetado pelos erros que ele está fazendo atualmente? Agora, você pode pensar intuitivamente, tudo bem, bem, eu quero que meu algoritmo aprenda o mais rápido possível, então torna-se o mais bom possível rapidamente. Não vamos realmente como funciona. Então vamos olhar para o tipo de dois extremos. E isso geralmente é uma daquelas coisas Cachinho Dourado onde você não quer ser muito pequeno. Porque se você é muito pequeno, então essencialmente você vai levar muito tempo para alcançar uma solução ideal ou um modelo que faz um trabalho aceitável o suficiente. Então, se a sua taxa de aprendizagem for muito pequena, vai demorar muito. Mas se sua taxa de aprendizagem é muito grande, então você pode realmente estar tomando saltos que se tornam muito grandes e você pode nunca chegar a uma solução ideal porque seu algoritmo está supercorrigindo. Agora a taxa de aprendizagem é denotada por ETA, que é este símbolo no fundo, que basicamente se parece com um estranho N. E então quando passarmos pelas próximas partes da palestra, se você ver isso, isso testa bola ou aquele n estranho, que vai ser a nossa taxa de aprendizagem. Agora, a taxa de aprendizagem também é um hiperparâmetro do seu sistema que você pode ajustar. E, claro, você quer obter essa taxa de aprendizado ideal que você não esteja indo muito grande que seu modelo corrija, mas também não muito pequeno que seu modelo demore muito para alcançar a solução ideal. E poderia ter feito a mesma coisa com passos mais rápidos ou maiores. Tudo bem, vamos olhar para o primeiro algoritmo que é chamado descida
gradiente, descida corajosa. Tudo o que estamos fazendo é pegar nossa função de erro, ou uma função de perda ou nossa função de custo, que é neste caso, por exemplo, o que eu plotei é o erro quadrado médio, que é o que falamos no caso de regressão. Então o erro quadrado médio é apenas uma equação quadrática, que é apenas este quadrado aqui. E podemos ver que a descida gradiente faz, é que apenas leva nossos pesos atuais. E basicamente muda nossos pesos pela taxa de aprendizado e pelo gradiente de onde quer que estejamos atualmente em nossa função de custo. Então, se olharmos para o gráfico à direita, se nosso erro for mais para o lado esquerdo acima da curva, então teremos um gradiente mais íngreme nesse ponto. E assim podemos adicionar mais erros. Enquanto que se estivermos mais perto do mínimo, que é o que queremos alcançar, então nosso gradiente será menor. E agora a escala da taxa de aprendizagem que você pode essencialmente pensar em escalar esse gradiente. Então podemos ver que mudar a taxa de aprendizagem está basicamente mudando entre a seta laranja ou roxa na caixa ou no bloco e o azul. Então podemos fazer uma taxa de aprendizado maior ou menor, e isso basicamente afeta o tamanho do passo que vamos dar. Então, tudo o que estamos fazendo com descida de gradiente como temos nossos pesos, incluindo nosso viés. Então você se lembra desse termo theta de antes, e nós apenas olhamos para nossos pesos atuais e nós os atualizamos com base no erro, com base em cada taxa ou com base em cada peso, que vem da função de custo. Tudo bem, a próxima coisa que podemos fazer é usar otimização de momentum. Agora com o impulso faz é que basicamente leva descida gradiente, que é o que nós olhamos apenas anteriormente, e acrescenta um pouco. Então, o que a descida de gradiente faz é cada passo que
calculamos o gradiente e, em seguida, ajustamos nossos pesos de acordo. Então, se estamos muito altos a curva de ar ou gradientes vão ser mais íngremes. E vamos nos ajustar cada vez mais. E quanto mais perto chegamos
ao, daquele mergulho no fundo, podemos ver que nossa flecha um pouco menor e menor. E então nós vamos ajustar menos. Então o que o impulso faz é manter o controle de basicamente os gradientes anteriores. E assim podemos ver aqui o momento é o que eu notei em verde. E se começarmos pela esquerda, começamos a descer a colina. E o nosso impulso é mostrado lá em verde. E então nós também pegamos o gradiente
no ponto local e mudamos nosso impulso de acordo. E então atualizamos nossos pesos com base no novo impulso e efeito que isso tem é que
podemos ver à esquerda, vamos começar a rolar pela colina muito mais rápido essencialmente porque vamos pegar impulso. Mas quando chegamos ao fundo, podemos ver que à direita, por exemplo, o impulso ainda está apontando para cima. Então vamos rolar pela colina um pouco mais longe antes de desacelerar e voltar para baixo. Então, para a descida do gradiente foram basicamente, se estamos no lado esquerdo, nós estamos tipo de rolar para baixo a colina e nós estamos diminuindo à medida que chegamos ao fundo. Enquanto que com o impulso, você pode imaginar mais como se tivéssemos uma tigela e colocaríamos uma bola na ponta da tigela e deixá-la correr para baixo. E mesmo quando a bola atinge o tipo de ponto mais baixo, ela ainda tem algum impulso que vai
carregá-la para o outro lado da tigela antes de ficar mais lento e então ele volta e meio que salta ao redor um pouco até chegar a uma organização, permanece colocado naquela parte inferior. E assim um impulso como um otimizador funciona de forma muito semelhante. O próximo tipo de otimizador é chamado de gradiente acelerado
Nesterov ou habilidade para abreviar. E basicamente só leva impulso. Mas em vez de olhar para os aplicativos de gradiente, os pesos atuais, ele olha para o gradiente, para os pesos atuais mais o nosso impulso. Assim, podemos ver que nosso passo atual seria aquelas flechas agora mais transparentes. E nosso passo em nossos pesos atuais mais o impulso seria então a seta mais opaca, então as mais coloridas. E uma coisa boa sobre isso é que nosso algoritmo realmente são o otimizador olha um pouco para o futuro e aspas em torno do próximo passo. E assim não vai acelerar tanto quanto podemos ver no caso da esquerda. Na verdade, não vamos receber um grande impulso. E também vamos desacelerar mais uma vez que tenhamos passado o ponto ideal, como podemos ver no lado direito, onde já temos um chute maior para trás. Então o que a batida faz é, em
vez de olhar e usar os gradientes para os pesos atuais, ele olha para os gradientes para os pesos atuais mais o momentum, e então ajustar o momento de acordo com isso e atualizar nossos pesos com base no impulso. Tudo bem. Então o próximo tipo vai ser 80 graus e RMS prop. E estes estão muito relacionados, é por isso que os coloquei na mesma categoria. E essencialmente tudo o que estamos fazendo aqui é que temos tipo de semelhante ao momento antes de um, outro símbolo que estamos usando atualizando e tudo o que estamos fazendo é que estamos, temos nosso valor inicial atual e mudamos que com base no gradiente em cada direção. E então nós estamos meio que dimensionando por meus gradientes como podemos ver. Então estamos pegando o gradiente de cada onda e estamos multiplicando por si só. Esse será o nosso valor S aqui, que será definido para cada peso. E então atualizamos nossos pesos e vieses reais subtraindo o gradiente e dividindo cada valor por esse valor predefinido. Então o que estamos fazendo aqui é que estamos realmente reduzindo o efeito de gradientes maiores. E assim não vamos sair na direção errada, mas essencialmente vamos ser guiados mais para esse ótimo mais rápido. Agora aquele estranho E no fundo, é chamado de épsilon, e isso é apenas um número muito pequeno. E você tem isso para que você não divida por 0. Mas essencialmente o que ele
faz é pegar todos os gradientes e escalá-los com base em seu tamanho. E assim o teu algoritmo não vai para as direcções do Ron, mas vai mais rapidamente para a direcção certa. Rms adereço é quase a mesma coisa. Tudo o que estamos fazendo é adicionar um termo de escala, que é este gama aqui. Hum, e assim nós meio que descartamos algumas
das partes anteriores e podemos ajustar os pesos que são correntes que os guardiões têm, bem
como a memória dos valores anteriores. Então podemos ver que eeta grad e RMS prop são muito semelhantes e eles têm o mesmo objetivo, que é não deixar seu algoritmo ir para as direções erradas. Mas eles conseguiram isso um pouco diferente. Enorme problema geralmente é melhor do que 80
graus, só porque ele não se lembra tanto do velho e esquece mais rápido e considera mais os valores atuais. Mas essa gama, é claro, também
é algo que você pode sintonizar. Então este é outro hiperparâmetro. Certo, finalmente temos Adam e um átomo. Agora o que estes fazem, e você provavelmente reconhecerá muitas dessas partes. Então nós temos o P, que é essencialmente um P de impulso. Temos o S, que é o S de Ada Garage ou RMS adereço, na verdade, neste caso. E o que estamos fazendo é combinar nosso P e R S, e basicamente atualizamos com base nesses dois valores. E tem um pouco de como uma escala acontecendo. Então estamos dividindo nossos p por 1 menos Gamma 1 e nosso S por um menos gama 2. E, essencialmente, estamos apenas fazendo isso para que
alcancemos mais valor ideal e valores ótimos de P e S mais rapidamente. Mas a idéia deste algoritmo Adam é que ele combina momentum e combina o que faz uso para RMS prop, e ele funciona muito bem. E então nós também temos um átomo, que basicamente leva o átomo e acrescenta o Nesterov. Então, em vez de olhar para os gradientes e o lugar atual, ele vai olhar para os gradientes no próximo lugar depois de considerar o impulso. E basicamente isso faz a mesma coisa que NAG é para momentum e átomo é dois átomos. Então estes são todos os tipos de otimizadores populares. Se você quiser ir e escolher um. O padrão que geralmente é usado é a descida de gradiente, mas de modo algum é o ideal. Se você está indo apenas para escolher um otimizador aleatório, geralmente
é bom ir com o átomo ou o átomo N. Estes funcionam muito, muito bem. E então, você sabe, se você não tem certeza, você provavelmente deveria ir com esses, mas você deve estar ciente de que otomano um átomo geralmente laranja, o padrão quer ir em frente. Mas você pode ver que cada um desses otimizadores que tipo de se comportam de forma diferente. E assim, você sabe, existem diretrizes de quais são geralmente melhores. Mas, claro, isso também pode depender da situação. E se você não tem certeza, pode valer a pena experimentar com dois ou três deles. E, em seguida, ver qual tipo de otimizado ele realmente executa o melhor em termos de tornar seu algoritmo um dos mais rápidos. E então vá com isso o resto do caminho. Assim, quando você está melhorando seu modelo, ele realmente aprende mais rápido do que de outra forma. Tudo bem, e com isso, chegamos ao fim do refrão. E eu só queria agradecer a todos por se juntarem a mim. Espero que tenha aprendido muito. Espero que tenham gostado do curso, e espero que se sintam confortáveis conversando sobre aprendizado de máquina agora. Agora, você deve ter notado que ao longo deste curso há um monte de trabalho de ciência de dados que vai para ele, um aprendizado de máquina ou a especialização de aprendizado de máquina. Na verdade, é construído sobre ter habilidades realmente sólidas de ciência de dados. Então, se você estiver interessado em se especializar em aprendizado
de máquina ou se estiver interessado em se tornar um cientista de dados. Eu também tenho algum grande conteúdo no meu site de codificação com max.com projetado especificamente para levá-lo de absolutamente nenhuma experiência para cientista de dados. Então, se você está interessado nisso ou se você quiser ouvir minhas dicas sobre como eu comecei, novamente, você pode conferir na codificação com max.com. E sim, obrigado novamente por se juntar a mim e espero vê-lo em um dos meus outros cursos.