Fundamentos de IA

O que é Aprendizado Profundo?

mm
Adicione Unite.AI às suas fontes preferidas no Google

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 é 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 é 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 multicamada. Um perceptron multicamada também é referido como uma rede neural e é composto por uma série de nós/neurônios interligados. Existem três camadas diferentes em um perceptron multicamada: 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 intermediária/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 de 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 multicamada, de modo que não há apenas uma camada oculta, mas muitas camadas ocultas. Quanto “mais profunda” a rede neural profunda for, mais padrões sofisticados 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 especializado.

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 em que a ordem dos dados é importante, onde a rede deve aprender sobre uma sequência de dados. RNNs são comumente aplicados a problemas como processamento de linguagem natural, pois a ordem das palavras é importante 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 consideração 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 Curto e Longo Prazo, ou LSTM. LSTMs são tipos de RNN que podem lidar com cadeias longas de dados. RNNs regulares podem ser vítimas de algo chamado de “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 modo que a saída da rede se assemelhe à entrada. Os quatro tipos de autoencoders que veem uso frequente são:

  • Autoencoders regulares/planos
  • Autoencoders multicamada
  • Autoencoders convolucionais
  • Autoencoders regularizados

Autoencoders regulares/planos são apenas redes neurais com uma camada oculta, enquanto autoencoders multicamada 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 um tipo específico de função de perda que permite que a rede neural realize 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, múltiplas redes neurais profundas em vez de apenas uma rede. Dois modelos de aprendizado profundo são treinados ao mesmo tempo e as saídas são alimentadas na outra rede. As redes estão em competição uma com a outra e, como elas têm acesso às saídas de dados 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 usados para interpretar dados sequenciais. Autoencoders podem transformar tarefas de aprendizado não supervisionado em tarefas de aprendizado supervisionado. Finalmente, GANs são múltiplas redes que competem uma com a outra e 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.