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

 

Curso de aprendizado de máquina para iniciantes (partes 1-5)


Curso de aprendizado de máquina para iniciantes

00:00:00 - 01:00:00 Neste vídeo do YouTube em um curso para iniciantes em aprendizado de máquina, o instrutor explica os fundamentos dos algoritmos de aprendizado de máquina e suas aplicações no mundo real, abrangendo aspectos teóricos e práticos. O curso leva os alunos dos fundamentos do aprendizado de máquina a algoritmos como regressão linear, regressão logística, análise de componentes principais e aprendizado não supervisionado. O vídeo também discute sobreajuste, subajuste e conjuntos de dados de treinamento/teste. O instrutor enfatiza a importância de entender como desenvolver funções que permitem que algoritmos de aprendizado de máquina analisem dados para criar previsões. Ao final, ele apresenta o algoritmo de descida de gradiente para otimizar as funções de custo usadas para avaliar o desempenho.

01:00:00 - 02:00:00 Este curso de aprendizado de máquina para iniciantes abrange uma variedade de tópicos essenciais em aprendizado de máquina para novos alunos. O instrutor explica a vetorização da derivada parcial de teta em regressão linear, equação normal, suposições de regressão linear e a diferença entre recursos independentes e dependentes. O curso também inclui regressão logística e tarefas de classificação, ensinando a hipótese de regressão logística, função de custo e descida de gradiente, bem como o código de vetorização para a função de custo e descida de gradiente. Além disso, o curso apresenta bibliotecas Python, técnicas de análise de dados, construção de modelos e verificação de precisão usando regressão linear. O instrutor também aborda as técnicas de regularização e sua importância no aprendizado de máquina para evitar o overfitting. O curso abrange a regressão de cume e laço, que penaliza os pesos dos recursos menos importantes, tornando-os mais próximos de zero ou eliminando-os completamente

. 02:00:00 - 03:00:00 O "Curso de Aprendizado de Máquina para Iniciantes" abrange vários tópicos como técnicas de regularização, máquinas de vetores de suporte (SVM), classificação não linear e exploração de dados. O curso fornece uma introdução aos SVMs e explica como eles constroem hiperplanos com margens máximas para fazer previsões enquanto classificam pontos de dados. O conceito de margem rígida e classificação de margem flexível no SVM, juntamente com suas diferenças, também é abordado. O curso também inclui um projeto de previsão de preços de ações usando bibliotecas Python e explora métricas de avaliação, como Erro Quadrado Médio, Erro Quadrado Médio Raiz e quadrado R2 para o modelo de regressão linear. Modelos lineares regularizados, como Ridge e Lasso, também são explicados em detalhes, juntamente com a demonstração da criação de um aplicativo simples usando o Flask.

03:00:00 - 04:00:00 O vídeo "Curso de Machine Learning para Iniciantes" aborda vários tópicos relacionados ao aprendizado de máquina, como configuração de servidor e site usando Flask, análise de componentes principais (PCA), bias e variance trade -offs, modelos de regressão e instruções if-else aninhadas. Os instrutores enfatizam a importância de entender os conceitos de aprendizado de máquina e pré-processamento de dados para dados de texto e imagem em cenários do mundo real e fornecem exemplos práticos de como trabalhar com dados Iris e criar árvores de decisão simples. O vídeo também aborda tópicos como transformações lineares, autovetores e autovalores e explica como o PCA pode reduzir as dimensões dos dados enquanto preserva as informações. No geral, o vídeo fornece uma introdução abrangente para iniciantes aprenderem sobre aprendizado de máquina e seus aplicativos.

04:00:00 - 05:00:00 Este vídeo fornece uma introdução de nível iniciante às árvores de decisão, incluindo a terminologia básica, como construir árvores de decisão usando medidas de seleção de atributos como entropia, ganho de informação e impureza de Gini, e como as árvores de decisão pode ser usado para problemas de classificação e regressão. O vídeo também enfatiza a importância dos hiperparâmetros e da compreensão das árvores de decisão como um conceito crucial no aprendizado de máquina. A próxima seção discute o aprendizado de conjunto e suas três técnicas: bagging, boosting e stacking, que são comumente usadas em competições Kaggle.

05:00:00 - 06:00:00 Este vídeo do YouTube explica várias técnicas de aprendizado conjunto para melhorar a precisão do modelo de aprendizado de máquina. Uma das técnicas populares é a agregação de bagging ou bootstrap, em que vários modelos são treinados em subconjuntos de dados de treinamento e combinados para melhor desempenho com amostragem de linha usada para treinamento. O vídeo também aborda florestas aleatórias que usam árvores de decisão, ensacamento e amostragem de colunas para criar modelos poderosos. Além disso, o vídeo aborda o reforço, que é usado para reduzir o viés e melhorar a precisão do modelo, feito pela combinação aditiva de alunos fracos em um modelo forte. O instrutor fornece uma visão geral de vários tipos de boosting, como Gradient Boosting e Adaptive Boosting, para citar alguns. O vídeo termina fornecendo um conjunto de problemas no GitHub para os espectadores tentarem e incentiva os espectadores a se inscreverem em seus canais para receber mais conteúdo gratuito.

06:00:00 - 07:00:00 O vídeo "Machine Learning Course for Beginners" aborda vários tópicos relacionados ao boosting, como a ideia central por trás do boosting, diferentes técnicas de boosting (por exemplo, boosting de gradiente, boost adaptativo e boosting extremo ), o algoritmo para treinar um modelo usando boosting e como boosting pode ser usado para reduzir o viés alto em modelos de aprendizado de máquina. Além disso, o vídeo discute a implementação de algoritmos de reforço em Python usando bibliotecas como scikit-learn e mlx10. O vídeo também aborda o conceito de empilhamento, um método de combinar vários modelos para criar um novo modelo com melhor desempenho. O instrutor demonstra como criar um modelo de classificação empilhado usando regressão logística, k vizinhos mais próximos, Gaussian naive Bayes e modelos de floresta aleatórios em Python usando a biblioteca sklearn.

07:00:00 - 08:00:00 O instrutor aborda vários tópicos neste vídeo, começando com o aprendizado em conjunto e empilhamento de classificadores. Em seguida, o foco muda para o aprendizado não supervisionado e suas aplicações no agrupamento de pontos de dados. O palestrante explica diferentes tipos de algoritmos de agrupamento, incluindo baseados em centro e baseados em densidade, e fornece uma visão geral das técnicas de avaliação, como o índice de Dunn e o índice de Davies-Bouldin, para avaliar a qualidade do modelo de agrupamento. Por fim, o palestrante se aprofunda no agrupamento de k-means, incluindo inicialização, centróides, hiperparâmetros e limitações, enquanto fornece uma visualização do algoritmo com dois centróides. No geral, o vídeo abrange uma variedade de conceitos e técnicas de aprendizado de máquina, fornecendo uma introdução abrangente ao assunto.

08:00:00 - 09:00:00 Este vídeo do YouTube intitulado "Curso de aprendizado de máquina para iniciantes" abrange vários tópicos relacionados ao aprendizado de máquina. Uma seção enfoca o agrupamento k-means e explica o algoritmo em detalhes, abrangendo a inicialização de centróides, atribuição de cluster e atualização de clusters até a convergência. O vídeo também apresenta o K-means++ e o método de cotovelo como soluções para problemas enfrentados na inicialização aleatória. Além disso, outra seção investiga clustering hierárquico, explicando a criação de uma hierarquia de clusters usando métodos de clustering aglomerativo e divisivo. O vídeo conclui discutindo o projeto do modelo de previsão de insuficiência cardíaca, que visa construir um sistema de IA de assistência médica que ajudará na detecção precoce de problemas de saúde para salvar vidas.

09:00:00 - 09:50:00 O vídeo "Curso de aprendizado de máquina para iniciantes" aborda vários tópicos relacionados ao aprendizado de máquina, como dados desbalanceados, correlação, engenharia de recursos, construção e avaliação de modelos e classificação de texto usando técnicas de NLP. O instrutor enfatiza a importância de dados balanceados e da visualização dos dados para entendê-los melhor. O apresentador percorre um processo passo a passo para construir um sistema detector de spam e ham, analisando e compreendendo os dados e implementando técnicas de NLP para classificar mensagens como spam ou ham. O curso oferece uma visão geral dos conceitos essenciais sobre os quais os entusiastas do aprendizado de máquina iniciantes podem se basear.


Parte 1

  • 00:00:00 Nesta seção, Ayush, um cientista de dados e engenheiro de aprendizado de máquina, apresenta seu curso de aprendizado de máquina que abrange aspectos teóricos e práticos de algoritmos de aprendizado de máquina e projetos de IA do mundo real. Ayush descreve seu histórico, incluindo sua experiência trabalhando em vários aplicativos de IA, como visão computacional e processamento de linguagem natural, e seu canal no YouTube, onde oferece cursos completos sobre aprendizado de máquina e aprendizado profundo. Ele explica o programa do curso, que começa com os fundamentos do aprendizado de máquina e progride para a compreensão de algoritmos como regressão linear, regressão logística, análise de componentes principais e aprendizado não supervisionado. Ayush enfatiza a importância de entender o overfitting e o underfitting antes de encerrar a seção.

  • 00:05:00 Nesta seção, o instrutor fornece uma explicação simples sobre o que é aprendizado de máquina. Essencialmente, envolve o uso de algoritmos para analisar dados e fazer previsões inteligentes com base nesses dados sem programação explícita. O objetivo é criar uma função que mapeie variáveis de entrada para variáveis de saída, como prever o preço de uma casa com base em seu tamanho, número de quartos etc. O instrutor também fornece uma definição mais formal de aprendizado de máquina, que envolve um computador programa melhorando seu desempenho em uma tarefa com experiência. No geral, o instrutor enfatiza a importância de entender como criar essas funções para utilizar o aprendizado de máquina com sucesso.

  • 00:10:00 Nesta seção do vídeo, o instrutor discute várias aplicações de aprendizado de máquina, como carros autônomos, previsão de preços de ações e diagnóstico médico. Ele também explica o fluxo de trabalho básico de como o aprendizado de máquina funciona, começando com o estudo de um problema e a análise de dados, treinando o algoritmo e avaliando seu desempenho. O instrutor também fornece uma visão geral dos principais tipos de sistemas de aprendizado de máquina, incluindo aprendizado supervisionado, não supervisionado e por reforço. Ele dá um exemplo de aprendizado supervisionado usando previsão de preço de casa, onde o tamanho da casa é usado como um recurso para prever o preço da casa.

  • 00:15:00 Nesta seção, o palestrante discute o aprendizado supervisionado e seus dois tipos de problemas: regressão e classificação. O palestrante também fornece exemplos, como previsão de preços de casas para regressão e classificação de imagens para classificação. O palestrante explica que o aprendizado supervisionado envolve dados rotulados, onde a variável de saída é conhecida, e existe uma relação entre as variáveis de entrada e saída. O palestrante também menciona brevemente o aprendizado não supervisionado, em que os dados não são rotulados e o modelo precisa reconhecer padrões com base nos dados disponíveis.

  • 00:20:00 Nesta seção, o palestrante discute a diferença entre problemas de classificação e regressão no aprendizado de máquina. Se a saída de um problema for em valor contínuo, é considerado um problema de regressão. Se a saída estiver em valor de grau, é um problema de classificação. Destaca-se a importância de dividir os dados em conjuntos de treinamento e teste, sendo 80% utilizados para treinamento e 20% para teste do modelo. O palestrante também explica os problemas de superajuste e subajuste, em que os modelos têm desempenho ruim nos dados de treinamento e teste ou têm bom desempenho no treinamento, mas falham no teste. A seção termina com algumas notações que serão usadas ao longo do curso.

  • 00:25:00 Nesta seção, o instrutor discute o aprendizado supervisionado e não supervisionado no aprendizado de máquina. No aprendizado supervisionado, é criada uma função f(x) que mapeia variáveis de entrada para variáveis de saída, usando dados de entrada e saída para fazer previsões. O instrutor dá um exemplo de um conjunto de dados que usa recursos como perspectiva, temperatura, umidade e vento para prever se um jogador jogará tênis ou não, com a variável de destino sendo se ele jogará ou não. Os recursos de entrada são independentes, enquanto a variável de destino depende desses recursos. No geral, o aprendizado supervisionado envolve um conjunto de dados rotulado onde há uma relação entre os dados de entrada e saída.

  • 00:30:00 Nesta seção, o instrutor explica a diferença entre recursos independentes e dependentes no aprendizado supervisionado, bem como a diferença entre regressão e classificação. Por exemplo, prever preços de ações ou preços de casas seria uma regressão, enquanto identificar se uma pessoa tem diabetes seria uma classificação. O instrutor então apresenta o aprendizado não supervisionado e explica que ele envolve apenas um conjunto de recursos independentes sem quaisquer recursos dependentes. Um exemplo disso é a segmentação de mercado sem conhecer os rótulos dos dados. O instrutor observa que a próxima seção abordará o aprendizado não supervisionado com mais profundidade.

  • 00:35:00 Nesta seção, aprenderemos sobre regressão linear, um tipo de algoritmo de aprendizado supervisionado usado quando os dados de saída são contínuos. O objetivo é criar uma função que mapeie a variável de entrada para a variável de saída. A regressão linear envolve ajustar uma linha reta a dados dispersos para fazer previsões, por exemplo, prever o preço de uma casa com base em seu tamanho. A linha representa uma hipótese e, quanto mais próxima estiver dos dados, melhores serão as previsões. Esta seção fornece uma visão geral da regressão linear e prepara os alunos para a próxima seção sobre algoritmos de aprendizado e um projeto sobre previsão de fontes termais de Boston.

  • 00:40:00 Nesta seção, o instrutor explica como a função de hipótese funciona na regressão linear. A hipótese é construída usando o peso de cada recurso, representado por teta. O termo de viés, x0, determina a interceptação y ou onde a linha cruzará o eixo y. Os pesos dos recursos são aprendidos pela máquina e os melhores pesos produzem a melhor previsão. O instrutor enfatiza que o aprendizado de máquina é baseado em parâmetros de aprendizado, especificamente o peso dos recursos. A função de hipótese mapeia as variáveis de entrada para uma variável de saída, que pode ser usada para previsão.

  • 00:45:00 Nesta seção, o instrutor explica a função de hipótese para regressão linear usando pesos de recursos e o termo de viés, e como ela pode ser expressa em uma forma vetorizada. Ele mostrou que em Python pode ser escrito em apenas uma linha de código. Em seguida, ele apresenta a função de custo usada para avaliar o desempenho do modelo e como ela é usada para calcular a distância entre os pontos de dados reais e previstos. Um gráfico de dispersão é usado como exemplo para ilustrar o conceito da função de custo.

  • 00:50:00 Nesta seção do vídeo, o palestrante explica o conceito de função de custo no aprendizado de máquina. A função de custo envolve o cálculo da diferença entre os valores previstos e reais para todos os pontos de dados, chamados de resíduos. Tomando a distância entre os valores previstos e reais e elevando-os ao quadrado, uma função de custo é produzida. O objetivo é minimizar a função de custo, que determina a eficácia do modelo. O palestrante também apresenta o algoritmo de descida de gradiente como um método de otimização para encontrar o melhor teta, que fornecerá o modelo ideal.

  • 00:55:00 Nesta seção, o instrutor explica o conceito por trás do gradiente descendente, um método usado para minimizar a função de custo no aprendizado de máquina. O instrutor usa uma analogia simples para demonstrar como a descida do gradiente ajusta o valor de theta para minimizar a função de custo. Em seguida, o instrutor explica a derivação matemática desse processo, fazendo derivações parciais para atualizar o valor teta. Por fim, o instrutor apresenta o algoritmo de descida do gradiente, descrevendo as etapas para atualizar teta usando a taxa de aprendizado e as derivadas parciais da função de custo. O instrutor também discute como ajustar a taxa de aprendizado e os benefícios da vetorização do processo.

Parte 2

  • 01:00:00 Nesta seção, o instrutor explica como vetorizar a derivada parcial de theta em regressão linear. Em vez de obter a derivada parcial de teta zero e teta um separadamente, você pode colocá-la em um vetor conjunto teta e retirar a derivada parcial de tudo o que deseja calcular. Com essa vetorização, você pode escrever a equação derivada em uma forma vetorizada, que pode ser usada para poder computacional. O instrutor também destaca a equação normal, que fornece teta ideal em apenas uma equação. Eles explicam os pressupostos da regressão linear e a diferença entre recursos independentes e dependentes. Finalmente, eles mencionam outros algoritmos de otimização que podem ser usados em níveis avançados, como descida de gradiente estocástico, algoritmo de otimização de Adam e RMS Prop.

  • 01:05:00 Nesta seção, o instrutor explica brevemente o conceito de regressão polinomial e como ela pode ser usada para transformar dados não lineares em uma forma linear que pode ser adequada para regressão linear. O instrutor também menciona os próximos tópicos do curso, incluindo regressão logística e tarefas de classificação. A diferença entre regressão linear e regressão logística é explicada, e a hipótese da regressão logística é apresentada como semelhante à da regressão linear, mas usada para classificar os dados.

  • 01:10:00 Nesta seção do vídeo, o instrutor explica a hipótese da regressão logística, que inclui uma função sigmóide para obter a saída entre 0 e 1. A saída é então comparada a um limite (0,5 ou 0,7) para prever se a imagem é um gato ou não. A função de custo ou perda também é explicada como uma forma de avaliar a precisão do modelo. O instrutor fornece a fórmula para a função de custo para um exemplo de treinamento.

  • 01:15:00 Nesta seção, o palestrante discute a função de custo de perda de log e sua fórmula no aprendizado de máquina. A fórmula pega o valor da verdade básica e o valor previsto do modelo e calcula o log deste último, multiplicado pelo valor da verdade básica (y_i). O palestrante explica que se os dois valores forem iguais, o custo será aproximadamente zero, e se forem diferentes, o custo será muito alto. O autor passa a discutir o algoritmo de descida do gradiente, que usa a função de custo para ajustar os parâmetros e atualiza o valor teta para se aproximar do ótimo global. A derivada parcial da função de custo é usada para atualizar o valor teta.

  • 01:20:00 Nesta seção, o palestrante discute a vetorização no aprendizado de máquina e fornece um código vetorizado para a função de custo e gradiente descendente na regressão logística. Eles explicam que a vetorização significa fazer todos os cálculos de uma vez para economizar tempo. O palestrante destaca a importância de entender a regressão logística como um algoritmo de classificação, incluindo a hipótese, a função de custo e a descida do gradiente para encontrar o melhor theta ideal. Eles também mencionam que a próxima seção abordará a detecção do câncer de mama e as máquinas de vetores de suporte. O palestrante incentiva o público a acompanhar seu Jupyter Notebook, que inclui dados de carregamento, engenharia de recursos, visualização de dados e seleção de recursos.

  • 01:25:00 Nesta seção, o instrutor apresenta as bibliotecas Python que serão usadas no projeto, que inclui numpy, pandas, plotly, seaborn e matplotlib. O projeto envolve prever os preços das casas em Boston usando aprendizado de máquina, e os dados são carregados da biblioteca scikit-learn. A variável alvo é y, que é o preço de venda, enquanto x são as características independentes usadas para prever o modelo. Os dados são então convertidos em um quadro de dados e o instrutor mostra como acessar informações sobre os dados, incluindo o número de linhas e colunas, valores não nulos e tipos de dados usando várias funções pandas. A função de descrição também é usada para mostrar a média, desvio padrão, mínimo, máximo e percentis de cada coluna.

  • 01:30:00 Nesta seção do vídeo, o apresentador discute técnicas de análise de dados para obter insights sobre um problema de aprendizado supervisionado envolvendo uma variável-alvo, preço de venda e variáveis de recursos. Eles demonstram como usar ferramentas de visualização, como gráficos de distribuição, gráficos de pares e gráficos qq. Eles também explicam como identificar e lidar com outliers, calcular assimetria e aplicar transformações aos dados. Além disso, eles introduzem o conceito de correlação entre recursos e como ele pode ser usado para selecionar recursos altamente correlacionados para o problema.

  • 01:35:00 Nesta seção do vídeo, o instrutor aborda a construção de modelos e a verificação de precisão usando regressão linear. O foco está em evitar o overfitting, que é quando um modelo aprende demais com os dados de treinamento e tem um desempenho ruim em novos dados. O instrutor explica como a regularização pode reduzir o overfitting reduzindo recursos ou aplicando uma penalidade à complexidade do modelo. A próxima seção abordará modelos lineares regularizados, incluindo regressão Lasso e Ridge. O instrutor incentiva os espectadores a pesquisar soluções on-line ao encontrar problemas e oferece um repositório Github para projetos futuros.

  • 01:40:00 Nesta seção, o palestrante discute técnicas de regularização em aprendizado de máquina, especificamente regressão de ridge e lasso. A regressão Ridge penaliza os pesos dos recursos menos importantes, tornando-os cada vez mais próximos de zero. A regressão Lasso vai um passo além e elimina recursos menos importantes tornando os pesos dos parâmetros iguais a zero. O termo de regularização é adicionado ao final da função de custo, com regressão ridge usando norma L2 e regressão lasso usando norma L1. O palestrante também destaca que teta zero, que é o termo viés, não deve ser penalizado.

  • 01:45:00 Nesta seção, o instrutor apresenta o tópico de regularização, considerado um dos tópicos mais importantes do aprendizado de máquina. O instrutor explica que a regularização ajuda a reduzir o overfitting, que ocorre quando um modelo tem um desempenho muito bom no conjunto de treinamento, mas não consegue generalizar bem no conjunto de teste. A principal ideia por trás da regularização é eliminar recursos menos importantes ou que contenham menos informações, tornando seus respectivos hiperparâmetros ou thetas iguais a zero. O instrutor usa o exemplo de previsão de preços de imóveis para mostrar como a regularização pode ajudar a eliminar recursos menos úteis.

  • 01:50:00 Nesta seção do vídeo, o instrutor explica o conceito de ponderação e aprendizado de recursos no aprendizado de máquina. Usando um exemplo de previsão de preço de casa, o instrutor mostra como diferentes características, como tamanho da casa, número de ventiladores, número de quartos e ar-condicionado, podem receber diferentes pesos que podem ser aprendidos e otimizados ao longo do tempo. Os pesos podem ser ajustados ajustando os parâmetros em relação à derivada parcial da função de custo, e isso pode ser melhorado por meio de técnicas de regularização, como regressão de crista.

  • 01:55:00 Nesta seção, o vídeo discute a regularização no aprendizado de máquina, especificamente a regressão de ridge e lasso. Ambos os tipos de regressão penalizam o valor teta, mas a regressão ridge usa a norma L2 enquanto a regressão lasso usa a norma L1. O termo alfa controla o quão rigoroso o modelo é nos recursos, com valores mais altos tornando-o mais rigoroso. Ambos os tipos não penalizam o termo de viés teta 0, e a norma L1 na regressão de laço ajuda a tornar os pesos dos recursos menos importantes mais próximos de zero, tornando o modelo menos propenso a superajuste.

Parte 3

  • 02:00:00 Nesta seção, o vídeo explica a norma l1 e l2 na regularização e seus casos de uso específicos. A norma L1 é muito rígida, pois torna diretamente qualquer recurso sem importância theta zero, enquanto L2 é mais flexível. O vídeo então menciona brevemente a rede elástica, uma combinação de ambas as normas. Seguindo em frente, o vídeo apresenta a máquina de vetor de suporte (SVM) em detalhes, que é um algoritmo de aprendizado supervisionado usado para tarefas de classificação e regressão. O SVM constrói um hiperplano com margens paralelas para maximizar a margem enquanto classifica novos pontos como gato ou não-gato em um sistema de reconhecimento de gato e não-gato. O vídeo também descreve os tópicos que serão abordados nas próximas seções sobre SVM.

  • 02:05:00 Nesta seção, o instrutor explica a máquina de vetores de suporte (SVM) e como ela constrói dois hiperplanos paralelos para separar pontos de dados com uma margem máxima. O SVM visa maximizar essa margem, mantendo o ponto de dados mais próximo longe do hiperplano. Os pontos de dados mais próximos são chamados de vetores de suporte, que suportam os hiperplanos paralelos para separar os dados. O instrutor fornece um exemplo de uso do SVM para detecção de câncer e explica a diferença entre classificação de margem rígida e margem flexível. A classificação de margem rígida não permite que nenhum ponto de dados viole a margem, o que pode levar ao overfitting, enquanto a classificação de margem flexível permite algumas violações para evitar o overfitting.

  • 02:10:00 Nesta seção, o conceito de hard margin e soft margin em SVMs foi introduzido. A margem rígida não permite que nenhum ponto de dados entre na margem, enquanto a margem flexível permite que alguns pontos de dados violem a margem para evitar o ajuste excessivo. A largura da margem é ajustada pelo parâmetro c, onde um c muito grande torna a margem muito pequena e ac de 1 torna a margem muito grande. Também foi discutida a construção do hiperplano em SVM, que é definido pela equação w transposta x menos b igual a z, onde w é o vetor de parâmetros peso eb é o termo bias. Foram definidas restrições para previsões de margem rígida, em que qualquer coisa na margem ou acima dela é considerada como um e qualquer coisa abaixo é considerada como zero.

  • 02:15:00 Nesta seção, o vídeo discute como as máquinas de vetores de suporte (SVM) funcionam e fornece uma explicação matemática do SVM. A margem do hiperplano é escrita como 2 sobre a norma de w, e para maximizar esta margem, precisamos minimizar a norma de w. O SVM procura maximizar a margem para fazer previsões. O vídeo explica que podemos escrever uma função objetivo expressa como a distância entre dois hiperplanos, que é igual a dois sobre a norma de w, desde que o rótulo real dos dados seja maior ou igual a 1. O vídeo também aborda um função de perda, escrita como perda de dobradiça ou margem suave, e explica como funciona para obter boas previsões de maneira direta. O conceito de um SVM linear também é abordado antes de uma discussão sobre classificação não linear.

  • 02:20:00 Nesta seção, o vídeo discute o conceito de classificação não linear e o truque do kernel que pode ajudar a alcançar a especificação não linear. O truque do kernel transforma os dados de um espaço unidimensional em um espaço de dimensão superior, mapeando os dados de entrada para o phi da função x. A função de kernel RBF é um dos famosos kernels que transforma dados em espaço de alta dimensão. O vídeo também fala sobre o problema primal que ajuda a formalizar a função objetivo introduzindo uma nova variável chamada zeta. A variável zeta é introduzida para cada membro i de um a todo o n.

  • 02:25:00 Nesta seção, o palestrante apresenta o conceito de perda de dobradiça e como ele pode ser usado para formular uma função de custo para problemas de aprendizado de máquina. Eles explicam como usar a descida do gradiente secundário para atualizar os parâmetros da função de custo e como o problema primal funciona, enfatizando que é uma abordagem amigável para iniciantes no aprendizado de máquina. O palestrante também discute minimização de risco empírico e regressão de vetores de suporte, fornecendo equações para esses conceitos. Eles incentivam os espectadores a comentar se tiverem alguma dúvida e terminam mencionando que a próxima seção se concentrará em criar um previsor de preços de ações como um projeto de aprendizado de máquina de ponta a ponta.

  • 02:30:00 Nesta seção, o palestrante demonstra como construir um preditor de preço de ações usando as bibliotecas do Python, como NumPy, Pandas, Matplotlib, Seaborn e YFinance. O código baixa dados do Yahoo Finance e recebe uma entrada para inserir o código da ação a ser baixada. Os dados são ajustados com ajuste automático e a forma dos dados é mostrada, revelando um total de 1256 exemplos de treinamento e cinco colunas. O palestrante explica que esse é o ponto de partida para a construção de um previsor de preços de ações.

  • 02:35:00 Nesta seção do vídeo, o palestrante explora a exploração e análise de dados para previsão de preços de ações. O orador começa examinando estatísticas como média, desvio padrão, máximo e mínimo dos dados. Eles advertem que a previsão do preço das ações é altamente não linear e deve ser usada apenas para fins educacionais. O falante passa a analisar sua variável de destino, "fechar", para demonstrar a não linearidade e como não se pode confiar nela para prever a saída com precisão. O palestrante então traça a distribuição de "abrir" e "fechar" para ter uma ideia melhor de como proceder com os dados e aplicar a engenharia de recursos. Finalmente, o palestrante conclui resumindo seus resultados e descrevendo o que eles entenderam sobre os dados.

  • 02:40:00 Nesta seção, o palestrante discute vários algoritmos de aprendizado de máquina que foram abordados no curso até agora, incluindo regressão linear, regressão logística, modelos lineares regularizados, máquinas de vetores de suporte e análise de componentes principais. O palestrante explica que, embora a regressão linear seja frequentemente considerada um algoritmo ruim, ela pode ser poderosa em certos casos, como na previsão de preços de ações não lineares. A importância de dividir os dados em conjuntos de treinamento e teste é enfatizada, e o palestrante demonstra como usar a função train_test_split para fazer isso. O algoritmo de regressão linear é então instanciado e treinado no conjunto de treinamento e usado para prever o conjunto de teste. As saídas previstas são mostradas e comparadas com as saídas reais do conjunto de teste.

  • 02:45:00 Nesta seção, o palestrante fala sobre o cálculo de matrizes para avaliar o desempenho de modelos de regressão linear. Eles discutem o uso do erro quadrático médio (MSE), raiz do erro quadrático médio (RMSE) e quadrado R2 para avaliar a eficácia do modelo. O palestrante fornece a função auxiliar para calcular essas matrizes e eles a usam para avaliar o desempenho de seu modelo de regressão linear. Eles descobriram que o MSE e o RMSE são quase iguais a zero, o que significa que o modelo está prevendo valores com precisão. O quadrado R2 também está próximo de 1, o que indica um bom ajuste do modelo.

  • 02:50:00 Nesta seção, o palestrante discute modelos lineares regularizados como ridge e lasso, e demonstra como eles podem ser implementados usando Scikit-Learn em Python. O palestrante explica que o laço elimina os traços menos importantes, enquanto o cume os penaliza. O modelo de crista é menos propenso a overfitting, tornando-o uma escolha melhor para salvar um modelo e construir um site, de acordo com o palestrante. O palestrante também discute a regressão do vetor de suporte e demonstra como ela pode ser ajustada usando o CV de pesquisa em grade para verificar valores diferentes e selecionar o melhor modelo.

  • 02:55:00 Nesta seção, o vídeo discute o uso de modelos lineares regularizados para aprendizado de máquina e como eles são mais poderosos do que o método anterior usado. O apresentador apresenta exemplos de como importar e salvar um modelo usando joblib e como carregar o modelo salvo para uso futuro. O vídeo também se aprofunda na criação de um aplicativo simples usando o Flask e na renderização de um modelo a partir de um arquivo HTML. É fornecida uma demonstração de como criar um arquivo index.html e renderizá-lo em uma rota de aplicativo.

Parte 4

  • 03:00:00 Nesta seção do vídeo, o palestrante mostra como configurar um servidor e um site usando o Flask para um projeto de aprendizado de máquina de ponta a ponta. Eles explicam como usar um formulário para inserir dados, pré-processá-los, fazer previsões usando um modelo carregado e retornar a previsão para um modelo predict.html derivado de um modelo layout.html. O palestrante também incentiva os usuários a modificar os recursos de dados para tornar o modelo mais poderoso, mas adverte contra torná-lo muito complexo. Eles concluem enfatizando a importância de entender as limitações da regressão linear ao lidar com dados multicolineares.

  • 03:05:00 Nesta seção do vídeo do YouTube "Curso de aprendizado de máquina para iniciantes", o instrutor explica como remover a multicolinearidade nos dados por meio do uso da análise de componentes principais (PCA). As variáveis correlacionadas podem ser problemáticas em modelos de aprendizado de máquina, mas o PCA é um algoritmo de redução de dimensionalidade que pode resolver esse problema com eficiência. Para se preparar para aprender sobre PCA, o instrutor revisa brevemente as transformações lineares e autovetores/autovalores, que fornecem uma base para a compreensão do conceito de redução de dimensionalidade. O instrutor recomenda um canal no YouTube para os interessados em se aprofundar na álgebra linear, mas enfatiza que esse material não é necessário para entender o PCA.

  • 03:10:00 Nesta seção, o instrutor explica transformação linear, autovetores, autovalores e seu significado na análise de componentes principais (PCA). A transformação linear é uma função que transforma um espaço vetorial em outro enquanto mantém uma estrutura linear em cada espaço vetorial. Autovetores e autovalores representam um novo vetor transformado e o fator pelo qual ele é dimensionado, respectivamente. O instrutor também discute a necessidade de redução de dimensionalidade, especialmente em grandes conjuntos de dados, e como o PCA é usado para transformar grandes conjuntos de recursos em menores. No geral, entender esses conceitos é crucial para trabalhar com dados de texto e imagem em cenários do mundo real.

  • 03:15:00 Nesta seção, o palestrante explica a intuição básica por trás da Análise de Componentes Principais (PCA), que é reduzir as dimensões de um conjunto de dados preservando o máximo de informações possível. Eles descrevem como o PCA constrói novas variáveis, ou componentes principais, que são uma combinação linear das variáveis iniciais. Esses componentes não são correlacionados e a maioria das informações é compactada nos primeiros componentes. O palestrante também aborda a visualização da projeção de dados nos componentes principais e enfatiza que o algoritmo deve garantir que os componentes não estejam correlacionados.

  • 03:20:00 Nesta seção, a importância do pré-processamento de dados é discutida em relação à análise de componentes principais (PCA). A primeira etapa do PCA é padronizar os dados para garantir que estejam dentro do mesmo intervalo, o que é crítico porque o PCA é sensível a valores discrepantes. Depois que os dados são padronizados, a matriz de covariância dos dados é calculada para entender como as variáveis de entrada estão variando umas com as outras. Variáveis altamente correlacionadas podem conter informações desnecessárias e podem ser removidas. Finalmente, os autovetores e autovalores da matriz de covariância são calculados, os quais são fatores importantes na transformação dos dados em um espaço de menor dimensão.

  • 03:25:00 Nesta seção, o instrutor explica o processo de cálculo de autovetores e autovalores em Python para transformar vetores a partir de um vetor original e o fator pelo qual ele é estendido, chamado de autovalor. As colunas da matriz de autovetores e da matriz de autovalores são ordenadas em ordem decrescente, e o conteúdo de energia acumulada de cada autovetor é calculado. Então, um subconjunto de autovetores com o maior conteúdo de energia é selecionado como vetores de base. Finalmente, os dados são projetados na nova base. O instrutor conclui o tutorial descrevendo os tópicos que serão abordados nas seções a seguir, que incluem teoria de aprendizado, compensações de viés e variância, aproximação e erro de estimativa.

  • 03:30:00 Nesta seção, o instrutor discute o conceito de minimização de risco empírico e a importância de entender as compensações de viés e variância no aprendizado de máquina. O instrutor enfatiza que, embora viés e variação pareçam conceitos fáceis de entender, é difícil dominá-los na prática ao desenvolver produtos do mundo real. O instrutor também explica o underfitting, que ocorre quando um modelo não apresenta um bom desempenho em um conjunto de treinamento devido a uma baixa quantidade de recursos ou dados. O instrutor sugere a engenharia de recursos para gerar mais recursos e melhorar o desempenho do modelo.

  • 03:35:00 Nesta seção do vídeo, são explicados os diferentes tipos de modelos de regressão, como underfitting, good fit e overfitting. O overfitting ocorre quando um modelo funciona bem no conjunto de treinamento, mas mal no conjunto de teste devido ao modelo ser muito complexo ou ter muitos recursos. Isso pode ser evitado selecionando recursos importantes ou usando regularização. O trade-off de viés e variância também é discutido, onde um modelo que dá um erro baixo no conjunto de treinamento, mas um erro alto no conjunto de validação indica alta variância, e bagging é usado para reduzi-lo em métodos de aprendizado de conjunto.

  • 03:40:00 Nesta seção, o instrutor explica como identificar se um modelo tem alto viés ou alta variância. Se o modelo tiver alta variância, o conjunto de treinamento pode ter uma taxa de erro de 15%, enquanto o conjunto de avaliação tem uma taxa de erro de 16%. Por outro lado, se tiver viés alto, pode ter uma taxa de erro de 30% na avaliação. O instrutor também explica o conceito de erro de estimativa de aproximação, a diferença entre o valor exato e a aproximação dele, que é a saída do modelo. Por fim, eles mencionam a suposição de que o erro básico ou o desempenho do nível humano é de aproximadamente zero por cento ao construir um modelo de classificação.

  • 03:45:00 Nesta seção, o vídeo apresenta o conceito de minimização de risco empírica, que é um algoritmo que recebe uma amostra do conjunto de treinamento de uma grande distribuição, com rótulos atribuídos por uma função de destino. O objetivo é minimizar o erro em relação à distribuição desconhecida, para que o modelo possa prever novos exemplos que nunca viu antes com erros mínimos. O vídeo enfatiza que o preditor de saída depende dos pesos aprendidos com o conjunto de treinamento, e o objetivo é minimizar o erro ou risco chamado de minimização de risco empírico. O vídeo convida o espectador a fazer qualquer pergunta na caixa de comentários e a conferir o site do curso.

  • 03:50:00 Nesta seção, o instrutor discute o conceito de instruções if-else aninhadas no aprendizado de máquina, que é uma maneira comum de dividir dados fazendo perguntas. Eles usam o exemplo do conjunto de dados Iris, que contém quatro características e um rótulo indicando a espécie da flor. A tarefa é detectar as espécies de flores com base em quatro características, tornando-as um conjunto de dados de classificação binária. O instrutor explica como criar um classificador simples usando instruções if-else para dividir os dados com base nos recursos e determinar o rótulo.

  • 03:55:00 Nesta seção do vídeo, o instrutor explica como criar uma árvore de decisão simples usando dois recursos: comprimento da pétala e comprimento da sépala. A árvore de decisão usa instruções if-else e loops aninhados para definir várias condições e classificar variáveis de destino. O instrutor também explica a terminologia das árvores de decisão, como nós raiz, nós pais e nós filhos.

Parte 5

  • 04:00:00 Nesta seção do vídeo, o instrutor explica a terminologia básica das árvores de decisão, como nós terminais ou folhas e ramos. Eles também discutem a divisão dos dados e a poda de nós, que é a eliminação de certos nós da árvore. O instrutor enfatiza a importância de fazer anotações e entender a terminologia para uma melhor compreensão das árvores de decisão. Eles então passam a explicar como os limites de decisão, ou hiperplanos, aparecem nas árvores de decisão e como eles são construídos para cada resultado. O instrutor plota os hiperplanos com base nos dois recursos escolhidos para o exemplo e mostra como eles são construídos dependendo do resultado.

  • 04:05:00 Nesta seção, o instrutor explica como as árvores de decisão são construídas usando medidas de seleção de atributos, como entropia, ganho de informação e impureza gini. Essas medidas ajudam a determinar qual recurso deve ser o nó raiz ou como dividir o conjunto de dados. O instrutor enfatiza a importância de escolher o recurso certo para evitar acabar com um modelo ruim. A entropia é definida como uma medida de aleatoriedade em que quanto maior a entropia, mais difícil é extrair informações dela. O instrutor fornece exemplos e propriedades de entropia para ajudar a entender sua importância na construção de árvores de decisão.

  • 04:10:00 Nesta seção do vídeo, o instrutor explica como calcular a entropia, que é uma medida de aleatoriedade, usando uma fórmula que envolve a probabilidade de cada aula e o logaritmo da probabilidade. O instrutor usa o exemplo de um conjunto de dados para jogar golfe e calcula a entropia das classes "sim" e "não" para demonstrar como a fórmula funciona. O instrutor também discute diferentes propriedades de entropia, incluindo classificadores binários com duas classes e a importância de minimizar a entropia para melhorar a precisão de um modelo de aprendizado de máquina.

  • 04:15:00 Nesta seção, o instrutor explica o conceito de entropia, que é uma medida da aleatoriedade de um atributo que determina se ele precisa ser dividido para uma árvore de decisão. A entropia é calculada com base no número de valores únicos nos dados, e o objetivo é minimizar a entropia para obter melhores resultados na árvore de decisão. O instrutor fornece exemplos de diferentes cenários e mostra como calcular a entropia para que cada um entenda quando um atributo se torna um nó folha ou precisa de mais divisão. A entropia máxima é 1 e a entropia mínima é 0, e diferentes algoritmos de árvore de decisão seguem regras específicas sobre quando considerar um atributo como uma folha ou dividir ainda mais com base no valor da entropia.

  • 04:20:00 Nesta seção, o apresentador explica o conceito de entropia como medida de aleatoriedade e o diagrama de entropia. O maior valor de entropia é um e pode ser calculado usando uma certa equação. Passando ao ganho de informação, o apresentador o apresenta como outra medida de seleção de atributo e fornece um exemplo de um conjunto de dados usado para explicá-lo. O conjunto de dados é dividido em subconjuntos menores com base no número de rótulos e a entropia é calculada para cada subconjunto. Esta é uma explicação preliminar do ganho de informação, que será explorada mais adiante na próxima seção.

  • A seção 04:25:00 explica como calcular o ganho de informação em árvores de decisão usando entropia. O processo envolve obter a entropia de toda a distribuição de dados e, em seguida, obter a entropia antes e depois da divisão dos dados. A fórmula para ganho de informação envolve a subtração da entropia antes da divisão da entropia ponderada após a divisão. O exemplo usado neste vídeo demonstra como a entropia e a entropia ponderada são calculadas para cada divisão e, em seguida, calculadas a média para obter a entropia ponderada de todo o conjunto de dados. Finalmente, a entropia antes da divisão é subtraída da entropia após a divisão para determinar o ganho de informação.

  • 04:30:00 a impureza de Gini é muito parecida com o cálculo da entropia, mas ao invés de usar logaritmos, usa probabilidades ao quadrado. Depois de dividir o conjunto de dados em várias categorias, você calcula a impureza de Gini ponderada e a subtrai da impureza de Gini anterior para obter o ganho de informação. Este é um método popular e comumente usado em aprendizado de máquina. É importante entender a impureza de Gini, bem como a entropia e o ganho de informação ao construir um modelo de árvore de decisão.

  • 04:35:00 Nesta seção, o instrutor explica o conceito de impureza Gini como outra medida de impureza em uma árvore de decisão. A impureza de Gini é um sinal dado para uma determinada impureza de y igual a 1 menos i igual a 1 em todo o caminho até k. O instrutor explica o cenário da impureza de Gini com um exemplo de um valor de categoria exclusivo de sim ou não, onde 0,5 é a probabilidade do número de sim e o número de não é 0,5. O ganho de impureza de 0,5 é máximo na impureza de Gini, que é mais usada como alternativa à entropia por ser mais rápida, pois evita o uso da função log na entropia. Por fim, o instrutor mostra o diagrama de entropia e impureza de Gini e promete demonstrar como usar um classificador de árvore de decisão para executar uma tarefa de regressão na próxima seção.

  • 04:40:00 Nesta seção do vídeo, o instrutor explica como calcular a entropia antes de dividir os dados para determinar o ganho de informação. Eles pegam a entropia da distribuição de dados e calculam o ganho de informação em relação à variável de perspectiva. Eles então dividem os dados com base nessa variável e continuam a calcular a entropia ponderada e o ganho de informações para variáveis de temperatura, umidade e vento. Por fim, verifica-se que o ganho de informação no Outlook é o maior, por isso é escolhido como o nó raiz para a árvore de decisão.

  • 04:45:00 árvore de decisão e como ela pode ser usada para problemas de classificação e regressão. Na classificação, as árvores de decisão são construídas com base no cálculo das medidas de impureza, como entropia e coeficiente de Gini, para tomar decisões em cada nó. O objetivo é tornar a árvore o mais pura possível ou até chegar a um ponto em que ela se torne pura. Na regressão, as árvores de decisão são construídas tomando a média do valor alvo em cada ponto de divisão até atingir um nó folha. O overfitting pode ser um problema nas árvores de decisão, por isso é importante interromper o crescimento da árvore em uma certa profundidade ou podar alguns galhos para torná-la mais robusta.

  • 04:50:00 Nesta seção, o instrutor explica que é importante entender as medidas de seleção de atributos ao trabalhar com árvores de decisão. Eles fornecem exemplos e explicam a implementação da regressão da árvore de decisão e do classificador residencial. O instrutor enfatiza a importância de aprender com a implementação e explica os hiperparâmetros, como profundidade máxima da árvore, divisão mínima da amostra, folha mínima da amostra e controle de estado aleatório. Eles também mostram um exemplo de uso da ferramenta gráfica para plotar uma árvore de decisão.

  • 04:55:00 Nesta seção, o vídeo discute a regressão da árvore de decisão e seus critérios para medir a função, incluindo erro quadrático médio, erro absoluto médio e veneno. O vídeo enfatiza a importância dos hiperparâmetros, particularmente o passo máximo, no controle do overfitting. Exemplos de árvores de decisão e seus métodos, como plotagem, também são exibidos, e o vídeo enfatiza a importância de entender as árvores de decisão como um conceito crucial no aprendizado de máquina. A próxima seção discute o aprendizado de conjunto e suas três técnicas: bagging, boosting e stacking, que são comumente usadas em competições Kaggle.
 

Curso de aprendizado de máquina para iniciantes (partes 6-10)


Curso de aprendizado de máquina para iniciantes

Parte 6
  • 05:00:00 Nesta seção, o instrutor discute o conceito de modelos de alta variância e alto viés, onde pode ocorrer overfitting e underfitting. O objetivo do aprendizado de máquina é ter um modelo de baixo viés e baixa variância para obter a precisão ideal. O instrutor dá exemplos de aprendizado conjunto, onde vários modelos são treinados em dados e as previsões são tiradas de cada modelo para serem votadas e, finalmente, determinar a resposta ou previsão correta. A maioria geralmente é mais precisa do que a resposta de um indivíduo no aprendizado conjunto, e o instrutor explica o conceito usando exemplos como perguntas de questionário e votação eleitoral.

  • 05:05:00 Nesta seção, o instrutor fornece uma visão geral do aprendizado conjunto e como ele pode ser usado para problemas de classificação e regressão. Na classificação, a maioria dos votos é levada em consideração, enquanto na regressão, a média ou mediana dos resultados dos modelos básicos são usados para a previsão final. As técnicas usadas no aprendizado conjunto incluem ensacamento, aumento, empilhamento e cascata, e a maioria dos vencedores da competição Kaggle usa alguma forma de técnicas de aprendizado conjunto. Além disso, o instrutor destaca que empresas como Amazon e Google utilizam esses algoritmos, como XGBoost e random forest, em seus próprios produtos.

  • A seção 05:10:00 discute os fundamentos do bagging, uma técnica de aprendizagem em conjunto também conhecida como agregação bootstrap. Bagging envolve amostragem aleatória de subconjuntos de dados de treinamento e modelos de treinamento em cada subconjunto. A ideia é reduzir o overfitting e melhorar a precisão do modelo usando um conjunto de vários modelos. A seção explica como o ensacamento funciona, incluindo como amostrar os dados, treinar subconjuntos de modelos e combinar as previsões para melhor precisão.

  • 05:15:00 Nesta seção, o palestrante explica o conceito de bagging, uma técnica para melhorar a precisão dos modelos de aprendizado de máquina. Bagging envolve dados de amostragem com substituição e, em seguida, modelos de treinamento em cada amostra. Os modelos individuais são então combinados para formar um modelo agregado que produz previsões mais precisas. O palestrante observa que o ensacamento é uma técnica conceitualmente simples que não envolve matemática avançada.

  • 05:20:00 Nesta seção, o palestrante discute bagging, que ajuda a reduzir a variância de modelos de base de alta variância e baixo viés. Bagging combina esses modelos para criar um modelo maior, de baixa variância e baixo viés. A amostragem de linha é usada durante a amostragem dos dados, o que envolve a amostragem apenas das linhas da grande distribuição de dados. É importante observar que no ensacamento, apenas a amostragem de linha é usada, ao contrário da floresta aleatória, que usa amostragem de linha e coluna. Bagging também é conhecido como agregação bootstrap, que envolve bootstrapping e agregação de modelos básicos.

  • 05:25:00 Nesta seção, o instrutor recapitula a técnica de ensacamento, que é uma forma de reduzir a variância em modelos de alta variância e baixo viés. Bagging envolve pegar subconjuntos de dados para treinamento e combinar a maioria dos votos para classificação. O instrutor acredita que um algoritmo poderoso para isso é a floresta aleatória, que é uma combinação de árvores de decisão, bagging e amostragem de coluna. As árvores de decisão tomam decisões simples e dividem os nós, enquanto o bagging envolve a obtenção de subconjuntos de dados para treinamento. A amostragem de coluna ou ensacamento de recursos também é usada, tomando subconjuntos das colunas. O instrutor afirma que florestas aleatórias são poderosas e grandes empresas como Google, Quora e Amazon as usam.

  • 05:30:00 Nesta seção, o instrutor de aprendizado de máquina explica o conceito de ensacamento e floresta aleatória. Bagging envolve amostragem de linhas com substituição e treinamento de uma árvore de decisão no subconjunto, enquanto a floresta aleatória adiciona amostragem de colunas à mistura. Isso significa que tanto as linhas quanto as colunas são amostradas, o que cria uma chance maior de um modelo com bom desempenho devido à técnica de aprendizado conjunto. O instrutor também menciona o conceito de pontos fora do saco (oob), que são os pontos deixados de fora após a amostragem e podem ser usados para validação cruzada. Por fim, o instrutor recapitula as principais diferenças entre ensacamento e floresta aleatória.

  • 05:35:00 Nesta seção, o vídeo discute as técnicas de ensacamento e floresta aleatória no aprendizado de máquina. O ensacamento envolve amostragem de linha, o que leva a um modelo maior, reduzindo a variância. A floresta aleatória é a mesma, mas com amostragem de coluna e árvores de decisão como modelos básicos. A complexidade do trem em árvores de decisão é da ordem de n log m vezes n vezes d, enquanto em florestas aleatórias é d vezes k vezes n. O vídeo também discute como as florestas aleatórias são trivialmente paralelizadas, tornando-as fáceis de treinar. Por fim, é introduzido o conceito de árvores extremamente aleatórias, que testam possíveis valores para determinar o limiar em árvores de decisão.

  • 05:40:00 Nesta seção, o palestrante discute o conceito de Árvores Extremamente Randomizadas como uma alternativa ao método computacionalmente caro de tentar todos os valores possíveis em Random Forest. Ao amostrar um subconjunto de colunas e linhas, a variância é reduzida, mas há uma chance menor de obter bons resultados em comparação com a Random Forest. O palestrante também menciona as desvantagens de usar o Random Forest em grandes conjuntos de dados devido à sua complexidade de tempo, mas sugere experimentá-lo e ajustar os hiperparâmetros usando a pesquisa em grade. Em seguida, eles apresentam a API scikit-learn para implementar a Random Forest e mencionam um projeto de ajuste fino de hiperparâmetros.

  • 05:45:00 Nesta seção, o classificador de floresta aleatória é discutido com seus parâmetros e atributos. O primeiro parâmetro é n_estimators, que é o número de árvores de decisão usadas. Os critérios de seleção de atributos e a profundidade máxima da árvore também são explicados junto com outros parâmetros, como amostra mínima necessária para dividir e número máximo de feições. O uso da importância do recurso também é mencionado para selecionar recursos importantes para o modelo. O regressor da floresta aleatória também é brevemente discutido com suas semelhanças com o classificador.

  • 05:50:00 Nesta seção do vídeo, o instrutor discute as técnicas de conjunto, principalmente o Boosting. Boosting é outra técnica popular de aprendizagem em conjunto, e o instrutor fornece uma visão geral de Gradient Boosting, Adaptive Boosting ou AdaBoost e Extreme Boosting ou XGBoost. O instrutor também menciona que há um conjunto de problemas disponível no GitHub para os espectadores experimentarem e incentiva os espectadores a se inscreverem no canal do YouTube para apoiar a criação de mais conteúdo gratuito.

  • 05:55:00 Nesta seção, o vídeo aborda os tópicos de bagging e boosting no aprendizado de máquina. Bagging é usado para reduzir a alta variância em modelos fazendo amostragem de coluna e linha, seguida de agregação. O reforço, por outro lado, é usado para reduzir o viés nos modelos, combinando aditivamente alunos fracos em um modelo forte. A ideia central de usar o boosting é reduzir o viés em um modelo altamente tendencioso. O vídeo fornece uma intuição básica de reforço usando um exemplo de dados de treinamento.

Parte 7

  • 06:00:00 Nesta seção, o palestrante explica a ideia central por trás do boosting e como ele funciona para minimizar erros. Boosting é uma técnica de aprendizado supervisionado que envolve o treinamento de um modelo em dados de treinamento (x e y) com um rótulo para cada exemplo. O modelo é então usado para prever a saída para cada entrada, e a diferença entre o valor previsto e o valor real é medida para calcular a perda. O modelo é treinado para reduzir o erro residual, focando nos dados mal classificados ou com alto MSE ou MAE. Boosting envolve o ajuste de vários modelos nos erros residuais, minimizando o erro ajustando-o para cada exemplo de treinamento. O modelo final é a soma de todos esses modelos, ponderados pelo alfa.

  • 06:05:00 Nesta seção, é explicado o conceito de boosting, que é uma técnica para reduzir o viés em modelos de aprendizado de máquina. O boosting converte aprendizes fracos em aprendizes fortes ajustando os erros residuais dos modelos anteriores, resultando em um modelo de baixo viés e baixa variância que funciona bem no conjunto de treinamento. No entanto, existe o risco de overfitting se o modelo for muito bom no conjunto de treinamento. Várias técnicas de aumento, como aumento de gradiente, aumento adaptativo e aumento extremo, são discutidas. Além disso, é mencionada brevemente a ideia por trás do ensacamento, que é outra técnica para melhorar o desempenho do modelo.

  • 06:10:00 Nesta seção, o instrutor explica o conceito de aumento de gradiente, que é um algoritmo de aumento que converte alunos fracos em alunos fortes. O aumento de gradiente é um algoritmo poderoso usado por grandes empresas de tecnologia e produção. É uma função de custo diferenciável que permite derivações para melhorar o erro em um conjunto de treinamento. O instrutor fornece exemplos do mundo real de aumento de gradiente e discute funções de custo diferenciáveis e sua importância no algoritmo. A discussão inclui o uso de dados de treinamento e uma função de custo na descida do gradiente, tornando-a uma ferramenta útil no aprendizado de máquina.

  • 06:15:00 Nesta seção, o palestrante explica o algoritmo para treinar um modelo usando boosting. O algoritmo envolve inicializar o modelo com um valor constante, calcular os resíduos ou pseudo-resíduos, obter a derivada parcial da função de custo em relação ao modelo, ajustar os aprendizes básicos aos resíduos dos modelos anteriores e, em seguida, iterar em cada modelo para calcular os pseudo-resíduos e ajustar os aprendizes de base. O objetivo é encontrar o valor lambda que minimiza a função de custo e melhora a precisão do modelo.

  • 06:20:00 Nesta seção, o palestrante explica o processo do algoritmo de aumento de gradiente, que começa inicializando o modelo com alguma constante e, em seguida, aplica um loop for para retirar os resíduos de cada exemplo de treinamento. O modelo então ajusta um aprendizado básico aos resíduos e calcula o lambda m do multiplicador para cada modelo. Para atualizar o modelo, o modelo anterior é ajustado aos resíduos anteriores, e o modelo final é obtido adicionando o modelo anterior e o novo modelo obtido após a resolução do problema de otimização unidimensional. O palestrante também aborda os conceitos de regularização e encolhimento e por que eles são necessários no reforço devido ao viés alto.

  • 06:25:00 Nesta seção, o vídeo discute como o boosting pode ser usado para reduzir o viés alto em modelos de aprendizado de máquina. O reforço envolve ajustar os resíduos do modelo anterior durante cada iteração, o que pode resultar em superajuste e aumento na variância. Para evitar esse problema, regularização e encolhimento podem ser adicionados usando um parâmetro que pode ser aprendido chamado v. Empiricamente, descobriu-se que um valor de v igual a 0,1 resulta em melhorias dramáticas. O vídeo também aborda a complexidade de tempo das árvores de decisão de aumento de gradiente e a implementação do aumento de gradiente por meio da API scikit-learn.

  • 06:30:00 Nesta seção, o palestrante discute a implementação do Gradient Boosting Classifier usando a API Scikit-learn. Eles explicam os diferentes parâmetros envolvidos, como perda, taxa de aprendizado, número de estimadores e muito mais. A taxa de aprendizado é usada para reduzir a variação excessiva e evitar o ajuste excessivo. A implementação do Gradient Boosting Classifier é apenas uma linha de código, e a probabilidade de previsão fornece a probabilidade de os dados serem verdadeiros para uma determinada classe. O palestrante também discute brevemente a implementação do Gradient Boosting Regressor e enfatiza a importância de aprender com a documentação.

  • 06:35:00 Nesta seção do vídeo "Machine Learning Course for Beginners", o instrutor discute o classificador AdaBoost e sua implementação usando a API Cython, bem como o algoritmo Extreme Gradient Boosting (XGBoost). O instrutor explica que o XGBoost é uma versão avançada do Gradient Boosting que adiciona randomização por meio de amostragem de linha e coluna, tornando-o uma ferramenta poderosa para problemas de aprendizado de máquina. A seção também cobre os diferentes parâmetros usados no XGBoost e sua importância no ajuste fino do modelo.

  • 06:40:00 Nesta seção, o palestrante fala sobre os diferentes pacotes para algoritmos de aprendizado de máquina, como Gradient Boosting Tree, GB Linear e DART. Eles discutem os diferentes parâmetros que podem ser ajustados, incluindo matriz de avaliação e regularização, e como eles afetam o modelo. O palestrante também menciona o XGBoost e mostra como ele é usado no Python. Eles enfatizam a importância do ajuste fino do modelo e como isso pode levar a uma melhor precisão. Por fim, o palestrante apresenta o conceito de empilhamento e como ele pode ajudar a melhorar a precisão dos modelos.

  • 06:45:00 Nesta seção, o instrutor apresenta o conceito de stacking e como ele difere de bagging e boosting. O empilhamento envolve pegar diferentes aprendizes de base que são altamente ajustados e têm uma boa compensação de viés e variância e treiná-los em diferentes subconjuntos de dados para criar modelos diferentes. Isso é diferente de bagging, que é usado para reduzir a alta variância usando aprendizes de base com alta variância e baixo viés, e boosting, onde os modelos de base não são necessariamente altamente ajustados. O instrutor fornece um exemplo de empilhamento com diferentes modelos de base, como regressão logística, máquinas de vetores de suporte e k vizinhos mais próximos, que passaram por um amplo ajuste fino para produzir bons modelos com uma boa compensação de variação de tendência.

  • 06:50:00 Nesta seção, o palestrante explica a intuição básica por trás do empilhamento, que é um tipo de aprendizado conjunto. O empilhamento envolve dividir os dados de treinamento em subconjuntos e treinar diferentes classificadores em cada subconjunto. Esses aprendizes básicos são bons em equilibrar viés e variância. Ao contrário do bagging, que tem alta variância e baixo viés, e do boosting, que tem alto viés e baixa variância. Após obter as predições de cada modelo, um metaclassificador é treinado nos rótulos das classes preditas ou em suas probabilidades. A ideia é combinar as previsões desses modelos de ensemble para criar um classificador mais preciso e robusto.

  • 06:55:00 Nesta seção, o instrutor discute o empilhamento, um método de combinar vários modelos para criar um novo modelo com melhor desempenho. O processo envolve o treinamento de vários modelos de base e o uso de suas previsões como recursos para treinar um classificador de segundo nível, que gera as previsões finais. O instrutor mostra um exemplo de criação de um modelo de classificação empilhado usando regressão logística, k vizinhos mais próximos, Gaussian naive Bayes e modelos de floresta aleatórios em Python usando a biblioteca sklearn. Eles também demonstram como usar o classificador de empilhamento da biblioteca mlx10.

Parte 8

  • 07:00:00 Nesta seção, o palestrante explica como implementar um classificador de empilhamento usando diferentes modelos, como K vizinhos, floresta aleatória e regressão logística. Eles passam pela instanciação do objeto e pela validação cruzada tripla para selecionar o melhor modelo com a maior precisão. O palestrante também demonstra como traçar limites de decisão e usar a pesquisa de grade para ajustar o viés e a compensação de variância. Ao selecionar os melhores parâmetros e recursos, o classificador de empilhamento pode fornecer uma previsão mais precisa do que os modelos individuais.

  • 07:05:00 Nesta seção, o instrutor resume os tópicos abordados nas seções anteriores sobre aprendizado conjunto, incluindo ensacamento, florestas aleatórias, aumento, árvores de decisão de aumento de gradiente, AdaBoost e XGBoost. O instrutor também fornece uma visão geral do empilhamento e fornece exemplos do algoritmo em ação. A seção termina com um lembrete para se inscrever no canal do instrutor no YouTube e informações sobre um curso de aprendizado de máquina, CS01, que abrange tópicos além do aprendizado conjunto, incluindo redes neurais, GANs e redes neurais convolucionais. Por fim, o instrutor apresenta as próximas seções sobre aprendizado não supervisionado e projetos futuros.

  • 07:10:00 Nesta seção, o palestrante apresenta o conceito de aprendizado não supervisionado, que envolve apenas ter acesso a pontos de dados sem rótulos ou um supervisor para orientar o processo de aprendizado. Ao contrário do aprendizado supervisionado, onde a saída é conhecida, o aprendizado não supervisionado envolve fazer clusters de pontos de dados para melhor entendê-los. Como exemplo motivador, o palestrante sugere segmentar os clientes de uma empresa como a Amazon com base em semelhanças, embora não haja rótulos que indiquem qual cliente pertence a qual segmento. O objetivo do aprendizado não supervisionado é descobrir padrões e estruturas no conjunto de dados.

  • 07:15:00 Nesta seção, o instrutor discute o aprendizado não supervisionado e suas aplicações. Ele explica que os cientistas de dados podem usar o aprendizado não supervisionado para dividir os clientes em segmentos e fornecer recomendações de produtos com base em suas atividades no site. Ele usa a Amazon como um exemplo de empresa que usa aprendizado não supervisionado para segmentação de clientes e mecanismos de recomendação. O instrutor também explica que o aprendizado não supervisionado pode ser usado para agrupar em espaços de alta dimensão, com itens semelhantes próximos uns dos outros e itens diferentes distantes. Ele dá exemplos de análise de sequência em biologia e agrupamento de clusters semelhantes em negócios como aplicações de aprendizado não supervisionado. No geral, o instrutor fornece uma breve visão geral do aprendizado não supervisionado e suas possíveis aplicações em vários setores.

  • 07:20:00 Nesta seção, o palestrante discute diferentes aplicações de aprendizado de máquina, como agrupar clusters semelhantes em dados de negócios para marketing direcionado e usar mecanismos de recomendação para sugerir produtos com base na atividade do usuário. O palestrante também menciona segmentação de imagens para detecção de objetos, análise de sentimentos para determinar se um texto é positivo ou negativo e detecção de anomalias para encontrar outliers em um modelo. Essas várias aplicações demonstram a versatilidade do aprendizado de máquina em diferentes campos.

  • 07:25:00 Nesta seção, o palestrante apresenta o tópico de agrupamento e os diferentes tipos de algoritmos de agrupamento, como baseados em centro e baseados em densidade. O foco será no algoritmo de agrupamento k-means, que será explorado em profundidade. O palestrante também incentiva os espectadores a trabalhar em conjuntos de problemas e projetos para obter uma melhor compreensão do aprendizado de máquina. O palestrante destaca a importância do aprendizado não supervisionado e mostra como o clustering pode ser aplicado em diversos campos. O agrupamento em um plano X e Y é usado para ilustrar o conceito de agrupamento. No geral, a seção destaca os próximos tópicos a serem abordados no curso e incentiva os espectadores a continuar aprendendo.

  • 07:30:00 Nesta seção, o palestrante explica o aprendizado não supervisionado e o clustering, que envolve a segmentação de dados em diferentes clusters. A terminologia de distância intracluster e intercluster é discutida, onde intracluster refere-se à distância entre pontos de dados dentro de um cluster, enquanto intercluster refere-se à distância entre clusters. O objetivo é ter uma pequena distância intracluster e uma grande distância intercluster, o que significa que os dados dentro dos clusters devem ser semelhantes e os dados entre os clusters devem ser diferentes. Isso é conhecido como o objetivo da otimização.

  • 07:35:00 Nesta seção, aprendemos sobre técnicas de avaliação para clustering ou modelos de aprendizado não supervisionados. A primeira técnica introduzida é o índice de Dunn, que representa a maior distância entre clusters dividida pela distância mínima dentro dos clusters. O objetivo é ter um índice de Dunn alto, o que significa que a distância entre os clusters deve ser grande, enquanto a distância dentro dos clusters deve ser pequena. Essa técnica nos permite avaliar a qualidade do nosso modelo de agrupamento.

  • 07:40:00 Nesta seção, o instrutor discute técnicas de avaliação para modelos de agrupamento. O foco está no índice de Dunn, que é uma matriz de avaliação usada para determinar se o intracluster é grande e o intercluster é pequeno. O instrutor fornece a definição básica do índice de Dunn, que envolve a avaliação das distâncias máximas entre diferentes pontos de dados dentro e entre clusters. Outra técnica de avaliação discutida é o índice de Davies-Bouldin, que é semelhante ao índice de Dunn, mas com mais restrições. O instrutor também fornece uma definição de uma linha de agrupamento, que é o agrupamento de objetos ou elementos de uma maneira específica.

  • 07:45:00 Nesta seção, o palestrante explica a definição básica de agrupamento, que é o processo de organização de dados em grupos com base em semelhanças e diferenças. Existem dois casos de agrupamento: intracluster e intercluster, que medem a distância dentro de um cluster e a diferença entre todos os clusters, respectivamente. Em seguida, o palestrante discute diferentes tipos de agrupamento, incluindo agrupamento baseado em partição, que divide os dados em dois agrupamentos, e agrupamento hierárquico, que usa dendrogramas para visualizar o processo de agrupamento. O palestrante entra em mais detalhes sobre agrupamento aglomerativo e agrupamento divisivo dentro do agrupamento hierárquico, fornecendo um exemplo de dendrograma para ilustrar o processo.

  • 07:50:00 Nesta seção, o instrutor aborda diferentes tipos de clustering, incluindo clusters baseados em partições, hierárquicos, bem separados, baseados em centros e baseados em densidade. O instrutor explica que o clustering consiste em agrupar objetos semelhantes de forma que os objetos dentro de um cluster sejam semelhantes entre si e os objetos entre os clusters sejam diferentes. O instrutor também explica como avaliar o desempenho de modelos de agrupamento usando diferentes índices, incluindo o índice de Dunn e o índice de Davis-Bouldin. A próxima seção se concentrará no agrupamento k-means, um dos algoritmos baseados em centro.

  • 07:55:00 Nesta seção, o instrutor recapitula as subseções anteriores que abrangem aplicativos de aprendizado não supervisionado, tipos de agrupamento e a intuição e definição formal de agrupamento. O foco então muda para o algoritmo de agrupamento k-means, também conhecido como algoritmo de Lloyd, e seus vários recursos, como inicialização, centróides, hiperparâmetros, métricas de avaliação e limitações. O instrutor fornece uma visualização do algoritmo com dois centróides inicializados aleatoriamente e ilustra a etapa de atribuição seguida pela etapa de cálculo da média na primeira iteração.

Parte 9

  • 08:00:00 Nesta seção, o instrutor explica em detalhes o algoritmo de agrupamento k-means. O algoritmo envolve a inicialização de k centroides, atribuição de cluster, atualização dos clusters tirando a média e atualização do centroide atribuindo o ponto de dados mais próximo. Este processo é repetido até que os centróides não mudem, indicando que o algoritmo convergiu. O instrutor também menciona que o agrupamento k-means também é chamado de algoritmo de Lloyd e envolve a inicialização aleatória de centroides.

  • 08:05:00 Nesta seção, o palestrante explica as etapas para o algoritmo de agrupamento k-means. Eles primeiro selecionam o número de clusters (k) e, em seguida, atribuem cada ponto ao cluster mais próximo. Eles recalculam o centróide pegando a média e movendo-a, então repetem o processo até que os centróides parem de mudar. O objetivo da otimização é minimizar a função de custo, que pode ser calculada usando a distância euclidiana entre os pontos de dados e os centróides do cluster. A função de custo também é conhecida como SSE (erro quadrado da soma) e o objetivo é minimizar a variabilidade intra-cluster. O palestrante observa que outras métricas de distância além da euclidiana também podem ser usadas.

  • 08:10:00 Nesta seção, o instrutor explica por que a inicialização aleatória de centróides no agrupamento K-means pode causar problemas e apresenta o algoritmo K-means++ como uma solução. K-means++ envolve a seleção de vários centróides e a escolha daquele que minimiza a soma dos erros quadrados (SSE). O instrutor também apresenta o método do cotovelo, que é usado para determinar o número ideal de centróides com base em um gráfico de SSE versus o número de clusters. Recomenda-se usar o K-means++ e o método de cotovelo em vez da inicialização aleatória para obter melhores resultados de agrupamento no aprendizado de máquina.

  • 08:15:00 Nesta seção, o instrutor explica a técnica de avaliação para k-means, que envolve minimizar o intra-cluster calculando a distância entre os pontos dentro do cluster usando o erro quadrado da soma. A inicialização dos centróides tem impacto no algoritmo, e a técnica k-means++ é um método recomendado para selecionar centróides com base em múltiplas execuções com baixo SSE. O número de clusters pode ser determinado usando o método do cotovelo, onde o valor k ideal é o ponto onde o cotovelo gira. O instrutor também menciona algumas limitações do agrupamento k-means, como a sensibilidade a outliers, que podem ser resolvidas usando técnicas baseadas em densidade, como DBSCAN ou agrupamento hierárquico. A complexidade de tempo do clustering k-means depende do tamanho da entrada, número de clusters e dimensões. O instrutor recomenda o curso de domínio do DSA para entender melhor o conceito de complexidade de tempo.

  • 08:20:00 cluster com p1 e p2, e então adicionamos p4 a este cluster. Em seguida, mesclamos esse cluster em um e, finalmente, adicionamos p3 ao cluster para terminar com um cluster. Este é um exemplo de agrupamento hierárquico, que é uma técnica em que os pontos de dados são agrupados com base em suas semelhanças, formando uma hierarquia de agrupamentos. A subseção também abordará clustering aglomerativo e divisivo, bem como um cálculo manual do algoritmo.

  • 08:25:00 Nesta seção, o palestrante explica o agrupamento hierárquico e o processo de conversão de um agrupamento de números em uma hierarquia de agrupamentos. O exemplo dado mostra como os clusters são anexados uns aos outros com base na similaridade até que reste apenas um cluster. O palestrante então explica os dois tipos de clustering hierárquico - clustering aglomerativo e divisivo, e dá uma intuição por trás de ambos os métodos. O clustering aglomerativo é uma abordagem de baixo para cima, onde clusters mais semelhantes são anexados, enquanto o clustering divisivo é uma abordagem de cima para baixo, onde os clusters são divididos em clusters menores com base na similaridade.

  • 08:30:00 Nesta seção, o palestrante explica a intuição básica por trás do agrupamento hierárquico, que envolve a criação de uma hierarquia de números ou agrupamentos. O clustering pode ser feito em uma abordagem up-to-down ou down-to-up, dependendo do tipo de agrupamento, aglomerativo ou divisivo. O clustering aglomerativo envolve a fusão de diferentes clusters em um, enquanto o clustering divisivo envolve a divisão de um cluster em grupos únicos. O orador passa a explicar o algoritmo para clustering aglomerativo que envolve o cálculo de uma matriz de proximidade e a repetição do processo de fusão de clusters e atualização da matriz até que todos os clusters sejam cobertos. Por fim, o palestrante dá um exemplo de matriz aproximada com quatro pontos para ilustrar o conceito.

  • 08:35:00 Nesta seção, o palestrante explica como criar uma matriz de proximidade e um dendrograma usando um exemplo de pontos de dados. A matriz de proximidade ajuda a medir a similaridade entre dois pontos ou clusters, enquanto o dendrograma mostra a hierarquia dos clusters. O palestrante destaca os três métodos usados para medir a similaridade entre clusters, a saber, min, max e group average.

  • 08:40:00 Nesta seção, o instrutor discute dois métodos para mesclar clusters em agrupamento hierárquico: mínimo e máximo. A abordagem mínima envolve considerar a similaridade entre dois clusters como a distância mínima entre quaisquer dois pontos nos clusters. Os clusters com a menor distância são mesclados primeiro e o processo continua até que todos os pontos estejam em um único cluster. A abordagem máxima é semelhante, mas considera a semelhança entre dois clusters como a distância máxima entre quaisquer dois pontos nos clusters. O instrutor fornece um exemplo usando uma matriz de proximidade para ilustrar esses conceitos.

  • 08:45:00 Nesta seção, o instrutor explica o conceito de medida de similaridade intercluster média do grupo, que é outro tipo de medida de similaridade intercluster. Ele fornece uma equação para isso e mostra um dendrograma para explicar como funciona. O instrutor então discute as desvantagens da medida de distância mínima, afirmando que ela é sensível a valores discrepantes e sugere que os alunos consultem as páginas da Wikipédia para uma melhor compreensão. Ele também fornece complexidade de tempo e espaço para agrupamento aglomerativo, que é ordem de n quadrado para espaço e ordem de n quadrado log de n ou ordem de n cubo para complexidade de tempo. Por fim, ele conclui a seção incentivando os alunos a praticar com muitos projetos para consolidar sua compreensão do aprendizado de máquina.

  • 08:50:00 Nesta seção, o palestrante discute a seção de projeto do curso e apresenta o modelo de previsão de insuficiência cardíaca que será construído. O palestrante explica que o modelo preverá se uma pessoa morrerá com base em várias características, como idade, sexo, pressão arterial, diabetes e tabagismo. Os dados deste projeto estão disponíveis em um link fornecido, e o palestrante explica que o objetivo comercial deste projeto é construir um sistema de IA de saúde que ajudará na detecção precoce de problemas de saúde para salvar vidas. Além disso, o palestrante menciona que também será apresentado no curso um projeto de sistema de detecção de spam. O alto-falante importa as bibliotecas necessárias, carrega os dados e imprime a forma dos dados.

  • 08:55:00 Nesta seção, aprendemos sobre os fundamentos da exploração dos dados, como verificar a forma dos dados e suas informações. Usando o método info(), podemos ver se existem valores nulos, o tipo de dados e o uso de memória. Também podemos usar o método describe() para obter informações sobre a distribuição estatística dos dados numéricos. A análise exploratória de dados (EDA) é uma etapa essencial no aprendizado de máquina, onde fazemos perguntas aos dados e encontramos respostas para ajudar no fornecimento de soluções de negócios. Para este problema de classificação binária, examinaremos a distribuição de classes, onde '1' significa que a pessoa morreu e '0' significa que a pessoa está viva.

Parte 10

  • 09:00:00 Nesta seção do vídeo, o instrutor discute a questão dos dados desbalanceados no aprendizado de máquina. O trecho de código mostra a distribuição dos dados onde há 203 casos vivos e 96 casos mortos, o que é desequilibrado. Dados desbalanceados significam que os dados não são distribuídos igualmente entre as classes, e isso pode fazer com que o modelo seja enviesado para certas classes. O instrutor explica que dados desequilibrados são um grande problema no aprendizado de máquina, onde o modelo pode ser mais propenso a ser treinado na classe majoritária e prever essa classe com mais frequência.

  • 09:05:00 Nesta seção, o palestrante explica o conceito de dados balanceados e como os modelos funcionam melhor com eles, pois são mais robustos e imparciais. Eles então mostram várias maneiras pelas quais os dados podem ser analisados, como distribuição de idade e filtragem de dados com base em certas condições. O palestrante demonstra um código python para selecionar linhas onde a idade está acima de 50 anos e ver se a pessoa morreu ou não. Eles usam gráficos de pizza para visualizar os dados e responder a questões de negócios, como o número total de casos de morte sendo duas vezes menor do que casos vivos e que a maior parte da idade sobe de 40 para 95 anos.

  • 09:10:00 Nesta seção, o instrutor analisa um trecho de código em Python onde calcula o número total de casos de dieta e casos sem dieta. Eles descobrem que, de um total de 203 casos, a maioria dos casos são casos de dieta, mas mais de 50 deles têm mais de 50 anos e morreram. O instrutor passa a explicar como eles podem responder a mais perguntas com base nesses dados e representá-los visualmente para facilitar a compreensão. Por fim, o instrutor verifica a correlação entre as variáveis e fornece um gráfico para explicar o que significa correlação.

  • 09:15:00 Nesta seção, o instrutor explica a correlação e como ela varia de menos um a mais um. Uma variável mais próxima de menos um significa que ela é muito semelhante, enquanto um valor mais próximo de zero significa que não há transmissão linear. A correlação de Pearson é uma forma de determinar se os dados são lineares ou não, e quanto mais próxima de um for a correlação, mais positivamente correlacionados os dados serão. O instrutor fala sobre correlação perfeita e como as diagonais são todas iguais, o que significa que os quadrados estão correlacionados com cada variável em si. Depois de discutir os dados e entender, o instrutor passa para o desenvolvimento do conjunto de dados e como dividir os dados em conjuntos de treinamento e teste para validar o modelo funciona melhor. O instrutor fornece um exemplo de engenharia de recursos, que é adicionar mais recursos com variáveis categóricas e aplicar transformações nos dados para inserir recursos. Um termo de interação é adicionar o produto de dois recursos, e o instrutor mostra como iterar por todas as colunas e multiplicar as duas colunas.

  • 09:20:00 Nesta seção, o apresentador discute o processo de construção de um modelo e avalia sua exatidão, precisão, recuperação e matriz de confusão. O apresentador usa um algoritmo chamado algoritmo de otimização para restringir um conjunto de dados com 10.000 pontos de dados e dez recursos. Eles explicam como a descida do gradiente estocástico funciona e como ela pode ser usada para minimizar o tempo de computação. Além disso, eles explicam termos-chave como 'verdadeiro positivo' e 'classe positiva', que são importantes para entender o desempenho geral do modelo.

  • 09:25:00 Nesta seção, o palestrante explica os conceitos de verdadeiro positivo, falso positivo, verdadeiro negativo e falso negativo, e como eles são usados para criar uma matriz de confusão, que mostra o número de instâncias classificadas corretamente para positivo e classes negativas em um modelo. O palestrante também discute precisão e revocação, que respondem a diferentes perguntas sobre a precisão de previsões positivas e suas ocorrências reais. O palestrante demonstra o uso de regressão logística e classificadores de vetores de suporte com amplo ajuste fino, bem como classificadores de árvore de decisão, usando pesquisa aleatória para otimização de parâmetros. As pontuações de treinamento e teste para cada classificador também são apresentadas.

  • 09:30:00 Nesta seção do vídeo, o instrutor explica como construir um sistema detector de spam e ham usando um conjunto de dados baixado do repositório UCI. Os dados estão em formato de tabela, e o instrutor os lê e separa com base em uma guia, com os cabeçalhos definidos como nenhum e as colunas rotuladas como 'rótulo' e 'mensagens'. O objetivo é classificar as mensagens como spam ou não spam (ham), e o instrutor percorre o processo de ajuste fino de diferentes modelos (como um classificador de floresta aleatória e um classificador XGBoost) para conseguir isso. O instrutor também destaca a importância da seleção de recursos e mostra como salvar o modelo XGBoost para uso futuro. No geral, este é um projeto interessante que demonstra como o aprendizado de máquina pode ser usado para resolver problemas do mundo real.

  • 09:35:00 Nesta seção do vídeo, o apresentador passa pelo processo de exploração e análise de um conjunto de dados de mensagens de texto baixadas de um repositório UCI. O objetivo é construir um modelo de aprendizado de máquina que possa diferenciar entre mensagens spam e não spam. O apresentador explica que os dados do texto precisam ser convertidos em números para o modelo trabalhar e demonstra como usar um vetorizador de texto para isso. Eles então exploram a distribuição das classes, observando que o conjunto de dados está desequilibrado com mais mensagens não spam do que mensagens spam. Por fim, explicam a importância da limpeza dos dados do texto, pois pequenas diferenças na ortografia ou no uso de maiúsculas podem levar a classificações incorretas.

  • 09:40:00 Nesta seção, o instrutor explica o processo de pré-processamento de texto, que envolve a conversão de todo o texto em minúsculas, substituindo certos caracteres como 0 e 3 por equivalentes de texto significativos e removendo caracteres desnecessários. O instrutor também sugere explorar a lematização e a lematização para uma redução significativa de palavras no texto. Um exemplo é fornecido usando lambda para aplicar o pré-processamento de texto a cada mensagem, que é armazenado em uma nova coluna chamada "texto processado".

  • 09:45:00 Nesta seção, o palestrante fala sobre pré-processamento de texto e aplicação de lematização usando o lematizador de Porter para reduzir a inflexão nas palavras. O palestrante também menciona a engenharia de recursos, onde a mão é codificada para zero e expandida para um chamando o método map. O conjunto de treinamento é então convertido em word embeddings, que convertem palavras em números usando técnicas como count vectorizer, tf-idf vectorizer e bag of words. O texto é convertido em uma matriz esparsa com elementos armazenados, que é então usado no algoritmo Naive Bayes para classificação. Por fim, o palestrante dá um exemplo de como testar um novo texto chamando o vetorizador de contagem e o modelo para determinar se é spam ou não.

  • 09:50:00 Nesta seção do vídeo, o palestrante demonstra como construir um sistema básico de detecção de spam e ham usando técnicas de processamento de linguagem natural (NLP), como contagem de transformação vetorial e previsão de Naive Bayes. O sistema recebe as mensagens como entrada, pré-processa-as e prevê se são spam ou não. O palestrante enfatiza que esta é apenas uma amostra de como trabalhar com dados em PNL, e que existem várias outras técnicas que podem ser utilizadas. O palestrante conclui o curso e parabeniza os espectadores por concluí-lo.
 

Machine Learning para Todos – Curso Completo



Machine Learning para Todos – Curso Completo

00:00:00 - 01:00:00 Esta parte do vídeo discute os fundamentos do aprendizado de máquina, incluindo aprendizado supervisionado e não supervisionado. Ele também aborda os diferentes modelos disponíveis e como usá-los. Por fim, explica como medir o desempenho de um modelo de aprendizado de máquina.

01:00:00 - 02:00:00 Esta parte explica como usar o aprendizado de máquina para prever resultados de eventos. Ele discute regressão linear, regressão logística e máquinas de vetores de suporte. Ele também explica como usar uma pesquisa de grade para treinar um modelo de aprendizado de máquina.

02:00:00 - 03:00:00 Esta parte aborda os fundamentos do aprendizado de máquina, incluindo regressão linear e retropropagação. Ele explica como normalizar dados e ajustar um modelo de regressão linear usando a biblioteca TensorFlow.

03:00:00 - 03:50:00 Este vídeo apresenta os conceitos de aprendizado de máquina, incluindo aprendizado supervisionado e não supervisionado. Ele demonstra como usar uma regressão linear e uma rede neural para fazer previsões. O apresentador também explica como usar o aprendizado de máquina para agrupar dados.


Parte 1

  • 00:00:00 Neste vídeo, Kylie Ying explica os modelos de aprendizado supervisionado e não supervisionado, como eles funcionam e como programá-los no Google Colab.

  • 00:05:00 Este resumo de 1 parágrafo explica o aprendizado supervisionado, que é um tipo de aprendizado de máquina em que o computador recebe um conjunto de entradas e é solicitado a prever o rótulo de uma determinada entrada.

  • 00:10:00 O aprendizado supervisionado é o processo de atribuir um rótulo aos dados de entrada para treinar um modelo de aprendizado de máquina. O modelo então produzirá uma previsão para a entrada fornecida. O aprendizado não supervisionado é o processo de usar dados não rotulados para aprender sobre padrões nos dados. No aprendizado por reforço, um agente é treinado em um ambiente interativo baseado em recompensas e penalidades.

  • 00:15:00 Este vídeo discute o aprendizado de máquina, suas várias aplicações e os vários tipos de dados com os quais ele pode lidar. Ele também cobre aprendizado supervisionado e não supervisionado e regressão.

  • 00:20:00 Neste vídeo, o instrutor explica como o aprendizado de máquina funciona e como usá-lo para prever resultados em um conjunto de dados. O instrutor também discute como ajustar a precisão de um modelo de aprendizado de máquina após o treinamento.

  • 00:25:00 Este vídeo discute o conceito de perda e como isso afeta o desempenho de um modelo de aprendizado de máquina. A perda é uma medida de quão longe uma previsão de um modelo de aprendizado de máquina está do rótulo real fornecido em um determinado conjunto de dados. Existem várias funções de perda disponíveis, cada uma com suas próprias vantagens e desvantagens. Por fim, o vídeo discute como calcular e verificar o desempenho de um modelo de aprendizado de máquina.

  • 00:30:00 O vídeo discute como usar o aprendizado de máquina para prever rótulos de classe de um conjunto de dados. O conjunto de dados inclui 10 feições, cada uma correspondendo a uma classe. Os histogramas são usados para comparar visualmente as distribuições dos recursos entre as classes. O vídeo termina com uma discussão sobre como os dados podem ser melhorados.

  • 00:35:00 Neste vídeo, o instrutor explica como usar técnicas de aprendizado de máquina para criar um conjunto de treinamento, validação e teste. O instrutor demonstra como dimensionar um conjunto de dados para tornar os valores mais comparáveis e, em seguida, cria uma função para transformar valores x. Por fim, o instrutor cria um array numpy 2d e chama a função hstack para empilhar os arrays lado a lado.

  • 00:40:00 Neste vídeo, o instrutor discute os diferentes modelos de aprendizado de máquina disponíveis e como usá-los no código. Entre os modelos discutidos estão k-vizinhos mais próximos, regressão linear e uma rede neural.

  • 00:45:00 Neste vídeo, o instrutor Alan Siegel analisa os fundamentos do aprendizado de máquina, incluindo o uso de uma função de distância e o uso de algoritmos de vizinho mais próximo. Ele explica que, na classificação binária, o algoritmo do vizinho mais próximo usará um valor "k" para determinar qual ponto é o rótulo "mais" ou "menos". Ele mostra como isso pode ser aplicado a um conjunto de dados de propriedade de carro e filhos, demonstrando como o algoritmo do vizinho mais próximo pode determinar qual ponto é o rótulo "mais" ou "menos" para um determinado ponto de dados.

  • 00:50:00 Este vídeo discute como usar o aprendizado de máquina para prever a localização de um ponto. O vídeo explica como usar um algoritmo de k vizinhos mais próximos para encontrar o ponto mais próximo. O vídeo também explica como usar um relatório de classificação para determinar a classificação do ponto.

  • 00:55:00 Neste vídeo, é explicado um modelo de aprendizado de máquina. O modelo tem uma precisão de 82%, uma precisão de 77% e um recall de 89%. O modelo é descrito como naive bayes, que é um modelo simples de aprendizado de máquina.


Parte 2

  • 01:00:00 A regra de Bayes é uma fórmula matemática usada para calcular a probabilidade de eventos dado que outros eventos já ocorreram. Neste exemplo, a regra de Bayes é usada para calcular a probabilidade de uma doença dado um teste positivo.

  • 01:05:00 Este vídeo aborda os fundamentos do aprendizado de máquina, com foco na inferência bayesiana. O apresentador demonstra como aplicar a inferência bayesiana a problemas de classificação e discute as várias distribuições de probabilidade envolvidas.

  • 01:10:00 Neste vídeo é explicada uma regra para naive bayes, e é mostrado que a probabilidade de um determinado evento, dado um conjunto de dados, é proporcional à soma das probabilidades dos eventos individuais.

  • 01:15:00 Este vídeo explica como o aprendizado de máquina pode ser usado para prever resultados de eventos, como se vai ou não chover durante uma partida de futebol ou que dia é hoje. O vídeo passa a discutir a regressão logística, que é uma técnica de aprendizado de máquina mais avançada. O vídeo mostra como a linha de regressão pode ser usada para prever a probabilidade de resultados diferentes. O vídeo termina com uma demonstração de como a regressão logística pode ser usada para prever se um aluno passará ou não em um determinado teste.

  • 01:20:00 Neste vídeo, o instrutor explica como usar a regressão linear para estimar a probabilidade de um classificador estar correto. Para fazer isso, eles primeiro precisam reescrever a equação como p igual a mx mais b. Essa equação pode assumir uma faixa de infinito negativo a infinito, mas deve ficar entre zero e um. Para encontrar p, eles removem o logaritmo das probabilidades, o que lhes dá p sobre um menos a probabilidade.

  • 01:25:00 Neste vídeo, o apresentador discute três tipos de modelos de aprendizado de máquina: regressão linear, regressão logística e máquinas de vetores de suporte. O apresentador demonstra como usar cada modelo e fornece exemplos de como cada um pode ser usado.

  • 01:30:00 Neste vídeo, o instrutor discute como funciona o aprendizado de máquina e os diferentes tipos de algoritmos disponíveis. Ele também discute como maximizar as margens de uma máquina de vetor de suporte (SVM) usando pontos de dados que ficam nas linhas de margem.

  • 01:35:00 Neste vídeo, o autor discute diferentes modelos de aprendizado de máquina, incluindo máquinas de vetor de suporte (SVMs), redes neurais e regressão logística. Ele mostra que as SVMs são as mais precisas das três e que as redes neurais podem ser ainda mais precisas que as SVMs.

  • 01:40:00 No aprendizado de máquina, um neurônio é uma unidade básica de representação em uma rede neural. As características de entrada de um neurônio são multiplicadas por um peso, e a soma de todas essas entradas multiplicadas é então inserida no neurônio. A função de ativação do neurônio altera o estado linear de suas entradas com base no erro associado às suas previsões. O algoritmo de descida de gradiente é usado para seguir a inclinação da função quadrática em direção a um erro menor.

  • 01:45:00 Neste vídeo, o instrutor explica como funciona o aprendizado de máquina e como programar uma rede neural usando o TensorFlow. Ele passa a mostrar como criar uma rede neural sequencial e como calcular a perda em relação a um peso.

  • 01:50:00 Neste vídeo, o apresentador demonstra como usar algoritmos de aprendizado de máquina com o TensorFlow. Primeiro, eles importam o TensorFlow e criam um modelo de rede neural. Em seguida, eles definem a ativação das camadas e configuram as métricas de perda e precisão. Por fim, eles treinam o modelo usando um treinamento de 100 épocas e uma divisão de validação de 32 épocas.

  • 01:55:00 Neste vídeo, o autor explica como treinar um modelo de aprendizado de máquina usando uma pesquisa em grade. Ele também discute a importância dos hiperparâmetros e como configurá-los.


Parte 3

  • 02:00:00 Este tutorial em vídeo mostra como usar o aprendizado de máquina para previsão e classificação. O vídeo aborda os fundamentos do treinamento de um modelo de aprendizado de máquina, registrando o histórico do modelo e plotando o desempenho do modelo.

  • 02:05:00 Este vídeo demonstra como criar um modelo de menor perda para uma rede neural usando uma técnica chamada casting. O modelo funciona de forma semelhante a um modelo usando um SVM, e o vídeo também demonstra como criar um relatório de classificação usando a saída da rede.

  • 02:10:00 Neste vídeo, o autor explica a regressão linear e como calcular o resíduo. O resíduo é a distância entre a previsão e o ponto de dados real e é usado para determinar a linha de melhor ajuste para a linha de regressão.

  • 02:15:00 O vídeo discute os conceitos de linearidade e independência e mostra como essas suposições podem ser violadas em conjuntos de dados não lineares. Em seguida, discute as suposições de normalidade e homocedasticidade e como elas podem ser avaliadas usando gráficos de resíduos.

  • 02:20:00 A medida do erro absoluto médio nos diz, em média, quão longe nossas previsões estão dos valores reais em nosso conjunto de treinamento.

  • 02:25:00 O erro quadrático médio (MSE) é uma medida do desempenho de uma previsão e está intimamente relacionado ao erro absoluto médio. O RMSE é calculado pela soma de todos os quadrados dos resíduos e é usado para medir o desempenho de uma previsão em relação ao seu valor esperado.

  • 02:30:00 Este curso em vídeo de 1 hora aborda os fundamentos do aprendizado de máquina, incluindo regressão linear. O curso aborda o tópico de resíduos e como usá-los para determinar a melhor linha de ajuste para um conjunto de dados.

  • 02:35:00 Este vídeo apresenta o conceito de aprendizado de máquina e como usar várias bibliotecas e conjuntos de dados. Em seguida, explica como usar um quadro de dados para representar os dados e como analisá-los.

  • 02:40:00 O vídeo discute como usar o aprendizado de máquina para prever a contagem de bicicletas em diferentes momentos do dia. Ele mostra como criar um conjunto de treinamento, validação e teste e como usar a função numpy.split para dividir o quadro de dados em diferentes grupos.

  • 02:45:00 O vídeo discute como o aprendizado de máquina pode ser usado para resolver problemas. O instrutor fornece um exemplo de uso de aprendizado de máquina para prever a temperatura e fornece informações sobre como calcular os coeficientes de regressão e pontuar o modelo.

  • 02:50:00 Neste vídeo, o criador demonstra como usar o aprendizado de máquina para melhorar o desempenho de um modelo de regressão linear em um novo conjunto de dados.

  • 02:55:00 Neste vídeo, o apresentador explica como construir um modelo de regressão linear em Python usando a biblioteca TensorFlow. Eles explicam que é útil normalizar os dados antes de treinar o modelo e, em seguida, ajustar o modelo usando retropropagação. Eles mostram como plotar a perda do modelo ao longo do tempo e como o modelo convergiu para um bom ajuste.


Parte 4

  • 03:00:00 Este vídeo explica os conceitos de aprendizado de máquina de uma forma acessível a todos. O instrutor demonstra como usar uma rede neural para prever valores de um conjunto de dados e demonstra o efeito da alteração de vários parâmetros.

  • 03:05:00 Este vídeo aborda os fundamentos do aprendizado de máquina, incluindo a história da regressão linear e como usar uma rede neural. O apresentador então demonstra como calcular o erro quadrático médio para uma regressão linear e uma rede neural e compara os resultados.

  • 03:10:00 Neste vídeo, o instrutor explica como funciona o aprendizado supervisionado e não supervisionado. Ele discute como uma regressão linear e uma rede neural podem ser usadas para fazer previsões.

  • 03:15:00 Neste vídeo, o apresentador explica como usar o aprendizado de máquina para dividir os dados em três clusters. Eles então usam essas informações para calcular novos centróides e criar novos clusters.

  • 03:20:00 Este vídeo discute dois tipos de aprendizado de máquina: aprendizado não supervisionado, que procura padrões em dados, e aprendizado supervisionado, que usa um conjunto de treinamento para aprender como prever resultados futuros. As técnicas de aprendizado não supervisionado incluem maximização de expectativa e análise de componentes principais, que reduzem a dimensionalidade ao encontrar os componentes principais dos dados. Técnicas de aprendizado supervisionado incluem regressão linear e inferência bayesiana.

  • 03:25:00 O aprendizado de máquina é um campo de análise de dados que ajuda a fazer previsões sobre dados desconhecidos. Neste curso, o instrutor explica como usar a análise de componentes principais (PCA) para reduzir a dimensionalidade de um conjunto de dados. Isso permite uma visualização e discriminação mais fáceis dos pontos de dados.

  • 03:30:00 Neste vídeo, o apresentador apresenta o conceito de regressão linear e sua aplicação a dados bidimensionais (2D). Em seguida, eles introduzem o conceito de análise de componentes principais (PCA), que é uma técnica usada para reduzir um conjunto de dados às suas dimensões mais relevantes. Por fim, eles discutem o uso do aprendizado não supervisionado no aprendizado de máquina.

  • 03:35:00 Este vídeo discute como usar aprendizado de máquina para classificação usando aprendizado não supervisionado. O apresentador mostra como usar pandas para importar dados e, em seguida, plota os dados uns contra os outros para ver os resultados. Eles concluem discutindo a aparência de alguns dos dados e sugerem que o clustering pode ser melhorado usando um classificador diferente.

  • 03:40:00 O vídeo ensina como usar algoritmos de aprendizado de máquina para agrupar dados.

  • 03:45:00 Neste vídeo, um especialista em aprendizado de máquina discute como aplicar várias técnicas de aprendizado de máquina para resolver problemas específicos. O vídeo também aborda análise de cluster e PCA.

  • 03:50:00 Este vídeo explica o aprendizado de máquina e suas várias etapas, incluindo o aprendizado não supervisionado. Ele também aborda como fazer clustering usando k-means. O vídeo termina com uma discussão sobre aprendizado supervisionado e seus vários estágios, incluindo classificação e regressão.
 

Curso rápido do TensorFlow 2.0


Curso rápido do TensorFlow 2.0

O vídeo "TensorFlow 2.0 Crash Course" aborda os conceitos básicos de redes neurais e sua arquitetura, com foco na classificação de imagens. O instrutor usa um jogo de cobra e um conjunto de dados mnist de moda como exemplos para treinar a rede neural por meio do processo de ajuste de pesos e vieses com base nas funções de perda. O vídeo mostra a importância do pré-processamento de dados e do uso de funções de ativação, como sigmoid e ReLU, para criar modelos mais complexos. O palestrante também enfatiza a importância dos dados de teste e treinamento e demonstra como carregar e modificar dados de imagem para o modelo. Por fim, o apresentador mostra como definir a arquitetura de um modelo em Keras, treiná-lo usando métodos de compilação e ajuste e fazer previsões sobre imagens específicas usando "model.predict".

A segunda parte do tutorial em vídeo aborda vários aspectos da criação de uma rede neural básica que pode classificar itens de moda e realizar análises de sentimento em resenhas de filmes. Começando com o carregamento e preparação de dados para treinamento, o tutorial explica a importância do pré-processamento de dados e da normalização dos comprimentos das sequências de entrada. O tutorial cobre a criação de uma arquitetura de modelo adequada, incluindo o uso de diferentes camadas, como incorporação e camadas densas. Por fim, o tutorial explica como ajustar hiperparâmetros, validar o modelo, salvar e carregar modelos e avaliar o desempenho do modelo em dados externos. No geral, o tutorial fornece uma estrutura essencial para construir um conhecimento de rede neural mais avançado. Também cobre diferentes tópicos relacionados ao TensorFlow 2.0, incluindo codificação de dados para o modelo, execução de um modelo salvo para previsão e instalação da versão GPU do TensorFlow 2.0 no Ubuntu Linux. Na seção de codificação, o apresentador percorre o processo de corte e limpeza de dados para garantir o mapeamento de palavras adequado e a criação de uma função de pesquisa para codificar os dados para previsão. Em seguida, eles demonstram a importância de preparar os dados de entrada no formato correto para o modelo processar, antes de passar para um tutorial sobre a instalação da versão GPU do TensorFlow 2.0 em um sistema Linux, aconselhando o público a ter paciência devido ao tamanho dos downloads envolvidos .

  • 00:00:00 Nesta seção, o instrutor apresenta o conceito de redes neurais e como elas funcionam. As redes neurais são compostas por camadas interconectadas de neurônios, semelhante à forma como os neurônios em nossos cérebros funcionam. Esses neurônios podem disparar ou não, e as conexões entre eles determinam quando eles disparam e quais outros neurônios eles podem causar o disparo. Uma rede neural funciona recebendo entrada de uma camada de neurônios e passando-a por uma ou mais camadas ocultas antes de produzir a saída da camada final. A arquitetura de uma rede neural pode variar dependendo do tipo de problema que está sendo usado para resolver, mas uma abordagem comum é usar uma rede neural totalmente conectada, na qual cada neurônio de uma camada está conectado a todos os neurônios da próxima camada. O instrutor enfatiza a importância de entender a matemática por trás das redes neurais para poder criar redes bem-sucedidas e complexas.

  • 00:05:00 Nesta seção, o instrutor explica os fundamentos das redes neurais e como elas funcionam na resolução de um problema. Ele constrói uma rede neural simples usando quatro entradas e uma saída que é treinada para manter uma cobra viva em um jogo. A entrada é se há um obstáculo à frente, à esquerda e à direita da cobra, e a direção de movimento recomendada que possui três valores diferentes: -1 para esquerda, 0 para reto e 1 para direita. Quando recebe uma entrada, a rede neural dá como saída 0 ou 1, representando se a direção recomendada deve ou não ser seguida. Ele é projetado para seguir a direção recomendada se puder manter a cobra viva, caso contrário, não a seguirá.

  • 00:10:00 Nesta seção, o palestrante discute a arquitetura das redes neurais e como elas funcionam. As camadas de entrada e saída são conectadas por meio de pesos, e a saída é determinada pela soma ponderada dos valores multiplicados por esses pesos, com um valor de viés incluído também. A rede é então treinada inserindo uma grande quantidade de dados e ajustando os vieses e pesos para produzir saídas precisas. Se a saída estiver correta, nenhum ajuste é feito, mas se estiver incorreta, a rede ajusta os pesos e desvios para melhorar a precisão.

  • 00:15:00 Nesta seção, o instrutor explica o processo de treinamento de uma rede neural, no qual as informações são passadas pela rede para que ela possa ajustar pesos e vieses para obter respostas mais corretas. A rede começa com pesos e vieses aleatórios e os ajusta iterativamente até atingir um alto nível de precisão. As funções de ativação, funções não lineares que adicionam complexidade à rede, são então introduzidas. A função de ativação sigmoide em particular é descrita como mapeando qualquer valor de entrada entre um e um negativo, permitindo saídas dentro de um determinado intervalo. Isso introduz mais complexidade e riqueza à rede.

  • 00:20:00 Nesta seção, o palestrante discute as funções de ativação e seu papel nas redes neurais. Essas funções permitem mais complexidade no modelo, permitindo funções não lineares, que são melhores na aproximação de dados do mundo real. Sigmoid é uma das funções básicas de ativação que transforma a saída em um intervalo de 0 a 1. Uma função usada mais recentemente é a Rectified Linear Unit (ReLU), que define valores negativos como 0 e torna os valores positivos mais positivos, mantendo assim os dados pontos dentro de um intervalo de 0 a infinito positivo. O palestrante também explica que as funções de perda são críticas para entender como os pesos e vieses nos modelos precisam ser ajustados. Eles calculam o erro entre a saída prevista e a saída real, permitindo um ajuste e ajuste mais eficientes.

  • 00:25:00 Nesta seção, o palestrante explica o conceito de redes neurais e como as camadas ocultas podem ser usadas para criar modelos mais complexos que podem resolver problemas difíceis. O vídeo também enfoca a importância dos dados e como eles precisam ser pré-processados e colocados na forma correta antes de serem enviados para um array. O palestrante está trabalhando no tutorial 2.0 do TensorFlow, mas adiciona informações adicionais que podem ser confusas para quem é novo em redes neurais. O tutorial usa o conjunto de dados fashion mnist, que contém imagens de itens de vestuário, como exemplo para classificação de imagens. O vídeo termina mostrando aos espectadores como instalar o TensorFlow 2.0 e o matplotlib.

  • 00:30:00 Nesta seção, o vídeo aborda os pacotes necessários a serem instalados, como tensorflow, keras, numpy e matplotlib para gráficos e exibição de imagens. O vídeo também explica a diferença entre dados de teste e treinamento, onde cerca de 90-80% dos dados são passados para a rede para treiná-los, e os dados restantes são usados para testar a precisão e garantir que a rede não esteja simplesmente memorizando o dados. O vídeo usa Keras para dividir o conjunto de dados em dados de treinamento e teste com rótulos. Por fim, o vídeo fornece informações sobre a representação do rótulo, com cada imagem tendo um rótulo específico atribuído a ela entre 0 e 9.

  • 00:35:00 Nesta seção, o instrutor demonstra como carregar e modificar os dados de imagem para o modelo TensorFlow 2.0. Ele cria uma lista de nomes de rótulos, mostrando o que cada número de rótulo representa. Ele então usa a biblioteca Matplotlib para exibir as imagens e explica que são arrays de 28x28 pixels. Os valores de pixel são divididos por 255 para reduzir o tamanho dos dados, facilitando o trabalho no modelo. Os dados modificados, compostos por valores decimais, são carregados no modelo, que irá prever a turma, ou seja, o número do rótulo, entre 0 e 9. O instrutor conclui mencionando que fará uma demonstração de configuração, treinamento e teste do modelo no próxima seção.

  • 00:40:00 Nesta seção do Crash Course do TensorFlow 2.0, o palestrante explica a arquitetura de uma rede neural para classificação de imagens. A entrada é uma matriz de 28x28 pixels com valores em escala de cinza, que é achatada em uma lista de 784 pixels para alimentar a camada de entrada da rede neural. A camada de saída tem 10 neurônios, cada um representando uma das 10 classes (0-9). O objetivo é fazer com que o neurônio mais ativado represente a classe prevista. O palestrante também aborda as camadas ocultas, enfatizando que uma rede de duas camadas é possível, mas não é ideal para tarefas de reconhecimento de imagem mais complexas.

  • 00:45:00 Nesta seção do curso rápido do TensorFlow 2.0, o instrutor explica o conceito de camadas ocultas em redes neurais. Ao adicionar uma camada oculta com 128 neurônios, a rede pode analisar a imagem e identificar padrões que podem ajudar a reconhecer melhor a imagem. A seleção de 128 neurônios é um tanto arbitrária, e o número de neurônios para uma camada oculta depende da aplicação. O instrutor então passa a definir a arquitetura ou camadas para o modelo em Keras. A arquitetura inclui uma camada de entrada achatada, duas camadas densas ou totalmente conectadas e uma camada de saída com 10 neurônios e ativação softmax para fornecer a probabilidade de a rede reconhecer uma determinada classe.

  • 00:50:00 Nesta seção, o vídeo explica o processo de configuração de parâmetros para um modelo e seu treinamento usando os métodos "compilar" e "ajustar" no TensorFlow 2.0. Isso inclui definir o otimizador, a função de perda e as métricas a serem usadas no modelo compilado antes de definir o número de épocas para treinamento. O vídeo também fornece uma explicação simples sobre o que são as épocas e como elas influenciam a precisão do modelo. Depois de executar o arquivo, a precisão do teste do modelo é avaliada e acaba sendo 87, um pouco menor que a precisão do treinamento.

  • 00:55:00 Nesta seção, o apresentador demonstra como usar o modelo para fazer previsões sobre imagens específicas. Ele explica que você precisa usar o método "model.predict" e passar uma lista ou um array np que inclua a forma de entrada das imagens. O método fornecerá a você um grupo de previsões, pois espera que você passe várias coisas diferentes e prevê todas elas usando o modelo. A saída é uma série de listas diferentes, cada uma contendo as previsões do modelo para uma imagem específica. O apresentador destaca que esse recurso às vezes é negligenciado em vídeos tutoriais, mas é importante entender como usar o modelo de forma prática.
  • 01:00:00 Nesta seção, o palestrante mostra como interpretar e validar previsões de rede usando a função np.argmax() que encontra o índice do maior número em uma lista. Eles pegam o valor dessa função e o passam para nomes de classe para obter o nome real da classe prevista. O locutor passa a configurar um loop for básico para exibir várias imagens das imagens de teste e mostra a previsão correspondente para cada uma delas. Eles mostram como isso pode ser usado para validar se o modelo está prevendo com precisão e se a previsão faz sentido em relação à imagem de entrada exibida. Por fim, o palestrante observa uma solução rápida para um erro que encontrou.

  • 01:05:00 Nesta seção, o tutorial em vídeo demonstra como criar um modelo simples que pode classificar itens de moda, como uma camisa ou camiseta, usando o TensorFlow 2.0. O tutorial percorre o processo de previsão para várias imagens e como prever para uma imagem. O modelo é baseado em um problema de classificação simples e é projetado para fornecer uma visão geral das redes neurais básicas. Nos próximos vídeos, o conteúdo ficará mais avançado e abordará questões com dados reais. Embora os dados usados neste tutorial sejam simples, carregar e pré-processar grandes conjuntos de dados pode ser um desafio, e ajustes serão necessários para torná-los utilizáveis. No entanto, o tutorial fornece uma estrutura fácil de seguir, oferecendo uma base sólida para construir o conhecimento de redes neurais.

  • 01:10:00 Nesta seção, o autor do tutorial explica como carregar dados e prepará-los para treinamento, dividindo-os em conjuntos de treinamento e teste. Eles introduzem o conceito de palavras codificadas com números inteiros e como elas representam resenhas de filmes. O autor então explica que esses números correspondem a certas palavras e mostra como mapear esses inteiros de volta para suas respectivas palavras. Eles também demonstram a criação de um índice de palavras que atribui um número inteiro exclusivo a cada palavra no conjunto de dados. Por fim, eles adicionam chaves especiais ao índice de palavras e explicam como serão usadas nas partes posteriores do tutorial.

  • 01:15:00 Nesta seção, o palestrante está explicando o processo de atribuição de valores para preenchimento, início, palavras desconhecidas e não utilizadas para suas respectivas chaves no conjunto de dados de treinamento e teste. Eles adicionam uma tag de preenchimento para fazer com que todos os conjuntos de revisão do filme tenham o mesmo tamanho, adicionando palavras de preenchimento ao final de uma lista para fazer com que toda a revisão do filme tenha o mesmo tamanho. Para criar um dicionário que permita que os números inteiros apontem para uma palavra em vez do contrário, a lista de índice de palavras reversa é usada para inverter os valores nas chaves para conseguir isso. Por fim, o palestrante explica a função para decodificar dados de treinamento e teste em palavras legíveis por humanos usando uma string em branco unida e um índice de palavra reverso.

  • 01:20:00 Nesta seção, o tutor explica como normalizar ou definir um comprimento definido para todas as revisões usando tags de preenchimento para identificar o comprimento das revisões. O tutor explica que é impossível determinar o comprimento dos neurônios de entrada porque o conjunto de dados pode ter tamanhos diferentes, então uma tag de preenchimento é usada para resolver essa limitação. O tutor demonstra como usar as funções do Tensorflow, como pré-processamento e sequência, para preencher as sequências em um comprimento específico ou normalizar todas as sequências em um comprimento definido pelo usuário. Finalmente, o tutor fornece uma recapitulação de toda a seção e destaca os diferentes mecanismos usados para carregar, codificar, decodificar e pré-processar os dados.

  • 01:25:00 Nesta seção, o videoinstrutor continua com o pré-processamento dos dados e finaliza para que seja uma forma consistente que possa ser aceita pelo modelo. Depois de verificar a consistência dos dados, o vídeo passa para a definição da arquitetura do modelo. O instrutor explica o uso de várias camadas, como incorporação, agrupamento de média global 1D e camadas densas com diferentes funções de ativação. Eles também discutem como a saída do modelo será um único neurônio com valor entre 0 e 1, indicando a probabilidade da revisão ser positiva ou negativa. O vídeo termina discutindo a importância das incorporações de palavras e como elas ajudam no entendimento da arquitetura do modelo.

  • 01:30:00 Nesta seção, o palestrante discute o conceito de vetores de palavras e como a camada de incorporação pode ajudar a agrupar palavras com significados semelhantes. A camada de incorporação gera vetores de palavras, que são essencialmente coeficientes em um espaço de 16 dimensões, para cada palavra ou termo codificado por inteiro nos dados de entrada. Inicialmente, a camada cria vetores de 10.000 palavras para cada termo e os agrupa aleatoriamente. A camada então determina a semelhança entre os vetores observando o ângulo entre eles e tenta agrupar palavras semelhantes mais próximas umas das outras. Esse processo ajuda o computador a entender o significado e o contexto das palavras, o que é essencial para a classificação precisa das resenhas de filmes como positivas ou negativas.

  • 01:35:00 Nesta seção, o vídeo explica como a camada de incorporação em uma rede neural é usada para agrupar palavras semelhantes com base em seu contexto, e não apenas em seu conteúdo. Ao observar as palavras em torno de uma palavra específica, a rede neural pode determinar quais palavras estão relacionadas entre si e agrupá-las na camada de incorporação. A saída dessa camada é então reduzida usando uma camada de agrupamento de média global, que coloca os dados em uma dimensão inferior para facilitar o cálculo e o treinamento da rede. O vídeo fornece um diagrama de como a rede fica depois que os dados de entrada passam pela camada de incorporação e pelas camadas subsequentes na rede neural.

  • 01:40:00 Nesta seção, o vídeo aborda a criação de uma camada densa para reconhecimento de padrões em uma rede neural usada para análise de sentimento. A rede neural pega vetores de palavras que representam palavras diferentes, calcula a média e os passa para a camada densa com 16 neurônios. A camada densa procura padrões de palavras e tenta classificar avaliações positivas ou negativas usando a função sigmóide para gerar um valor entre 0 e 1. O modelo é então compilado com um otimizador, uma função de perda e entropia cruzada binária para calcular o diferença entre os valores previstos e reais. Os dados são divididos em conjuntos de validação e treinamento para medir com precisão o desempenho do modelo em novos dados durante o teste.

  • 01:45:00 Nesta seção, o apresentador modifica os dados de teste para serem dados de validação, que é um subconjunto dos dados de treinamento que serão usados para validar o modelo. Ele explica que hiperparâmetros são importantes em aprendizado de máquina e redes neurais e que os usuários precisam ajustar parâmetros individuais para obter resultados precisos. Ele também explica o conceito de tamanho de lote, que especifica quantas resenhas de filmes serão carregadas de uma só vez, e o define como 512. Por fim, ele ajusta o modelo aos dados e o avalia nos dados de teste, que mostram uma precisão de 87%. O apresentador enfatiza a importância dos dados de validação e explica que às vezes um modelo pode ser menos preciso em novos dados.

  • 01:50:00 Nesta seção do vídeo, o palestrante explica como salvar e carregar modelos no TensorFlow para evitar ter que retreinar o modelo toda vez que uma previsão é feita, o que pode ser especialmente inconveniente para modelos maiores que podem levar dias, semanas, ou mesmo meses para treinar. Após aumentar o tamanho do vocabulário do modelo, o palestrante mostra como salvar o modelo usando a função "model.save()" e dá a ele um nome com extensão ".h5", que é a extensão usada para modelos salvos no TensorFlow e Queras. Em vídeos futuros, o palestrante planeja discutir modelos de ponto de verificação e modelos de carregamento em lotes com diferentes tamanhos de dados.

  • 01:55:00 Nesta seção, o palestrante explica como salvar e carregar um modelo no TensorFlow 2.0. O modelo pode ser salvo em dados binários, o que economiza tempo ao fazer previsões, pois o modelo não precisa ser treinado novamente todas as vezes. Para carregar o modelo, uma única linha de código precisa ser adicionada com o nome do arquivo. O palestrante demonstra como testar o modelo em dados externos abrindo um arquivo de texto no código e pré-processando os dados para que possam ser alimentados no modelo. É importante observar que o tamanho do arquivo de texto deve ter no máximo 250 palavras para corresponder aos dados de treinamento. O pré-processamento inclui a remoção de caracteres indesejados, como vírgulas e colchetes.
  • 02:00:00 Nesta seção, o criador do vídeo discute o processo de codificação e redução dos dados para 250 palavras para que possam ser usados no modelo de previsão. Símbolos como pontos, aspas e colchetes precisam ser removidos para garantir os mapeamentos corretos de palavras. Uma função é criada para pesquisar os mapeamentos de todas as palavras nos dados e retornar uma lista codificada. Depois que os dados são codificados, o modelo é usado para fazer uma previsão e o texto original, a revisão codificada e a previsão são impressos. Por fim, uma função review_in_code é definida para converter os dados da string em uma lista codificada.

  • 02:05:00 Nesta seção do vídeo, o apresentador executa o modelo salvo e encontra um erro devido a um problema de codificação de código. Depois de corrigir o problema, o apresentador demonstra como traduzir a resenha para um formato que a rede possa entender usando um vocabulário de 88.000 palavras para atribuir índices correspondentes a cada palavra da resenha. A saída resultante identifica com precisão a revisão como positiva, destacando a importância de manipular os dados de entrada para garantir que estejam na forma correta para a rede processar. O vídeo então muda para um tutorial sobre como instalar a versão GPU do TensorFlow 2.0 em um sistema Ubuntu Linux, com instruções sobre como instalar CUDA e cuDNN para aceleração de GPU.

  • 02:10:00 Nesta seção, o palestrante orienta os espectadores no processo de instalação do TensorFlow 2.0 em seus computadores usando a versão GPU. Eles fornecem um guia passo a passo para instalar pacotes NVIDIA, incluindo os drivers corretos e a própria estrutura do TensorFlow 2.0. O palestrante observa que, embora o processo seja relativamente direto, pode levar algum tempo para ser concluído devido ao tamanho dos downloads envolvidos. Eles também aconselham os visualizadores com problemas com o uso da GPU a desinstalar a versão da CPU do TensorFlow e consultar a seção de comentários para obter mais assistência.
 

Python TensorFlow para aprendizado de máquina - Tutorial de classificação de texto de rede neural



Python TensorFlow para aprendizado de máquina - Tutorial de classificação de texto de rede neural

Neste tutorial do YouTube, o apresentador aborda uma variedade de tópicos relacionados ao Python TensorFlow para aprendizado de máquina e classificação de texto de rede neural. Eles começam discutindo o processo de configuração no Google Colab e a importação das bibliotecas necessárias, antes de se concentrar no conjunto de dados do Wine Reviews e usar o Matplotlib para plotar histogramas dos vários recursos. O tutorial abrange conceitos de aprendizado de máquina, incluindo aprendizado supervisionado e a diferença entre dados qualitativos e quantitativos, bem como entradas e previsões em cenários de classificação, como classificação binária e multiclasse. Outros tópicos abordados incluem funções de perda, redes neurais, funções de ativação, descida de gradiente e retropropagação, bem como a implementação de redes neurais no TensorFlow. Por fim, o apresentador implementa uma rede neural usando o TensorFlow para classificação de texto, demonstrando os benefícios do uso de pacotes e bibliotecas para aumentar a eficiência.

A segunda parte do tutorial em vídeo aborda vários aspectos do aprendizado de máquina com o TensorFlow em Python, com foco específico na classificação de texto da rede neural. O tutorial abrange a divisão de dados em conjuntos de treinamento e teste, criação de um modelo simples com TensorFlow e Keras, dimensionamento e balanceamento de conjuntos de dados, uso de redes neurais recorrentes e uso do TensorFlow Hub para classificação de texto. O tutorial enfatiza a importância de avaliar a precisão do modelo e o uso de vários componentes de rede neural, como funções de ativação, camadas de abandono e diferentes tipos de células. O tutorial termina resumindo os principais tópicos, incluindo a construção de redes neurais, o uso do TensorFlow para classificação de texto e o trabalho com dados numéricos.

  • 00:00:00 Nesta seção do vídeo, Kylie Ying começa mostrando aos espectadores como configurar um novo notebook no Google Colab e importar as bibliotecas necessárias, como NumPy, Pandas, Matplotlib, TensorFlow e TensorFlow Hub. Depois de importar essas bibliotecas, ela carrega um conjunto de dados chamado "Wine Reviews" como um arquivo CSV e o lê como um Pandas DataFrame, selecionando as colunas que ela está interessada em analisar, como país, descrição, pontos e preço. Ela decide se concentrar em analisar a relação entre a descrição e as colunas de pontos para ver se um modelo de rede neural pode ser treinado para classificar se uma crítica de vinho está na extremidade inferior ou superior do espectro de pontos.

  • 00:05:00 Nesta seção do vídeo, o palestrante discute como descartar colunas em um dataframe do pandas e traçar um histograma usando o Matplotlib. Eles plotam a coluna de pontos para ver a distribuição dos valores e decidem classificar as avaliações como abaixo de 90 e acima de 90. O palestrante também faz uma breve explicação sobre aprendizado de máquina, incluindo a diferença entre inteligência artificial, aprendizado de máquina e ciência de dados, com aprendizado de máquina sendo um subconjunto de AI que se concentra na resolução de um problema específico usando dados. Os campos de IA, aprendizado de máquina e ciência de dados se sobrepõem e podem usar técnicas de aprendizado de máquina para analisar dados e extrair insights deles.

  • 00:10:00 Nesta seção, o palestrante apresenta três tipos diferentes de aprendizado de máquina: aprendizado supervisionado, aprendizado não supervisionado e aprendizado por reforço. O tutorial se concentra no aprendizado supervisionado em que a entrada tem um rótulo de saída correspondente e é usado para treinar modelos para aprender as saídas. O palestrante explica que o modelo de aprendizado de máquina aprende padrões nos dados para criar a previsão e que a lista de entradas é chamada de vetor de recursos. O palestrante também discute os dois tipos diferentes de entradas de dados qualitativos: números categóricos e finitos de categorias ou grupos. O tutorial se concentra no uso de pares de entrada e saída rotulados para fazer previsões futuras.

  • 00:15:00 Nesta seção, o vídeo apresenta o conceito de recursos qualitativos e quantitativos e como eles podem ser codificados em números para computadores. Recursos qualitativos, como nacionalidade ou faixas etárias, são aqueles que não têm um número associado a eles e podem ser codificados usando codificação one-hot. Recursos numéricos, como o tamanho de uma mesa ou a temperatura do fogo, são quantitativos e podem ser contínuos ou discretos. O vídeo também distingue entre dados nominais, que não possuem uma ordenação inerente, e dados ordinais, que possuem uma ordenação inerente, e discute como diferentes tipos de recursos qualitativos podem exigir diferentes técnicas de codificação.

  • 00:20:00 Nesta seção, o palestrante explica os diferentes tipos de entradas e previsões no aprendizado supervisionado. As entradas podem ser contínuas ou discretas, enquanto as previsões podem ser classificadas como binárias ou multiclasse. Para a classificação binária, o modelo prevê se uma entrada pertence a uma das duas categorias, enquanto a classificação multiclasse envolve o mapeamento de entradas para uma das várias categorias. Além disso, a regressão é usada para prever valores contínuos. O palestrante então brinca com o tema dos modelos, mas ainda não entra em detalhes. Por fim, o palestrante aborda brevemente como fazer o modelo aprender e avaliar seu desempenho.

  • 00:25:00 Nesta seção, o palestrante discute o conjunto de dados que usará para um exemplo do mundo real e explica a estrutura dos dados. O conjunto de dados contém informações sobre os indivíduos, incluindo variáveis quantitativas, como o número de gestações, níveis de glicose e pressão arterial, bem como uma variável de resultado que indica se eles têm ou não diabetes. Cada linha representa um indivíduo diferente e cada coluna representa um recurso diferente que pode ser inserido no modelo. O vetor de recursos é o que está sendo conectado ao modelo, com o destino desse vetor de recursos sendo a saída a ser prevista. O palestrante continua explicando que o conjunto de dados é dividido em um conjunto de dados de treinamento, um conjunto de dados de validação e um conjunto de dados de teste, e que o conjunto de dados de validação é usado para verificar se o modelo pode lidar com dados não vistos antes que o modelo seja testado no conjunto de dados de teste.

  • 00:30:00 Nesta seção, o palestrante discute as funções de perda e como elas quantificam a diferença entre valores previstos e valores reais em cenários de regressão e classificação binária. Na regressão, a função de perda L1 encontra a diferença entre os valores previstos e reais, enquanto a função de perda L2 eleva ao quadrado as diferenças. Na classificação binária, a perda de entropia cruzada binária encontra a diferença entre as probabilidades preditas e reais de pertencer a uma determinada classe. O palestrante também explica a precisão como medida de desempenho em cenários de classificação. Por fim, o palestrante apresenta o conceito do modelo e como ele se encaixa no processo geral de aprendizado de máquina.

  • 00:35:00 Nesta seção, o palestrante discute as redes neurais, afirmando que elas são populares por sua capacidade de serem usadas para classificação e regressão. No entanto, o palestrante também menciona que as redes neurais às vezes são usadas em excesso e usá-las para modelos simples pode ser desnecessário. O palestrante discute como as redes neurais são uma caixa preta e, portanto, às vezes carecem de transparência. Eles explicam a estrutura de uma rede neural, incluindo como os recursos são multiplicados por pesos e adicionados aos vieses antes de serem passados por uma função de ativação. O palestrante enfatiza a importância do uso de uma função de ativação não linear para evitar que a rede neural se torne uma simples regressão linear.

  • 00:40:00 Nesta seção, o vídeo discute as funções de ativação e seu papel nas redes neurais. Se uma rede neural simplesmente usasse uma função linear, ela não serviria ao seu propósito. As funções de ativação, como sigmoid, tange e relu, permitem que cada neurônio seja projetado em um espaço não linear, o que possibilita o processo de treinamento. O vídeo então explica o conceito de gradiente descendente e retropropagação, que são as razões pelas quais as redes neurais funcionam. A descida do gradiente mede a inclinação da função de perda e a retropropagação ajusta os valores de peso para minimizar a perda. Por meio desse processo, um novo valor de peso é definido para cada parâmetro, que é o peso antigo mais algum alfa.

  • 00:45:00 Nesta seção, o vídeo discute a implementação de redes neurais em aprendizado de máquina usando bibliotecas como TensorFlow que já foram desenvolvidas e otimizadas. A biblioteca TensorFlow é uma biblioteca de código aberto que ajuda a desenvolver e treinar modelos de aprendizado de máquina. A biblioteca é composta por diversos módulos, entre eles o Keras, que contém módulos que auxiliam o usuário na criação e otimização de modelos, como otimizadores diversos. O vídeo também explica por que é benéfico usar bibliotecas estabelecidas em vez de codificar uma rede neural do zero.

  • 00:50:00 Nesta seção, o apresentador mostra aos espectadores como implementar uma rede neural usando o TensorFlow para classificação de texto. Eles começam apresentando os benefícios do uso de pacotes e bibliotecas para melhorar a eficiência, antes de passar para a criação de um novo notebook no qual carregam um conjunto de dados chamado diabetes.csv usando a função read csv. O conjunto de dados vem do Instituto Nacional de Diabetes e Doenças Digestivas e Renais e inclui vários recursos e dados demográficos do paciente, bem como uma classificação de se o paciente tem diabetes. O apresentador então demonstra como visualizar os dados plotando histogramas dos vários recursos, indexados se o paciente tem diabetes ou não, usando um loop for no Jupyter Notebook.

  • 00:55:00 Nesta seção do tutorial em vídeo sobre o uso do Python TensorFlow para aprendizado de máquina e classificação de texto de rede neural, o apresentador cria um novo quadro de dados com resultados definidos como zero e outro com resultados definidos como um para diferenciar entre pacientes com diabetes e aqueles sem. A próxima etapa envolve a visualização do número de pacientes diabéticos positivos e negativos, o que parece inconclusivo, pois não há um padrão separável entre os diferentes valores. Isso destaca a importância do aprendizado de máquina na previsão do diabetes, considerando todos os recursos juntos. Por fim, o apresentador divide o quadro de dados em valores x e y para análise posterior.
  • 01:00:00 Nesta seção, o palestrante explica como dividir os dados em conjuntos de treinamento e teste usando o módulo Scikit-learn. O alto-falante importa o módulo, chama a função train_test_split e passa os recursos de entrada e saída. O tamanho do teste é definido como 20%, enquanto o tamanho do treinamento é definido como 60% do conjunto de dados. Os conjuntos temporários são usados para criar conjuntos de validação e teste usando uma divisão 50/50. Finalmente, o palestrante constrói um modelo simples usando TensorFlow e Keras, especificamente a camada densa com 16 neurônios que estão densamente conectados à camada anterior.

  • 01:05:00 Nesta seção, o palestrante explica o processo de criação de uma rede neural para classificação binária usando o TensorFlow em Python. Eles adicionam camadas e uma função de ativação chamada sigmóide que mapeia a entrada para probabilidades de algo pertencer ou não a uma única classe. O modelo é então compilado com um otimizador chamado "adam", uma função de perda chamada "entropia cruzada binária" e uma métrica de precisão. Antes de treinar o modelo, eles avaliam seu desempenho nos dados de treinamento e validação, o que resulta em baixa precisão. Por fim, o palestrante treina o modelo usando a função "model.fit", passando os dados de treinamento e validação, tamanho do lote e número de épocas.

  • 01:10:00 Nesta seção, o apresentador discute a necessidade de dimensionar os recursos do conjunto de dados para garantir que eles estejam em um intervalo mais padronizado. O apresentador explica como importar o pacote necessário para dimensionar os recursos usando o pré-processamento sklearn e o escalar padrão. Depois de dimensionar os recursos, o apresentador verifica o intervalo de valores e plota o quadro de dados transformado para demonstrar que a maioria dos recursos agora está em uma escala semelhante. Dimensionar os recursos ajuda a garantir que os recursos não afetem o resultado da rede neural devido aos diferentes intervalos.

  • 01:15:00 Nesta seção, o tutorial em vídeo se concentra na normalização e no balanceamento do conjunto de dados por meio de um processo chamado sobreamostragem aleatória. Ao visualizar os dados, o instrutor demonstra como o conjunto de dados para pacientes com e sem diabetes é altamente desequilibrado, levando a uma rede neural que pode não treinar bem. Ao usar o amostrador aleatório, mais amostras aleatórias são adicionadas ao conjunto de dados, equilibrando os comprimentos das duas categorias. Isso é obtido importando outro pacote chamado Imbalance Learn Dot Over Sampler, que inclui um Random Over Sampler. O conjunto de dados é dividido novamente usando a função fit_resample tornando ambos os resultados aproximadamente iguais a um. Depois de executar novamente as células, a precisão do modelo está próxima de 50%, indicando que o balanceamento do conjunto de dados resultou em um melhor desempenho do modelo.

  • 01:20:00 Nesta seção, o criador avalia o modelo de rede neural em um conjunto de dados de teste e atinge uma precisão de 77,5%, mostrando que o modelo é bem-sucedido na generalização de dados não vistos. O tutorial passa a discutir redes neurais recorrentes (RNNs) e como elas são úteis para dados que envolvem sequências ou séries. As RNNs permitem a criação de uma memória dentro da rede neural, permitindo que ela se lembre de informações de etapas de tempo anteriores. No entanto, o uso de RNNs pode levar a problemas como explosão ou desaparecimento de gradientes durante a retropropagação.

  • 01:25:00 Nesta seção, o palestrante discute os problemas com gradientes cada vez mais próximos de zero, o que impede que os modelos sejam atualizados e aprendidos. Para combater isso, existem diferentes tipos de células ou neurônios que podem ser usados, como a unidade recorrente fechada e a unidade de memória de longo prazo. O palestrante passa para um exemplo do TensorFlow com classificação de texto usando análises de vinho e demonstra como dividir os dados em conjuntos de dados de treinamento, validação e teste. O palestrante usa a função split do numpy para mostrar uma maneira diferente de dividir os dados e enfatiza a importância de ser flexível ao trabalhar com conjuntos de dados.

  • 01:30:00 Nesta seção, o tutorial em vídeo aborda como dividir um conjunto de dados em conjuntos de treinamento, validação e teste e como convertê-los em um objeto tf.data.Dataset no TensorFlow. O instrutor usa um tamanho de lote maior e tf.data.autotune devido ao grande tamanho do conjunto de dados e ajusta o código de função para alterar a variável de destino para "rótulo", pois os dados já foram rotulados. O tutorial também explica como funciona o hub do TensorFlow, que é usado para classificação de texto neste tutorial. O vídeo também demonstra como visualizar os conjuntos de dados dentro dos objetos de conjunto de dados do TensorFlow.

  • 01:35:00 Nesta seção, o tutorial em vídeo discute como usar o TensorFlow Hub, um repositório de modelos de aprendizado de máquina pré-treinados, para ajudar na classificação de texto. O vídeo explica que computadores não entendem texto, então o texto precisa ser transformado em números que o computador possa entender. Para fazer essa transformação, o vídeo usa nnlm, uma incorporação de texto baseada em token treinada nas notícias do Google em inglês, e converte todo o texto em um vetor de números. O vídeo mostra como construir um modelo de rede neural usando TensorFlow Keras com uma camada densa, função de ativação ReLU e uma saída de classificação binária. O vídeo compila o modelo e o avalia nos dados de treinamento e validação, mostrando uma precisão de cerca de 40%.

  • 01:40:00 Nesta seção do vídeo, o palestrante treina um modelo de aprendizado de máquina e observa os resultados. A precisão do treinamento aumenta e a perda diminui, indicando que o modelo está bem treinado. No entanto, a precisão da validação estabiliza e até diminui ligeiramente, indicando que o modelo não está generalizando bem e está superajustado. Para resolver esse problema, o palestrante sugere adicionar camadas dropout, que selecionam aleatoriamente alguns nós para "desligar" durante cada iteração de treinamento. Isso introduz mais aleatoriedade e variabilidade no modelo, ajudando-o a generalizar melhor. Por fim, o alto-falante repete a camada de hub e compila o modelo.

  • 01:45:00 Nesta seção, o usuário avalia a rede neural que foi criada e treinada na seção anterior. A perda está diminuindo e a precisão está aumentando, mas o usuário interrompe o treinamento logo após apenas cinco épocas. O modelo é avaliado nos dados de teste e a precisão é de cerca de 83%. O usuário então mostra como recriar o modelo usando um LSTM e começa criando um codificador com um token máximo definido como 2000. O modelo é então definido usando o codificador e uma camada de incorporação com uma dimensão de entrada definida para o comprimento do vocabulário do codificador e uma dimensão de saída definida como 32. Finalmente, uma camada LSTM é adicionada com 32 nós.

  • 01:50:00 Nesta seção do vídeo, o instrutor está construindo a rede neural adicionando uma camada densa e uma camada de abandono para evitar o overfitting. A função de ativação para a saída é sigmóide, enquanto a entrada requer um tokenizador. A precisão do modelo é de cerca de 53 e a perda de cerca de 0,7. Em seguida, o modelo é treinado avaliando os dados de treinamento e validação. No final do treinamento, a precisão dos dados de teste é de 84. O tutorial termina com o instrutor resumindo o aprendizado, que é aprender a construir uma rede neural de feed-forward, usar o TensorFlow para classificação de texto e implementar números dados.
 

Curso Completo do TensorFlow 2.0 - Tutorial de Redes Neurais Python para Iniciantes (partes 1-4)



Curso Completo do TensorFlow 2.0 - Tutorial de Redes Neurais Python para Iniciantes

00:00:00 - 01:00:00 Este vídeo apresenta uma introdução ao TensorFlow 2.0, uma biblioteca para manipulação de dados e aprendizado de máquina. O instrutor explica o que é um tensor e como usar tensores para armazenar cálculos parcialmente definidos. Ele também demonstra como usar as funções TF dot rank e TF dot reshape para controlar o número de dimensões em um tensor.

01:00:00 - 02:00:00 O tutorial em vídeo explica como usar a regressão linear para prever valores em um conjunto de dados. O conjunto de dados do Titanic é usado como exemplo. O apresentador explica como a regressão linear é usada para prever valores em um conjunto de dados e como criar colunas de recursos em um conjunto de dados usando o TensorFlow.

02:00:00 - 03:00:00 Este tutorial em vídeo aborda os fundamentos do uso do Python para redes neurais. O vídeo começa com uma descrição de como uma rede neural é composta por camadas de neurônios interconectados. O vídeo aborda como criar um gerador de números aleatórios e como treinar uma rede neural. Por fim, o vídeo mostra como conectar neurônios e pesos, como passar informações pela rede e como calcular o valor de saída de um neurônio.

03:00:00 - 04:00:00 Este vídeo explica como usar o TensorFlow para construir uma rede neural convolucional para reconhecimento de imagem. O vídeo aborda os fundamentos das redes neurais convolucionais, incluindo como elas funcionam e como usar modelos pré-treinados.

04:00:00 - 05:00:00 Este vídeo explica como usar o TensorFlow para treinar um modelo de aprendizado de máquina que pode prever a classe de uma imagem. O vídeo aborda conceitos básicos, como aprendizado profundo e redes neurais convolucionais.

05:00:00 - 06:00:00 Este vídeo é um guia completo para usar o TensorFlow 2.0 para treinar redes neurais. Abrange as formas de entrada e saída da rede neural, como criar uma função de perda e como usar o modelo para prever uma sequência. O vídeo também demonstra como gerar texto com o TensorFlow.

06:00:00 - 06:50:00 Este tutorial em vídeo apresenta os fundamentos do TensorFlow 2.0, uma poderosa biblioteca de aprendizado de máquina. Depois de apresentar o TensorFlow e seus principais conceitos, o tutorial conduz os visualizadores por uma série de tutoriais sobre diferentes tarefas de aprendizado de máquina, como aprendizado profundo e aprendizado por reforço.


Parte 1

  • 00:00:00 Este tutorial em vídeo ensina aos iniciantes como usar o TensorFlow 2.0 para redes neurais em Python. O instrutor explica as diferenças entre inteligência artificial, redes neurais e aprendizado de máquina e fornece recursos para o curso, incluindo exercícios práticos e exemplos de código.

  • 00:05:00 O aprendizado de máquina é um subcampo da inteligência artificial que permite que os computadores gerem regras para si mesmos, sem precisar ser explicitamente programados.

  • 00:10:00 O vídeo explica os conceitos básicos de redes neurais e aprendizado profundo e como esses sistemas funcionam transformando dados em várias camadas. As redes neurais podem ser usadas para uma variedade de tarefas, incluindo aprendizado de máquina e inteligência artificial. O vídeo também fornece um conjunto de dados de exemplo das notas dos alunos.

  • 00:15:00 Este vídeo discute a diferença entre inteligência artificial, aprendizado de máquina e redes neurais e, em seguida, discute o aprendizado supervisionado.

  • 00:20:00 O aprendizado de máquina não supervisionado é usado quando não temos dados de entrada. É usado para descobrir grupos de pontos de dados que são semelhantes.

  • 00:25:00 Este vídeo fornece uma visão geral de três tipos diferentes de aprendizado de máquina: aprendizado supervisionado, não supervisionado e por reforço. O último tipo, aprendizado por reforço, é explicado com mais detalhes com um exemplo de jogo em que um agente de inteligência artificial (IA) tenta atingir um objetivo específico.

  • 00:30:00 Neste vídeo, é fornecida uma introdução básica ao TensorFlow, seguida de uma discussão sobre como a biblioteca funciona em um nível inferior. O TensorFlow é então discutido com mais detalhes, incluindo os dois componentes principais: gráficos e sessões. Um gráfico é uma coleção de cálculos parciais relacionados entre si, e uma sessão é uma maneira de executar parte ou todo o gráfico.

  • 00:35:00 Neste vídeo, o instrutor apresenta os fundamentos do TensorFlow, incluindo o conceito de gráficos e sessões. Em seguida, ele demonstra como usar o Google Collaboratory para criar e executar blocos de código, bem como importar e usar vários módulos. Por fim, ele discute os benefícios de usar o TensorFlow em um computador com recursos limitados.

  • 00:40:00 Neste vídeo, o instrutor demonstra como importar e usar o TensorFlow 2.0 com redes neurais Python. TensorFlow é uma biblioteca para manipulação de dados e aprendizado de máquina. TensorFlow 2.0 é uma nova versão da biblioteca que melhora o desempenho. O instrutor também explica o que é um tensor e como ele generaliza vetores e matrizes.

  • 00:45:00 TensorFlow 2.0 apresenta tensores, que são objetos importantes que armazenam cálculos parcialmente definidos. Os tensores têm um tipo de dados e uma forma, e cada tensor tem uma classificação e um grau. Para determinar a classificação de um tensor, use o método de classificação de ponto TF.

  • 00:50:00 Neste vídeo, o autor apresenta o conceito de formas de tensores e explica como elas podem ser usadas para identificar o número de elementos em um tensor. Ele também apresenta o conceito de classificação do tensor e mostra como ele pode ser usado para controlar o número de dimensões em um tensor. Por fim, ele demonstra como remodelar um vetor de dados em uma forma diferente usando a função de remodelagem de ponto TF.

  • 00:55:00 Este vídeo ensina o básico sobre tensores, incluindo seus diferentes tipos, como criar e avaliar tensores e como remodelá-los.


Parte 2

  • 01:00:00 Este vídeo explica a ideia básica da regressão linear, que é um algoritmo de aprendizado de máquina usado para prever valores futuros a partir de dados passados. A regressão linear é usada quando os pontos de dados se correlacionam de maneira linear.

  • 01:05:00 Neste tutorial, você aprenderá como usar a regressão linear para prever novos pontos de dados usando uma linha de melhor ajuste.

  • 01:10:00 Neste vídeo, o apresentador explica como a regressão linear é usada para prever valores em um conjunto de dados. Eles primeiro explicam como a regressão linear funciona em três dimensões e depois mostram como codificá-la no TensorFlow.

  • 01:15:00 O vídeo apresenta o conjunto de dados do Titanic e explica por que a regressão linear é um bom algoritmo para prever quem sobreviverá no navio. O conjunto de dados é carregado em pandas e Excel.

  • 01:20:00 Este vídeo explica como usar um quadro de dados para armazenar dados e como usar o operador de ponto para procurar valores específicos dentro do quadro de dados.

  • 01:25:00 Neste vídeo, o instrutor explica os fundamentos dos tensores e como eles são usados no aprendizado de máquina. Ele então mostra como criar um modelo usando um conjunto de dados de treinamento e um conjunto de dados de teste.

  • 01:30:00 Neste vídeo, o autor explica como criar colunas de recursos em um conjunto de dados usando o TensorFlow. Essas colunas serão usadas para treinar um estimador ou modelo linear.

  • 01:35:00 Neste vídeo, o instrutor explica como criar colunas de recursos e colunas numéricas em um modelo do TensorFlow e como treinar o modelo usando lotes.

  • 01:40:00 O Curso Completo TF 2.0 explica como criar uma rede neural usando Python, e como treinar e avaliar a rede. O tutorial em vídeo mostra como criar uma função de entrada e como usar a função para criar imagens do conjunto de dados panda.

  • 01:45:00 Este resumo de 1 parágrafo explica como usar um modelo TensorFlow para fazer previsões em um conjunto de dados. Primeiro, você cria o modelo usando a sintaxe do módulo estimador. Em seguida, você treina o modelo usando um objeto classificador linear. Finalmente, você avalia o modelo e imprime a precisão.

  • 01:50:00 Este vídeo aborda como usar o TensorFlow para criar redes neurais para prever resultados, incluindo como percorrer as previsões e acessar os valores reais.

  • 01:55:00 Neste tutorial, o autor mostra como usar o TensorFlow para treinar uma rede neural para prever as espécies de flores a partir de um conjunto de dados. O autor também explica os diferentes tipos de redes neurais e como usar as funções de entrada para otimizar seu desempenho.


Parte 3

  • 02:00:00 Neste vídeo, o autor percorre o processo de criação de uma rede neural no TensorFlow 2.0 e explica os diferentes modelos disponíveis. Eles então mostram como construir a rede neural e treiná-la usando um classificador dnn.

  • 02:05:00 Neste vídeo, uma função de treinar e avaliar é criada para uma rede neural. Um lambda é usado para definir a função em uma linha. A função é então usada para treinar a rede neural. A precisão da rede neural treinada é exibida.

  • 02:10:00 O vídeo mostra como usar a função de previsão do TensorFlow para prever a classe de uma flor. O usuário primeiro insere os recursos da flor, como comprimento da sépala, comprimento da pétala e largura. Em seguida, eles criam um dicionário preditivo e o alimentam com os recursos. O TensorFlow então prevê a classe da flor com base nos recursos de entrada. Finalmente, o usuário imprime a previsão e a probabilidade da previsão.

  • 02:15:00 Este vídeo aborda os fundamentos das redes neurais, incluindo classificação e agrupamento.

  • 02:20:00 O vídeo discute como usar redes neurais Python para agrupar pontos de dados. Depois de rotular todos os pontos de dados, o vídeo explica como encontrar o centro de massa mais próximo entre todos os clusters e como reatribuir pontos de dados ao cluster mais próximo.

  • 02:25:00 Neste vídeo, o instrutor aborda os conceitos básicos de redes neurais e modelos ocultos de Markov. Ele começa discutindo os tipos de dados usados no aprendizado de máquina, como k-means e regressão linear. Ele então discute um modelo meteorológico básico e como criar um modelo oculto de Markov para prever o clima em um determinado dia.

  • 02:30:00 Neste tutorial em vídeo, o apresentador apresenta os fundamentos do TensorFlow, incluindo seu uso para redes neurais. Em seguida, ele demonstra como criar um modelo climático básico no TensorFlow, usando dois estados e duas distribuições de probabilidade. O apresentador então demonstra como usar o modelo para prever a temperatura para a próxima semana.

  • 02:35:00 Este vídeo demonstra como usar o TensorFlow para criar uma rede neural para prever a temperatura média em cada dia de uma determinada sequência. O vídeo explica como importar os módulos necessários e criar um modelo. O modelo prevê corretamente a temperatura média no primeiro dia da sequência, mas prevê a temperatura errada nos dias subsequentes. Depois de solucionar o problema, o vídeo demonstra como usar um módulo TensorFlow diferente para prever com sucesso a temperatura média em cada dia da sequência.

  • 02:40:00 Este vídeo descreve como executar um modelo no TensorFlow 2.0 usando o comando Mean. Este é um comando útil para comparar os valores esperados das variáveis em um modelo.

  • 02:45:00 Neste módulo, o instrutor estará discutindo redes neurais e como elas funcionam, além de explicar como uma rede neural é composta de camadas. Ele também discutirá como uma camada de entrada recebe dados brutos e como uma rede neural seria capaz de classificar esses dados.

  • 02:50:00 O "TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial" fornece um guia passo a passo para criar uma rede neural básica em Python. A primeira camada é um neurônio de entrada, seguida por uma camada oculta e, em seguida, uma camada de saída. A camada de saída tem um neurônio para cada informação de entrada, e os neurônios na camada oculta são conectados uns aos outros e à camada de saída. A camada oculta é conectada à camada de entrada e à camada de saída, que é chamada de rede neural densamente conectada.

  • 02:55:00 Este tutorial em vídeo demonstra como usar o Python para redes neurais, mostrando como criar um gerador de números aleatórios e treinar uma rede neural. O vídeo também aborda como conectar neurônios e pesos, como passar informações pela rede e como calcular o valor de saída de um neurônio.


Parte 4

  • 03:00:00 Neste vídeo é explicada uma rede neural Python, com a ajuda de uma função de ativação. Esta função espreme/quadra números negativos e positivos, permitindo que a rede identifique mais facilmente entre as cores vermelho e azul.

  • 03:05:00 Neste vídeo, o autor explica o conceito de função de ativação e como ela afeta a saída de uma rede neural. Ele também explica como uma função de ativação pode ser usada para introduzir complexidade na rede. O autor passa a discutir uma função de perda, que é usada para treinar uma rede neural.

  • 03:10:00 Este vídeo apresenta o conceito de redes neurais e descreve as três principais funções de perda usadas no treinamento de redes neurais: erro quadrático médio, erro absoluto médio e perda de dobradiça. Em seguida, explica a descida do gradiente, que é o algoritmo usado para otimizar o desempenho da rede neural.

  • 03:15:00 Este tutorial em vídeo apresenta os fundamentos do TensorFlow, incluindo como criar e treinar uma rede neural. O vídeo também aborda o uso de um algoritmo de otimização de rede neural e explica como avaliar o desempenho de uma rede neural.

  • 03:20:00 Neste vídeo, o instrutor demonstra como usar o TensorFlow para treinar uma rede neural em Python. O conjunto de dados usado na demonstração inclui imagens de diferentes tipos de roupas, e o instrutor mostra como usar as funções de treinamento e teste no TensorFlow para validar as previsões da rede.

  • 03:25:00 Neste vídeo, o instrutor descreve os fundamentos de uma rede neural, incluindo as camadas e nós em uma rede neural e a função de ativação usada para determinar o valor de saída de um neurônio. O instrutor também descreve como criar um modelo no TensorFlow e como executar o modelo.

  • 03:30:00 Neste tutorial em vídeo de 1 hora, o criador aborda os conceitos básicos do TensorFlow, incluindo a arquitetura e a função de uma rede neural. Eles então mostram como compilar e ajustar uma rede neural e, finalmente, treiná-la em um conjunto de treinamento. O overfitting é explicado e a precisão do modelo treinado é comparada com a de um conjunto de teste.

  • 03:35:00 Neste vídeo, o instrutor explica como as redes neurais podem se sobreajustar e como melhorar a generalização ajustando os hiperparâmetros. Ele então demonstra como fazer previsões em imagens de teste usando o objeto previsto da rede neural.

  • 03:40:00 Este tutorial em vídeo ensina como usar o TensorFlow para construir uma rede neural convolucional para visão computacional profunda. O vídeo aborda o que é uma rede neural convolucional, como ela funciona e como usar modelos pré-treinados.

  • 03:45:00 O vídeo explica a diferença entre uma rede neural densa e uma rede neural convolucional e explica que uma rede neural convolucional aprende padrões locais em vez de padrões globais.

  • 03:50:00 A Rede Neural Convolucional (CNN) é um algoritmo de aprendizado de máquina usado para analisar e entender imagens. A Rede Neural Convolucional é composta por várias camadas diferentes que são usadas para analisar e entender a imagem. A primeira camada é usada para identificar a presença de filtros específicos na imagem.

  • 03:55:00 Neste vídeo, o instrutor explica como encontrar um filtro em uma imagem usando o produto vetorial. O filtro é determinado com base na semelhança entre os valores de pixel entre a imagem e o filtro.
 

Curso Completo do TensorFlow 2.0 - Tutorial de Redes Neurais Python para Iniciantes (partes 5-7)



Curso Completo do TensorFlow 2.0 - Tutorial de Redes Neurais Python para Iniciantes


Parte 5

  • 04:00:00 O vídeo discute como as redes neurais convolucionais funcionam e como padding e stride ajudam a tornar a rede mais fácil de usar.

  • 04:05:00 Neste vídeo, o instrutor explica como as operações de agrupamento, como min e max, são usadas para reduzir a dimensionalidade de um mapa de recursos. Ele então demonstra como isso é feito, mostrando como obter valores de amostra de um mapa de recursos e gerar um mapa de recursos com dimensionalidade reduzida. Em seguida, o instrutor mostra como usar uma operação de agrupamento dois por dois para reduzir o tamanho do mapa de recursos pela metade. Em seguida, ele demonstra como usar uma operação de agrupamento máximo para encontrar recursos em uma área. Em seguida, ele demonstra como usar uma operação de agrupamento de médias para encontrar recursos em uma área. Por fim, o instrutor mostra como usar o Kerris para criar uma rede neural convolucional.

  • 04:10:00 Neste tutorial em vídeo, o instrutor demonstra como criar uma rede neural convolucional (CNN) usando Python. A primeira camada da CNN é uma camada de pool máximo que reduz a dimensionalidade dos dados de entrada. As próximas duas camadas são uma camada convolucional e uma camada de agrupamento máximo. A camada final é uma camada densa que classifica os dados de entrada.

  • 04:15:00 Este vídeo explica como o aumento de dados pode ser usado para melhorar o desempenho de um modelo de aprendizado de máquina. O aumento de dados envolve a modificação de uma imagem para torná-la mais semelhante aos dados de treinamento, o que pode melhorar a capacidade de generalização do modelo.

  • 04:20:00 Este vídeo mostra como usar modelos pré-treinados no TensorFlow 2.0 para melhorar a precisão das classificações.

  • 04:25:00 Neste vídeo, o apresentador explica como usar um modelo TensorFlow pré-treinado para reconhecer imagens de diferentes animais. Primeiro, eles explicam como carregar o modelo no TensorFlow e dimensionar as imagens para o mesmo tamanho. Em seguida, eles mostram como aplicar o modelo aos conjuntos de dados de treinamento e validação. Finalmente, eles demonstram como usar o modelo para reconhecer imagens de animais.

  • 04:30:00 Neste vídeo, o instrutor demonstra como criar uma rede neural usando o TensorFlow 2.0 para treinamento em um conjunto de dados de 1.000 classes de cães e gatos. A rede é pré-treinada usando um modelo base e, em seguida, uma camada de previsão é adicionada. O instrutor também mostra como congelar os parâmetros treináveis de uma camada para que a rede não seja treinada novamente ao usá-la para previsão. O modelo é então avaliado e treinado em um novo conjunto de dados.

  • 04:35:00 Este vídeo explica como usar o TensorFlow para treinar um modelo que pode prever a classe de uma imagem. O vídeo aborda conceitos básicos, como aprendizado profundo e redes neurais convolucionais.

  • 04:40:00 Este vídeo explica como as redes neurais recorrentes podem ser usadas para entender e processar a linguagem natural. A primeira seção discute o que é o processamento de linguagem natural e como as redes neurais recorrentes diferem das redes neurais regulares. A segunda seção discute como converter dados textuais em dados numéricos que podem ser usados por uma rede neural recorrente. A seção final discute como usar redes neurais recorrentes para realizar análise de sentimento e geração de texto de barra de caractere.

  • 04:45:00 O primeiro método que discutiremos é chamado de bolsa de palavras. Esse algoritmo analisa uma frase e a converte em uma representação numérica em que cada palavra da frase é codificada com um número. Isso pode ser útil para tarefas em que apenas a presença de uma palavra é suficiente para determinar o significado da frase. No entanto, ao lidar com entradas mais complexas, essa técnica pode falhar.

  • 04:50:00 O vídeo discute o uso de um pacote de palavras para codificação de texto, bem como alguns outros métodos de codificação. Um problema com essa abordagem é que ela perde a ordem das palavras, o que pode dificultar que um modelo de aprendizado de máquina identifique corretamente o sentimento no texto.

  • 04:55:00 Neste vídeo, o instrutor explica como funcionam as incorporações de palavras e como elas podem ser usadas para melhorar a precisão das previsões de uma rede neural. O instrutor então apresenta as redes neurais recorrentes, que são um tipo de rede neural especialmente boa no processamento de dados textuais.


Parte 6

  • 05:00:00 Uma rede neural recorrente é um tipo de rede neural que processa dados em diferentes intervalos de tempo e mantém uma memória interna. Isso permite que a rede construa gradualmente uma compreensão de um texto ou entrada.

  • 05:05:00 Este vídeo explica os fundamentos do TensorFlow 2.0, que inclui uma descrição de uma camada de rede neural recorrente simples (RNN) e uma camada de memória de longo prazo (LSTM). A camada LSTM foi projetada para ajudar a camada RNN a lembrar as sentenças anteriores em uma sequência de texto, o que pode se tornar cada vez mais difícil à medida que o comprimento da sequência aumenta.

  • 05:10:00 O Curso Completo do TensorFlow 2.0 - Python Neural Networks for Beginners Tutorial cobre os conceitos básicos de redes neurais, incluindo redes neurais recorrentes, que são usadas para análise de sentimento em resenhas de filmes.

  • 05:15:00 Neste vídeo, o apresentador mostra como preencher uma revisão de texto em um comprimento específico usando Python e descreve como o modelo é treinado. Eles também mencionam que aceleram o processo de treinamento usando uma GPU.

  • 05:20:00 Neste vídeo, o autor fornece um curso completo sobre o ensino de redes neurais em Python para iniciantes. O curso começa com uma introdução às redes neurais, seguida de um tutorial sobre como treinar uma rede neural usando o TensorFlow 2.0. Depois que a rede neural é treinada, o autor demonstra como fazer previsões em um conjunto de dados de crítica de filme. Os resultados mostram que a rede neural não é precisa o suficiente e o autor fornece uma função para codificar o texto em tokens para a rede neural processar. O autor também fornece uma função de decodificação para converter texto de volta em palavras.

  • 05:25:00 Este resumo de 1 parágrafo explica como a função decodificar números inteiros codificou o texto para uma resenha de filme em Python. Esta função pega uma sequência de palavras e as transforma em inteiros, então usa a função de texto ENCODE para codificar os inteiros. Finalmente, o modelo é usado para prever a revisão de um determinado texto. A primeira revisão está prevista para ser 72% positiva, enquanto a segunda revisão está prevista para ser 23% positiva.

  • 05:30:00 Neste vídeo final do Curso Completo TensorFlow 2.0, uma rede neural recorrente é criada para gerar uma peça baseada em um texto de Shakespeare. O arquivo é carregado e lido, e o comprimento do texto é calculado. Os primeiros 250 caracteres são lidos e analisados para determinar o esquema de codificação. Os caracteres são codificados como números inteiros e o vocabulário é criado. O índice de cada caractere é calculado e armazenado no vocabulário.

  • 05:35:00 Neste vídeo, o instrutor ensina como usar o TensorFlow para treinar uma rede neural usando um conjunto de dados de texto. O instrutor primeiro converte o conjunto de dados de texto em números inteiros e, em seguida, treina a rede neural usando uma sequência de 101 exemplos de treinamento por época.

  • 05:40:00 Este vídeo explica como criar um modelo no TensorFlow 2.0 usando a função integrada "build model". O modelo é treinado em um conjunto de 64 exemplos de treinamento e, em seguida, salvo para que as previsões possam ser feitas em uma sequência de entrada.

  • 05:45:00 O autor descreve as etapas necessárias para treinar uma rede neural usando o TensorFlow. Primeiro, o autor descreve as formas de entrada e saída da rede neural. A seguir, o autor explica como criar uma função de perda para otimizar a rede neural. Finalmente, o autor demonstra como usar o modelo para prever uma sequência de 100 amostras.

  • 05:50:00 Neste vídeo, o TensorFlow é explicado em detalhes, incluindo como ele funciona com redes neurais recorrentes. O vídeo também aborda como criar uma função de perda para determinar o desempenho de um modelo.

  • 05:55:00 Este vídeo apresenta a biblioteca TensorFlow 2.0 para treinamento de redes neurais e demonstra como reconstruir um modelo com um novo tamanho de lote de um. O vídeo também inclui uma demonstração de como gerar texto com o TensorFlow.


Parte 7

  • 06:00:00 Neste vídeo, Curso Completo TensorFlow 2.0 - Python Neural Networks for Beginners Tutorial, o usuário explica como gerar uma sequência de texto usando uma rede neural recorrente. A primeira etapa é redefinir o status da rede e gerar uma lista de previsões. Em seguida, o usuário treina a rede em um script de filme B e mostra os resultados.

  • 06:05:00 Este tutorial em vídeo aborda os fundamentos do TensorFlow 2.0, incluindo como criar uma rede neural simples em Python. O vídeo passa a discutir o aprendizado por reforço, que é uma técnica mais complexa e avançada. O vídeo termina com uma discussão da terminologia e uma recapitulação do que é o aprendizado por reforço.

  • 06:10:00 Aprendizagem por reforço é um método de treinamento de IA para realizar tarefas em um ambiente, recompensando-as por ações que levam a um melhor desempenho. O objetivo do aprendizado por reforço é maximizar uma recompensa, que pode ser qualquer coisa que o agente esteja tentando alcançar no ambiente. Neste curso, o instrutor aborda os conceitos de estado, ação e recompensa.

  • 06:15:00 O objetivo do agente neste exemplo é maximizar sua recompensa no ambiente aprendendo uma tabela de sugestões que prediz a recompensa para diferentes ações em diferentes estados.

  • 06:20:00 TensorFlow é uma biblioteca de aprendizado de máquina que permite aos usuários criar modelos que podem aprender com os dados. Neste vídeo, o instrutor explica como o aprendizado Q funciona e como ele é usado para otimizar o comportamento de um agente em um ambiente simulado. Ele continua explicando como usar a tabela de sugestões para otimizar o comportamento do agente.

  • 06:25:00 Neste vídeo, aprendemos sobre as redes neurais usadas em um tutorial para iniciantes do TensorFlow 2.0. A primeira parte do vídeo aborda os fundamentos das redes neurais e como elas funcionam. Em seguida, exploramos como criar um agente simples que aprende a navegar em um ambiente 3D usando a tabela de sugestões atual ou escolhendo aleatoriamente uma ação. A segunda parte do vídeo explica as fórmulas usadas para atualizar a tabela de sugestões do agente.

  • 06:30:00 O vídeo "TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial" apresenta a linguagem de programação TensorFlow 2.0 e suas estruturas de dados e algoritmos associados para redes neurais, que são um tipo de modelo de aprendizado de máquina. O vídeo demonstra como criar e treinar um modelo de rede neural simples usando o software openAI gym.

  • 06:35:00 O Curso Completo do TensorFlow 2.0 começa com a introdução do modelo ator-crítico, que é usado para treinar uma rede neural. Em seguida, mostra como criar um ambiente de lago congelado usando NumPy e TensorFlow. O curso aborda como usar q learning para resolver o problema de navegação no ambiente.

  • 06:40:00 Este vídeo fornece um tutorial completo sobre como usar o TensorFlow 2.0 para criar uma rede neural para iniciantes. Primeiro, o instrutor explica a variável epsilon e como ela afeta a chance do agente realizar uma ação aleatória. Em seguida, o instrutor demonstra como criar uma lista de recompensas e como atualizar os valores q do agente usando a fórmula de recompensa. Por fim, o instrutor mostra como definir o estado atual do agente e verificar se ele terminou de explorar o ambiente.

  • 06:45:00 Neste módulo final do "TensorFlow 2.0 Complete Course - Python Neural Networks for Beginners Tutorial", o instrutor explica como usar a tabela de sugestões para ajustar o valor do epsilon para aumentar lentamente a recompensa média à medida que o agente se move um labirinto.

  • 06:50:00 Este tutorial em vídeo apresenta os fundamentos do TensorFlow, uma poderosa biblioteca de aprendizado de máquina. Depois de apresentar o TensorFlow e seus principais conceitos, o tutorial conduz os visualizadores por uma série de tutoriais sobre diferentes tarefas de aprendizado de máquina, como aprendizado profundo e aprendizado por reforço.
 

Keras with TensorFlow Course - Python Deep Learning e Neural Networks for Beginners Tutorial



Keras with TensorFlow Course - Python Deep Learning e Neural Networks for Beginners Tutorial

O curso Keras with TensorFlow é focado em ensinar os usuários a usar o Keras, uma API de rede neural escrita em Python e integrada ao TensorFlow. Abrange os fundamentos da organização e pré-processamento de dados, construção e treinamento de redes neurais artificiais e a importância da normalização de dados e criação de conjuntos de validação. O curso também fornece recursos como arquivos de vídeo e texto e um guia sobre como configurar uma GPU para aumentar a eficiência. Os usuários também aprendem como salvar e carregar modelos, incluindo opções para salvar tudo, apenas a arquitetura ou apenas os pesos. O curso é adequado para aqueles com habilidades básicas de programação e alguma experiência com Python.

A segunda seção do "Curso Keras com TensorFlow" abrange uma variedade de tópicos, começando com o carregamento de pesos em um novo modelo Keras com a mesma arquitetura do modelo original. O instrutor então explica como preparar e pré-processar dados de imagem para treinar uma rede neural convolucional para classificar imagens como gatos ou cachorros antes de passar para a construção e treinamento de um modelo sequencial Keras para a primeira CNN. A seção inclui detalhes para treinar o modelo usando um gerador contendo dados de rótulo para validação durante o ajuste do modelo e como plotar uma matriz de confusão para avaliar o desempenho do modelo. Ele conclui demonstrando como ajustar um modelo VGG 16 pré-treinado para classificar imagens de cães e gatos, ajustar seu pré-processamento e também treiná-lo.

Na terceira seção, o instrutor apresenta o MobileNets, uma alternativa menor e mais rápida para modelos mais complexos. Eles demonstram o download e o uso de MobileNets em um Jupyter Notebook, organizando um conjunto de dados para dígitos de linguagem de sinais e ajustando o modelo para uma nova tarefa de classificação. O instrutor enfatiza a importância de apontar corretamente o iterador para a localização do conjunto de dados no disco, o número de camadas a serem congeladas durante o treinamento e ajustar os hiperparâmetros para reduzir os problemas de superajuste. A seção final apresenta o aumento de dados e seu potencial para reduzir o overfitting e aumentar o tamanho do conjunto de dados e fornece instruções sobre os diferentes tipos de aumento (por exemplo, deslocamento, inversão, rotação), salvar imagens aumentadas em disco e adicioná-las de volta ao treinamento definir.

  • 00:00:00 Nesta seção, é explicado que o curso é focado em ensinar como usar o Keras, uma API de rede neural escrita em Python e integrada ao TensorFlow. Começa com o básico de organização e pré-processamento de dados e depois passa para a construção e treinamento de redes neurais artificiais. O curso recomenda algumas habilidades básicas de programação e alguma experiência com Python, mas também fornecerá breves introduções a cada conceito de aprendizado profundo antes de passar pela implementação do código. O curso também fornece recursos de vídeo e texto, incluindo arquivos de código usados no curso, que são testados e mantidos regularmente, e o acesso para download a esses arquivos está disponível para membros do Deep Lizard Hive Mind. É ainda explicado que o Keras foi desenvolvido com foco em permitir a experimentação rápida do usuário e, sendo integrado ao TensorFlow, o Keras agora está completamente integrado à API do TensorFlow. São fornecidas recomendações para aprender várias APIs de rede neural e não ficar com uma para sempre para demonstrar experiência e comparação entre elas, tornando o candidato mais valioso.

  • 00:05:00 Nesta seção do curso Keras com TensorFlow, é discutida a necessidade de uma GPU, e observa-se que ela não é necessária para o curso. No entanto, se um usuário quiser usar uma GPU, há um guia disponível sobre como configurar a GPU para funcionar com o TensorFlow. Recomenda-se fazer o curso primeiro com uma CPU e depois configurar a GPU para maior eficiência e velocidade. A próxima seção discute como preparar e processar dados numéricos para a rede neural artificial e os diferentes formatos de dados que o modelo sequencial em Keras espera. A função fit espera que os dados de entrada (x) estejam em uma matriz NumPy, um tensor TensorFlow, um mapeamento dict, um conjunto de dados TF ou um gerador Keras. Os dados de destino (y) também precisam estar no mesmo formato que x.

  • 00:10:00 Nesta seção, o instrutor explica que a normalização de dados ou as técnicas de padronização podem colocar os dados em um formato que facilita o aprendizado do modelo de aprendizado profundo. O instrutor usa um conjunto de dados numéricos simples como exemplo, onde uma droga experimental foi testada em indivíduos com idades entre 13 e 100 anos, e cerca de 95% dos pacientes que estavam na população mais velha, 65 anos ou mais, experimentaram efeitos colaterais, enquanto cerca de 95 % dos pacientes com menos de 65 anos não apresentaram efeitos colaterais. O instrutor então passa por um loop for que gera números inteiros aleatórios que imitam o cenário da vida real de pacientes que experimentaram ou não efeitos colaterais e, em seguida, adicionam essas amostras e os rótulos correspondentes a duas listas separadas.

  • 00:15:00 Nesta seção do vídeo, o instrutor resume o processo de geração e preparação de dados para uma rede neural usando arrays NumPy na API Keras integrada ao TensorFlow. Eles explicam que a lista de amostras contém idades e a lista de rótulos contém zeros e uns representando efeitos colaterais, ou nenhum efeito colateral, para corresponder a cada idade. Os dados são então processados e transformados no formato de array NumPy que a função fit espera, e os dados são embaralhados usando a função shuffle para remover qualquer ordem imposta do processo de geração de dados. Além disso, os dados são redimensionados de uma escala de 13 a 100, para uma escala de zero a um, e remodelados para que a função de transformação de ajuste aceite dados unidimensionais. Por fim, o instrutor demonstra como construir uma rede neural artificial sobre esses dados, usando um modelo sequencial da API keras.

  • 00:20:00 Nesta seção do vídeo, o apresentador explica como criar um modelo de rede neural usando a API Keras integrada ao TensorFlow. O modelo é um modelo sequencial e é criado como uma instância da classe Sequential. A primeira camada densa cria a primeira camada oculta e possui 16 unidades com a função de ativação ReLU. A segunda camada densa cria a segunda camada oculta e possui 32 unidades com a função de ativação ReLU. A última camada é a camada de saída com duas unidades representando as duas classes de saída possíveis. O apresentador explica que a camada de saída é seguida pela função Softmax, que dá probabilidades para cada classe de saída. O apresentador então demonstra como usar a função model.summary() para exibir um resumo visual da arquitetura do modelo.

  • 00:25:00 Nesta seção, aprendemos como treinar uma rede neural nos dados que foram criados e processados nas seções anteriores. Depois de construir nosso modelo, nós o compilamos com a perda, o otimizador e as métricas apropriadas. Em seguida, especificamos os dados de entrada, os dados de destino, o tamanho do lote e o número de épocas para treinamento na função de ajuste. O treinamento começa e vemos que em 30 épocas, nosso modelo simples atinge 94% de precisão sem muito esforço. Isso serve como um ótimo exemplo da facilidade de começar a usar o Keras.

  • 00:30:00 Nesta seção, o conceito de um conjunto de validação é explicado no contexto do treinamento de modelos de aprendizado de máquina, e é destacada a importância de seu uso. A criação de um conjunto de validação permite que os usuários avaliem o quão bem um modelo generaliza em dados nos quais não foi treinado. O overfitting pode ser evitado examinando a precisão dos resultados do conjunto de validação, que não deve ser significativamente menor do que a dos dados de treinamento. Dois métodos para criar e usar conjuntos de validação com um modelo sequencial Keras são discutidos, com o segundo método permitindo que Keras crie o conjunto de validação para o usuário.

  • 00:35:00 Nesta seção, o vídeo discute como criar um conjunto de validação a partir do conjunto de treinamento usando o parâmetro de divisão de validação, que divide uma porcentagem especificada dos dados de treinamento em um conjunto de validação. O vídeo observa que o conjunto de validação é completamente mantido fora do conjunto de treinamento e será criado em tempo real sempre que a função de ajuste for chamada. Também é importante embaralhar os dados de treinamento antes de passá-los para ajuste para garantir que o conjunto de validação não seja apenas o último X por cento dos dados não embaralhados. O vídeo também explica como usar o conjunto de validação para verificar se o modelo está superajustado ou generalizando bem e discute a próxima etapa do uso de um conjunto de teste para inferência.

  • 00:40:00 Nesta seção, o instrutor explica o processo de inferência no aprendizado profundo. A inferência é o processo de implantação de um modelo treinado nos conjuntos de dados do mundo real para obter as previsões sobre novos dados que o modelo não viu antes. Para garantir que o modelo possa generalizar bem o suficiente para fazer previsões precisas sobre novos dados, o instrutor sugere o uso de um conjunto de teste. O conjunto de teste deve ser processado no mesmo formato que os dados de treinamento. O autor demonstra como fazer isso embaralhando os dados de teste, dimensionando-os para ficar entre 0 e 1 e prevendo os dados de teste com um modelo treinado para obter a probabilidade da classe à qual cada elemento do conjunto de teste pertence.

  • 00:45:00 Nesta seção, veremos o uso de uma matriz de confusão para observar visualmente o desempenho de um modelo de rede neural em dados de teste. Ao importar os pacotes necessários e criar uma matriz de confusão usando o scikit-learn, podemos comparar os rótulos verdadeiros do conjunto de teste com os rótulos previstos e, assim, entender melhor a precisão das previsões do nosso modelo. Também vemos como plotar a função da matriz de confusão e como certos valores nela são obtidos, pré-processados e visualizados. Um link para uma função útil para o curso Keras with TensorFlow também está disponível no blog deep lizard.

  • 00:50:00 Nesta seção, o instrutor demonstra como plotar uma matriz de confusão para visualizar a precisão das previsões do modelo. O gráfico mostra os rótulos previstos no eixo x e os rótulos verdadeiros no eixo y. As previsões corretas são mostradas em quadrados azuis indo diagonalmente do canto superior esquerdo ao canto inferior direito do gráfico. A matriz de confusão permite ao usuário visualizar o desempenho do modelo e identificar as classes que podem precisar de melhorias. O instrutor explica que a matriz de confusão é uma ótima ferramenta para avaliar o desempenho de um modelo e pode ajudar a detalhar quais classes precisam de mais trabalho. Por fim, o instrutor mostra como salvar um modelo sequencial Keras usando a função `.save()`, que salva a arquitetura, os pesos e a configuração de treinamento do modelo em um arquivo h5.

  • 00:55:00 Nesta seção, o instrutor aborda as diferentes maneiras de salvar e carregar um modelo no Keras com o TensorFlow. A primeira e mais abrangente opção é salvar e carregar tudo sobre o modelo, incluindo sua arquitetura, pesos e configuração de treinamento. A segunda opção é salvar apenas a arquitetura do modelo usando a função "para JSON", que pode ser usada para criar um novo modelo com a mesma arquitetura posteriormente. A terceira opção é salvar apenas os pesos do modelo usando a função "salvar pesos", que pode ser carregada em um novo modelo para atualizar seus pesos, mas não salva nenhum outro detalhe sobre o modelo. O instrutor também explica que o mesmo processo pode ser feito usando strings YAML em vez de strings JSON.
  • 01:00:00 Nesta seção, o apresentador discute o carregamento de pesos em um novo modelo Keras com a mesma arquitetura do modelo original. Ele explica que a forma dos pesos que estão sendo carregados deve corresponder à forma da arquitetura do modelo para que o mapeamento dos pesos funcione. O apresentador então mostra como carregar e preencher um novo modelo com pesos do modelo original usando as funções "carregar pesos" e "obter pesos" no Keras. A seção faz a transição para um novo tópico, que é preparar e processar dados de imagem para treinar uma rede neural convolucional para classificar imagens como gatos ou cachorros, usando o conjunto de dados da competição Kaggle gatos versus cães. O apresentador explica as etapas manuais e programáticas necessárias para preparar os dados para processamento.

  • 01:05:00 Nesta seção, o instrutor organiza os dados em três subconjuntos: conjuntos de treinamento, validação e teste. O conjunto de dados usado no tutorial contém 25.000 imagens de cães e gatos, mas para acelerar o processo de treinamento, apenas 1.000 imagens são usadas para treinamento, 200 para validação e 100 para teste. Os dados são organizados em diretórios diferentes para cada conjunto e a estrutura do diretório é verificada para garantir que ainda não exista. As imagens são selecionadas aleatoriamente com base nos nomes dos arquivos, onde as imagens de gato e cachorro têm as palavras "gato" e "cachorro" em seus respectivos nomes de arquivo. Por fim, o caminho de dados é especificado para cada conjunto para apontar para o local correto no disco.

  • 01:10:00 Nesta seção, o vídeo explica como preparar dados para um modelo sequencial Keras criando lotes de dados usando o gerador de dados de imagem. Os conjuntos de treinamento, validação e teste são definidos e redimensionados para uma altura e largura especificadas para uniformidade. A função de pré-processamento, tf.keras.applications.VGG16.preprocess_input, é aplicada às imagens antes de serem passadas para a rede. O vídeo adverte os espectadores a não se estressarem com os detalhes técnicos do pré-processamento, pois será explicado em episódios futuros. Além disso, o vídeo especifica que shuffle é igual a false para o conjunto de teste, explicando que, ao executar a inferência, os rótulos não resolvidos do conjunto de teste são necessários para visualizar os resultados da previsão em uma matriz de confusão e os dados não devem ser embaralhados para acessá-los.

  • 01:15:00 Nesta seção, o instrutor demonstra como obter e organizar dados de imagem para uma rede neural convolucional. Os lotes de trem, consistindo em dez imagens e rótulos correspondentes, são plotados usando uma função de pré-processamento que distorce os dados de cores RGB. No entanto, as imagens ainda podem ser distinguidas como um gato ou um cachorro com a ajuda de vetores codificados a quente para os rótulos. O instrutor observa que às vezes os rótulos correspondentes para o conjunto de teste podem não estar disponíveis e direciona os visualizadores ao blog para orientação sobre como lidar com esses casos. O episódio termina com uma prévia da próxima seção, onde uma rede neural convolucional será construída e treinada em dados de imagens de cães e gatos.

  • 01:20:00 Nesta seção do tutorial do TensorFlow, um modelo sequencial Keras é usado para a primeira rede neural convolucional (CNN). A primeira camada do modelo é uma camada convolucional 2D com 32 filtros e um tamanho de kernel de 3x3, seguida pela popular função de ativação ReLU com o "mesmo" preenchimento para zero pad nas imagens. A forma de entrada é especificada como 224x224x3 para as imagens no formato RGB. A primeira camada convolucional é então seguida por uma camada max pooling com um tamanho de pool de 2x2 e passos de 2. Outra camada convolucional 2D, semelhante à primeira, mas com 64 filtros em vez de 32, é adicionada seguida por outra camada max pooling. A saída achatada da camada de pooling máximo é então passada para uma camada de saída densa com dois nós correspondentes a cat e dog, respectivamente. A camada de saída é seguida pela função de ativação softmax para fornecer probabilidades para cada saída correspondente do modelo.

  • 01:25:00 Nesta seção, o instrutor discute como treinar um modelo usando Keras com TensorFlow e como usar um gerador contendo dados de rótulo para validação durante o ajuste do modelo. O modelo é treinado com compilação e, em seguida, a função de ajuste é definida usando os conjuntos de treinamento e validação, e a época e a verbosidade são definidas. O aviso que ocorre durante o treinamento é um bug no TensorFlow, e o instrutor aponta como ignorar esse aviso. Os resultados mostram que enquanto a precisão do conjunto de treinamento é de 100%, a precisão da validação é de apenas 69%, indicando overfitting. O modelo precisará de mais atenção para combater o problema de overfitting se for usado na produção. O próximo episódio explorará como o modelo treinado suporta a inferência na previsão de imagens no conjunto de teste.

  • 01:30:00 Nesta seção do vídeo, o instrutor explica o processo de usar uma função de plotagem de imagens para plotar um lote de dados de teste a partir de lotes de teste e imprimir os rótulos correspondentes para as imagens. O instrutor enfatiza a importância de não embaralhar o conjunto de dados de teste para garantir o mapeamento correto entre rótulos e amostras. Em seguida, as previsões são obtidas chamando model.predict com lotes de teste especificados como entrada. O instrutor imprime as previsões arredondadas e explica como interpretá-las. Eles também mencionam o uso de uma matriz de confusão para visualizar os resultados, e a função de matriz de confusão do scikit-learn é usada com os rótulos verdadeiros passados usando classes de lotes de teste.

  • 01:35:00 Nesta seção, o vídeo discute como plotar uma matriz de confusão para avaliar o desempenho do modelo na classificação de imagens de cães e gatos usando a API Keras do TensorFlow. A matriz de confusão é plotada usando uma função do scikit-learn e os índices de classe são ajustados de acordo. A diagonal da matriz de confusão representa as previsões corretas e o modelo parece estar superajustado. A próxima seção demonstrará como ajustar um modelo VGG 16 pré-treinado para classificar imagens de cães e gatos, que venceu a competição ImageNet de 2014. O vídeo também explica brevemente a função de pré-processamento do VGG 16, que subtrai apenas o valor RGB médio calculado de cada pixel do conjunto de treinamento dos dados da imagem.

  • 01:40:00 Nesta seção, o instrutor explica o pré-processamento que foi feito para o modelo VGG-16 e como os novos dados precisam ser processados da mesma forma para corresponder ao treinamento original do VGG-16. O instrutor menciona que o Keras possui funções integradas para modelos populares como o VGG-16, que possui pré-processamento adequado para o modelo correspondente. O instrutor também explica que o modelo VGG-16 originalmente previa para 1.000 classes imageNet diferentes, e o objetivo é alterar a última camada de saída para prever apenas duas classes de saída correspondentes a gato e cachorro. Por fim, o instrutor cria um novo modelo sequencial percorrendo cada camada VGG-16 e excluindo a última camada de saída. Este novo modelo é para ajuste fino e possui apenas duas classes de saída.

  • 01:45:00 Nesta seção, vemos como modificar e treinar o modelo VGG 16 ajustado em um conjunto de dados de cães e gatos. A última camada do modelo, que prevê 1.000 classes de saída, foi removida e uma nova camada densa que possui apenas duas classes de saída para gato e cachorro foi adicionada. Todas as camadas anteriores foram definidas para não serem treináveis, exceto a camada de saída contendo 8.000 parâmetros treináveis. O modelo é compilado usando entropia cruzada categórica como perda e precisão como métrica e é treinado usando o método fit() passando o conjunto de dados de treinamento e o conjunto de validação para ele.

  • 01:50:00 Nesta seção, o instrutor discute os resultados do treinamento do modelo VGG 16 em imagens de cães e gatos com uma especificidade sobre a precisão dos conjuntos de treinamento e validação. O modelo VGG 16 já havia sido treinado em imagens de gatos e cachorros da biblioteca da rede de imagens, e o treinamento que está sendo feito na camada de saída é treinar o modelo para gerar apenas classes de gato ou cachorro. Em apenas cinco épocas, o modelo VGG 16 teve uma precisão de treinamento de 99%, enquanto a precisão da validação foi igual a 98%, indicando o quão bem esse modelo generaliza para dados de cães e gatos em conjuntos de validação em comparação com a rede neural convolucional simples. No próximo episódio, o modelo VGG 16 ajustado será usado para inferência para prever imagens de cães e gatos no conjunto de teste e, dada a precisão no conjunto de validação, devemos esperar ver bons resultados no conjunto de teste também .

  • 01:55:00 Nesta seção do vídeo, o instrutor discute o uso de uma matriz de confusão para avaliar o desempenho de um modelo VGG16 ajustado em um conjunto de teste inédito. A diagonal da matriz de confusão é examinada, o que revela que o modelo atingiu uma taxa de precisão de 96%. Embora a abordagem de ajuste fino adotada para o modelo VGG16 tenha sido mínima, o instrutor explica que os próximos episódios abordarão mais métodos de ajuste fino em outros modelos pré-treinados, como MobileNets. Esses modelos menores e de baixo consumo de energia são mais adequados para implantação em dispositivos móveis devido ao seu tamanho e número de parâmetros consideravelmente menores.
  • 02:00:00 Nesta seção do vídeo, o instrutor apresenta o MobileNets - uma alternativa menor e mais rápida para modelos maiores como o VGG 16. Embora o MobileNets não seja tão preciso quanto alguns desses modelos pesados, a redução na precisão é relativamente pequena. O instrutor percorre as etapas para baixar e trabalhar com MobileNets em um Jupyter Notebook, incluindo importar os pacotes necessários, baixar e atribuir o modelo MobileNet e criar uma função chamada "prepare_image" para redimensionar e formatar as imagens antes de passá-las pelo MobileNet modelo para processamento. No geral, o foco está em entender as compensações entre precisão e tamanho/velocidade ao trabalhar com diferentes modelos de aprendizagem profunda e como usá-los de forma eficaz.

  • 02:05:00 Nesta seção, o instrutor demonstra como usar um modelo MobileNet pré-treinado para prever as cinco principais classes possíveis de determinadas imagens. Eles primeiro exibem uma imagem de lagarto e a passam por uma função de pré-processamento antes de passá-la para a função de previsão do MobileNet. A MobileNet prevê as três primeiras classes com altas probabilidades, sendo o camaleão americano o mais provável. Eles repetem o mesmo processo com a imagem de uma xícara de café e o modelo prevê que seja um expresso com 99% de probabilidade. Por fim, eles passam uma imagem de morango para o modelo e obtêm as previsões para as melhores classes possíveis.

  • 02:10:00 Nesta seção do vídeo, o apresentador mostra os resultados das previsões do modelo de rede móvel para uma amostra aleatória de imagens, que inclui um morango e outras frutas. O apresentador menciona que embora tenha havido uma pequena redução na precisão do modelo, não é perceptível ao fazer testes como os mostrados no vídeo. A próxima etapa é ajustar o modelo de rede móvel para um conjunto de dados personalizado que consiste em dígitos de linguagem de sinais. O apresentador mostra como organizar o conjunto de dados no disco e movê-lo para o diretório de trabalho antes de processá-lo programaticamente em um Jupyter Notebook.

  • 02:15:00 Nesta seção, o instrutor explica como organizar dados de imagem em diretórios train, valid e test usando um script Python. A primeira etapa é verificar o número de amostras em cada classe, que varia de 204 a 208. Em seguida, usando um loop for, o script move cada diretório de classe para o diretório train e cria diretórios separados para conjuntos válidos e de teste para cada classe . Por fim, o script faz amostras de imagens aleatórias de cada classe no diretório train, move-as para o diretório válido e faz amostras de mais imagens e as move para o diretório test. Após a execução do script, os dados são organizados em diretórios separados para cada conjunto, e a quantidade de imagens em cada classe pode ser verificada verificando os diretórios correspondentes.

  • 02:20:00 Nesta seção do vídeo, o palestrante discute a estrutura organizacional do conjunto de dados com o qual trabalhará, que é semelhante ao conjunto de dados de cães e gatos usado anteriormente no curso, mas agora contém 10 classes em vez de dois. Eles então demonstram como pré-processar os dados definindo os diretórios de treinamento, validação e teste e criando iteradores de diretório usando o gerador de dados de imagem. A função de pré-processamento usada é a função de pré-processamento da rede móvel, que dimensiona os dados da imagem para uma escala de menos um a um. As configurações do iterador, como o tamanho da imagem de destino e o tamanho do lote, também são definidas. O palestrante enfatiza a importância de apontar corretamente o iterador para a localização do conjunto de dados no disco, pois o apontamento incorreto pode resultar na localização de zero imagens.

  • 02:25:00 Nesta seção do curso Keras com TensorFlow, o instrutor explica como ajustar o modelo MobileNet pré-treinado para uma nova tarefa de classificação. O primeiro passo é baixar o modelo MobileNet e examinar suas camadas usando a função "model.summary()". Eles então selecionam as camadas até a penúltima camada e criam uma nova camada de saída densa com 10 unidades. Isso é seguido pela criação de um novo modelo funcional que passa todas as camadas anteriores até a sexta à última camada e a rede móvel para a camada de saída. O novo modelo é criado e a próxima etapa é congelar todas as camadas, exceto as últimas 23, para treinamento. O instrutor observa que o número de camadas a congelar requer experimentação pessoal e pode variar dependendo da tarefa.

  • 02:30:00 Nesta seção, o instrutor ajusta o modelo MobileNet original, treinando apenas as últimas 23 camadas e substituindo a camada de saída por uma que tenha 10 classes em vez de 1.000. O modelo é compilado e treinado usando o otimizador Adam com uma taxa de aprendizado de 0,0001 e uma função categórica de perda de entropia cruzada. Após treinar por 30 épocas, o modelo atinge 100% de precisão no conjunto de treinamento e 92% de precisão no conjunto de validação. Embora haja algum overfitting, com precisão de validação inferior à precisão de treinamento, o instrutor sugere que executar mais épocas ou ajustar hiperparâmetros pode ajudar a reduzir o problema de overfitting.

  • 02:35:00 Nesta seção do vídeo, o instrutor mostra como usar um modelo ajustado no conjunto de teste e plotar as previsões em uma matriz de confusão. A matriz de confusão indica que o modelo teve um bom desempenho com previsões corretas no conjunto de teste. O modelo tem 90% de precisão no conjunto de teste, o que é esperado dada a precisão no conjunto de validação. O instrutor enfatiza que a série no MobileNet forneceu informações sobre como ajustar modelos para conjuntos de dados personalizados e usar o aprendizado de transferência. O próximo episódio demonstrará como usar o aumento de dados em imagens usando a API Keras do TensorFlow.

  • 02:40:00 Nesta seção, é destacada a importância do aumento de dados para aprendizado profundo, especialmente quando não há dados suficientes para treinar o modelo. O aumento de dados pode ajudar a reduzir o overfitting e aumentar o tamanho do conjunto de treinamento. O código para aumentar os dados da imagem usando Keras é então introduzido, onde um gerador de dados de imagem é criado e vários parâmetros de aumento são especificados, como faixa de rotação, faixa de deslocamento de largura e faixa de zoom. Uma imagem aleatória de um diretório dog é escolhida e a função flow é chamada para gerar um lote de imagens aumentadas a partir dessa única imagem. As imagens aumentadas resultantes são plotadas usando uma função pré-definida de imagens de plotagem.

  • 02:45:00 Nesta seção, o instrutor discute o aumento de dados, que é um método de aumentar artificialmente o tamanho de um conjunto de dados criando variações de dados existentes. Observando imagens diferentes, o instrutor identifica os tipos de aumento de dados que foram feitos nelas, como deslocamento, inversão e rotação, e explica como essa técnica pode ser útil para aumentar um conjunto de dados. Ao aumentar a variedade do conjunto de dados, um modelo pode se tornar mais robusto e melhor na classificação de dados. O instrutor também fornece uma breve instrução para salvar essas imagens aumentadas no disco e adicioná-las de volta ao conjunto de treinamento.
 

Scikit-learn Crash Course - Biblioteca de aprendizado de máquina para Python



Scikit-learn Crash Course - Biblioteca de aprendizado de máquina para Python

O vídeo "Scikit-learn Crash Course" fornece uma visão geral do uso da biblioteca Scikit-learn para aprendizado de máquina em Python. O vídeo aborda a preparação de dados, criação e ajuste de modelos, ajuste de hiperparâmetros por meio de pesquisa de grade e avaliação de modelos. A importância do pré-processamento e dos transformadores para melhorar o desempenho do modelo é enfatizada, com exemplos de escalador padrão e transformador quantil. O vídeo também discute a importância da avaliação do modelo e da escolha da métrica certa para o problema, bem como o tratamento de conjuntos de dados desequilibrados e categorias desconhecidas na codificação one-hot. O palestrante enfatiza a compreensão do conjunto de dados e possíveis vieses nas previsões do modelo e fornece um exemplo de detecção de fraude de cartão de crédito.

A segunda parte do vídeo aborda vários tópicos, incluindo pesquisa em grade, métricas, pipelines, ajuste de limite, modelagem de séries temporais e tratamento de valores discrepantes. O instrutor explora o uso de métricas definidas de forma personalizada e a importância de equilibrar a precisão e a recuperação na criação do modelo. Além disso, o classificador de votação é apresentado como um meta-estimador que aumenta a flexibilidade e a expressividade do modelo. O vídeo termina apresentando a ferramenta Human Learn, que ajuda a construir e comparar sistemas baseados em regras que podem ser combinados com algoritmos de aprendizado de máquina. Além disso, é explorada a ferramenta FunctionClassifier, que permite aos usuários criar lógica customizada como um modelo classificador e adicionar comportamentos como detecção de outliers. No geral, o vídeo fornece uma visão geral abrangente do Scikit-learn e sua API flexível, enfatizando a importância de compreender as métricas relevantes para a criação e personalização do modelo.

  • 00:00:00 Os dados y. X contém os recursos ou variáveis de entrada, enquanto Y contém o destino ou a variável de saída que queremos prever. Dividimos os dados em um conjunto de treinamento e um conjunto de teste para avaliar o desempenho do modelo. Em seguida, precisamos pré-processar os dados. Uma das técnicas de pré-processamento mais importantes é o dimensionamento, que envolve a normalização dos valores dos recursos para que todos caiam em um intervalo semelhante. Isso ajuda o modelo a aprender de forma mais eficaz. Por fim, escolhemos um modelo e o treinamos no conjunto de treinamento. Depois que o modelo é treinado, avaliamos seu desempenho no conjunto de teste e fazemos previsões sobre novos dados. Nas próximas seções, vamos nos aprofundar nos tópicos de pré-processamento, avaliação de modelo e metaestimadores.

  • 00:05:00 Nesta seção, o palestrante discute como dividir dados em conjuntos x e y para modelos de aprendizado de máquina. O conjunto x representa os dados usados para fazer previsões, enquanto o conjunto y contém a previsão de interesse. Usando a biblioteca scikit-learn, os usuários podem carregar conjuntos de dados de referência para fins educacionais. O palestrante também explica o processo de duas fases de criação e ajuste de um modelo para aprender com os dados a fim de fazer previsões. O modelo de k vizinhos mais próximos é usado como exemplo, mas o modelo de regressão linear também é mostrado para ilustrar como diferentes modelos ainda podem ter a mesma API no scikit-learn.

  • 00:10:00 Nesta seção, o vídeo Scikit-learn Crash Course explica como o modelo K-vizinho mais próximo funciona em um conjunto de dados simples que apresenta os pés quadrados que uma casa tem e sua proximidade com as escolas. O modelo faz previsões com base nos 5 vizinhos mais próximos, mas pode surgir o desafio ao usar distâncias com escalas diferentes, o que significa que um eixo pode ter um efeito muito maior nas previsões do que outro. Isso requer repensar o que é um modelo de aprendizado de máquina e sugere que é necessário algum pré-processamento antes que os dados sejam fornecidos ao modelo do K vizinho mais próximo, para que o dimensionamento seja feito antes que as previsões sejam feitas e que tudo dentro do pré- caixa de processamento faz parte do modelo.

  • 00:15:00 Nesta seção, o vídeo explora o conceito de pipeline no Scikit-learn, que permite o encadeamento de etapas de processamento e a chamada de ajuste de ponto e previsão de ponto para todo o pipeline quando treinado. Ao usar um pipeline, é possível lidar com etapas de pré-processamento automaticamente, como dimensionamento e normalização, para aprender com os dados e garantir um sistema robusto. No entanto, essa abordagem apresenta um problema em que o modelo pode memorizar os dados originais. O vídeo mostra como o gráfico sugere falsamente uma previsão perfeita, mas o modelo só pode fazer isso porque é permitido memorizar o ponto de dados original, impedindo uma comparação justa e previsibilidade confiável em novos dados.

  • 00:20:00 Nesta seção, o instrutor explica o método para avaliar o desempenho de um modelo usando um conjunto de dados de teste separado para evitar julgar o modelo no mesmo conjunto de dados em que foi treinado. Ele sugere dividir o conjunto de dados em segmentos e usar um para treinamento e os outros para teste. Além disso, ele apresenta o objeto cv de pesquisa em grade do Scikit-learn, que permite a validação cruzada automatizada para determinar os melhores hiperparâmetros a serem usados no modelo. Esse objeto pode ser usado com o pipeline criado anteriormente para ajustar o modelo e melhorar seus recursos preditivos.

  • 00:25:00 Nesta seção, o instrutor analisa vários parâmetros do modelo KNearestNeighbors e demonstra como usar o objeto GridSearch para encontrar o melhor conjunto de hiperparâmetros. O objeto GridSearch realizará automaticamente a validação cruzada e acompanhará os resultados, facilitando a análise e a escolha da melhor configuração. No entanto, o instrutor destaca que, embora seja importante usar a API e os blocos de construção apropriados ao trabalhar com o scikit-learn, é igualmente importante entender e analisar o conjunto de dados que está sendo usado. O instrutor mostra como acessar e exibir a descrição de um conjunto de dados e enfatiza a importância de reservar um tempo para entender as variáveis no conjunto de dados antes de criar um modelo.

  • 00:30:00 Nesta seção, o palestrante discute as possíveis armadilhas da aplicação cega de modelos de aprendizado de máquina sem entender completamente os dados usados para treinamento e previsão. Mesmo variáveis aparentemente inócuas, como a proporção de uma determinada raça em uma cidade, podem levar a algoritmos tendenciosos e até mesmo racistas. O palestrante enfatiza a importância de examinar e testar minuciosamente o modelo antes de implantá-lo na produção. O uso de pesquisa em grade e outros métodos podem fornecer garantias estatísticas, mas também pode criar uma falsa sensação de otimismo e causar pontos cegos. É responsabilidade do usuário educar-se sobre os dados que estão sendo usados e considerar mecanismos éticos e de feedback, bem como cenários alternativos para quando as coisas dão errado na produção.

  • 00:35:00 Nesta seção, é destacada a importância da transformação de dados na construção do modelo. O vídeo discute o uso de transformadores e sua importância para melhorar o desempenho do modelo. O dimensionador padrão do Scikit-Learn é usado para redimensionar um conjunto de dados e, embora seu desempenho seja bom, o vídeo demonstra como ele pode ser melhorado usando outros métodos de dimensionamento. A abordagem envolve subtrair a média do conjunto de dados e dividir pelo desvio padrão. Embora a abordagem dimensione os dados, ela deixa discrepâncias, o que pode afetar alguns algoritmos. O vídeo enfatiza ainda mais a importância do pré-processamento para alcançar os resultados desejados do modelo.

  • 00:40:00 Nesta seção do vídeo, o palestrante discute o conceito de normalização e como usá-lo efetivamente calculando quantis em vez de valores médios. Ao usar quantis, o efeito de outliers nos dados é reduzido e o processo se torna mais robusto. O palestrante demonstra como implementar o transformador quantil como uma etapa de pré-processamento, substituindo o scaler padrão, para obter melhores resultados em modelos de aprendizado de máquina. O profundo efeito do transformador nos dados de saída é mostrado por meio de uma função de saída de gráfico que treina um modelo de k vizinhos mais próximos e produz previsões para o conversor de escala padrão e o transformador de quantil.

  • 00:45:00 Nesta seção do vídeo, o palestrante explica como o pré-processamento pode afetar drasticamente a classificação dos conjuntos de dados. No primeiro exemplo, o alto-falante emprega o Transformador Quantil que torna o modelo mais estável e mais adequado para lidar com outliers no longo prazo. O segundo exemplo mostra como adicionar novos recursos pode melhorar o desempenho do modelo. Ao gerar recursos não lineares como x1 vezes x2 e x1 elevado a 2 e x2 elevado a 2 por meio de Recursos Polinomiais, o Modelo de Regressão Logística foi capaz de produzir uma classificação quase perfeita. Finalmente, o One Hot Encoder é apresentado como uma técnica para transformar texto ou categorias em dados numéricos que são úteis para prever classes como baixo, médio ou alto risco.

  • 00:50:00 Nesta seção, o vídeo discute como lidar com categorias desconhecidas ao usar a codificação one-hot com a biblioteca Scikit-learn. O apresentador explica que se o codificador for solicitado a transformar dados que não viu antes, isso resultará em um erro de valor. No entanto, isso pode ser alterado ajustando o parâmetro "handle_unknown" para "ignore". O vídeo também apresenta um site chamado "DrawData.xyz", que permite aos usuários criar seus próprios conjuntos de dados para praticar em pré-processamento e pipelines. O palestrante enfatiza que as etapas de pré-processamento são cruciais porque podem impactar fortemente o resultado do modelo. Por fim, o vídeo explica os benefícios de usar uma pesquisa em grade para comparar vários modelos e escolher o melhor para previsão, usando um conjunto de dados de fraude de cartão de crédito como exemplo.

  • 00:55:00 Nesta seção, o vídeo explica a importância de escolher a métrica certa e como o Scikit-learn lida com isso. O vídeo usa um conjunto de dados de recursos anônimos e valores de transação para demonstrar como o Scikit-learn pode ser usado para prever casos de fraude com precisão. No entanto, como o conjunto de dados está desequilibrado com mais casos de fraude do que casos sem fraude, o modelo falha em convergir com o número padrão de iterações. Portanto, o número máximo de iterações é aumentado e o parâmetro de peso da classe é ajustado para dobrar o peso dos casos de fraude para melhorar a detecção de fraude do modelo. O vídeo também apresenta o GridSearchCV para encontrar o melhor valor para o parâmetro de peso da classe.
  • 01:00:00 Nesta seção, o instrutor explica como usar a pesquisa de grade para encontrar os melhores parâmetros de modelo para regressão logística no scikit-learn. Ao definir uma grade de valores de parâmetros, o instrutor mostra como percorrer esses hiperparâmetros e testá-los usando a validação cruzada. O objeto grid retorna um dicionário de resultados, incluindo o peso e as pontuações da classe. O modelo de regressão logística possui um método vinculado chamado score, que é utilizado para determinar o melhor modelo. Em seguida, o instrutor apresenta duas métricas do módulo de métricas scikit-learn, precisão e pontuação de recuperação, e explica como incluí-las na pesquisa de grade usando um dicionário de pontuação.

  • 01:05:00 Nesta seção, o palestrante adiciona a precisão do teste e as pontuações de recuperação do teste e define um sinalizador que permitirá a adição de pontuações de trem aos resultados da validação cruzada. Eles então aumentam o número de validações cruzadas e substituem o intervalo de quatro por um espaço linear numpy, definindo um valor mais alto para dizer ao algoritmo para se concentrar em casos de fraude. Eles fazem alguns gráficos resumindo os resultados, observando que o foco no recall ou na precisão resulta em um resultado completamente diferente. Eles então decidem criar sua métrica, a precisão mínima de rechamada, que calcula o mínimo entre precisão e rechamada e o adiciona à pesquisa da grade. Eles fazem isso para equilibrar as duas métricas e ter um modelo que equilibra as pontuações de recall e precisão.

  • 01:10:00 , estamos usando a função make_scorer na pesquisa de grade com nossa métrica definida personalizada, min_precision_recall, que aceita y_true e y_pred como entrada. No entanto, a função make_scorer requer um estimador, conjunto de dados X, y true e alguma forma de ponderação de amostra, portanto, ela transforma nossa função métrica em um objeto de pontuação de previsão que pode ser usado na pesquisa de grade. O peso da amostra é um recurso extra que pode ser repassado aos modelos de aprendizado de máquina e nos permite dizer que uma determinada linha é mais importante que outra. Em vez de usar a função make_scorer, podemos passar diretamente o estimador e calcular os valores y previstos com a função predict.

  • 01:15:00 Nesta seção, o palestrante discute o uso do peso da amostra na detecção de fraudes e mostra como ele pode ser adicionado a uma função de estabilidade numérica. Eles também demonstram o efeito de adicionar peso de amostra no modelo algorítmico. O palestrante então propõe o uso de um algoritmo de detecção de outliers para detectar fraudes e mostra como adaptar as métricas para essa abordagem. Eles substituem a regressão logística por um algoritmo de floresta de isolamento e demonstram como isso afeta as pontuações de precisão e recuperação. Por fim, o palestrante escreve sua variante das funções métricas para transformar a previsão atípica em previsões de rótulos de fraude.

  • 01:20:00 Nesta seção, o narrador discute a flexibilidade da API do Scikit-learn e a capacidade de usar algoritmos de detecção de outliers como se fossem classificadores passando rótulos y em métricas personalizadas. Isso pode ser útil para julgar se um modelo outlier seria útil em um problema de classificação. No entanto, o narrador adverte que é importante nos preocuparmos com a qualidade dos rótulos, pois isso pode impactar significativamente nas métricas do modelo. Além disso, o narrador aponta algumas configurações de personalização para métricas, como especificar se maior é melhor e a necessidade de uma medida de probabilidade para algumas métricas. Por fim, o narrador menciona a capacidade do Scikit-learn de trabalhar com metamodelos.

  • 01:25:00 Nesta seção, o instrutor explica como os pipelines scikit-learn funcionam e as limitações de usar apenas pipelines scikit-learn para modelos de aprendizado de máquina. O instrutor sugere o uso de metaestimadores como uma forma de contornar as limitações dos pipelines para adicionar etapas extras e ferramentas de pós-processamento a um modelo. O instrutor fornece um exemplo de metaestimador, o classificador de votação, e como ele pode ser usado para equilibrar diferentes modelos para um conjunto de dados, atribuindo pesos a cada estimador.

  • 01:30:00 Nesta seção, o instrutor demonstra o uso de um classificador de votação com scikit-learn, que pode combinar diferentes modelos que funcionam de maneiras diferentes para produzir previsões mais precisas. Além disso, este modelo pode ser utilizado como entrada para outros estimadores, aumentando assim a flexibilidade e expressividade. O instrutor também apresenta a ideia de ajustar o valor do limite em um modelo de regressão logística para compensar a precisão pela recuperação ou vice-versa usando o metamodelo do limiar. Isso é demonstrado por um exemplo de como usar o modelo de limiar em uma pesquisa de grade. Ao usar essas técnicas fornecidas pelo scikit-learn, pode-se ajustar os parâmetros do modelo e obter melhor desempenho.

  • 01:35:00 Nesta seção, o palestrante fala sobre o uso de uma pesquisa em grade para ajustar o limite de um classificador binário. Eles mostram que as curvas de precisão e recuperação mudam conforme o limite muda, mas a precisão permanece relativamente consistente. O palestrante explica que esse tipo de etapa de pós-processamento é melhor implementado como um metamodelo que aceita outro modelo como entrada. O palestrante então demonstra um exemplo de construção de um metamodelo com as classes Pipeline e Group(byRegressor) do Scikit-learn para agrupar dados por dieta e então usar um modelo de regressão linear diferente para cada grupo. Eles explicam que esse tipo de agrupamento pode ser útil para situações em que o efeito de uma variável categórica pode não ser simplesmente uma mudança constante.

  • 01:40:00 Nesta seção, o vídeo explica uma tarefa de série temporal e mostra como modelá-la usando um preditor agrupado e um regressor fictício. Ele observa que a previsão é boa para o meio do ano, mas fica aquém nos últimos anos e supera no passado. Para melhorar o modelo, o vídeo sugere focar nos dados mais recentes e esquecer os dados anteriores. Ele apresenta o conceito de pesos de amostra, que permite ao usuário especificar quanto pesar um determinado ponto de dados. O vídeo demonstra como adicionar decaimento ao modelo, o que torna os pontos de dados recentes mais importantes do que os antigos. Ao fazer isso, o modelo se torna mais expressivo e tem melhor desempenho nos dados recentes, ignorando o histórico distante. No entanto, esse truque pode resultar em uma situação em que os dados de treinamento têm desempenho pior do que os dados de teste.

  • 01:45:00 Nesta seção, o palestrante apresenta uma ferramenta chamada Human Learn, um projeto de código aberto projetado para oferecer ferramentas compatíveis com scikit-learn que ajudam a construir e comparar sistemas baseados em regras. O palestrante explica que, antigamente, era mais comum usar especialistas humanos para criar regras de negócios e sistemas de classificação de dados do que algoritmos de aprendizado de máquina. No entanto, os modelos de aprendizado de máquina não são perfeitos e podem apresentar um comportamento problemático ou ineficaz. O objetivo do Human Learn é construir sistemas baseados em regras que possam ser facilmente comparados com modelos de aprendizado de máquina, além de serem combinados com eles. O palestrante demonstra como construir um sistema baseado em regras usando o conjunto de dados do Titanic e explica como o Human Learn pode facilitar a incorporação desses sistemas em seu fluxo de trabalho diário.

  • 01:50:00 Nesta seção do vídeo, o palestrante apresenta a ferramenta FunctionClassifier no scikit-learn que pega uma função definida pelo usuário e a transforma em um classificador compatível com o scikit-learn. A ferramenta também permite a otimização da busca em grade de quaisquer parâmetros definidos na função do usuário. O palestrante demonstra como usar a ferramenta FunctionClassifier para conduzir uma pesquisa de grade em um parâmetro de limite com um conjunto de dados relacionado ao desastre do Titanic. A flexibilidade da ferramenta permite que os usuários criem qualquer função Python com lógica personalizada como um modelo de classificador e adicionem comportamentos como detecção de outliers.

  • 01:55:00 Nesta seção, o instrutor explica como os outliers podem ser tratados em modelos de aprendizado de máquina pré-existentes. Ao adicionar uma lógica na frente do modelo, um outlier pode ser identificado e atribuído a um rótulo diferente. O pacote permite que sistemas baseados em regras sejam construídos usando modelos de aprendizado de máquina pré-existentes, alcançando um equilíbrio entre inteligência natural e inteligência artificial. O instrutor usa o pacote scikit-lego e a função load penguins para ilustrar a previsão eficiente da espécie de um pinguim com base em suas propriedades. A função usa um gráfico interativo e o instrutor desenha polígonos em torno dos pontos de dados que requerem classificação. O algoritmo point-in-poly é então usado para classificar os pontos de dados. Um classificador interativo permite a definição de um modelo compatível com scikit-learn a partir do json blob. Em seguida, os conjuntos de dados x e y podem ser gerados a partir de um quadro de dados e o modelo pode ser usado como qualquer modelo de ciclador.
  • 02:00:00 Nesta seção, o palestrante enfatiza as propriedades e benefícios dos modelos de aprendizado de máquina desenhados. Usando um recurso de gráfico no Matplotlib, ele demonstra como os modelos desenhados prevêem classificações para novos exemplos e lidam com dados ausentes de forma eficaz. Além disso, o palestrante mostra como o mesmo desenho pode ser usado como um sistema de detecção de outliers, verificando se os pontos estão fora dos polígonos. Ele também demonstra como a mecânica de desenho pode ser usada para atribuir rótulos a pontos de dados, mesmo quando os rótulos não estão prontamente disponíveis, tornando-se uma etapa útil de pré-processamento.

  • 02:05:00 Nesta seção, o palestrante discute a API de gráficos interativos, que é relativamente experimental e pode atuar como um transformador scikit-learn ou em um pipeline de pandas para adicionar duas novas colunas com contagens relacionadas à aparência do ponto de dados em um polígono. O palestrante recomenda o uso de algoritmos de aprendizado de máquina juntamente com regras de negócios para criar sistemas baseados em regras. Além disso, o palestrante sugere vários recursos, como freeCodeCamp, canal pi data no YouTube e a página de documentação do scikit-learn para saber mais sobre aprendizado de máquina e scikit-learn.
 

PyTorch para Deep Learning e Machine Learning - Curso Completo (partes 1-3)


PyTorch para Deep Learning e Machine Learning - Curso Completo

00:00:00 - 01:00:00 O instrutor do curso online "PyTorch for Deep Learning & Machine Learning", Daniel Bourke, apresenta aos espectadores o curso, que se concentra na implementação de conceitos de aprendizado de máquina no PyTorch, usando o código Python. Os principais tópicos abordados no curso incluem aprendizado de transferência, implantação de modelo e rastreamento de experimentos. O vídeo fornece uma introdução ao aprendizado de máquina e ao aprendizado profundo e suas diferenças, sendo que o aprendizado profundo é melhor para problemas complexos que exigem grandes quantidades de dados e fornece informações sobre dados não estruturados. A anatomia de uma rede neural é explicada e o curso abrange os diferentes paradigmas do aprendizado de máquina, como aprendizado supervisionado e aprendizado por transferência. Além disso, o vídeo explora as possíveis aplicações do aprendizado profundo, principalmente na detecção de objetos e no processamento de linguagem natural. Por fim, são explicados os benefícios do PyTorch, como padronizar metodologias de pesquisa e permitir a execução de código de aprendizado de máquina em GPUs para mineração eficiente de cálculos numéricos.

01:00:00 - 02:00:00 Esta parte aborda os fundamentos do PyTorch, pré-processamento de dados, construção e uso de modelos de aprendizado profundo pré-treinados, ajuste de um modelo a um conjunto de dados, realização de previsões e avaliação das previsões do modelo. O instrutor enfatiza a importância da experimentação, visualização e questionamentos, bem como o uso dos recursos do curso, incluindo GitHub, discussões e learnpytorch.io. Os alunos também são apresentados ao Google Colab, que oferece a capacidade de usar aceleração de GPU ou TPU para um tempo de computação mais rápido, PyTorch pré-instalado e outros pacotes de ciência de dados. O curso se aprofunda sobre os tensores como os blocos de construção fundamentais do aprendizado profundo, demonstrando como criar tensores com diferentes dimensões e formas, incluindo tensores escalares, vetoriais e matriciais. O curso também aborda a criação de tensores aleatórios, tensores de zeros e uns, e como especificar tipos de dados, dispositivos e requer parâmetros graduados ao criar tensores.

02:00:00 - 03:00:00 Neste tutorial do PyTorch, o instrutor cobre vários aspectos das operações do tensor, incluindo solução de problemas, manipulação, multiplicação de matrizes, transposição e agregação. Eles explicam a importância de manter a forma correta do tensor e o tipo de dados ao trabalhar com modelos de aprendizado profundo e demonstram como verificar e alterar esses parâmetros usando comandos PyTorch. O tutorial inclui desafios para os visualizadores, como praticar a multiplicação de matrizes e encontrar o mínimo e o máximo posicionais dos tensores, além de fornecer dicas úteis para evitar erros de forma comuns e melhorar o desempenho, como o uso de vetorização em loops for. Além disso, o instrutor apresenta várias funções úteis do PyTorch para remodelar, empilhar, espremer e descomprimir tensores.

03:00:00 - 04:00:00 Esta parte abrange vários tópicos relacionados ao PyTorch, incluindo métodos de manipulação de tensor, como remodelar, visualizar, empilhar, espremer, descomprimir e permutar. O instrutor fornece exemplos de código, enfatiza a importância da manipulação da forma do tensor no aprendizado de máquina e no aprendizado profundo e desafia os visualizadores a tentar indexar tensores para retornar valores específicos. O curso também aborda a conversão de dados entre tensores PyTorch e matrizes NumPy e os tipos de dados padrão de cada um, bem como o conceito de reprodutibilidade em redes neurais e o uso de sementes aleatórias para reduzir a aleatoriedade nos experimentos. O instrutor explica como acessar GPUs para cálculos mais rápidos e fornece opções como Google Colab, Colab Pro, usando sua própria GPU ou usando serviços de computação em nuvem como GCP, AWS ou Azure.

04:00:00 - 05:00:00 Esta parte abrange uma ampla variedade de tópicos para iniciantes, incluindo como configurar o acesso à GPU com PyTorch, usar o módulo nn no PyTorch, criar modelos de regressão linear e muito mais. O instrutor enfatiza a importância do código agnóstico do dispositivo para ser executado em diferentes dispositivos e ter em mente o tipo de dispositivo no qual os tensores e modelos são armazenados. O curso também inclui exercícios e currículo extra para praticar o que foi aprendido, e o instrutor dá dicas de como abordar os exercícios no Colab. O curso abrange treinamento e avaliação de modelos de aprendizado de máquina, divisão de dados em conjuntos de treinamento e teste para generalização e visualização de dados. O instrutor explica como criar um modelo de regressão linear usando PyTorch puro, que envolve criar um construtor com a função init, criar um parâmetro de pesos usando nn.parameter e defini-lo como parâmetros aleatórios usando arch.rand.

05:00:00 - 06:00:00 Esta parte aborda tópicos como a criação de um modelo de regressão linear usando o PyTorch, implementando algoritmos de otimização como gradiente descendente e retropropagação por meio do PyTorch e entendendo como testar o poder preditivo de um modelo PyTorch. A importância de usar o gerenciador de contexto arch.inference_mode ao fazer previsões, inicializar os parâmetros do modelo, usar funções de perda para medir a precisão das previsões de um modelo e otimizar os parâmetros do modelo para melhorar a precisão do modelo também é discutida. Além disso, são apresentados os módulos fundamentais do PyTorch, incluindo o arch.nn, o arch.nn.module, o arch.optim e o arch.utils.dataset.

06:00:00 - 07:00:00 Esta parte cobre vários aspectos do PyTorch e aprendizado de máquina. Uma seção enfocou as etapas necessárias para criar um loop de treinamento no PyTorch, incluindo o loop dos dados, a perda de computação e a realização da retropropagação. O instrutor enfatizou a importância de escolher a função de perda e o otimizador apropriados e introduziu o conceito de gradiente descendente. Outra seção discutiu o otimizador e a taxa de aprendizado e como eles afetam os parâmetros do modelo. O vídeo também enfatizou a importância do teste e forneceu uma visão geral da criação de previsões de teste e cálculo de perda de teste. O curso fornece recursos adicionais para os interessados no conhecimento matemático da retropropagação e do gradiente descendente.

07:00:00 - 08:00:00 Esta parte abrange vários tópicos relacionados ao PyTorch. O curso discute a importância de acompanhar o progresso de um modelo, mantendo um registro dos valores de perda e plotando as curvas de perda, que devem mostrar uma tendência decrescente. O instrutor também explica os métodos de salvar e carregar modelos PyTorch, que incluem salvar um dicionário de estado, carregar o modelo usando o método arch.nn.module.loadStateDict ou o método arch.load e testar o modelo carregado. Nas seções posteriores, o curso aborda a criação de modelos de regressão linear e o uso de modelos pré-existentes no PyTorch, como a camada linear, criando uma subclasse de nn.module.

08:00:00 - 09:00:00 A parte abrange uma ampla gama de tópicos no domínio do aprendizado profundo e aprendizado de máquina. A primeira seção aborda as diferentes camadas disponíveis no arch.nn, implementações pré-criadas dessas camadas e como treinar modelos PyTorch usando funções de perda e otimizador. Nas seções subsequentes, o instrutor explica a importância do código agnóstico do dispositivo, salvando e carregando modelos PyTorch e como abordar problemas de classificação. O instrutor fornece exemplos e enfatiza a importância da codificação numérica para entradas, criação de dados personalizados e as complexidades de design envolvidas em um modelo de classificação, como o número de camadas ocultas, neurônios, função de perda e otimizador. Por fim, o instrutor enfatiza que iniciar qualquer problema de aprendizado de máquina com dados é a etapa mais importante.

09:00:00 - 10:00:00 Esta parte fornece uma visão geral de como criar e treinar uma rede neural usando o PyTorch para classificação binária. O vídeo abrange uma ampla gama de tópicos, incluindo a criação de um conjunto de dados personalizado, verificação de formas de entrada e saída, preparação de dados para treinamento, criação e envio de um modelo para uma GPU, seleção de um otimizador e função de perda para um modelo e realização de previsões. O curso inclui demonstrações práticas desses conceitos e visa fornecer uma compreensão abrangente do uso do PyTorch para projetos de aprendizado de máquina.

10:00:00 - 11:00:00 Esta parte abrange vários tópicos, incluindo funções de perda, otimizadores, funções de ativação, loop de treinamento e métricas de avaliação. O instrutor explica como configurar a função de perda e o otimizador, criar uma função de precisão e converter logits brutos em probabilidades e rótulos de previsão. O curso também analisa a diferença entre perda de BCE e perda de BCE com logits e como calcular a perda de teste e precisão para um modelo de classificação. Além disso, o instrutor fornece dicas sobre como melhorar o desempenho de um modelo, como aumentar a profundidade da rede neural, ajustar hiperparâmetros e importar e usar funções auxiliares de scripts Python externos.

11:00:00 - 12:00:00 Nesta parte, o instrutor explica como melhorar um modelo alterando hiperparâmetros, como o número de unidades ocultas, o número de camadas e o número de épocas, e destaca a importância de testar mudanças uma de cada vez para identificar melhorias ou degradações. Eles também discutem as diferenças entre parâmetros e hiperparâmetros e por que é importante fazer essa distinção. Além disso, o instrutor aborda técnicas de solução de problemas quando um modelo não está funcionando e apresenta a importância da não linearidade no aprendizado de máquina e nos modelos de aprendizado profundo. O instrutor demonstra esses conceitos com vários exemplos, incluindo problemas de regressão linear e não linear, e mostra como treinar e avaliar modelos enquanto testa diferentes hiperparâmetros e funções de perda.

12:00:00 - 13:00:00 Este curso PyTorch para Deep Learning e Machine Learning abrange conceitos básicos e avançados do PyTorch para a construção de modelos. O instrutor apresenta o conceito de não linearidade e demonstra como criar modelos de classificação usando não linearidade com o PyTorch. Eles também discutem otimizadores de construção, funções de perda e funções de ativação personalizadas. A importância de combinar funções lineares e não lineares para encontrar padrões em dados empilhando camadas dessas funções para criar um modelo é enfatizada. O curso abrange modelos de classificação binária e multiclasse e explica como configurá-los no PyTorch. A seção conclui demonstrando como inicializar modelos de classificação multiclasse com recursos de entrada e recursos de saída.

13:00:00 - 14:00:00 O instrutor nesta parte discute a criação de um modelo de pilha de camada linear usando o método nn.Sequential do PyTorch para executar a classificação de várias classes. Eles explicam a criação da função de perda e otimizador usando perda de entropia cruzada e descida de gradiente estocástico (SGD). O instrutor também discute camadas de eliminação e a importância de solucionar problemas de código de aprendizado de máquina para resolver erros. Eles demonstram a avaliação do modelo treinado usando vários métodos de avaliação de classificação, como exatidão, precisão, rechamada, pontuação F1, matriz de confusão e relatório de classificação usando o archmetrics e as bibliotecas scikit-learn. Por fim, o instrutor mostra como importar e usar funções de métricas pré-criadas no PyTorch usando o pacote archmetrics e fornece links para o módulo archmetrics e artigos extracurriculares para exploração adicional.

14:00:00 - 15:00:00 Esta parte aborda vários tópicos relacionados ao PyTorch e à visão computacional usando aprendizado de máquina. Isso inclui entender problemas de visão computacional, como problemas de classificação binária ou multiclasse, e aprender como um modelo de aprendizado de máquina aprende padrões de vários exemplos de imagens. O vídeo também explica as bibliotecas PyTorch, como TorchVision, e como elas contêm conjuntos de dados, modelos pré-treinados e transformações para manipular dados de visão em números utilizáveis por modelos de aprendizado de máquina. Além disso, o instrutor aborda as formas de entrada e saída do conjunto de dados FashionMNIST, a importância de visualizar e explorar conjuntos de dados para identificar possíveis problemas e fornece demonstrações sobre como plotar e visualizar dados de imagem usando PyTorch e Matplotlib.

15:00:00 - 16:00:00 Este curso em vídeo sobre PyTorch para Deep Learning e Machine Learning aborda a importância de preparar dados e usar conjuntos de dados e carregadores de dados PyTorch. O conceito de mini-lotes em aprendizado profundo é enfatizado, e o processo de criação de carregadores de dados de treinamento e teste é explicado usando PyTorch, com o hiperparâmetro de tamanho de lote definido como 32. A importância de visualizar imagens em um lote é discutida e o conceito de nivelamento é introduzido para transformar dados multidimensionais em um único vetor para uso em um modelo PyTorch. O processo de criação de um modelo de rede neural simples com uma camada plana e duas camadas lineares é abordado e o conceito de uso de funções auxiliares em projetos de aprendizado de máquina Python é explicado. Finalmente, é demonstrada a importância das funções de temporização para medir quanto tempo um modelo leva para treinar e o uso de TQDM para uma barra de progresso é demonstrada.

16:00:00 - 17:00:00 Esta parte do curso abrange vários tópicos relacionados ao PyTorch, começando com a configuração dos loops de treinamento e teste, solução de erros comuns, avaliação de modelos e previsão. O instrutor enfatiza a importância da experimentação para encontrar o melhor modelo de rede neural para um determinado conjunto de dados e discute os benefícios da não linearidade para modelar dados não lineares. Eles também demonstram como criar funções auxiliares no PyTorch, otimizar e avaliar loops e executar etapas de treinamento e teste. O curso explora ainda mais o código independente de dispositivo e as vantagens dos modelos de treinamento em CPUs e GPUs, concluindo com uma demonstração de como medir o tempo de treinamento em ambos os dispositivos.

17:00:00 - 18:00:00 Esta parte aborda muitos tópicos em aprendizado profundo e aprendizado de máquina. O instrutor demonstra como criar e testar um modelo de aprendizado profundo, construir uma rede neural convolucional (CNN) usando o PyTorch e criar blocos no PyTorch. Além disso, o tutorial examina a composição de um modelo PyTorch e como as convoluções funcionam na prática, altera os valores de passo e preenchimento em uma camada convolucional e as camadas convolucional e de pool máximo no PyTorch. Ao longo do vídeo, o instrutor compartilha recursos, fornece código PyTorch e explicações passo a passo e oferece orientação sobre como criar código eficiente e reutilizável.

19:00:00 - 20:00:00 Esta parte aborda vários tópicos, como visualização de previsões do modelo de aprendizado de máquina, avaliação de um modelo de classificação multiclasse usando matriz de confusão no PyTorch, instalação e atualização de pacotes no Google Colab, salvamento e carregamento de um PyTorch modelo e trabalhar com conjuntos de dados personalizados. O curso também demonstra o processo de construção de um modelo de visão computacional usando o PyTorch. O instrutor enfatiza a importância de utilizar bibliotecas de domínio para funções de carregamento de dados e funções de carregamento de dados personalizáveis e fornece exemplos para várias categorias, como visão, texto, áudio e recomendação. Eles também fornecem recursos úteis, como o site learn pytorch.io e o repositório de aprendizagem profunda PyTorch.

20:00:00 - 21:00:00 O instrutor deste curso PyTorch para Deep Learning e Machine Learning começa apresentando o conjunto de dados Food 101, mas fornece um subconjunto menor com três categorias de alimentos e apenas 10% das imagens como prática com PyTorch. O instrutor enfatiza a importância de ter um diretório separado para dados e, em seguida, mostra como abrir, visualizar e transformar imagens usando os métodos Pillow e PyTorch da biblioteca de imagens Python. A seção também aborda transformações de dados com PyTorch, como redimensionar e inverter imagens, e o instrutor demonstra como carregar e transformar imagens como tensores para modelos de aprendizado de máquina com PyTorch. A seção termina com uma sugestão para explorar as várias opções de transformação de imagens disponíveis no PyTorch.

21:00:00 - 22:00:00 Neste curso PyTorch, o instrutor explica como carregar e transformar dados de imagem em tensores, criar e personalizar carregadores de dados para treinamento e teste e criar uma classe de carregamento de dados personalizada. Eles demonstram a funcionalidade da função de conjuntos de dados pré-criados, pasta de imagens, que pode ser usada para customizar transformações para todas as imagens. Eles também percorrem as etapas necessárias para criar um carregador de dados personalizado, incluindo a criação de uma função para obter nomes de classe e mapeamentos de diretórios, subclassificação de archotes.utils.data.Dataset e substituição dos métodos get item e len. Embora os recursos de personalização dos carregadores de dados sejam úteis, existe o risco de escrever códigos com erros.

22:00:00 - 23:00:00 Esta parte do curso aborda como criar e utilizar conjuntos de dados personalizados e carregadores personalizados no PyTorch, bem como implementar técnicas de aumento de dados. O instrutor demonstra como construir uma rede neural convolucional usando a biblioteca PyTorch e fornece conselhos sobre áreas a serem experimentadas, incluindo hiperparâmetros como tamanho e passo do kernel. O curso também aborda como testar o pipeline de aumento e alavancar técnicas triviais de aumento para melhorar a precisão do modelo. As lições do curso incluem a flexibilidade do PyTorch e a capacidade de herdar da classe de conjunto de dados base para criar funções personalizadas de carregamento de conjunto de dados.

23:00:00 - 24:00:00 O instrutor aborda vários aspectos do PyTorch para aprendizado profundo e aprendizado de máquina, incluindo solução de erros de forma em modelos, uso do Torch Info para imprimir resumos de modelos PyTorch, criação de funções de etapa de treinamento e teste para avaliação desempenho em conjuntos de dados e combinando essas funções em uma função de treinamento para facilitar o treinamento do modelo. O instrutor também discute o tempo do processo de treinamento de um modelo de aprendizado profundo, traçando curvas de perda para acompanhar o progresso do modelo ao longo do tempo e avaliando o desempenho do modelo experimentando diferentes configurações, como adicionar camadas ou ajustar a taxa de aprendizado. Por fim, essas habilidades fornecerão uma base sólida para criar e avaliar modelos avançados usando o PyTorch.

24:00:00 - 25:00:00 Nesta seção do curso PyTorch para Deep Learning e Machine Learning, o instrutor discute os conceitos de superajuste e subajuste em modelos, juntamente com maneiras de lidar com eles, como aumento de dados, parada antecipada e simplificação do modelo. Eles enfatizam a importância de avaliar o desempenho do modelo ao longo do tempo usando curvas de perda e fornecem ferramentas para comparar o desempenho de diferentes modelos. A seção também aborda como preparar imagens personalizadas para previsão e demonstra como carregar uma imagem no PyTorch usando o archote vision.io e convertê-la em um tensor. O instrutor observa que, antes de passar a imagem por um modelo, pode ser necessário redimensioná-la, convertê-la em float32 e colocá-la no dispositivo correto.

25:00:00 - 26:35:00 Esta parte do curso PyTorch abrange vários tópicos, como tipos e formas de dados, transformação de dados de imagem usando o pacote de transformação do PyTorch e previsão de dados personalizados usando um modelo pré-treinado. Para garantir que os dados estejam no formato correto antes de serem alimentados ao modelo, é importante pré-processá-los, dimensionando-os para ficar entre 0 e 1, transformá-los se necessário e verificar se eles têm o dispositivo, tipo de dados e forma corretos . O instrutor também incentiva os alunos a praticar fazendo os exercícios de conjuntos de dados personalizados do PyTorch e oferece soluções como referências. O instrutor também menciona que há cinco capítulos adicionais para explorar em learnpytorch.io, abordando tópicos como aprendizado de transferência, rastreamento de experimentos de modelo pytorch, replicação de papel pytorch e implantação de modelo pytorch.


Parte 1

  • 00:00:00 Nesta seção do vídeo, o instrutor, Daniel Bourke, apresenta aos espectadores o curso PyTorch e define as expectativas para o tutorial em vídeo para iniciantes. O foco do curso será a implementação de conceitos de aprendizado de máquina no PyTorch, uma estrutura baseada em Python, onde os visualizadores aprenderão escrevendo código. Bourke menciona que o curso abordará tópicos importantes, como aprendizado de transferência, implantação de modelo e rastreamento de experimentos, e se os espectadores quiserem aprender mais sobre o PyTorch, há recursos adicionais disponíveis em learn pytorch.io. Por fim, Bourke define o aprendizado de máquina como o processo de transformar dados em números e encontrar padrões usando algoritmos e matemática, e explica que o foco do curso é escrever código, mas os espectadores podem encontrar recursos extras se quiserem se aprofundar na matemática. atrás do código.

  • 00:05:00 Nesta seção, é explicada a diferença entre programação tradicional e aprendizado de máquina. A programação tradicional envolve escrever regras para uma tarefa, enquanto os algoritmos de aprendizado de máquina descobrem as regras com base nos dados de entrada e saída. O motivo de usar o aprendizado de máquina em vez da programação tradicional é para problemas complexos em que se torna complicado escrever todas as regras manualmente. O aprendizado de máquina pode ser usado para qualquer coisa, desde que possa ser convertido em números, mas a regra número um do aprendizado de máquina do Google é primeiro tentar construir um sistema simples baseado em regras antes de recorrer ao aprendizado de máquina.

  • 00:10:00 Nesta seção, o instrutor discute para que o aprendizado profundo é bom e para o que não é bom. O aprendizado profundo é útil para lidar com problemas que exigem longas listas de regras, lidar com ambientes em constante mudança e descobrir insights em grandes conjuntos de dados. No entanto, o aprendizado profundo não é ideal para tarefas que exigem explicabilidade, pois os padrões aprendidos por um modelo de aprendizado profundo geralmente não podem ser interpretados por humanos. Além disso, se um sistema simples baseado em regras puder resolver o problema em questão, pode ser melhor usá-lo em vez de aprendizado profundo.

  • 00:15:00 Nesta seção do curso completo sobre PyTorch para aprendizado profundo e aprendizado de máquina, o instrutor compara aprendizado de máquina e aprendizado profundo. Técnicas tradicionais de aprendizado de máquina, como máquinas com aumento de gradiente, como xg boost, são melhores para dados estruturados em linhas e colunas. Para dados não estruturados, como linguagem natural ou imagens, o aprendizado profundo geralmente é uma escolha melhor. Os modelos de aprendizado profundo são probabilísticos, o que significa que eles apostam no resultado, enquanto os sistemas baseados em regras produzem resultados previsíveis. Além disso, os modelos de aprendizado profundo requerem uma grande quantidade de dados para produzir ótimos resultados, mas existem técnicas para obter bons resultados com menos dados.

  • 00:20:00 Nesta seção, o instrutor explica a diferença entre dados estruturados e não estruturados e os algoritmos usados para cada tipo em aprendizado de máquina e aprendizado profundo. Os dados estruturados funcionam bem com algoritmos rasos, como florestas aleatórias e máquinas com aumento de gradiente, enquanto os dados não estruturados requerem redes neurais. O instrutor então investiga os tipos de redes neurais, como redes neurais totalmente conectadas, redes neurais convolucionais, redes neurais recorrentes e transformadores. O instrutor informa que, uma vez aprendidos os blocos de construção fundamentais das redes neurais, os outros estilos de redes neurais se tornam mais fáceis de entender. A seção termina com o instrutor incentivando o espectador a pesquisar e formar sua própria definição de redes neurais antes do próximo vídeo.

  • 00:25:00 Nesta seção do curso PyTorch, o instrutor fornece uma visão geral das redes neurais e sua anatomia. As redes neurais consistem em uma camada de entrada, na qual os dados de entrada são transformados em números, várias camadas ocultas, que manipulam e aprendem padrões nos dados, e uma camada de saída, que gera as representações aprendidas. O número de nós nas camadas ocultas pode ser personalizado e a rede neural aprende as representações, também chamadas de recursos ou pesos, por conta própria. Diferentes tipos de redes neurais podem ser usados para diferentes problemas, como CNNs para imagens e transformadores para processamento de linguagem natural. Depois que a rede neural gera suas representações, elas podem ser convertidas em um formato compreensível para humanos. A anatomia de uma rede neural também pode ser personalizada, com o número de camadas variando de algumas a mais de cem.

  • 00:30:00 Nesta seção, a anatomia de uma rede neural é explicada. As redes neurais consistem em uma camada de entrada, uma ou mais camadas ocultas, cada uma com muitos neurônios ou unidades ocultas, e uma camada de saída. Padrões e conjuntos de dados são transformados em dados numéricos por meio do uso de funções lineares e não lineares. Os padrões são desenhados usando uma combinação de funções lineares e não lineares para produzir um resultado desejado. Diferentes paradigmas de aprendizado são discutidos, incluindo aprendizado supervisionado, onde dados e rótulos são usados juntos, e aprendizado não supervisionado, onde apenas dados são usados. Os algoritmos de aprendizado autossupervisionado usam dados para encontrar padrões, enquanto o aprendizado por transferência envolve o uso de padrões que já foram aprendidos em um modelo diferente.

  • 00:35:00 Nesta seção, o instrutor discute os diferentes paradigmas de aprendizado de máquina, especificamente aprendizado supervisionado, aprendizado por transferência e aprendizado por reforço. Embora o foco seja o aprendizado supervisionado e o aprendizado por transferência neste curso, o instrutor incentiva os alunos a explorar o aprendizado por reforço em seu próprio tempo. Além disso, o instrutor fornece exemplos de como o aprendizado profundo é usado, como sistemas de recomendação, tradução, reconhecimento de fala e visão computacional. A versatilidade do aprendizado de máquina é enfatizada, pois qualquer coisa que possa ser convertida em números e programada para encontrar padrões pode ser usada em algoritmos de aprendizado de máquina.

  • 00:40:00 Nesta seção do vídeo, o instrutor discute possíveis aplicações de aprendizado profundo, como detecção de objetos usando visão computacional para capturar incidentes de atropelamento para identificar o carro do culpado. O instrutor explica o conceito de processamento de linguagem natural e como ele é usado na detecção de spam. Em seguida, o vídeo aborda os fundamentos do PyTorch, a estrutura de aprendizado profundo de pesquisa mais popular que permite aprendizado profundo rápido em Python, acesso a modelos pré-criados e desempenho acelerado da GPU. O site PyTorch é identificado como um recurso necessário para o curso.

  • 00:45:00 Nesta seção, o instrutor discute o PyTorch, que ele afirma ser a estrutura de pesquisa de aprendizado profundo mais popular. Ele cita Papers with Code, que rastreia artigos de aprendizado de máquina que possuem código, para demonstrar a popularidade do PyTorch, mostrando que 58% dos 65.000 artigos que o site rastreou são implementados com o PyTorch. Além disso, ele fornece vários motivos para a popularidade do PyTorch, incluindo seu uso por empresas como Facebook/Meta, Tesla, Microsoft e OpenAI, bem como sua capacidade de padronizar metodologias de pesquisa. O instrutor também destaca o tweet de Francois Chale, que elogia o PyTorch como uma ferramenta que qualquer pessoa pode usar para resolver problemas sem exigir um investimento significativo ou uma equipe de engenharia. No geral, o instrutor conclui que o PyTorch é um favorito de pesquisa com um ecossistema diversificado e uma alta taxa de adoção entre os pesos pesados do setor.

  • 00:50:00 Nesta seção do curso PyTorch para Deep Learning e Machine Learning, o instrutor discute as várias aplicações do PyTorch, como na agricultura e plataformas de mídia social como Facebook e Microsoft. Além disso, ele explica como o PyTorch permite que os usuários executem código de aprendizado de máquina em GPUs, que são altamente eficientes na execução de cálculos numéricos, especialmente no processamento paralelo. O PyTorch aproveita o CUDA para permitir que o código de aprendizado de máquina seja executado em GPUs NVIDIA e, embora os TPUs estejam disponíveis, os GPUs tendem a ser mais populares ao executar o código PyTorch. Além disso, ele deixa a pergunta "O que é um tensor?" para o público pesquisar, com a seção a seguir para cobrir o tópico em profundidade.

  • 00:55:00 Nesta seção, o instrutor explica que os tensores são o bloco de construção fundamental do PyTorch e podem ser qualquer coisa que represente números. Os dados de entrada são codificados numericamente para transformá-los em um tensor, que pode ser uma imagem ou um milhão de imagens. O(s) tensor(es) de entrada é(são) passado(s) para uma rede neural que o manipula por meio de operações matemáticas e gera outro tensor, que é então convertido de volta em um formato compreensível por humanos. A razão para usar o PyTorch e buscar respostas para perguntas online é enfatizada, bem como uma introdução a tópicos específicos que serão abordados no curso.

Parte 2

  • 01:00:00 Nesta seção, o instrutor destaca os tópicos abordados no curso PyTorch. O curso começa com os fundamentos do PyTorch, com foco em tensores e operações de tensor, depois avança para pré-processamento de dados, construção e uso de modelos de aprendizado profundo pré-treinados, ajuste de um modelo a um conjunto de dados, realização de previsões e avaliação das previsões do modelo. O instrutor explica o fluxo de trabalho, incluindo preparar os dados, escolher um modelo pré-treinado, escolher uma função de perda e otimizador, construir um loop de treinamento, ajustar o modelo e melhorar o modelo por meio de experimentação. Por fim, o instrutor enfatiza a importância de codificar junto, explorar e experimentar o código enquanto vincula recursos extracurriculares para aprender mais sobre a teoria por trás do código.

  • 01:05:00 Nesta seção, o instrutor do curso PyTorch para Deep Learning e Machine Learning aconselha os alunos a abordar o curso com a mente de um cientista e um chef. Ele enfatiza a importância da experimentação e visualização para entender os dados em aprendizado profundo. Além disso, o instrutor incentiva os alunos a fazer perguntas e fazer os exercícios fornecidos, bem como compartilhar seu trabalho com outras pessoas para ajudar em seu próprio aprendizado e no dos outros. Por fim, ele aconselha os alunos a evitar pensar demais e dizer que não podem aprender, exortando-os a evitar que seu cérebro pegue fogo. Por fim, ele direciona os alunos aos recursos fundamentais necessários para o curso, incluindo um repositório GitHub com todos os materiais necessários.

  • 01:10:00 Nesta seção, o palestrante explica os recursos disponíveis para o curso e como utilizá-los de forma eficaz. Os materiais do curso, incluindo código e notebooks, estão disponíveis no GitHub, enquanto as perguntas e respostas do curso podem ser encontradas na guia discussões do mesmo repositório. Além disso, há um livro online disponível em learnpytorch.io. Para perguntas relacionadas ao PyTorch que não são específicas do curso, os fóruns e o site do PyTorch são altamente recomendados. Em seguida, o palestrante apresenta o Google Colab, que será a principal ferramenta utilizada ao longo do curso, e incentiva os usuários a codificar junto acessando-o por meio de colab.research.google.com.

  • 01:15:00 Nesta seção, o instrutor explica como usar o Google Colab para criar um novo notebook e escrever o código PyTorch. O Google Colab oferece benefícios como a capacidade de usar aceleração de GPU ou TPU para um tempo de computação mais rápido, bem como PyTorch pré-instalado e outros pacotes comuns de ciência de dados Python. O instrutor se conecta a um caderno de recursos em learnpytorch.io e fornece um repositório GitHub onde os alunos podem fazer perguntas relacionadas ao curso. O instrutor também cita que embora utilize a versão paga do Google Colab, a versão gratuita é suficiente para a conclusão do curso.

  • 01:20:00 Nesta seção, o vídeo apresenta como configurar o PyTorch usando o Google Colab ou consultando o documento de configuração para configuração local. A configuração recomendada para concluir o curso é PyTorch 1.10 e CUDA 11.3. O vídeo também sugere o uso de uma abordagem de janela dividida para acompanhar e criar um caderno para praticar. O foco principal do vídeo é uma introdução aos tensores, o principal bloco de construção para aprendizado profundo, fornecendo exemplos de criação de um tensor escalar preenchido com o número sete e como acessar a documentação do PyTorch para o arch.tensor.

  • 01:25:00 Nesta seção, o instrutor explica os fundamentos dos tensores PyTorch, começando com a criação de tensores usando o arch.dot.tensor. Ele incentiva os alunos a examinar a documentação do PyTorch para aprender mais sobre a biblioteca. Seguindo em frente, o instrutor explica os atributos de escalares, vetores e matrizes. Ele esclarece que um escalar não tem dimensões e é apenas um único número, enquanto um vetor tem uma dimensão, geralmente representada por uma magnitude e direção. Uma matriz é o próximo passo e tem duas dimensões representadas por dois pares de colchetes. Ele explica a diferença entre dimensão e forma e como encontrar a forma de um vetor em termos de suas dimensões.

  • 01:30:00 Nesta seção, o instrutor apresenta os tensores no PyTorch e explica que eles são os blocos de construção fundamentais das redes neurais de aprendizado profundo. O instrutor demonstra como criar tensores com dimensões diferentes, variando de escalar a matriz e tensor com três pares de colchetes. O instrutor explica que o número de dimensões é indicado pelo número de pares de colchetes e a forma é determinada pelo número de elementos em cada dimensão. Além disso, o instrutor observa que, embora escrever tensores à mão seja tedioso, é importante entender como eles funcionam, pois o PyTorch os usa extensivamente.

  • 01:35:00 Nesta seção, o instrutor discute a importância dos tensores aleatórios no PyTorch para aprendizado de máquina e aprendizado profundo. Começar com tensores cheios de números aleatórios e depois ajustá-los para representar melhor os dados é um conceito-chave em redes neurais. Para criar um tensor aleatório no PyTorch, o instrutor mostra como usar a função arch.rand e explica que "tamanho" e "forma" são duas versões diferentes da mesma coisa. A convenção de nomenclatura para variáveis em aprendizado profundo, como escalares e vetores em letras minúsculas e matrizes e tensores em letras maiúsculas, também é brevemente discutida.

  • 01:40:00 Nesta seção, o instrutor demonstra como criar tensores aleatórios usando o PyTorch e explica que vários tipos de dados, incluindo imagens, podem ser representados no formato tensor. O instrutor explica que o PyTorch simplifica o processo de criação de tensores e, em muitos casos, lida com o processo nos bastidores. Eles demonstram como criar um tensor aleatório com uma forma semelhante à de um tensor de imagem e explicam que as imagens são comumente representadas como tensores com canais de cor, altura e largura. O instrutor enfatiza que quase qualquer tipo de dado pode ser representado como um tensor, tornando o PyTorch uma ferramenta poderosa para aplicativos de aprendizado profundo e aprendizado de máquina.

  • 01:45:00 Nesta seção, o instrutor apresenta como criar tensores de zeros e uns e como criar um intervalo de tensores. O tensor de todos os zeros é útil para criar uma máscara de tensor, que pode zerar certas colunas de um tensor. O tensor de todos também pode ser útil em algumas situações. O instrutor explica como usar o arch.range, mas adverte que pode ser obsoleto em algumas versões do PyTorch e sugere o uso de uma função de intervalo.

  • 01:50:00 Nesta seção, é explicada a funcionalidade do PyTorch de criar tensores usando um intervalo e outros com a mesma forma de outro tensor. O intervalo de tensores é criado usando o arch.arange() onde start, stop e step podem ser definidos. Da mesma forma, arch.zeros_like() é usado para criar um tensor de zeros com a mesma forma do tensor de entrada. A seção apresenta os tipos de dados de tensor no PyTorch, especificando que o tipo padrão é float 32, mesmo que nenhum seja especificado.

  • 01:55:00 Nesta seção, aprendemos sobre os parâmetros importantes ao criar tensores no PyTorch, como tipo de dados, dispositivo e requisitos de graduação. Descobrimos que o tipo de dados se refere ao nível de precisão na computação e comumente interage com tensores de ponto flutuante de 32 bits e ponto flutuante de 16 bits. A precisão única é de 32 bits e a meia precisão é de 16 bits, sendo 32 bits o tipo de tensor padrão no PyTorch. A observação sobre os tipos de dados do tensor é essencial, pois é um dos três erros significativos que podemos encontrar ao usar o PyTorch e o aprendizado profundo. Os outros dois erros incluem tensores que não têm a forma correta e não estão no dispositivo correto.

Parte 3

  • 02:00:00 Nesta seção, o instrutor discute a importância de manter a forma e o dispositivo corretos ao trabalhar com tensores no PyTorch. Se os tensores tiverem formas diferentes ou estiverem localizados em dispositivos diferentes (CPU ou GPU), podem ocorrer erros. Além disso, o instrutor explica a função do parâmetro "grad" no rastreamento de gradientes durante cálculos numéricos. A lição inclui um desafio para os visualizadores criarem tensores de diferentes tipos de dados e testarem o impacto da multiplicação de tensores de diferentes tipos. O instrutor adverte que, embora algumas operações possam não resultar em erros, outras podem levar a problemas de tipo de dados, principalmente ao treinar grandes redes neurais.

  • 02:05:00 Nesta seção do vídeo, o instrutor aborda como solucionar problemas de operações de tensor e garantir que os tensores tenham o tipo de dados e a forma corretos para uso em modelos de aprendizado de máquina. Eles demonstram como verificar o tipo de dados, forma e dispositivo de um tensor usando PyTorch, usando os comandos tensor.Dtype, tensor.shape e tensor.device. O instrutor também observa que o PyTorch pode gerar erros se os tensores não estiverem no tipo ou forma de dados corretos e mostra como alterar o tipo de dados, se necessário. Por fim, eles comparam os comandos de tamanho e forma e observam que são intercambiáveis, sendo um uma função e o outro um atributo.

  • 02:10:00 Nesta seção, o instrutor aborda a manipulação de tensores no PyTorch, especificamente operações de tensores como adição, subtração, multiplicação, divisão e multiplicação de matrizes. Essas operações são importantes para a construção de redes neurais, pois ajudam a resolver os problemas mais comuns na construção de modelos de aprendizado profundo. Além disso, as redes neurais combinam essas funções de várias maneiras para analisar e ajustar os números de um tensor aleatório para representar um conjunto de dados. O instrutor demonstra como executar as operações básicas de tensor de adição, multiplicação e multiplicação de matrizes usando exemplos de código PyTorch.

  • 02:15:00 Nesta seção, o instrutor aborda as operações de tensores usando o PyTorch e apresenta o conceito de multiplicação de matrizes. Eles demonstram como realizar multiplicação, adição e subtração elementar usando operadores Python, bem como funções integradas do PyTorch. O instrutor desafia os espectadores a pesquisar e entender a multiplicação de matrizes antes de mergulhar nela. Eles explicam que existem duas maneiras principais de realizar a multiplicação em redes neurais, a multiplicação elementar e a multiplicação matricial, também conhecida como produto escalar. O instrutor fornece exemplos de ambos os tipos de multiplicação usando matrizes e enfatiza que a multiplicação de matrizes é uma das operações de tensor mais comuns em redes neurais.

  • 02:20:00 Nesta seção, o instrutor explica a diferença entre multiplicação por elemento e produto escalar no PyTorch. Para demonstrar o conceito, o instrutor segue um processo passo a passo de multiplicação de duas matrizes, destacando como cada elemento é multiplicado e adicionado para obter o resultado final. Em seguida, o instrutor mostra como realizar a multiplicação por elementos usando um exemplo rudimentar, seguido pela multiplicação de matrizes usando a função de shopping dot mat da tocha. A seção também aborda como realizar a multiplicação de matrizes usando um loop for e explica a diferença de desempenho entre os dois métodos.

  • 02:25:00 Nesta seção, o vídeo explica os benefícios da vetorização sobre loops no PyTorch, usando o exemplo da multiplicação de matrizes. O método da tocha, dot matmore da tocha, é 10 vezes mais rápido do que usar um loop for para pequenos tensores. No entanto, o vídeo adverte que duas regras principais devem ser satisfeitas para tensores maiores, a fim de evitar erros de forma na multiplicação de matrizes. A primeira regra é que as dimensões internas dos dois tensores devem corresponder.

  • 02:30:00 Nesta seção, o instrutor explica as regras de multiplicação de matrizes e como evitar erros de forma comuns ao multiplicar tensores. A primeira regra é que as dimensões internas da matriz devem corresponder. Para demonstrar isso, o instrutor cria um tensor de tamanho 3x2 e tenta multiplicá-lo por outro tensor que não tenha as mesmas dimensões internas, resultando em um erro. A segunda regra é que a matriz resultante tem a forma das dimensões externas. O instrutor fornece exemplos de multiplicação de matrizes com diferentes formatos e dimensões de tensores e como eles resultam em diferentes formatos de matrizes. O instrutor incentiva os espectadores a usar um site para praticar a multiplicação de matrizes como um desafio antes do próximo vídeo.

  • 02:35:00 Nesta seção, o instrutor discute erros de forma em redes neurais, que são um dos erros mais comuns no aprendizado profundo. Como as redes neurais são compostas por várias operações de multiplicação de matrizes, mesmo um leve erro de forma do tensor pode levar a um erro de forma. O instrutor então cria dois tensores, tensor a e tensor b, e tenta realizar uma multiplicação de matriz entre eles, levando a um erro de forma. Para corrigir esse erro, o instrutor apresenta o conceito de transposição, que alterna os eixos ou as dimensões de um determinado tensor, e demonstra como pode ser usado para ajustar a forma dos tensores no código PyTorch.

  • 02:40:00 Nesta seção, o instrutor explica o conceito de transposição de tensores e sua importância na multiplicação de matrizes. A transposição reorganiza os elementos de um tensor sem alterar seus dados subjacentes e é denotada por "dot t". O instrutor também demonstra como funciona uma operação de multiplicação de matrizes quando o tensor b é transposto e destaca a importância dessa operação em redes neurais e aprendizado profundo. O processo de transposição de tensores é ilustrado visualmente, e o instrutor fornece exemplos de código passo a passo para ajudar os alunos a entender e praticar o conceito.

  • 02:45:00 Nesta seção, o instrutor explica a multiplicação de matrizes usando o PyTorch e um site chamado Matrix Multiplication. Ele criou dois tensores, tensor a e tensor b, e mostrou que sua multiplicação resulta em um novo tensor com uma forma de saída específica. Ele desafia os espectadores a transpor o tensor a em vez do tensor b e ver os resultados. Seguindo em frente, o instrutor aborda a agregação de tensores, mostrando como encontrar o mínimo, o máximo, a média e a soma de um tensor usando métodos PyTorch. Ele também explica como a agregação de tensor ajuda a reduzir o número de elementos em um tensor.

  • 02:50:00 Nesta seção do tutorial PyTorch, o instrutor mostra como resolver um dos erros mais comuns no PyTorch, que é ter o tipo de dados errado. Ele demonstra isso criando um tensor do tipo de dados long, que impede o uso da função de média da tocha. Ele então explica como converter o tensor em float 32, que é exigido pela função mean, usando o método x.type(). Além de encontrar o mínimo, o máximo, a média e a soma do tensor, o instrutor também estabelece um desafio para encontrar o mínimo e o máximo posicionais, que serão abordados no próximo vídeo.

  • 02:55:00 Nesta seção, foi explicado o uso das funções argmin e argmax no PyTorch para encontrar a posição mínima e máxima de um tensor. A função argmin retorna a posição no tensor que tem o valor mínimo, enquanto a função argmax retorna a posição no tensor que tem o valor máximo. Essas funções são úteis quando não é necessário definir os valores mínimos ou máximos de um tensor, mas apenas a posição desses valores. Além disso, foram introduzidos os conceitos de remodelagem, empilhamento, compressão e liberação de tensores, que são úteis para gerenciar incompatibilidades de forma em aprendizado de máquina e aprendizado profundo.