Aprendizado de máquina e redes neurais - página 60

 

Aula 16.3 — Otimização bayesiana de hiperparâmetros



Aula 16.3 — Otimização bayesiana de hiperparâmetros [Redes neurais para aprendizado de máquina]

Neste vídeo, discutirei alguns trabalhos recentes que abordam a questão de como determinar hiperparâmetros em redes neurais. A abordagem apresentada neste trabalho utiliza um tipo diferente de aprendizado de máquina para auxiliar na seleção de valores apropriados para hiperparâmetros. Em vez de ajustar manualmente as configurações de hiperparâmetros, esse método emprega aprendizado de máquina para automatizar o processo. A técnica se baseia em processos gaussianos, que são eficazes na modelagem de funções suaves. Embora os processos gaussianos fossem tradicionalmente considerados inadequados para tarefas como fala e visão, eles são adequados para domínios com conhecimento prévio limitado, onde entradas semelhantes tendem a produzir saídas semelhantes.

Hiperparâmetros, como o número de unidades ocultas, camadas, penalidade de peso e uso de abandono, desempenham um papel crucial no desempenho da rede neural. Encontrar as combinações certas de hiperparâmetros pode ser um desafio, especialmente ao explorar o espaço manualmente. Os processos gaussianos são excelentes na identificação de tendências em dados e podem identificar com eficácia bons conjuntos de hiperparâmetros. Muitos pesquisadores hesitam em usar redes neurais devido à dificuldade de definir hiperparâmetros corretamente, pois um valor incorreto para um hiperparâmetro pode tornar a rede ineficaz. A busca em grade, uma abordagem comum, envolve tentar exaustivamente todas as combinações possíveis, o que se torna inviável com inúmeros hiperparâmetros.

No entanto, um método mais eficiente envolve amostras aleatórias de combinações de hiperparâmetros. Ao fazer isso, experimentos redundantes são evitados e mais atenção é dada aos hiperparâmetros que têm um impacto significativo. No entanto, combinações aleatórias têm limitações, e é aí que entra o aprendizado de máquina. Ao utilizar o aprendizado de máquina, podemos simular o processo de um aluno de pós-graduação selecionando valores de hiperparâmetros. Em vez de confiar em combinações aleatórias, examinamos os resultados obtidos até agora e prevemos quais combinações provavelmente produzirão bons resultados. Essa previsão requer a determinação de regiões do espaço de hiperparâmetros que devem fornecer resultados favoráveis.

Para construir um modelo preditivo, assumimos que a avaliação de uma única configuração de hiperparâmetro requer recursos computacionais significativos, como o treinamento de uma grande rede neural em um conjunto de dados massivo, o que pode levar dias. Por outro lado, construir um modelo para prever o desempenho de configurações de hiperparâmetros com base em experimentos anteriores é computacionalmente menos intensivo. Os modelos de processo gaussianos, que assumem que entradas semelhantes levam a saídas semelhantes, são adequados para tais previsões. Esses modelos aprendem a escala apropriada para medir a similaridade em cada dimensão de entrada, permitindo-nos identificar valores de hiperparâmetros semelhantes e diferentes.

Além disso, os modelos de processo gaussianos não apenas prevêem o resultado esperado de um experimento, mas também fornecem uma distribuição de previsões, incluindo uma variância. Ao prever o desempenho de novas configurações de hiperparâmetros semelhantes às configurações anteriores, as previsões dos modelos são precisas e têm baixa variação. Por outro lado, para configurações de hiperparâmetros que diferem significativamente de quaisquer experimentos anteriores, as previsões têm alta variação.

A estratégia para usar processos gaussianos para determinar a próxima configuração de hiperparâmetro envolve a seleção de uma configuração que se espera que produza uma melhoria substancial em relação à melhor configuração observada até agora. O risco de encontrar um resultado ruim é aceitável, pois não substituiria a melhor configuração obtida. Essa estratégia é semelhante à abordagem usada pelos gestores de fundos de hedge, que têm incentivos significativos para assumir riscos porque não há desvantagem significativa. Seguindo essa estratégia, podemos tomar decisões informadas sobre quais configurações de hiperparâmetro explorar a seguir.

Essa política pode ser adaptada para executar vários experimentos em paralelo, tornando o processo mais eficiente. Como humanos, é um desafio acompanhar os resultados de vários experimentos e prever seus resultados com precisão. No entanto, os modelos de processo gaussianos podem lidar com essa tarefa de forma eficaz, pois podem detectar tendências e padrões nos dados. Por fim, os modelos de processo gaussianos são menos propensos a vieses em comparação com os humanos. Ao realizar pesquisas, os pesquisadores geralmente tendem a se esforçar mais para encontrar boas configurações de hiperparâmetros para seu novo método do que para métodos estabelecidos. O uso de modelos de processo gaussianos elimina esse viés, pois eles procuram por bons conjuntos de hiperparâmetros igualmente para todos os modelos que estão sendo avaliados. Em conclusão, os modelos de processo gaussianos fornecem uma abordagem poderosa e eficiente para determinar hiperparâmetros em redes neurais. Aproveitando os recursos preditivos dos processos Gaussianos, podemos automatizar o processo de seleção de valores de hiperparâmetros, reduzindo a necessidade de exploração manual e suposições.

Métodos tradicionais, como pesquisa em grade, podem ser impraticáveis ao lidar com um grande número de hiperparâmetros. Amostragem aleatória de combinações de hiperparâmetros é uma abordagem mais eficiente, mas ainda tem limitações. Ao incorporar o aprendizado de máquina, podemos simular o processo de tomada de decisão de um pesquisador humano e fazer previsões mais informadas sobre quais combinações de hiperparâmetros provavelmente produzirão bons resultados. Os modelos de processos Gaussianos são particularmente adequados para esta tarefa. Eles se destacam na identificação de tendências em dados e podem efetivamente modelar a relação entre configurações de hiperparâmetros e resultados de desempenho. Esses modelos não apenas prevêem o desempenho esperado de novas configurações de hiperparâmetros, mas também fornecem uma distribuição de previsões, incluindo uma medida de incerteza. Isso nos permite avaliar a confiabilidade das previsões e tomar decisões mais informadas.

A estratégia para usar processos gaussianos envolve a seleção de configurações de hiperparâmetros que se espera que produzam melhorias substanciais em relação às melhores configurações observadas até agora. Ao assumir riscos calculados e explorar configurações que diferem significativamente de experimentos anteriores, podemos potencialmente descobrir configurações ainda melhores. Além disso, os modelos de processo gaussianos podem lidar com vários experimentos em paralelo, tornando o processo mais eficiente. Eles podem detectar tendências e padrões nos dados, permitindo a exploração simultânea de diferentes configurações de hiperparâmetros. Outra vantagem de usar processos gaussianos é a capacidade de minimizar o viés. Os pesquisadores geralmente investem mais esforço em encontrar boas configurações de hiperparâmetros para seus novos métodos em comparação com os já estabelecidos. Os modelos de processo gaussianos eliminam esse viés ao procurar igualmente conjuntos de hiperparâmetros ideais em todos os modelos que estão sendo avaliados.

Os modelos de processos gaussianos oferecem uma abordagem poderosa e eficiente para determinar hiperparâmetros em redes neurais. Aproveitando seus recursos preditivos, podemos automatizar o processo e tomar decisões mais informadas sobre quais configurações de hiperparâmetro explorar. Essa abordagem reduz a dependência da exploração manual e aumenta a eficiência e a eficácia do ajuste de hiperparâmetros na pesquisa de redes neurais.

Lecture 16.3 — Bayesian optimization of hyper-parameters [Neural Networks for Machine Learning]
Lecture 16.3 — Bayesian optimization of hyper-parameters [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Aula 16.4 — A névoa do progresso



Aula 16.4 — A névoa do progresso [Redes neurais para aprendizado de máquina]

Neste vídeo final, fiquei tentado a fazer previsões sobre o futuro da pesquisa em redes neurais. No entanto, gostaria de explicar por que tentar previsões de longo prazo seria extremamente tolo. Vou usar uma analogia para ilustrar este ponto.

Imagine que você está dirigindo um carro à noite e focando nas luzes traseiras do carro à sua frente. O número de fótons que você recebe dessas lanternas traseiras diminui com o inverso do quadrado da distância (1/d^2), assumindo ar limpo. Porém, se houver neblina, o comportamento muda. Em distâncias curtas, o número de fótons ainda cai para 1/d^2 porque a névoa não absorve muita luz nessa faixa. Mas em distâncias maiores, a diminuição segue uma função exponencial (e^(-d)) porque o nevoeiro tem um efeito exponencial. Ele absorve uma fração de fótons por unidade de distância, tornando-o mais opaco à medida que a distância aumenta. Isso significa que o carro à sua frente pode ficar completamente invisível a uma distância em que seu modelo de curto alcance previu que seria visível. Esse fenômeno é responsável por acidentes causados por pessoas que batem na traseira de carros em meio à neblina.

Da mesma forma, o desenvolvimento da tecnologia, incluindo aprendizado de máquina e redes neurais, é tipicamente exponencial. No curto prazo, o progresso parece ser relativamente lento e previsível. Podemos fazer suposições razoáveis sobre o futuro próximo, como os recursos do próximo modelo de iPhone. No entanto, quando olhamos mais para o futuro a longo prazo, nossa capacidade de prever atinge um limite, assim como acontece com o nevoeiro. Simplesmente não sabemos o que acontecerá em 30 anos porque o progresso exponencial pode levar a mudanças inesperadas e transformadoras.

Portanto, o futuro a longo prazo do aprendizado de máquina e das redes neurais permanece um mistério total. Não podemos prever isso com base em nosso conhecimento atual. No entanto, no curto prazo, digamos 3 a 10 anos, podemos fazer previsões bastante precisas. Parece-me evidente que, nos próximos cinco anos, as grandes redes neurais profundas continuarão a realizar coisas notáveis.

Aproveito para parabenizar a todos por terem persistido no curso até o final. Espero que tenham gostado, e desejo-lhes boa sorte com o teste final.

Lecture 16.4 — The fog of progress [Neural Networks for Machine Learning]
Lecture 16.4 — The fog of progress [Neural Networks for Machine Learning]
  • 2016.02.04
  • www.youtube.com
Lecture from the course Neural Networks for Machine Learning, as taught by Geoffrey Hinton (University of Toronto) on Coursera in 2012. Link to the course (l...
 

Uma introdução amigável ao Deep Learning e Redes Neurais



Uma introdução amigável ao Deep Learning e Redes Neurais

Bem-vindo a uma introdução ao aprendizado profundo! Sou Luis Serrano e trabalho na Udacity. Vamos começar respondendo à pergunta: o que é aprendizado de máquina?

Para explicá-lo, vamos considerar um exemplo simples. Imagine que temos um humano e um bolo, e nosso objetivo é dizer ao humano para pegar o bolo. Podemos fazer isso facilmente dando uma instrução: "Vá pegar o bolo." O humano entende e fica com o bolo. Agora, vamos tentar resolver o mesmo problema com um robô. Não é tão simples porque precisamos dar ao robô um conjunto de instruções. Por exemplo, "Vire à direita, dê dez passos, vire à esquerda, dê quatro passos e depois pegue o bolo". Esta solução é específica para este cenário específico e não pode ser generalizada. Se o robô estiver em uma posição diferente, precisaríamos de um conjunto de instruções completamente diferente.

Para resolver esse problema de uma forma mais geral, podemos usar o aprendizado de máquina. Em vez de fornecer instruções explícitas, podemos ensinar o computador a descobrir a melhor maneira de encontrar o bolo. Fazemos isso pedindo ao computador para calcular a distância até o bolo e, em seguida, mover na direção que minimiza a distância. O computador continua iterando até encontrar o bolo. Esse conceito de minimizar um erro ou distância está no centro da maioria dos problemas de aprendizado de máquina. Definimos uma métrica de erro, como a distância até o bolo ou a altura de uma montanha, e minimizamos esse erro usando a descida do gradiente. Calculando repetidamente o gradiente e movendo-se na direção que diminui mais o erro, podemos encontrar soluções para vários problemas.

O aprendizado de máquina tem muitas aplicações, como ensinar um computador a jogar jogos como Go ou Jeopardy, habilitar carros autônomos, detectar e-mails de spam, reconhecer rostos e muito mais. No centro dessas aplicações está o conceito de redes neurais, que formam a base do aprendizado profundo. Quando pensamos em redes neurais, podemos imaginar estruturas complexas com nós, arestas e camadas. No entanto, uma maneira mais simples de pensar sobre eles é como uma ferramenta para dividir os dados. Assim como uma criança brincando na areia e desenhando uma linha para separar conchas vermelhas e azuis, as redes neurais podem aprender a separar diferentes tipos de pontos de dados.

Para treinar uma rede neural, precisamos de uma função de erro contínua. Minimizar o número de erros não é adequado porque é uma função discreta. Em vez disso, usamos uma função de erro que atribui penalidades a pontos mal classificados. Ajustando os parâmetros da rede neural, como a posição da linha em nosso exemplo, podemos minimizar o erro e encontrar a melhor solução. Essa abordagem, conhecida como regressão logística, nos permite construir uma função de probabilidade que atribui probabilidades a diferentes pontos de dados. Os pontos mais próximos da linha 50/50 têm uma chance maior de serem classificados como vermelho ou azul, enquanto os pontos mais distantes são classificados com mais segurança.

O aprendizado de máquina trata de minimizar erros ou distâncias para encontrar as melhores soluções para vários problemas. As redes neurais fornecem uma maneira de dividir dados e fazer classificações. Usando funções de erro contínuo e gradiente descendente, podemos treinar redes neurais e aplicá-las a uma ampla gama de aplicações.

A friendly introduction to Deep Learning and Neural Networks
A friendly introduction to Deep Learning and Neural Networks
  • 2016.12.26
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly introduction to neural networks an...
 

Uma introdução amigável às redes neurais recorrentes



Uma introdução amigável às redes neurais recorrentes

Bem-vindo a uma introdução amigável às redes neurais recorrentes! Sou Luis Serrano, instrutor de aprendizado de máquina da Udacity. Obrigado por todos os comentários sobre meus vídeos anteriores. Recebi muitas sugestões, e uma delas era sobre redes neurais recorrentes, por isso resolvi fazer esse vídeo.

Vamos começar com um exemplo simples. Imagine que você tem um colega de quarto perfeito que cozinha três tipos de comida: torta de maçã, hambúrguer e frango. Sua decisão de cozinhar é baseada no clima. Se está sol, ele prepara uma torta de maçã, e se está chovendo, ele prepara um hambúrguer. Podemos modelar esse cenário usando uma rede neural simples, onde a entrada é o clima (ensolarado ou chuvoso) e a saída é o alimento correspondente (torta de maçã ou hambúrguer).

Para representar a comida e o clima, usamos vetores. Os vetores de alimentos são [1 0 0] para torta de maçã, [0 1 0] para hambúrguer e [0 0 1] para frango. Os vetores climáticos são [1 0] para ensolarado e [0 1] para chuvoso. Podemos mapear esses vetores usando uma multiplicação de matrizes, onde o vetor de entrada é multiplicado por uma matriz para obter o vetor de saída.

Agora vamos considerar um problema mais complicado. Nosso colega de quarto perfeito ainda cozinha em sequência (torta de maçã, hambúrguer, frango), mas agora sua decisão depende do que ele cozinhou no dia anterior. Isso é chamado de rede neural recorrente. A saída de cada dia torna-se a entrada do dia seguinte. Podemos representar essa rede usando matrizes e operações vetoriais.

Por exemplo, se a comida do dia anterior foi torta de maçã e o tempo hoje está chuvoso, usamos a matriz de alimentos e a matriz de clima para calcular a saída. A matriz de alimentos pega o vetor de alimentos anterior e retorna os vetores de alimentos atual e seguinte concatenados. A matriz do clima pega o vetor do clima e indica se devemos cozinhar a comida atual ou a do dia seguinte. Somando os resultados dessas duas matrizes, podemos determinar o que o colega de quarto vai cozinhar no dia seguinte.

Essa abordagem combina os dois exemplos anteriores, em que a decisão de cozinhar do colega de quarto é baseada tanto no clima quanto na comida do dia anterior. As matrizes e operações vetoriais nos ajudam a calcular a saída da rede neural recorrente.

Redes neurais recorrentes são modelos poderosos que podem lidar com dados sequenciais considerando entradas anteriores. Eles são úteis em várias aplicações, como processamento de linguagem natural e análise de séries temporais. Espero que esta introdução tenha dado a você uma boa compreensão das redes neurais recorrentes.

A friendly introduction to Recurrent Neural Networks
A friendly introduction to Recurrent Neural Networks
  • 2017.08.18
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly explanation of how computers predi...
 

Uma introdução amigável às redes adversárias generativas (GANs)



Uma introdução amigável às redes adversárias generativas (GANs)

Olá, sou Luis Serrano, e este vídeo é sobre Generative Adversarial Networks (GANs). As GANs, desenvolvidas por Ian Goodfellow, são um avanço significativo no aprendizado de máquina com inúmeras aplicações. Uma das aplicações mais fascinantes das GANs é a geração de faces. Você pode ver isso em ação no site "thispersondoesnotexist.com", onde todas as imagens de pessoas são geradas por uma rede neural.

Neste vídeo vamos aprender como gerar faces usando GANs de forma simples. Mesmo que você prefira não escrever código, este vídeo fornecerá a você intuição e equações. Estaremos codificando um par de redes neurais de uma camada que geram imagens simples, e você pode encontrar o código no GitHub.

Deixe-me explicar o que são GANs. As GANs consistem em duas redes neurais, um gerador e um discriminador, que competem entre si. O gerador tenta criar imagens falsas, enquanto o discriminador tenta distinguir entre imagens reais e falsas. À medida que o discriminador captura o gerador, o gerador melhora suas imagens até que possa gerar uma imagem perfeita que engane o discriminador. Para treinar as GANs, utilizamos um conjunto de imagens reais e um conjunto de imagens falsas geradas pelo gerador. O discriminador aprende a identificar imagens reais das falsas, enquanto o gerador aprende a enganar o discriminador para classificar suas imagens como reais.

Neste vídeo, construiremos um par simples de GANs usando Python sem nenhum pacote de aprendizado profundo. Nossa tarefa é gerar rostos em um mundo chamado "Slanted Land", onde todos aparecem alongados e caminham em um ângulo de 45 graus. O mundo de Slanted Land tem tecnologia limitada, incluindo telas de 2x2 pixels que exibem imagens em preto e branco. Vamos criar redes neurais com uma camada para gerar rostos das pessoas em Slanted Land.

A rede discriminadora analisa os valores de pixel das imagens para distinguir entre rostos e não rostos. Podemos determinar se uma imagem é um rosto comparando os valores dos cantos superior esquerdo e inferior direito com os outros dois cantos. Os rostos terão uma diferença de valor maior, enquanto os não rostos ou as imagens com ruído terão uma diferença menor. Aplicando um limiar, podemos classificar as imagens como faces ou não-faces. A rede do gerador cria faces atribuindo valores mais altos aos cantos superior esquerdo e inferior direito e valores mais baixos aos cantos superior direito e inferior esquerdo. Aplicando a função sigmoide, podemos obter probabilidades e gerar valores de pixel para a imagem. A rede do gerador é projetada para gerar sempre uma face, independentemente dos valores de entrada. Para treinar as redes neurais, precisamos definir uma função de erro. Usamos a perda de log, que é o logaritmo natural negativo, para medir o erro entre a saída prevista e a saída desejada. A função de erro ajuda as redes a melhorar seus pesos e reduzir o erro por meio de um processo chamado retropropagação.

A retropropagação envolve calcular a derivada do erro em relação aos pesos e ajustar os pesos de acordo para minimizar o erro. Este processo é repetido iterativamente para treinar as redes geradoras e discriminadoras. Ao treinar as redes geradoras e discriminadoras usando funções de erro apropriadas e retropropagação, podemos gerar faces realistas em Slanted Land. O gerador aprende a criar imagens que lembram rostos, enquanto o discriminador aprende a diferenciar entre rostos reais e gerados.

Esta visão geral fornece uma ideia geral de GANs e como eles podem gerar faces. No vídeo, vamos nos aprofundar nos conceitos e demonstrar passo a passo o processo de codificação. Se você deseja escrever código ou obter intuição e compreensão, este vídeo será valioso para você. Portanto, o erro do discriminador nesse caso seria o logaritmo negativo de 1 menos a previsão. Calculamos o gradiente desse erro em relação aos pesos do discriminador usando retropropagação e, em seguida, atualizamos os pesos do discriminador para minimizar esse erro. Em seguida, vamos considerar o gerador. O objetivo do gerador é produzir imagens que o discriminador classifique como reais ou faces. Em outras palavras, o gerador quer enganar o discriminador para produzir uma alta probabilidade para suas imagens geradas. Portanto, o erro do gerador é o logaritmo negativo da predição do discriminador para a imagem gerada.

Novamente, calculamos o gradiente desse erro em relação aos pesos do gerador usando retropropagação e atualizamos os pesos do gerador para minimizar esse erro. O gerador aprende a ajustar seus pesos de forma a produzir imagens que se assemelham a faces reais e aumentam a probabilidade de serem classificadas como faces pelo discriminador. Repetimos esse processo várias vezes, alternando entre treinar o discriminador e o gerador. Cada iteração ajuda ambas as redes a melhorar seu desempenho. O discriminador se torna melhor em distinguir entre imagens reais e falsas, enquanto o gerador se torna melhor em gerar imagens realistas que podem enganar o discriminador.

Esse processo iterativo de treinar o gerador e o discriminador é o que torna as GANs poderosas. Eles aprendem a gerar amostras altamente realistas e coerentes competindo entre si. O gerador aprende a criar imagens mais convincentes, enquanto o discriminador se torna mais hábil na detecção de imagens falsas. Com bastante treinamento, os GANs podem gerar imagens, textos, músicas e até vídeos que se assemelham a dados reais.

Os GANs consistem em um gerador e um discriminador que competem entre si como um jogo. O gerador gera amostras falsas e o discriminador tenta distinguir entre amostras reais e falsas. Por meio desse processo adversário e treinamento com funções de erro apropriadas, os GANs aprendem a gerar dados realistas e de alta qualidade.

A Friendly Introduction to Generative Adversarial Networks (GANs)
A Friendly Introduction to Generative Adversarial Networks (GANs)
  • 2020.05.05
  • www.youtube.com
Code: http://www.github.com/luisguiserrano/gansWhat is the simplest pair of GANs one can build? In this video (with code included) we build a pair of ONE-lay...
 

Máquinas Boltzmann restritas (RBM) - Uma introdução amigável



Máquinas Boltzmann restritas (RBM) - Uma introdução amigável

Olá, sou Luis Serrano, e este vídeo é sobre Máquinas Boltzmann Restritas (RBMs). RBMs são algoritmos poderosos usados em aprendizado supervisionado, redução de dimensionalidade e aprendizado de máquina generativo.

Vamos começar com um mistério. Há uma casa do outro lado da rua onde as pessoas às vezes vêm visitar. Observamos que três indivíduos, Ayesha, Beto e Cameron, costumam vir, mas nem sempre juntos. Às vezes só aparece a Ayesha, outras vezes é o Beto ou o Cameron, e às vezes vem mais de um deles, inclusive tem dias que não aparece nenhum. Investigamos esse padrão e descobrimos que eles não se conhecem, então precisamos encontrar outro motivo para suas aparições.

Descobrimos que há animais de estimação na casa, um cachorro chamado Descartes e um gato chamado Euler. Ayesha e Cameron adoram cachorros, então eles aparecem quando Descartes está lá. Por outro lado, Beto é alérgico a cachorros, mas adora gatos, então só aparece quando Ayesha está presente. Atribuímos pontuações para representar suas preferências, com pontuações positivas indicando gostos e pontuações negativas indicando desgostos. Agora, queremos descobrir a probabilidade de ocorrência de diferentes cenários. Atribuímos pontuações a cada cenário e as convertemos em probabilidades. Uma abordagem é usar a função softmax para transformar pontuações em probabilidades, garantindo que pontuações mais altas correspondam a probabilidades mais altas.

Construímos uma Máquina Boltzmann Restrita (RBM) com camadas visíveis e ocultas. A camada visível representa os dados observados (pessoas), enquanto a camada oculta representa os dados não observados (animais de estimação). O RBM consiste em nós conectados por pesos, com pontuações atribuídas a cada conexão. Para treinar o RBM, precisamos encontrar os pesos que se alinham com as probabilidades que obtivemos dos dados. Queremos que o RBM atribua altas probabilidades a cenários em que Ayesha e Cameron ou apenas Beto apareçam, e baixas probabilidades a outros cenários. Ao ajustar os pesos, podemos influenciar as probabilidades atribuídas pelo RBM. O objetivo é alinhar o RBM com os dados observados e imitar as probabilidades desejadas.

Para atingir nossas probabilidades desejadas, precisamos ajustar os pesos em nosso RBM. Os pesos determinam a influência de cada conexão entre as camadas visíveis e ocultas. Ao atualizar os pesos, podemos aumentar a probabilidade de certos cenários e diminuir a probabilidade de outros. Para atualizar os pesos, usamos uma técnica chamada divergência contrastiva. Envolve a comparação das probabilidades dos estados da camada visível antes e depois de algumas iterações do RBM. A atualização do peso é baseada na diferença entre esses dois conjuntos de probabilidades. Durante o treinamento, apresentamos repetidamente os dados de treinamento ao RBM e ajustamos os pesos para maximizar a probabilidade dos dados observados. Esse processo é conhecido como aprendizado não supervisionado porque não temos rótulos explícitos para os dados de treinamento.

Após o treinamento, o RBM pode ser usado para gerar novos dados por amostragem da distribuição de probabilidade aprendida. Podemos gerar cenários semelhantes aos observados nos dados de treinamento. Para treinar nosso modelo, usamos uma RBM (Restricted Boltzmann Machine) e seguimos um processo de probabilidades crescentes e decrescentes. Em vez de considerar todos os cenários possíveis, selecionamos aleatoriamente um cenário e aumentamos sua probabilidade, enquanto diminuímos a probabilidade de um cenário escolhido aleatoriamente. Repetimos esse processo várias vezes, ajustando gradualmente as probabilidades de acordo com o resultado desejado. Para cada ponto de dados, selecionamos um cenário que o estende e aumenta sua probabilidade, enquanto selecionamos aleatoriamente outro cenário e diminuímos sua probabilidade. Continuamos esse processo para todo o conjunto de dados, percorrendo-o várias vezes. As probabilidades resultantes se alinham bem com nossos dados, combinando as ocorrências de diferentes cenários.

Para modificar as probabilidades, ajustamos os pesos do RBM. Focamos em vértices e arestas específicos que correspondem aos cenários desejados. Ao aumentar ou diminuir os pesos, influenciamos as probabilidades desses cenários. A amostragem representa um desafio, pois queremos escolher cenários com base em suas respectivas probabilidades. Introduzimos a amostragem independente, onde consideramos apenas os vértices e arestas relevantes conectados aos cenários desejados. Calculando as probabilidades usando a função sigmoide, podemos selecionar aleatoriamente cenários com probabilidades proporcionais aos seus pesos. Para escolher um cenário que esteja de acordo com um determinado ponto de dados, focamos nos participantes relevantes e suas conexões, desconsiderando os irrelevantes. Calculamos as probabilidades com base nos pesos e usamos a função sigmoide para convertê-las em probabilidades. Isso nos permite selecionar aleatoriamente um cenário com probabilidades refletindo seus pesos.

Para escolher um cenário completamente aleatório, nós o aproximamos dando passos aleatórios na distribuição, semelhante a explorar diferentes possibilidades. Embora possa não ser uma representação perfeita de um cenário completamente aleatório, serve como uma aproximação. Esse processo nos permite treinar o RBM e ajustar as probabilidades para corresponder aos resultados desejados, modelando efetivamente nossos dados.

As máquinas de Boltzmann restritas foram aplicadas com sucesso a várias tarefas, como filtragem colaborativa, redução de dimensionalidade e aprendizado de recursos. Eles também são usados como blocos de construção para modelos de aprendizado profundo mais complexos, como redes de crenças profundas.

Máquinas de Boltzmann restritas são algoritmos poderosos usados em aprendizado de máquina. Eles envolvem uma camada visível e uma camada oculta conectadas por pesos. Ao ajustar os pesos por meio do treinamento, os RBMs podem aprender a distribuição de probabilidade dos dados de treinamento e gerar novas amostras de dados. Os RBMs têm aplicações em vários domínios e são um componente importante dos modelos de aprendizado profundo.

Restricted Boltzmann Machines (RBM) - A friendly introduction
Restricted Boltzmann Machines (RBM) - A friendly introduction
  • 2020.07.07
  • www.youtube.com
CORRECTION: The score for BE is 6 and for BD is -1.A simple introduction to Restricted Boltzmann Machines (RBM) and their training process, using a real-life...
 

Uma introdução amigável ao aprendizado por reforço profundo, Q-networks e gradientes de políticas



Uma introdução amigável ao aprendizado por reforço profundo, Q-networks e gradientes de políticas

Olá, sou Luis Serrano, e esta é uma introdução amigável ao aprendizado por reforço profundo e aos gradientes de política. O aprendizado por reforço tem aplicações em carros autônomos, robótica e jogos complexos como Go, xadrez e Atari. A principal diferença entre aprendizado por reforço e aprendizado de máquina preditivo é que, no aprendizado por reforço, temos um agente que interage com um ambiente, coletando recompensas e punições para criar dados, enquanto o aprendizado de máquina preditivo depende de dados existentes para treinar um modelo. Neste vídeo, abordaremos conceitos importantes, como processos de decisão de Markov (MDPs), a equação de Bellman e como as redes neurais podem auxiliar no aprendizado por reforço com redes Q e gradientes de política.

Vamos começar com um exemplo de aprendizado por reforço usando um MDP chamado Grid World. No Grid World, temos uma grade representando o universo e nosso agente, representado por um círculo. A grade contém quadrados especiais, incluindo alguns com dinheiro e um quadrado com um dragão que resulta em game over. O objetivo do agente é maximizar os pontos movendo-se pela grade, coletando recompensas ou punições. Podemos determinar a melhor estratégia para o agente usando a equação de Bellman, que calcula o valor de cada estado com base nos valores máximos de seus estados vizinhos. Podemos então derivar uma política, que fornece instruções ao agente sobre o melhor caminho a seguir para maximizar os pontos.

Para melhorar a eficiência da política, introduzimos recompensas e um fator de desconto. As recompensas representam os pontos ganhos ou perdidos ao dar um passo, e o fator de desconto representa o valor das recompensas futuras em comparação com as recompensas imediatas. Ao considerar as recompensas e o fator de desconto, podemos ajustar os valores dos estados e atualizar a equação de Bellman de acordo. Ao iterar e atualizar os valores, podemos convergir para os valores ótimos para cada estado e determinar a política que orienta o agente para os pontos mais altos.

Compreendendo a equação de Bellman e usando recompensas e fatores de desconto, podemos resolver MDPs e encontrar a melhor política para aprendizado por reforço. O lado esquerdo indica que o agente deve se mover para a direita para encontrar o melhor valor. A política instrui o agente a se mover para a direita com probabilidade 1 e para outras direções com probabilidade 0. Em contraste, uma política estocástica favoreceria fortemente o movimento para a direita, mas ainda daria uma chance a outras direções com base nas recompensas obtidas . Por exemplo, a política estocástica à direita prioriza o estado à direita porque tem o valor mais alto, enquanto o estado à esquerda tem a menor prioridade devido à sua pontuação baixa. No entanto, as probabilidades ainda são diferentes de zero, permitindo que o agente explore o espaço mesmo que nem sempre receba a melhor recompensa.

Agora, vamos discutir o papel das redes neurais nesse processo. Em vez de fazer com que o agente visite todos os estados repetidamente, o que é caro, podemos usar uma rede neural para coletar informações de alguns estados. A rede neural pode aprender que estados com coordenadas semelhantes devem ter valores semelhantes. Usamos uma rede de valores, onde a entrada são as coordenadas de um ponto e a saída é a pontuação naquele ponto. Da mesma forma, podemos usar uma rede de políticas para aproximar a política de cada estado. A rede de políticas toma as coordenadas como entrada e emite quatro números que representam as probabilidades de mover para cima, para a direita, para baixo e para a esquerda. Para treinar a rede de valor, nós a forçamos a satisfazer a equação de Bellman, que relaciona o valor de um estado com seus estados vizinhos. Usamos os valores da rede neural nos estados vizinhos e ajustamos o valor no meio para satisfazer a equação. Ao atualizar repetidamente a rede neural com base na equação de Bellman, podemos aproximar os valores de todos os estados.

Para a rede de políticas, nós a treinamos tomando caminhos com base na política atual e rotulando cada ação com o ganho correspondente. Criamos um conjunto de dados com ganho, coordenadas e ações e o alimentamos na rede de políticas. Em seguida, incentivamos ou desencorajamos a rede a realizar determinadas ações com base no ganho. Repetindo esse processo com caminhos diferentes, podemos melhorar a rede de políticas ao longo do tempo. Usamos redes neurais para aproximar os valores e a política dos estados. A rede de valor nos ajuda a estimar o valor de cada estado, enquanto a rede de política orienta as ações do agente. O treinamento envolve atualizar repetidamente as redes com base na equação de Bellman e na rotulagem baseada em caminhos.

Agora que temos os valores de cada estado e a política correspondente, podemos usá-los para tomar decisões no jogo. A política nos informa a melhor ação a ser tomada em cada estado, com base nos valores que calculamos. Por exemplo, se o agente estiver em um determinado estado e quiser saber qual ação tomar, basta ele olhar a política e seguir a seta que aponta para o estado vizinho de maior valor. Isso garante que o agente tome o caminho ideal para maximizar suas recompensas. No caso do nosso jogo grid world, a política pode orientar o agente a evitar obstáculos e alcançar os estados terminais com as maiores recompensas o mais rápido possível. Ao seguir a política, o agente pode navegar no mundo da grade e acumular pontos, evitando recompensas negativas.

Algoritmos de aprendizado por reforço, como Q-learning ou gradientes de política, podem ser usados para encontrar a política e os valores ideais para ambientes mais complexos. Esses algoritmos aproveitam os conceitos dos processos de decisão de Markov e a equação de Bellman para atualizar iterativamente os valores e melhorar a política ao longo do tempo. As redes neurais também podem ser empregadas para lidar com espaços de estado grandes e complexos. Q-networks e métodos de gradiente de política utilizam redes neurais para aproximar os valores ou a função de política, permitindo um aprendizado mais eficiente e eficaz em tarefas de aprendizado por reforço.

Ao combinar algoritmos de aprendizado por reforço e redes neurais, podemos enfrentar problemas desafiadores como carros autônomos, robótica e jogos complexos. Essas técnicas têm aplicações abrangentes e continuam avançando no campo da inteligência artificial.

O aprendizado por reforço envolve treinar um agente para tomar decisões em um ambiente, interagindo com ele e coletando recompensas. O agente usa os valores e a política obtidos da equação de Bellman para navegar no ambiente e maximizar suas recompensas. As redes neurais podem ser empregadas para lidar com problemas mais complexos no aprendizado por reforço.

A friendly introduction to deep reinforcement learning, Q-networks and policy gradients
A friendly introduction to deep reinforcement learning, Q-networks and policy gradients
  • 2021.05.24
  • www.youtube.com
A video about reinforcement learning, Q-networks, and policy gradients, explained in a friendly tone with examples and figures.Introduction to neural network...
 

Uma introdução amigável ao aprendizado de máquina



Uma introdução amigável ao aprendizado de máquina

Olá e bem-vindo ao mundo do aprendizado de máquina. Hoje, vamos explorar o que é o aprendizado de máquina. Neste mundo, temos humanos e computadores, e uma distinção fundamental entre eles é como eles aprendem. Os seres humanos aprendem com as experiências passadas, enquanto os computadores precisam ser programados e seguir instruções. No entanto, podemos também ensinar os computadores a aprender com a experiência? A resposta é sim, e é aí que entra o aprendizado de máquina. No reino dos computadores, as experiências passadas são chamadas de dados.

Nos minutos seguintes, apresentarei alguns exemplos que demonstram como podemos ensinar computadores a aprender com dados anteriores. A parte interessante é que esses algoritmos são bastante diretos e o aprendizado de máquina não é nada para se temer. Vamos mergulhar em nosso primeiro exemplo. Imagine que estamos estudando o mercado imobiliário e nossa tarefa é prever o preço de uma casa com base em seu tamanho. Coletamos dados sobre várias casas, incluindo seus tamanhos e preços. Ao plotar esses dados em um gráfico, com o eixo x representando o tamanho da casa em metros quadrados e o eixo y representando o preço em dólares, podemos visualizar a relação entre os dois. Notamos que os pontos de dados formam aproximadamente uma linha.

Usando um método chamado regressão linear, podemos traçar uma linha que melhor se ajuste aos pontos de dados. Esta linha representa nosso melhor palpite para prever o preço de uma casa, dado seu tamanho. Examinando o gráfico, podemos estimar o preço de uma casa de tamanho médio identificando o ponto correspondente na reta. A regressão linear nos permite encontrar a linha de melhor ajuste minimizando os erros entre a linha e os pontos de dados. A regressão linear é apenas um exemplo de um algoritmo de aprendizado de máquina. É relativamente simples e eficaz quando os dados formam uma relação linear. No entanto, podemos empregar métodos semelhantes para ajustar outros tipos de dados, como curvas, círculos ou polinômios de grau superior, dependendo da natureza do problema.

Agora, vamos para outro exemplo. Suponha que queremos construir um sistema de detecção de spam de e-mail. Coletamos dados sobre e-mails anteriores, incluindo se foram marcados como spam ou não. Ao analisar esses dados, podemos identificar recursos que provavelmente indicam se um e-mail é spam ou não. Por exemplo, podemos descobrir que e-mails contendo a palavra "barato" são frequentemente sinalizados como spam. Usando o algoritmo ingênuo de Bayes, podemos associar probabilidades a esses recursos. Nesse caso, se um e-mail contiver a palavra "barato", descobrimos que 80% desses e-mails são marcados como spam. Ao combinar vários recursos e suas probabilidades associadas, podemos criar um classificador que prevê se um e-mail é spam ou não com base em seus recursos.

Passando para o nosso próximo exemplo, digamos que estamos trabalhando na App Store ou no Google Play, e nosso objetivo é recomendar aplicativos aos usuários. Podemos coletar dados sobre os usuários, suas características e os aplicativos que eles baixaram. Ao analisar esses dados, podemos construir uma árvore de decisão que orienta nossas recomendações. A árvore de decisão consiste em perguntas baseadas nas características do usuário, levando à recomendação de aplicativos específicos. Por exemplo, podemos perguntar se o usuário tem menos de 20 anos. Com base na resposta, podemos recomendar um aplicativo específico. Se o usuário for mais velho, podemos fazer uma pergunta diferente, como o sexo, para refinar ainda mais nossa recomendação. A árvore de decisão nos ajuda a fazer recomendações personalizadas de aplicativos com base nos atributos do usuário.

Por último, vamos considerar o escritório de admissões de uma universidade. Eles estão tentando determinar quais alunos admitir com base em duas informações: uma nota do vestibular e as notas dos alunos. Ao analisar os dados dos alunos admitidos e rejeitados anteriormente, podemos criar um modelo de regressão logística.

Usando a regressão logística, podemos traçar uma linha que separa os pontos de dados dos alunos aceitos e rejeitados. Esta linha representa o limite de decisão para determinar se um aluno será admitido ou rejeitado. O modelo de regressão logística calcula a probabilidade de admissão com base na nota e nas notas do vestibular. Uma vez estabelecido o limite de decisão, os novos alunos podem ser avaliados plotando suas notas e notas no vestibular em um gráfico. Se o ponto cair acima do limite de decisão, o modelo prevê a admissão; se cair abaixo, o modelo prevê a rejeição. Estes são apenas alguns exemplos de algoritmos de aprendizado de máquina e como eles podem ser aplicados a vários domínios. O aprendizado de máquina permite que os computadores aprendam com os dados e façam previsões ou decisões sem serem explicitamente programados para cada cenário. Ele permite automação, reconhecimento de padrões e a capacidade de lidar com dados complexos e em grande escala.

É importante observar que o aprendizado de máquina requer dados para aprender. A qualidade e relevância dos dados desempenham um papel significativo na precisão e eficácia dos modelos. Além disso, os modelos de aprendizado de máquina precisam ser treinados em um conjunto de dados representativo e validados para garantir sua generalização.

O aprendizado de máquina é um campo em rápida evolução com inúmeros algoritmos, técnicas e aplicações. Pesquisadores e profissionais estão continuamente explorando novos métodos e ampliando os limites do que é possível. À medida que a tecnologia avança e mais dados se tornam disponíveis, espera-se que o aprendizado de máquina tenha um impacto cada vez mais significativo em vários setores e aspectos de nossas vidas.

A Friendly Introduction to Machine Learning
A Friendly Introduction to Machine Learning
  • 2016.09.09
  • www.youtube.com
Grokking Machine Learning Book: https://www.manning.com/books/grokking-machine-learning40% discount promo code: serranoytA friendly introduction to the main ...
 

Aprendizado de máquina: teste e métricas de erro



Aprendizado de máquina: teste e métricas de erro

Olá, bem-vindo a este tutorial sobre teste de aprendizado de máquina e métricas de erro. Meu nome é Luis Serrano e trabalho na Udacity, onde ensino aprendizado de máquina. Essa é uma foto minha. Hoje, vamos nos concentrar em duas questões: primeiro, como está o desempenho do meu modelo? Depois de descobrirmos isso, como podemos melhorá-lo com base nessas métricas? Vamos nos aprofundar e examinar alguns dados. Temos pontos azuis e pontos vermelhos e queremos treinar um modelo para separá-los. Nosso modelo mais simples é um modelo linear, que é uma linha que divide os dados em azul e vermelho. Comete alguns erros, mas geralmente é bom. Vamos também considerar um modelo mais complexo usando um polinômio de grau mais alto. Este modelo se sai melhor em separar os pontos, mas qual modelo é melhor entre os dois?

Para responder a essa pergunta, precisamos usar o teste. Em vez de usar todos os pontos para treinamento, nós os dividimos em conjuntos de treinamento e teste. Os pontos de treinamento são usados para treinar o modelo, enquanto os pontos de teste são usados para avaliar o desempenho do modelo. Em nosso exemplo, o modelo linear comete um erro no conjunto de teste, enquanto o modelo polinomial comete dois erros. Portanto, o modelo linear tem melhor desempenho no conjunto de teste porque generaliza melhor.

Quando se trata de testar, existem algumas regras importantes a serem seguidas. A primeira regra de ouro é nunca usar seus dados de teste para treinamento. Mantenha seus dados de teste separados e use-os apenas para avaliação. A segunda regra é garantir que seus amigos também não usem seus dados de teste para treinamento. Finalmente, a terceira regra enfatiza nunca usar seus dados de teste para treinamento. É crucial evitar qualquer uso indevido acidental dos dados de teste.

Embora possa parecer que estamos desperdiçando dados ao separá-los em conjuntos de treinamento e teste, existe uma maneira de resolver essa preocupação. Podemos dividir os dados em k conjuntos iguais, geralmente usando uma técnica chamada validação cruzada k-fold. Cada parte dos dados é usada para treinamento e teste, e a média dos resultados é calculada no final. Essa abordagem nos permite fazer melhor uso dos dados enquanto ainda avaliamos o desempenho do modelo.

Agora vamos discutir as métricas que nos ajudam a avaliar o desempenho de nossos modelos. Uma métrica comum é a precisão, que mede quantas instâncias o modelo classifica corretamente em comparação com o número total de instâncias. No entanto, a precisão por si só pode nem sempre ser a melhor métrica, como mostrado nos exemplos de detecção de fraude de cartão de crédito, diagnósticos médicos e classificação de spam. Nesses casos, falsos negativos e falsos positivos têm implicações diferentes.

Para avaliar os modelos de forma mais eficaz, usamos uma matriz de confusão. Essa matriz apresenta quatro possibilidades: verdadeiros positivos, verdadeiros negativos, falsos positivos e falsos negativos. Cada um deles representa resultados diferentes com base nas previsões do modelo em comparação com os dados reais. Por exemplo, em diagnósticos médicos, um falso negativo significa que uma pessoa doente é classificada como saudável, o que é pior do que um falso positivo. Da mesma forma, na classificação de spam, um falso positivo significa que um e-mail não spam é marcado como spam, o que é pior do que um falso negativo.

Ao considerar o contexto específico e as consequências de falsos positivos e falsos negativos, podemos escolher métricas apropriadas para avaliar nossos modelos. A precisão por si só pode não capturar toda a imagem, e outras métricas como precisão, recall e pontuação F1 podem fornecer mais informações sobre o desempenho do modelo.

Podemos combinar essas duas pontuações em uma? Uma maneira simples de combinar pontuações de precisão e recuperação é tomando sua média. Vamos calcular a média para as pontuações de precisão e revocação fornecidas. À esquerda, a precisão é 69,5 e à direita é 66,95. Tirando a média dessas duas pontuações, obtemos 68,225. No entanto, esta média pode não fornecer informações suficientes e pode não ser significativamente diferente da precisão. Para entender as implicações dessa pontuação média, vamos considerar um exemplo extremo envolvendo detecção de fraude de cartão de crédito.

No exemplo, temos dois modelos: um que classifica todas as transações como boas e outro que classifica todas as transações como fraudulentas. Vamos calcular a precisão e a rechamada para ambos os modelos.

Para o modelo que classifica todas as transações como boas, a precisão é de 100% (pois todas as classificadas como ruins são realmente boas) e o recall é de 0% (pois nenhuma das fraudulentas é pega). Se pegarmos a média de precisão e recall, obteríamos 50%. No entanto, atribuir uma pontuação tão alta a um modelo com desempenho ruim não parece apropriado. Da mesma forma, para o modelo que classifica todas as transações como fraudulentas, a precisão é de 0,16% (classificou corretamente 472 de todas as transações) e o recall é de 100% (já que todas as transações fraudulentas são detectadas). Novamente, a média entre precisão e recall ficaria em torno de 50%, o que não reflete com precisão o baixo desempenho do modelo.

Para superar essa limitação, podemos usar outro tipo de média chamada média harmônica, também conhecida como pontuação F1. A média harmônica é calculada usando a fórmula 2 * (precisão * rechamada) / (precisão + rechamada). A pontuação F1 fornece uma representação mais equilibrada, especialmente quando uma métrica (precisão ou recall) é significativamente diferente da outra.

Para o modelo médico, a precisão é de 55,7 e o recall é de 83,3. Calculando a pontuação F1 usando a fórmula da média harmônica, obtemos 66,76%. Para o modelo de detecção de spam, a precisão é 76,9 e o recall é 37. A pontuação F1 é 49,96%. E para o modelo linear, a precisão é 75 e o recall é 85,7. A pontuação da F1 é de 80%.

No caso dos modelos de fraude de cartão de crédito, se preferirmos capturar todas as transações fraudulentas, priorizaremos o recall. Portanto, uma boa métrica nesse caso estaria mais próxima da revocação do que da precisão.

As métricas de teste e erro são cruciais para avaliar e melhorar os modelos de aprendizado de máquina. Seguir as regras de ouro dos testes, selecionar métricas apropriadas e considerar as consequências de falsos positivos e falsos negativos nos ajuda a tomar decisões informadas sobre nossos modelos.

A combinação de precisão e recuperação em uma única pontuação pode ser feita usando a pontuação F1, que considera a média harmônica das duas métricas. Isso fornece uma avaliação mais equilibrada e é especialmente útil quando uma métrica é significativamente diferente da outra.

Machine Learning: Testing and Error Metrics
Machine Learning: Testing and Error Metrics
  • 2017.03.16
  • www.youtube.com
Announcement: New Book by Luis Serrano! Grokking Machine Learning. bit.ly/grokkingML40% discount code: serranoytA friendly journey into the process of evalua...
 

Curva ROC (Receiver Operating Characteristic) em 10 minutos!



Curva ROC (Receiver Operating Characteristic) em 10 minutos!

Saudações! Eu sou Luis Serrano, e neste vídeo vamos discutir a curva Receiver Operating Characteristic (ROC). A curva ROC é amplamente utilizada para avaliar modelos de aprendizado de máquina e tomar decisões importantes.

Vamos começar com um conjunto de dados contendo pontos azuis e vermelhos, onde os pontos azuis são rotulados como positivos e os vermelhos como negativos. Construiremos um modelo de aprendizado de máquina que se ajusta a esse conjunto de dados. Por exemplo, considere esta linha. Observe que o lado azul da linha classifica todos os pontos desse lado como azuis ou positivos, enquanto o lado vermelho classifica os pontos desse lado como vermelhos ou negativos. No entanto, o modelo comete alguns erros. Um exemplo é o ponto vermelho localizado na área azul, que é um falso positivo. Outro exemplo é o ponto azul abaixo da linha na área vermelha, que é um falso negativo. Para entender melhor os falsos positivos e falsos negativos, confira meu outro vídeo sobre testes de aprendizado de máquina e métricas de erro.

Agora, vamos considerar dois exemplos diferentes para o mesmo tipo de modelo. O modelo da esquerda é um modelo médico, onde os pontos positivos representam pacientes doentes e os pontos negativos representam os saudáveis. Por outro lado, o modelo da direita é um modelo de detecção de spam, onde os pontos positivos são mensagens spam e os pontos negativos são mensagens não spam ou "ham".

No modelo médico, um falso positivo ocorre quando uma pessoa saudável é diagnosticada como doente, levando a exames desnecessários. Um falso negativo acontece quando uma pessoa doente é diagnosticada como saudável, resultando em nenhum tratamento. Nesse caso, os falsos negativos são considerados piores porque é melhor enviar uma pessoa saudável para exames complementares do que enviar uma pessoa doente para casa sem tratamento. Assim, pretendemos modificar o modelo para reduzir os falsos negativos.

No modelo de detecção de spam, os falsos positivos são bons e-mails "ham" classificados como spam e enviados para a pasta de spam. Falsos negativos são e-mails de spam classificados incorretamente como "presunto" e entregues na caixa de entrada. Aqui, os falsos positivos são considerados piores porque receber e-mails de spam ocasionais na caixa de entrada é preferível a e-mails importantes marcados como spam. Portanto, focamos na redução de falsos positivos neste modelo.

Esses dois modelos representam extremos, e a maioria dos modelos fica em algum lugar entre eles, tolerando alguns falsos positivos ou falsos negativos. No entanto, a importância atribuída a cada tipo de erro pode variar. Assim, para cada tipo de modelo, precisamos determinar o ponto ótimo para definir o limite de classificação.

Neste vídeo, mostrarei um método útil para ajudar a tomar essas decisões. Vamos considerar um conjunto de dados hipotético representado por esta linha. Nossos modelos serão traduções paralelas desta linha. Para cada modelo, registraremos o número de pontos vermelhos e azuis classificados corretamente.

Começamos com a linha na parte inferior, onde todos os pontos azuis estão classificados corretamente e nenhum dos pontos vermelhos está classificado corretamente. Isso nos dá 0 pontos vermelhos corretos e 5 pontos azuis corretos. Traçamos esses valores e movemos a linha para cobrir um ponto por vez, registrando as classificações corretas. Este processo continua até o final. No final, sempre temos 5 pontos azuis corretos e 0 pontos vermelhos corretos. Traçamos esses pontos e calculamos a área sob a curva. Nesse caso, a área é 21 de 25 quadrados, resultando em uma área sob a curva de 0,84. A área varia entre 0 e 1, com valores mais altos indicando melhor desempenho do modelo. Podemos usar essa curva ROC para tomar decisões sobre nosso modelo. Um bom modelo seria representado por um ponto na curva com poucos falsos positivos e falsos negativos. Dependendo de nossos requisitos específicos, como minimizar falsos negativos no modelo médico ou falsos positivos no modelo de detecção de spam, podemos selecionar os pontos correspondentes na curva.

Como alternativa, podemos visualizar os pontos de dados como tendo pontuações entre 0 e 1 atribuídos pelo modelo. Ao aplicar um limite, podemos converter essas pontuações em previsões discretas. Ajustamos o limite e observamos como o modelo funciona em diferentes níveis. Este processo cria a curva ROC. A escolha de um ponto na curva nos ajuda a selecionar um limite apropriado para nossas previsões. Além disso, vale ressaltar que uma área sob a curva menor que 0,5 não indica um modelo pior. Na verdade, ainda pode ser um bom modelo. Por exemplo, um modelo com uma área de 0 corresponde a um modelo que comete todos os erros, mas se invertermos as previsões, torna-se quase tão bom quanto um modelo que não comete erros. Assim, modelos com áreas abaixo de 0,5 ainda podem ser eficazes.

Obrigado pela sua atenção! Se você gostou deste vídeo, por favor, inscreva-se para mais conteúdo. Sinta-se à vontade para curtir, compartilhar e comentar, principalmente se tiver sugestões para vídeos futuros. Você também pode entrar em contato comigo no Twitter @LuisLikesMath. Confira a Academia Luis Serrano para mais informações sobre vídeos, livros e cursos. Vejo você no próximo vídeo!

ROC (Receiver Operating Characteristic) Curve in 10 minutes!
ROC (Receiver Operating Characteristic) Curve in 10 minutes!
  • 2020.07.14
  • www.youtube.com
The ROC curve is a very effective way to make decisions on your machine learning model based on how important is it to not allow false positives or false neg...
Razão: