Connect with us

IA 101

O que é Aprendizado Profundo?

mm

O aprendizado profundo é um dos campos mais influentes e de crescimento mais rápido na inteligência artificial. No entanto, obter uma compreensão intuitiva do aprendizado profundo pode ser difícil porque o termo aprendizado profundo abrange uma variedade de diferentes algoritmos e técnicas. O aprendizado profundo também é uma subdisciplina do aprendizado de máquina em geral, por isso é importante entender o que é o aprendizado de máquina para entender o aprendizado profundo.

O que é Aprendizado de Máquina?

Aprendizado profundo é uma extensão de alguns dos conceitos originados do aprendizado de máquina, por isso, vamos explicar o que é o aprendizado de máquina.

Em resumo, o aprendizado de máquina é um método de permitir que os computadores realizem tarefas específicas sem codificar explicitamente cada linha dos algoritmos usados para realizar essas tarefas. Existem muitos algoritmos de aprendizado de máquina diferentes, mas um dos algoritmos mais comumente usados é um perceptron multilayer. Um perceptron multilayer também é referido como uma rede neural, e é composto por uma série de nós/neurônios ligados. Existem três camadas diferentes em um perceptron multilayer: a camada de entrada, a camada oculta e a camada de saída.

A camada de entrada recebe os dados na rede, onde é manipulada pelos nós na camada oculta. Os nós na camada oculta são funções matemáticas que podem manipular os dados provenientes da camada de entrada, extrair padrões relevantes dos dados de entrada. É assim que a rede neural “aprende”. As redes neurais recebem seu nome do fato de serem inspiradas na estrutura e função do cérebro humano.

As conexões entre os nós na rede têm valores chamados pesos. Esses valores são essencialmente suposições sobre como os dados em uma camada estão relacionados aos dados na próxima camada. À medida que a rede é treinada, os pesos são ajustados, e o objetivo é que os pesos/suposições sobre os dados eventualmente convergem para valores que representam com precisão os padrões significativos dentro dos dados.

Funções de ativação estão presentes nos nós da rede, e essas funções de ativação transformam os dados de forma não linear, permitindo que a rede aprenda representações complexas dos dados. As funções de ativação multiplicam os valores de entrada pelos valores de peso e adicionam um termo de viés.

O que é Aprendizado Profundo?

O aprendizado profundo é o termo dado às arquiteturas de aprendizado de máquina que unem muitos perceptrons multilayer, de modo que não há apenas uma camada oculta, mas muitas camadas ocultas. Quanto “mais profunda” for a rede neural profunda, mais sofisticados serão os padrões que a rede pode aprender.

As redes de camadas profundas compostas por neurônios às vezes são referidas como redes totalmente conectadas ou camadas totalmente conectadas, referindo-se ao fato de que um neurônio dado mantém uma conexão com todos os neurônios ao seu redor. Redes totalmente conectadas podem ser combinadas com outras funções de aprendizado de máquina para criar diferentes arquiteturas de aprendizado profundo.

Diferentes Tipos de Aprendizado Profundo

Existem várias arquiteturas de aprendizado profundo usadas por pesquisadores e engenheiros, e cada uma das diferentes arquiteturas tem seu próprio caso de uso especial.

Redes Neurais Convolucionais

Redes neurais convolucionais, ou CNNs, são a arquitetura de rede neural comumente usada na criação de sistemas de visão computacional. A estrutura das redes neurais convolucionais permite que elas interpretem dados de imagem, convertendo-os em números que uma rede totalmente conectada possa interpretar. Uma CNN tem quatro componentes principais:

  • Camadas convolucionais
  • Camadas de subsampling/amostragem
  • Funções de ativação
  • Camadas totalmente conectadas

As camadas convolucionais são as que recebem as imagens como entradas na rede, analisando as imagens e obtendo os valores dos pixels. A subsampling ou amostragem é onde os valores da imagem são convertidos/reduzidos para simplificar a representação das imagens e reduzir a sensibilidade dos filtros de imagem ao ruído. As funções de ativação controlam como os dados fluem de uma camada para a próxima camada, e as camadas totalmente conectadas são as que analisam os valores que representam a imagem e aprendem os padrões contidos nesses valores.

RNNs/LSTMs

Redes neurais recorrentes, ou RNNs, são populares para tarefas onde a ordem dos dados importa, onde a rede deve aprender sobre uma sequência de dados. RNNs são comumente aplicadas a problemas como processamento de linguagem natural, pois a ordem das palavras importa ao decodificar o significado de uma sentença. A parte “recorrente” do termo Rede Neural Recorrente vem do fato de que a saída para um elemento dado em uma sequência depende do cálculo anterior, bem como do cálculo atual. Ao contrário de outras formas de redes neurais profundas, RNNs têm “memórias”, e as informações calculadas nos diferentes passos de tempo na sequência são usadas para calcular os valores finais.

Existem vários tipos de RNNs, incluindo RNNs bidirecionais, que levam em conta itens futuros na sequência, além dos itens anteriores, ao calcular o valor de um item. Outro tipo de RNN é uma Rede de Memória de Longo Prazo, ou LSTM. LSTMs são tipos de RNN que podem lidar com longas cadeias de dados. RNNs regulares podem ser afetadas por algo chamado “problema de gradiente explosivo”. Esse problema ocorre quando a cadeia de dados de entrada se torna extremamente longa, mas LSTMs têm técnicas para combater esse problema.

Autoencoders

A maioria das arquiteturas de aprendizado profundo mencionadas até agora é aplicada a problemas de aprendizado supervisionado, em vez de tarefas de aprendizado não supervisionado. Autoencoders podem transformar dados não supervisionados em um formato supervisionado, permitindo que redes neurais sejam usadas no problema.

Autoencoders são frequentemente usados para detectar anomalias em conjuntos de dados, um exemplo de aprendizado não supervisionado, pois a natureza da anomalia não é conhecida. Exemplos de detecção de anomalias incluem detecção de fraude para instituições financeiras. Nesse contexto, o objetivo de um autoencoder é determinar uma linha de base de padrões regulares nos dados e identificar anomalias ou outliers.

A estrutura de um autoencoder é frequentemente simétrica, com camadas ocultas dispostas de tal forma que a saída da rede se assemelha à entrada. Os quatro tipos de autoencoders que são frequentemente usados são:

  • Autoencoders regulares/planos
  • Autoencoders multilayer
  • Autoencoders convolucionais
  • Autoencoders regularizados

Autoencoders regulares/planos são apenas redes neurais com uma camada oculta, enquanto autoencoders multilayer são redes profundas com mais de uma camada oculta. Autoencoders convolucionais usam camadas convolucionais em vez de, ou além de, camadas totalmente conectadas. Autoencoders regularizados usam uma função de perda específica que permite que a rede neural execute funções mais complexas, funções além de apenas copiar entradas para saídas.

Redes Adversárias Generativas

Redes Adversárias Generativas (GANs) são, na verdade, várias redes neurais profundas em vez de apenas uma rede. Dois modelos de aprendizado profundo são treinados ao mesmo tempo, e suas saídas são alimentadas à outra rede. As redes estão em competição uma com a outra, e como elas têm acesso aos dados de saída uma da outra, ambas aprendem com esses dados e melhoram. As redes estão basicamente jogando um jogo de falsificação e detecção, onde o modelo gerador tenta criar novas instâncias que enganarão o modelo detector/discriminador. GANs se tornaram populares no campo da visão computacional.

Resumo do Aprendizado Profundo

O aprendizado profundo estende os princípios das redes neurais para criar modelos sofisticados que podem aprender padrões complexos e generalizar esses padrões para conjuntos de dados futuros. Redes neurais convolucionais são usadas para interpretar imagens, enquanto RNNs/LSTMs são usadas para interpretar dados sequenciais. Autoencoders podem transformar tarefas de aprendizado não supervisionado em tarefas de aprendizado supervisionado. Finalmente, GANs são várias redes pitted uma contra a outra que são especialmente úteis para tarefas de visão computacional.

Blogueiro e programador com especialidades em Machine Learning e Deep Learning tópicos. Daniel espera ajudar os outros a usar o poder da IA para o bem social.