Matlab Para Aprendizado De Máquina
()
Sobre este e-book
Relacionado a Matlab Para Aprendizado De Máquina
Ebooks relacionados
Lógica De Programação Javascript Nota: 0 de 5 estrelas0 notasMySQL: Comece com o principal banco de dados open source do mercado Nota: 4 de 5 estrelas4/5Pandas Python: Data Wrangling para Ciência de Dados Nota: 0 de 5 estrelas0 notasDesenvolvimento De Software Ii C# Programação Em Camadas Nota: 0 de 5 estrelas0 notasConstrua Uma Estrutura Web Frontend (do Zero) Nota: 0 de 5 estrelas0 notasAlgoritmos: 3 Livros Em 1: Nota: 0 de 5 estrelas0 notasTuning de SQL: Melhore a performance de suas aplicações Oracle Nota: 0 de 5 estrelas0 notasASP.NET MVC5: Crie aplicações web na plataforma Microsoft® Nota: 0 de 5 estrelas0 notasAmazon AWS: Descomplicando a computação na nuvem Nota: 5 de 5 estrelas5/5Programação Em Java Para A Raspberry Pi Parte Iii Nota: 0 de 5 estrelas0 notasSQL para Iniciantes Nota: 3 de 5 estrelas3/5A Lógica Do Jogo Nota: 0 de 5 estrelas0 notasApache Lucene: Sistemas de busca com técnicas de Recuperação de Informação Nota: 0 de 5 estrelas0 notasIntrodução A Uml Com Exemplos No Java Volume Ii Nota: 0 de 5 estrelas0 notasProgramando Em Java Com Banco De Dados Nota: 0 de 5 estrelas0 notasDoctrine Na Prática Nota: 0 de 5 estrelas0 notasOracle Hyperion Essbase Nota: 0 de 5 estrelas0 notasMongodb - O Banco De Dados Nosql Mais Utilizado Da Atualidade Nota: 0 de 5 estrelas0 notasApache Cassandra: Escalabilidade horizontal para aplicações Java Nota: 0 de 5 estrelas0 notasRefatorando com padrões de projeto: Um guia em Java Nota: 0 de 5 estrelas0 notasDesenvolvedor De Back-end Em 30 Dias Nota: 0 de 5 estrelas0 notasIntrodução a Data Science: Algoritmos de Machine Learning e métodos de análise Nota: 0 de 5 estrelas0 notasEstruturas de Dados: Domine as práticas essenciais em C, Java, C#, Python e JavaScript Nota: 0 de 5 estrelas0 notasBíblia Sobre Redes De Computadores: [3 Em 1] Nota: 0 de 5 estrelas0 notasDesenvolvendo Aplicativos Com Gpt-4 E Chatgpt Nota: 0 de 5 estrelas0 notasAprendizado De Máquina Em Ação: Um Manual Para Leigos, Guia Para Iniciantes Nota: 0 de 5 estrelas0 notasSpacewalk: o Projeto do Red Hat Satellite Nota: 0 de 5 estrelas0 notasFatores Determinantes No Desempenho De Sistemas De Bancos De Dados Nota: 0 de 5 estrelas0 notasIntrodução A Uml Com Exemplos No Java Volume I Nota: 0 de 5 estrelas0 notasIntrodução A Uml Com Exemplos No Java Volume Iii Nota: 0 de 5 estrelas0 notas
Aplicativos e Software para você
Adobe Photoshop: Tratamento e edição profissional de imagens Nota: 0 de 5 estrelas0 notasProgramação Python Ilustrada Para Iniciantes E Intermediários: Abordagem “aprenda Fazendo” – Passo A Passo Nota: 0 de 5 estrelas0 notasRevit passo a passo volume I Nota: 4 de 5 estrelas4/5Ganhe Dinheiro Criando Um Jogo Para Celular Nota: 0 de 5 estrelas0 notasExcel 2013 Técnicas Avançadas Nota: 5 de 5 estrelas5/5Apostila Noções De Informática Nota: 0 de 5 estrelas0 notasPacote Microsoft Office Capacitação Nota: 0 de 5 estrelas0 notasComo Criar Um Ebook De Alta Conversão Nota: 4 de 5 estrelas4/5Photoshop para Iniciantes Nota: 0 de 5 estrelas0 notasChatgpt O Roteiro Do Milionário Nota: 0 de 5 estrelas0 notasExcel 2022 O Tutorial Completo Para Iniciantes E Especialistas Nota: 0 de 5 estrelas0 notasDesenvolvedor De Back-end Em 30 Dias Nota: 0 de 5 estrelas0 notasScratch: Um jeito divertido de aprender programação Nota: 0 de 5 estrelas0 notasJava O Guia Completo Nota: 0 de 5 estrelas0 notasSeo Na Prática Nota: 0 de 5 estrelas0 notasExcel De Zero Para Especialista Nota: 0 de 5 estrelas0 notasLinguagens De Programação Em Inteligência Artificial Nota: 0 de 5 estrelas0 notasDescomplicado Passo A Passo | Tutoial Anime Studio Nota: 0 de 5 estrelas0 notasCódigo Limpo Em Php Nota: 0 de 5 estrelas0 notasDominando o Podcasting Nota: 0 de 5 estrelas0 notasDescomplicando Passo A Passo Nota: 0 de 5 estrelas0 notasFunções Financeiras Com Microsoft Excel Nota: 0 de 5 estrelas0 notasExcel Definitivo Nota: 0 de 5 estrelas0 notasA aprendizagem baseada em problemas (PBL) e a engenharia de software: Formação interdisciplinar para a cidadania Nota: 0 de 5 estrelas0 notasGuia De Estilo E Cores Nota: 0 de 5 estrelas0 notasMicrosoft Windows 10 Nota: 5 de 5 estrelas5/5Curso Intensivo De Desenvolvimento Frontend Nota: 0 de 5 estrelas0 notasCurso Pdv Passo A Passo Delphi Com Firedac Nota: 0 de 5 estrelas0 notasE-book Microsoft Excel 2010 Nota: 0 de 5 estrelas0 notasLaboratório Técnico - Autocad Nota: 0 de 5 estrelas0 notas
Avaliações de Matlab Para Aprendizado De Máquina
0 avaliação0 avaliação
Pré-visualização do livro
Matlab Para Aprendizado De Máquina - Jideon F Marques
MATLAB para aprendizado de máquina
MATLAB para aprendizado de máquina
Desbloqueie o poder do aprendizado profundo para
obter resultados rápidos e aprimorados
Por Jideon Marques
© Copyright 2024 Jideon Marques – Todos os direitos reservados.
O conteúdo contido neste livro não pode ser reproduzido, duplicado ou transmitido sem permissão direta por escrito do autor ou do editor.
Sob nenhuma circunstância qualquer culpa ou responsabilidade legal será responsabilizada contra o editor, ou autor, por quaisquer danos, reparações ou perdas monetárias devido às informações contidas neste livro, seja direta ou indiretamente. Notícia legal:
Este livro é protegido por direitos autorais. É apenas para uso pessoal. Você não pode alterar, distribuir, vender, usar, citar ou parafrasear qualquer parte ou o conteúdo deste livro sem o consentimento do autor ou editor.
Aviso de isenção de responsabilidade:
Observe que as informações contidas neste documento são apenas para fins educacionais e de entretenimento. Todos os esforços foram realizados para apresentar informações precisas, atualizadas, confiáveis e completas. Nenhuma garantia de qualquer tipo é declarada ou implícita. Os leitores reconhecem que o autor não está envolvido na prestação de aconselhamento jurídico, financeiro, médico ou profissional. O conteúdo deste livro foi derivado de diversas fontes. Consulte um profissional licenciado antes de tentar qualquer técnica descrita neste livro.
Ao ler este documento, o leitor concorda que sob nenhuma circunstância o autor é responsável por quaisquer perdas, diretas ou indiretas, que sejam incorridas como resultado do uso das informações contidas neste documento, incluindo, mas não limitado a, erros, omissões ou imprecisões.
Prefácio
MATLAB é um ambiente de programação abrangente usado por muitos pesquisadores e especialistas em matemática para aprendizado de máquina. Este livro o ajudará a aprender os conceitos básicos de aprendizado de máquina e aprendizado profundo usando MATLAB e, em seguida, refinar suas habilidades básicas com aplicativos avançados.
Você começará explorando as ferramentas que o ambiente MATLAB oferece para aprendizado de máquina e verá como interagir facilmente com o espaço de trabalho MATLAB. Em seguida, passaremos para a limpeza, mineração e análise de vários tipos de dados em aprendizado de máquina, e você verá como visualizar os valores dos dados em um gráfico. A seguir, você aprenderá sobre os diferentes tipos de técnicas de classificação e regressão e como aplicá-las aos seus dados, usando funções MATLAB.
Além disso, você compreenderá os conceitos básicos de redes neurais e realizará ajuste de dados, reconhecimento de padrões e análise de cluster. Você também explorará técnicas de seleção e extração de recursos para redução de dimensionalidade e melhoria de desempenho. Por fim, você aprenderá como aproveitar as ferramentas MATLAB para aprendizado profundo e gerenciamento de redes neurais convolucionais.
Ao final do livro, você aprenderá como juntar tudo em casos do mundo real, abordando os principais algoritmos de aprendizado de máquina, e se sentirá confiante ao se aprofundar no aprendizado de máquina com o MATLAB.
Para quem é este livro
Este livro é adequado para engenheiros de aprendizado de máquina, cientistas de dados, engenheiros de aprendizado profundo e engenheiros de CV/PNL que desejam usar o MATLAB para aprendizado de máquina e aprendizado profundo. Você deve ter uma compreensão fundamental dos conceitos de programação.
O que este livro cobre
Capítulo 1, Exploring MATLAB for Machine Learning, abrange a aprendizagem automática, que é um ramo da inteligência artificial que se baseia no desenvolvimento de algoritmos e modelos matemáticos, capazes de aprender
a partir dos dados e de se adaptarem autonomamente para melhorar o seu desempenho de acordo com os objetivos definidos. Graças a essa capacidade de aprendizado, o aprendizado de máquina é usado em uma ampla gama de aplicações, como análise de dados, currículos, tradução de textos, reconhecimento de fala, diagnóstico médico e previsão de riscos financeiros. O aprendizado de máquina é uma área de pesquisa em constante evolução e está revolucionando muitos campos da ciência e da indústria. O objetivo deste capítulo é fornecer alguma introdução, informações básicas e um conhecimento
básico das ferramentas MATLAB. Além disso, serão apresentados os conceitos básicos de aprendizado de máquina.
Capítulo 2, Trabalhando com dados no MATLAB, analisa como importar e organizar nossos dados no MATLAB. Hoje, a quantidade de dados gerados é enorme; smartphones, cartões de crédito, televisões, computadores, eletrodomésticos, sensores, sistemas domésticos, transportes públicos e privados, e assim por diante, são apenas alguns exemplos de dispositivos que geram dados de forma integrada.
Esses dados são armazenados e usados para diversos fins. Uma delas é a análise de dados usando algoritmos de aprendizado de máquina. Para importar e organizar nossos dados no MATLAB, você deve se familiarizar com a área de trabalho do MATLAB para tornar as operações o mais simples possível. Em seguida, analisaremos os diferentes formatos disponíveis para os dados coletados e como mover os dados para dentro e para fora do MATLAB. Também exploraremos tipos de dados para trabalhar com variáveis de agrupamento e dados categóricos e como exportar dados do espaço de trabalho, incluindo matriz de células, matriz de estrutura e dados tabulares, e salvá-los em um formato de arquivo compatível com MATLAB. Por fim, entenderemos como organizar os dados no formato correto para a próxima fase de análise de dados.
Capítulo 3, Predição usando classificação e regressão, mostra como classificar um objeto usando vizinhos mais próximos e como realizar uma análise de regressão precisa em um ambiente MATLAB. Os algoritmos de classificação retornam previsões precisas com base em nossas observações. A partir de um conjunto de rótulos de classe predefinidos, o classificador atribui a cada dado de entrada um rótulo de classe, de acordo com o modelo de treinamento. A regressão relaciona um conjunto de variáveis independentes a uma variável dependente. Através desta técnica é possível compreender como o valor da variável dependente muda à medida que a variável independente varia.
Capítulo 4, Análise de cluster e redução de dimensionalidade, explora métodos de cluster, que são projetados para encontrar padrões ou agrupamentos ocultos em um conjunto de dados. Esses algoritmos identificam um agrupamento sem nenhum rótulo para aprender através da seleção de clusters, com base na similaridade entre os elementos. A redução da dimensionalidade é o processo de conversão de um conjunto de dados com muitas variáveis em dados com dimensões menores, mas garantindo informações semelhantes. As abordagens de seleção de recursos tentam encontrar um subconjunto das variáveis originais. A extração de recursos reduz a dimensionalidade dos dados, transformando-os em novos recursos. Este capítulo nos mostra como dividir os dados em clusters ou agrupamentos de itens semelhantes. Também aprenderemos como selecionar um recurso que melhor represente o conjunto de dados.
capítulo 5, Apresentando Modelagem de Redes Neurais Artificiais, investiga redes neurais artificiais (RNAs), que incluem estruturas de dados e algoritmos para aprendizado e classificação de dados. Através das técnicas de redes neurais, um programa pode aprender por exemplo e criar uma estrutura interna de regras para
classificar diferentes entradas. MATLAB fornece algoritmos, modelos pré-treinados e aplicativos para criar, treinar, visualizar e simular RNAs. Neste capítulo, veremos como usar o MATLAB para construir um modelo baseado em RNA para prever valores e classificar dados.
Capítulo 6, Deep Learning and Convolutional Neural Networks, examina o deep learning, que é uma tecnologia de aprendizado de máquina baseada em RNAs multicamadas e tem permitido que muitas aplicações alcancem um alto grau de precisão. Redes neurais profundas são capazes de modelar relacionamentos complexos entre dados de entrada e saída. Entre as aplicações de maior sucesso está a visão computacional, com tarefas que incluem classificação, regressão de imagens e detecção de objetos. Por exemplo, uma rede neural profunda é capaz de gerar uma representação em camadas de objetos em que cada objeto é identificado por um conjunto de características que tem a forma de primitivas visuais, como arestas específicas, linhas orientadas, texturas e padrões recorrentes. As redes convolucionais são caracterizadas por camadas convolucionais, que utilizam filtros para analisar dados em uma região local e produzir um mapa de ativação. Esses mapas de ativação são então processados por camadas de pooling, que agregam os dados de baixa resolução para reduzir a dimensionalidade da representação e tornar o processamento mais eficiente do ponto de vista computacional. As camadas convolucional e de pooling são então alternadas várias vezes até que uma imagem seja representada por um mapa de ativação de baixa resolução. Neste capítulo aprenderemos os conceitos básicos de aprendizagem profunda e descobriremos como implementar um algoritmo baseado em redes convolucionais no ambiente MATLAB.
Capítulo 7, Processamento de linguagem natural usando MATLAB, explora o processamento de linguagem natural (PNL), que processa automaticamente informações transmitidas por meio de linguagem falada ou escrita. Esta tarefa está repleta de dificuldade e complexidade, em grande parte devido à ambiguidade inata da linguagem humana. Para permitir a aprendizagem automática e a interação com o mundo de formas típicas dos seres humanos, é essencial não só armazenar dados, mas também ensinar às máquinas como traduzi-los simultaneamente em conceitos significativos. À medida que a linguagem natural interage com o ambiente, ela gera conhecimento preditivo. Neste capítulo, aprenderemos os conceitos básicos da PNL e como construir um modelo para rotular frases.
Capítulo 8, MATLAB para Processamento de Imagens e Visão Computacional, abrange a visão computacional, que é um campo que estuda como processar, analisar e compreender o conteúdo de dados visuais. Na análise de conteúdo de imagens, usamos muitos algoritmos de visão computacional para construir nossa compreensão dos objetos em uma imagem. A visão computacional cobre vários aspectos da análise de imagens, como reconhecimento de objetos, análise de formas, estimativa de pose, modelagem 3D e pesquisa visual. Os humanos são bons em identificar e reconhecer as coisas ao seu redor! O objetivo da visão computacional é modelar com precisão o sistema de visão humana usando computadores. Neste capítulo, entenderemos os conceitos básicos de visão computacional e como implementar um modelo para reconhecimento de objetos, utilizando MATLAB.
Capítulo 9, Análise e previsão de séries temporais com MATLAB, investiga dados de séries temporais, que são basicamente uma sequência de medições coletadas ao longo do tempo. Essas medições são feitas em relação a uma variável predeterminada e em intervalos de tempo regulares. Uma das principais características dos dados de séries temporais é que a ordem é importante. A lista de observações que coletamos está ordenada em uma linha do tempo, e a ordem em que aparecem diz muito sobre os padrões subjacentes. Se você alterar a ordem, isso mudará totalmente o significado dos dados. Dados sequenciais são uma noção generalizada que abrange quaisquer dados que venham em formato sequencial, incluindo dados de séries temporais. Neste capítulo, aprenderemos os conceitos básicos de dados sequenciais e como construir um modelo que descreva o padrão da série temporal ou de qualquer sequência em geral.
Capítulo 10, MATLAB Tools for Recommender Systems, examina o mecanismo de recomendação, que é um modelo que pode prever no que um usuário pode estar interessado. Quando aplicamos isso ao contexto de filmes, por exemplo, ele se torna um mecanismo de recomendação de filmes. Filtramos itens em nosso banco de dados prevendo como o usuário atual poderá avaliá-los. Isso nos ajuda a conectar o usuário ao conteúdo certo em nosso conjunto de dados. Por que isso é relevante? Se você tiver um catálogo enorme, o usuário poderá ou não encontrar todo o conteúdo que é relevante para ele. Ao recomendar o conteúdo certo, você aumenta o consumo.
Empresas como a Netflix dependem fortemente de recomendações para manter o usuário envolvido. Neste capítulo, aprenderemos os conceitos básicos de sistemas de recomendação e como construir um sistema de recomendação de filmes, utilizando MATLAB.
Capítulo 11, Detecção de anomalias no MATLAB, ensina os conceitos básicos de um sistema de detecção de anomalias e como implementá-lo no MATLAB. Um sistema físico, no seu ciclo de vida, pode estar sujeito a falhas ou mau funcionamento que podem comprometer o seu normal funcionamento. É, portanto, necessário introduzir um sistema de detecção de anomalias que seja capaz de prevenir interrupções críticas.
Isso é chamado de sistema de diagnóstico de falhas e pode identificar a possível presença de um mau funcionamento no sistema monitorado. A busca pela falha é uma das fases mais importantes e qualificadoras da intervenção de manutenção, sendo necessário atuar de forma sistemática e determinística. Para realizar uma busca completa da falha, é necessário analisar todas as possíveis causas que a possam ter determinado.
Para aproveitar ao máximo este livro
Neste livro, algoritmos de aprendizado de máquina são implementados no ambiente MATLAB. Portanto, para reproduzir os muitos exemplos deste livro, você precisa de uma nova versão do MATLAB (R2023b é recomendado) e das seguintes caixas de ferramentas – uma caixa de ferramentas de estatística e aprendizado de máquina, uma caixa de ferramentas de rede neural, uma caixa de ferramentas de aprendizado profundo e uma caixa de ferramentas de lógica difusa .
Software/hardware abordado no livro Requisitos do sistema operacional MATLAB
Windows, macOS ou Linux
Se você estiver usando a versão digital deste livro, aconselhamos que você mesmo digite o código ou acesse o código no repositório GitHub do livro (um link está disponível na próxima seção). Isso o ajudará a evitar possíveis erros relacionados à cópia e colagem do código.
Baixe os arquivos de código de exemplo
Você pode baixar os arquivos de código de exemplo deste livro no GitHub
emhttps://github.com/PacktPublishing/MATLAB-for-Machine-Learning-second-
edition. Se houver uma atualização no código, ela será atualizada no repositório GitHub.
Também temos outros pacotes de códigos do nosso rico catálogo de livros e vídeos disponíveis emhttps://github.com/PacktPublishing/. Confira!
Convenções usadas
Há uma série de convenções de texto usadas ao longo deste livro.
Código em texto: indica palavras de código em texto, nomes de tabelas de banco de dados, nomes de pastas, nomes de arquivos, extensões de arquivos, nomes de caminhos, URLs fictícios, entrada do usuário e identificadores do Twitter. Aqui está um exemplo: Para criar uma árvore de classificação, podemos utilizar a função fitctree().
Um bloco de código é definido da seguinte forma:
gscatter(meas(:,3), meas(:,4), espécie,'rgb','osd');
xlabel('Comprimento da pétala');
ylabel('Largura da pétala');
Audacioso: indica um novo termo, uma palavra importante ou palavras que você vê na tela. Por exemplo, palavras em menus ou caixas de diálogo aparecem em negrito.
Aqui está um exemplo: Agora podemos treinar a rede apenas clicando no botão treinar do aplicativo. Após alguns segundos, a RNA estará treinada e pronta para uso.
Dicas ou notas importantes
Apareça assim.
Parte 1: Introdução ao Matlab
Esta parte fornece informações básicas e conhecimentos essenciais sobre ferramentas MATLAB, juntamente com uma introdução aos conceitos básicos de aprendizado de máquina. Também nos concentraremos na importação e organização de dados no MATLAB, enfatizando a familiaridade com o espaço de trabalho do MATLAB para simplicidade nas operações. A discussão abrange a análise de vários formatos de dados, movimentação de dados para dentro e fora do MATLAB, exploração de tipos de dados para agrupar variáveis e dados categóricos, exportação de dados em diferentes formatos, como matrizes de células, matrizes de estrutura e dados tabulares, e salvá-los em arquivos suportados pelo MATLAB. formatos. O objetivo final é preparar os dados no formato correto para a fase subsequente de análise de dados.
Esta parte possui os seguintes capítulos:
•
Capítulo 1, Explorando MATLAB para aprendizado de máquina
•
Capítulo 2, T rabalhando com dados no MATLAB
1
Explorando MATLAB para aprendizado de máquina
Aprendizado de máquina(ML) é um ramo da inteligência artificial que se baseia no desenvolvimento de algoritmos e modelos matemáticos capazes de aprender a partir de dados e de se adaptar de forma autónoma para melhorar o seu desempenho de acordo com um conjunto de objetivos. Graças a essa capacidade de aprendizagem, o ML é usado em uma ampla gama de aplicações, como análise de dados, visão computacional, modelagem de linguagem, reconhecimento de fala, diagnóstico médico e previsão de risco financeiro. O ML é uma área de pesquisa em constante evolução e está revolucionando muitos campos da ciência e da indústria. O objetivo deste capítulo é fornecer uma introdução, informações básicas e um conhecimento básico de ML, bem como uma compreensão de como aplicar esses conceitos usando ferramentas MATLAB.
Neste capítulo, vamos cobrir os seguintes tópicos principais:
•
Apresentando o aprendizado de máquina
•
Descobrindo os diferentes tipos de processos de aprendizagem
•
Usando técnicas de ML
•
Explorando caixas de ferramentas MATLAB para ML
•
Aplicações de ML na vida real
Requerimentos técnicos
Neste capítulo, apresentaremos conceitos básicos relacionados ao ML. Para compreender esses tópicos, é necessário um conhecimento básico de álgebra e modelagem matemática. Também é necessário um conhecimento prático do ambiente MATLAB.
Apresentando o aprendizado de máquina
O ML baseia-se na ideia de fornecer aos computadores uma grande quantidade de dados de entrada, juntamente com as respostas corretas ou rótulos correspondentes, e permitir-lhes aprender com esses dados, identificando padrões, relações e regularidades dentro deles. Ao contrário das abordagens de programação tradicionais, nas quais os computadores seguem instruções precisas para executar tarefas específicas, o ML permite que as máquinas aprendam de forma independente com os dados e tomem decisões com base em modelos estatísticos e previsões.
Um dos conceitos-chave do ML é a capacidade de generalizar. Isso significa que um modelo treinado com base nas informações do conjunto de dados de treinamento deve ser capaz de fazer previsões precisas sobre novos dados que nunca viu antes.
Isso permite que o ML seja aplicado em uma ampla variedade de domínios.
Como definir ML
Para melhor compreender os conceitos básicos do ML, podemos partir das definições formuladas pelos pioneiros nesta área. De acordo com Arthur L. Samuel (1959) – "ML
é um campo de estudo que dá aos computadores a capacidade de aprender sem serem explicitamente programados".
A definição mencionada refere-se à capacidade de aprender com a experiência, o que os humanos fazem na maioria dos casos.
ML é um domínio interdisciplinar forjado na encruzilhada e na mistura harmoniosa de ciência da computação, estatística, neurobiologia e teoria de controle. Suas aplicações práticas superaram com sucesso vários desafios em diversos campos, alterando fundamentalmente o paradigma do desenvolvimento de software. Em essência, o ML
constitui uma abordagem fundamental que capacita os computadores com um certo grau de autonomia. É evidente que o ML se inspira no estudo da aprendizagem humana; assim como o cérebro humano e seus neurônios são a base da intuição, as redes neurais artificiais servem como base para a tomada de decisões por computador. O ML facilita a criação de modelos que podem representar padrões de dados com precisão por meio de uma análise meticulosa de conjuntos de dados.
A título de ilustração, podemos estabelecer uma conexão entre variáveis de entrada e variáveis de saída dentro de um determinado sistema. Uma abordagem para conseguir isso é assumir a existência de um mecanismo para gerar dados
paramétricos, embora sem conhecimento preciso dos valores dos parâmetros. Este procedimento é comumente referido como emprego de métodos estatísticos.
Análise do raciocínio lógico
O raciocínio lógico é baseado nos conceitos de indução, dedução e inferência. Aqui estão as diferenças entre eles:
•
Induçãoé um processo de raciocínio que parte de observações ou dados específicos para chegar a conclusões gerais. Em outras palavras, trata-se de extrair uma regra ou princípio geral a partir de exemplos específicos. A indução pode ser útil para fazer previsões e generalizações, mas as conclusões obtidas não são necessariamente certas.
•
Deduçãoé um processo de raciocínio que parte de premissas ou regras gerais e chega a conclusões específicas. Em outras palavras, trata-se de aplicar princípios gerais para obter informações específicas. A dedução é baseada na lógica formal e no uso de regras de inferência válidas. A dedução produz conclusões logicamente corretas a partir das premissas fornecidas.
•
Finalmente, a inferência é um processo de raciocínio que nos leva a tirar conclusões, deduções ou julgamentos com base nas evidências ou informações disponíveis. A inferência pode envolver indução e dedução, bem como outras formas de raciocínio, como a abdução. A inferência pode ser vista como a aplicação de regras ou estratégias de raciocínio para obter novas informações ou chegar a conclusões baseadas nas já existentes.
Em resumo, a indução baseia-se na extração de princípios gerais de exemplos específicos, a dedução baseia-se na aplicação de princípios gerais para obter conclusões específicas, enquanto a inferência é um termo mais amplo que abrange tanto a indução como a dedução, bem como outros processos de raciocínio.
No domínio do ML, o professor e o aluno são duas entidades essenciais que desempenham papéis significativos. O professor possui o conhecimento necessário para executar uma determinada tarefa, enquanto o objetivo do aluno é adquirir esse conhecimento para executar a tarefa. As estratégias empregadas para a aprendizagem podem ser diferenciadas com base no nível de inferência realizada pelo aluno, considerando dois extremos: nenhuma inferência e inferência substancial.
Quando um sistema de computador (o aluno) é programado diretamente, ele adquire conhecimento sem se envolver em qualquer inferência, pois todos os processos cognitivos são controlados pelo programador (o professor). Muito pelo contrário, quando um sistema encontra novas soluções de forma autónoma, necessita de uma quantidade substancial de inferências. Neste cenário, o conhecimento organizado é obtido através de experimentos e observações. Na figura a seguir, é mostrada a diferença entre indução e dedução para tarefas de inferência.
Figura 1.1 – Chaves de raciocínio lógico
Entre a indução e a dedução existe um ponto médio chamado inferência – por exemplo, digamos que um aluno procura resolver um desafio matemático fazendo analogias com soluções fornecidas num livro de exercícios. Esta atividade exige inferência, embora em menor grau do que a descoberta de um novo teorema matemático.
Ao aumentar a capacidade de inferência do aluno, o desgaste do professor diminui. A seguinte taxonomia de ML procura retratar o conceito de compensações em termos de trabalho exigido tanto pelo aluno como pelo professor.
Tipologias de estratégias de aprendizagem
Com base na inferência realizada, podemos identificar diferentes mecanismos que um sistema de aprendizagem pode adotar. Vejamos alguns deles:
•
Aprendizagem mecânica: Vamos começar com um básico, o aprendizado mecânico, que envolve a utilização de um conteúdo sem que nenhuma transformação seja realizada nele. Nenhum processo de inferência é ativado e o conhecimento não é processado de forma alguma; é essencialmente um processo de memorização programado com esforço considerável por parte do aluno.
•
Aprendendo com a instrução: Ao adquirir conhecimento de um professor, o aluno precisa converter as informações apresentadas em um formato que possa ser processado internamente. Além disso, é crucial que o aluno integre o novo conhecimento com a compreensão existente para utilizá-lo de forma eficaz. Este processo envolve algum nível de inferência por parte do aluno, mas uma parte significativa da responsabilidade recai sobre o professor. O
professor deve apresentar e organizar o conhecimento de uma forma que aprimore progressivamente o conhecimento existente do aluno. Isto se alinha com a abordagem usada na maioria dos métodos de educação formal.
Consequentemente, a tarefa do ML envolve o desenvolvimento de um sistema que possa receber instruções ou conselhos, armazená-los e aplicar o conhecimento adquirido de forma eficaz.
Figura 1.2 – Tipologias de estratégias de aprendizagem baseadas na inferência realizada
•
Aprendendo por analogia: Ao adquirir novas declarações ou habilidades, o processo envolve converter e aprimorar o conhecimento existente que tenha uma forte semelhança com o novo ambiente. Isso permite que o conhecimento transformado seja efetivamente aplicado no novo contexto. Por exemplo, um sistema de aprendizagem por analogia poderia ser utilizado para transformar código em algo que implemente uma função intimamente relacionada, mesmo que não tenha sido originalmente projetado para esse propósito. A aprendizagem por analogia necessita de mais inferência por parte do aluno em comparação com o mecanismo de aprendizagem anterior. O aluno deve recuperar de sua memória um fato ou habilidade relevante que seja análogo em termos de parâmetros relevantes. Então, o conhecimento recuperado precisa ser convertido, relacionado ao novo contexto e arquivado para uso futuro.
•
Aprendendo com exemplos: Quando confrontado com um conjunto de instâncias, incluindo exemplos que apoiam uma ideia e contra-exemplos que a contradizem, o aluno infere uma descrição generalizada da ideia. Esta descrição abrange todos os exemplos positivos, ao mesmo tempo que remove sistematicamente os negativos. Aprender com exemplos tem sido extensivamente estudado no campo da inteligência artificial. Neste método, o aluno envolve-se num grau mais elevado de inferência em comparação com a aprendizagem através da instrução, uma vez que não há ideias gerais fornecidas por um professor. Também envolve um nível de inferência ligeiramente maior do que a aprendizagem por analogia, uma vez que não existem ideias relacionadas fornecidas como pontos de partida para o desenvolvimento do novo conceito.
•
Aprendendo com a observação: Esta forma de aprendizagem indutiva é altamente versátil e abrange diversas tarefas, como descoberta de sistemas, formação de teorias e estabelecimento de princípios de agrupamento para criação de hierarquias taxonômicas. Ao contrário de outras abordagens discutidas, esta forma de aprendizagem não depende de um professor externo.
Em vez disso, o aluno é obrigado a se envolver em inferências extensas. Não lhes é apresentado um conjunto específico de exemplos para uma ideia específica, nem têm acesso a uma previsão que possa agrupar instâncias produzidas de forma automatizada como exemplos positivos ou negativos de qualquer conceito. Além disso, em vez de se concentrar numa única ideia, o aluno deve lidar com vários conceitos simultaneamente, o que introduz um desafio significativo em termos de alocação de atenção.
•
Aprendendo por fragmentação: Esta é uma estratégia cognitiva que envolve dividir as informações em unidades ou pedaços
menores e gerenciáveis para melhorar a memória e a compreensão. Esta técnica aproveita a tendência natural do cérebro de organizar e processar informações em grupos significativos. Ao agrupar conceitos relacionados, os alunos podem absorver e reter mais facilmente materiais complexos. O chunking é particularmente eficaz em vários ambientes educacionais, desde a memorização de listas e sequências até o domínio de assuntos complexos. Quando a informação é organizada em blocos coesos, torna-se mais fácil compreender as relações entre os diferentes componentes, facilitando uma compreensão mais profunda do conteúdo geral. Essa abordagem é especialmente benéfica em áreas como a aquisição de idiomas, onde a divisão de frases ou palavras em pedaços gerenciáveis ajuda a um aprendizado mais rápido e eficiente. Além disso, o chunking promove a recuperação eficiente e a resolução de problemas. Em vez de se esforçarem para lembrar informações individuais, os alunos podem acessar pedaços mais amplos de conhecimento, levando a uma recuperação mais rápida e precisa. Esta estratégia cognitiva alinha-se com a capacidade do cérebro de processar informações em paralelo, otimizando o processo de aprendizagem e melhorando o desempenho cognitivo geral. Em essência, o aprendizado por chunking capacita os indivíduos a navegar pelas complexidades da informação com maior facilidade e eficácia.
A análise dos mecanismos de aprendizagem que um sistema pode adotar nos ajudará a compreender melhor os diferentes tipos de processos de aprendizagem que podem ser adotados em um sistema baseado em ML.
Descobrindo os diferentes tipos de processos de aprendizagem A aprendizagem baseia-se na ideia de que as percepções não devem apenas orientar as ações, mas também melhorar a capacidade do agente de aprender automaticamente a partir das interações com o mundo e dos próprios processos de tomada de decisão. Um sistema é considerado capaz de aprender quando possui um componente executivo para tomar decisões e um componente de aprendizagem para modificar o componente executivo para melhorar as decisões. A aprendizagem é influenciada pelos componentes aprendidos do sistema, pelo feedback recebido após as ações serem executadas e pelo tipo de representação utilizada.
O ML oferece diversas maneiras de permitir que algoritmos aprendam com os dados, que são classificados em categorias com base no tipo de feedback em que o sistema de
aprendizagem se baseia. A escolha de qual categoria de aprendizagem usar para um problema específico deve ser feita com antecedência para encontrar a melhor solução.
É útil avaliar a robustez do algoritmo, como sua capacidade de fazer previsões corretas mesmo com dados faltantes, a escalabilidade, a eficiência do algoritmo com conjuntos de dados pequenos ou grandes e a interpretabilidade, que se refere à possibilidade de atribuir um resultado mais subjetivo do que objetivo.
Figura 1.3 – Diferentes tipos de processos de aprendizagem Os algoritmos de ML podem ser categorizados de acordo com o tipo de experiência a que são submetidos durante o processo de aprendizagem. É comum categorizar os paradigmas de ML da seguinte forma:
•
Aprendizagem supervisionada: O algoritmo gera uma função que vincula valores de entrada a uma saída desejada, através da observação de um conjunto de exemplos em que cada entrada de dados tem seus dados de saída relativos que são usados para construir modelos preditivos.
•
Aprendizagem não supervisionada: O algoritmo tenta derivar conhecimento de uma entrada geral, sem a ajuda de um conjunto de exemplos pré-classificados, que é utilizado para construir modelos descritivos. Um exemplo típico da aplicação desses algoritmos são os motores de busca.
•
Aprendizagem por reforço: O algoritmo pode aprender dependendo das mudanças que ocorrem no ambiente em que é executado. O agente recebe feedback na forma de recompensas ou punições com base nas ações que realiza, permitindo-lhe aprender estratégias ideais ao longo do tempo. Na verdade, como cada ação tem algum efeito no ambiente em questão, o algoritmo é orientado pelo mesmo ambiente de feedback. Alguns desses algoritmos são usados em carros autônomos e em jogos AlphaGo autônomos.
Vejamos detalhadamente essas categorias, analisando suas características e tentando entender como escolher o paradigma mais adequado para o nosso problema.
Aprendizagem supervisionada
A aprendizagem supervisionada é uma técnica de ML projetada para permitir que um sistema de computador resolva tarefas automaticamente. O processo envolve o fornecimento de dados de entrada, normalmente na forma de vetores, que formam um conjunto, I. Os dados de saída são definidos como um conjunto, O, e uma função, f, é estabelecida para associar cada entrada à resposta correta. Este conjunto de dados usado para treinamento é denominado conjunto de treinamento.
Ó=f(eu)
O princípio subjacente de todos os algoritmos de aprendizagem supervisionada é que, com exemplos suficientes, um algoritmo pode criar uma função derivada, B, que se aproxima da função desejada, A. Se a aproximação for precisa o suficiente, a função derivada deve fornecer respostas de saída como as do função desejada, tornando-os aceitáveis. Esses algoritmos baseiam-se na suposição de que entradas semelhantes correspondem a saídas semelhantes. Esta suposição muitas vezes não é perfeitamente satisfeita. No entanto, existem situações em que esta aproximação é aceitável.
Com esse tipo de aprendizado é possível, por exemplo, utilizar como entrada imagens de animais corretamente rotuladas, para fazer com que o algoritmo aprenda a correlação entre as características de um determinado animal e a imagem que o contém. Isto é feito de forma que, posteriormente, o algoritmo possa reconhecê-lo, dada a entrada de uma imagem contendo aquele tipo de animal. O algoritmo aprende a reconhecer um determinado padrão para compreender a correlação entre a imagem e o rótulo atribuído, para então deduzir uma regra geral para reconhecer se a mesma correlação existe nos dados subsequentes.
Para utilizar a aprendizagem supervisionada, é portanto necessário ter dados com resultados conhecidos. No caso de ambientes totalmente observáveis, o sistema pode ver quais efeitos suas ações têm e pode usar o método de aprendizagem supervisionada para aprender a predizê-los. Se o ambiente não fosse completamente observável, os efeitos imediatos poderiam ser invisíveis. O desempenho desses algoritmos é altamente dependente dos dados de entrada. Se apenas algumas entradas de treinamento forem fornecidas, o algoritmo pode não ter experiência suficiente para produzir resultados corretos. Por outro lado, um número excessivo de entradas pode tornar o algoritmo excessivamente lento, à medida que a função derivada se torna mais complexa.
Além disso, algoritmos de aprendizagem supervisionada são sensíveis ao ruído.
Mesmo um pequeno número de pontos de dados incorretos pode tornar todo o sistema não confiável, levando a decisões erradas.
Quando o valor de saída é categórico, como membro/não membro de uma determinada classe, é considerado um problema de classificação. Por outro lado, se a saída for um valor real contínuo dentro de um determinado intervalo, é classificado como um problema de regressão.
Aprendizagem não supervisionada
O objetivo da aprendizagem não supervisionada é extrair automaticamente informações de bancos de dados sem conhecimento prévio do conteúdo a ser analisado. Ao contrário da aprendizagem supervisionada, não há informações disponíveis sobre as classes de adesão ou sobre o resultado correspondente a uma determinada entrada. O objetivo é obter um modelo capaz de descobrir propriedades interessantes, como grupos (clusters) de exemplos com características semelhantes (clustering). Um exemplo de aplicação desses algoritmos é visto nos motores de busca.
Ao fornecer uma ou mais palavras-chave, podem gerar uma lista de links relacionados à nossa pesquisa. As diferenças entre aprendizagem supervisionada e aprendizagem não supervisionada são destacadas na figura a seguir.
Figura 1.4 – Aprendizagem supervisionada versus aprendizagem não supervisionada O objetivo da aprendizagem não supervisionada é aprender de forma autônoma a estrutura subjacente dos dados de entrada. Os resultados são influenciados pelas decisões sobre quais dados inserir e a ordem em que são apresentados. Esta abordagem reorganiza os dados de uma maneira diferente, criando clusters de dados mais significativos para análises subsequentes e permitindo a descoberta de padrões anteriormente despercebidos nos dados. Um sistema capaz de aprendizagem pura e não supervisionada carece da capacidade de aprender quais ações tomar, pois carece de informações sobre o que constitui uma ação correta ou um estado desejável a ser alcançado.
A aprendizagem não supervisionada é comumente empregada em problemas de agrupamento, onde identifica grupos de dados com base em características compartilhadas, resultando na criação de agrupamentos de dados. Além disso, esta abordagem é utilizada na aprendizagem associativa, que envolve a identificação de regras associativas entre os dados de entrada e em sistemas de recomendação.
A eficácia desses algoritmos depende do valor das informações que eles podem extrair dos bancos de dados. Esses algoritmos funcionam examinando os dados e buscando ativamente semelhanças ou disparidades entre eles. Os dados disponíveis referem-se exclusivamente ao conjunto de atributos que caracterizam cada exemplo individual.
O aprendizado não supervisionado demonstra alta eficiência ao trabalhar com elementos numéricos, mas sua precisão diminui ao lidar com dados não numéricos.
Normalmente, esses algoritmos funcionam bem quando os dados exibem uma ordem clara ou um agrupamento distinto que pode ser facilmente identificado.
Aprendizagem por reforço
A aprendizagem por reforço visa desenvolver algoritmos que possam aprender e se adaptar às mudanças em seu ambiente. Esta técnica de programação baseia-se no conceito de recepção de estímulos externos com base nas escolhas feitas pelo algoritmo. Fazer uma escolha correta resulta em uma recompensa, enquanto uma escolha incorreta leva a uma penalidade. O objetivo final do sistema é alcançar o melhor resultado possível.
Ao contrário da aprendizagem supervisionada, em que um professor fornece resultados corretos ao sistema (aprendizagem com orientação), isto nem sempre é viável. Muitas vezes, apenas informações qualitativas estão disponíveis, às vezes em formato binário (como certo/errado ou sucesso/fracasso). Essas informações disponíveis são chamadas de sinais de reforço. No entanto, o sistema não fornece nenhuma orientação sobre como atualizar o agente como um algoritmo de otimização e o ambiente como sendo caracterizado pela família de funções objetivo para as quais gostaríamos de aprender como otimizador. O objetivo do sistema é criar agentes
inteligentes
que possuam a capacidade de aprender com suas experiências.
Os algoritmos de aprendizagem por reforço operam com base em recompensas que são atribuídas de acordo com os objetivos alcançados. Estas recompensas são essenciais para compreender quais ações são desejáveis e devem ser realizadas, bem como quais ações devem ser evitadas. Sem recompensas, o algoritmo teria dificuldade para tomar decisões. O aprendizado por reforço é empregado quando algoritmos precisam tomar decisões que tenham consequências. Vai além de ser puramente descritivo e passa a ser prescritivo, orientando sobre quais ações tomar. Esse tipo de aprendizagem é altamente inovador na área de ML e é adequado para entender como os ambientes funcionam. O fluxo do algoritmo de aprendizagem por reforço é mostrado na figura a seguir.
Figura 1.5 – Mecanismo de aprendizagem por reforço
Um aspecto crucial é a capacidade do algoritmo de interpretar o feedback como um reforço em vez de uma nova entrada. O objetivo da aprendizagem por reforço é utilizar o feedback recebido para construir uma política ideal, maximizando a recompensa total esperada. Uma política específica representa uma fórmula de atualização específica. Conseqüentemente, aprender a política equivale a aprender a fórmula de atualização e, portanto, o algoritmo de otimização. Esta abordagem permite treinar um algoritmo sem definir explicitamente regras deduzidas do feedback. É particularmente útil em domínios complexos onde a definição de regras pode ser um desafio e o desempenho pode ser bastante melhorado.
A aprendizagem por reforço abrange tanto a aprendizagem passiva quanto a aprendizagem ativa. Na aprendizagem passiva, o agente segue uma política fixa e visa aprender as utilidades dos pares estado-ação. Em alguns casos, o agente também pode precisar aprender o modelo do ambiente. Na aprendizagem ativa, o agente deve aprender quais ações tomar e, por meio da exploração, ganhar experiência sobre como se comportar no ambiente. Uma maneira de implementar essa estratégia é fazer com que o algoritmo jogue um jogo sem fornecer as regras. O feedback positivo é dado quando o agente realiza ações permitidas ou benéficas, enquanto o feedback negativo é fornecido para ações indesejáveis. Isto permite que o algoritmo