DEEP LEARNING
UNIDADE I
Rodrigo Galuzzi Garcia Piva
-1-
Introdução
As raízes da aprendizagem profunda remontam às décadas de 1940 e 1950, quando
os pesquisadores começaram a explorar as redes neurais artificiais (ANNs) como uma
forma de modelar o cérebro humano. No entanto, as primeiras ANNs eram limitadas
em suas capacidades, pois o poder computacional era limitado e a oferta de dados de
treinamento era pouca.
Na década de 1980, ocorreu um avanço com o desenvolvimento do algoritmo de
retropropagação, permitindo o treinamento de redes neurais com maior eficácia. Isso
levou a um ressurgimento do interesse em redes neurais e ao desenvolvimento de
arquiteturas mais complexas.
Na década de 1990, o aprendizado profundo começou a tomar forma com o
desenvolvimento de redes de crenças profundas (DBNs) e redes neurais
convolucionais (CNNs). No entanto, o progresso foi lento devido às limitações de poder
de computação e dados de treinamento.
Na década de 2010, uma tempestade perfeita de avanços no poder de computação, na
disponibilização de diversos conjuntos de dados e no desenvolvimento de novos
algoritmos e arquiteturas levaram a uma aceleração no progresso do aprendizado
profundo. Isso gerou resultados inovadores em áreas como processamento
computacional em linguagem natural, visão computacional e reconhecimento de fala.
Deep Learning, ou em português aprendizado profundo, tem estado em grande
desenvolvimento em uma variedade considerável de aplicações e é amplamente visto
como um dos principais impulsionadores do progresso da inteligência artificial.
Assista ao vídeo de introdução desta unidade:
[Link]
Desenvolvimento Teórico
Um dos desenvolvimentos teóricos mais importantes no aprendizado profundo é o
conceito de retropropagação, que é um método para treinar redes neurais ajustando
iterativamente os pesos da rede a fim de minimizar uma determinada função de custo.
A retropropagação foi introduzida pela primeira vez em meados de 1980 e tornou-se
uma pedra angular no que tange o aprendizado profundo.
Outro desenvolvimento importante no aprendizado profundo é o conceito de redes
neurais convolucionais (CNNs), que são redes neurais projetadas especificamente para
processar dados semelhantes a grades, como imagens. As CNNs usam camadas
especializadas chamadas camadas convolucionais para aprender automaticamente
representações hierárquicas de recursos visuais.
-2-
As redes neurais recorrentes (RNNs) são um modelo importante de rede neural
desenvolvida com o intuito de processar dados em sequência, como, por exemplo,
textos ou dados de séries temporais. As RNNs usam conexões de feedback para
permitir que as informações fluam entre diferentes etapas de tempo, permitindo que
capturem dependências temporais complexas.
Os modelos generativos são outra área de aprendizado profundo que vem sendo
notada e muito utilizada atualmente. Esses modelos visam aprender a distribuição de
probabilidade subjacente de um conjunto de dados, permitindo gerar novos exemplos
semelhantes aos dados originais. Exemplos de modelos generativos incluem
autoencoders variacionais (VAEs) e redes adversárias generativas (GANs).
Por fim, o aprendizado por transferência é outra área importante do aprendizado
profundo que envolve o uso de modelos pré-treinados como ponto de partida para
novas tarefas. Aproveitando o conhecimento contido nesses modelos pré-treinados, os
pesquisadores geralmente podem obter desempenho de ponta em novas tarefas com
muito menos dados de treinamento do que seriam necessários.
Dessa forma, Deep Learning é definida como o uso de algumas metodologias abaixo
descritas:
Backpropagation é um algoritmo chave para treinar redes
neurais. A ideia básica por trás da retropropagação é calcular o
gradiente de uma função de custo em relação aos pesos da
Backpropagation rede e, em seguida, usar esse gradiente para atualizar os pesos
e, dessa forma, minimizar o custo. O algoritmo funciona
propagando o erro para trás pela rede, começando na camada
de saída e trabalhando para trás nas camadas ocultas.
as CNNs são modelos de redes neurais projetadas
especificamente para processar dados semelhantes a grades,
como imagens. A ideia básica por trás de uma CNN é usar
Redes neurais camadas convolucionais para aprender representações
convolucionais hierárquicas de recursos visuais. Em uma camada
(CNNs) convolucional, a rede aplica um conjunto de filtros aos dados de
entrada, produzindo um conjunto de mapas de recursos que
representam diferentes recursos visuais em diferentes escalas
espaciais.
RNNs é um modelo de rede neural desenvolvida para processar
dados sequenciais, como textos ou dados de séries temporais.
A principal característica de um RNN é que ele possui conexões
de feedback que permitem que as informações fluam entre
-3-
Redes neurais diferentes intervalos de tempo. Isso permite que a rede capture
recorrentes dependências temporais complexas nos dados, tornando-a
(RNNs) adequada para tarefas como modelagem de linguagem ou
reconhecimento de fala.
os modelos generativos são um tipo de modelo de aprendizado
profundo que visa aprender a distribuição de probabilidade
subjacente de um conjunto de dados. Isso permite que eles
gerem novos exemplos semelhantes aos dados originais. VAEs
e GANs são dois tipos populares de modelos generativos. Os
VAEs funcionam aprendendo uma representação de dimensão
Modelos inferior dos dados, possibilitando serem usados com o intuito de
generativos gerar novos exemplos. As GANs funcionam treinando duas
redes neurais: uma rede geradora que gera novos exemplos e
uma rede discriminadora que tenta distinguir entre os exemplos
gerados e os exemplos reais do conjunto de dados. As duas
redes são treinadas juntas de forma a encorajar o gerador a
produzir exemplos que são difíceis de serem classificados pelo
discriminador.
Aprendizagem é uma técnica em que o uso de modelos pré-treinados é
por transferência envolvido como ponto de partida para novas tarefas.
A ideia básica por trás do aprendizado de transferência é que muitos modelos de
aprendizado profundo aprendem representações de propósito geral dos dados que
podem ser reutilizados para outras tarefas. Ao usar um modelo pré-treinado como
ponto de partida, os pesquisadores geralmente podem obter desempenho de ponta em
novas tarefas com muito menos dados de treinamento do que seriam necessários.
Uma aplicação popular de aprendizagem por transferência é a visão computacional,
em que modelos pré-treinados, como VGG ou ResNet, são frequentemente usados
como ponto de partida para novas tarefas.
Finalizando o conteúdo teórico, podemos definir conceitos chaves em deep learning
como os abaixo elencados:
os modelos de aprendizado profundo são normalmente
baseados em redes neurais, compostas por camadas de nós,
conhecidos como "neurônios", interconectados. A ideia básica
Redes neurais
por trás de uma rede neural é aprender uma função não linear
que mapeia entradas para saídas, adequando seus pesos
conectantes entre os neurônios.
-4-
Backpropagation é um algoritmo chave para treinar redes
neurais. Ele funciona calculando o gradiente de uma função de
Backpropagation custo em relação aos pesos da rede e, em seguida, usando
esse gradiente para atualizar os pesos de forma a minimizar o
custo.
essas funções de ativação introduzem uma forma não linear na
Funções de rede neural. Funções de ativação comuns incluem a função
ativação sigmoide, a função ReLU (unidade linear retificada) e a função
softmax.
consideramos as CNNs como um modelo de rede neural que
Redes neurais
processa dados semelhantes a grades, como imagens. Eles
convolucionais
usam camadas convolucionais para aprender representações
(CNNs)
hierárquicas de recursos visuais.
RNNs são um tipo de rede neural projetada para processar
dados sequenciais, como textos ou dados de séries temporais.
Redes neurais
Eles têm conexões de feedback que permitem que as
recorrentes
informações fluam entre diferentes etapas de tempo, o que lhes
(RNNs)
permite capturar dependências temporais complexas nos
dados.
os modelos generativos são um tipo de modelo de aprendizado
profundo que aprende a distribuição de probabilidade
Modelos
subjacente de um conjunto de dados, permitindo gerar novos
generativos
exemplos semelhantes aos dados originais. Os modelos
generativos populares incluem VAEs e GANs.
a aprendizagem por transferência é uma técnica que envolve o
uso de modelos pré-treinados como ponto de partida para
Aprendizagem
novas tarefas. Isso permite que os pesquisadores alcancem
por transferência
desempenho de ponta em novas tarefas com muito menos
dados de treinamento do que seriam necessários.
os modelos de aprendizado profundo são normalmente
treinados usando técnicas de otimização, como descida de
Técnicas de
gradiente estocástico ou Adam. Essas técnicas envolvem o
otimização
ajuste iterativo dos pesos da rede para minimizar uma função
de custo.
-5-
técnicas de regularização, como abandono ou regularização L2,
Técnicas de são usadas para evitar o overfitting nos modelos de deep
regularização learning. Essas técnicas envolvem a introdução de restrições
adicionais na rede para evitar que ela se ajuste muito aos
dados de treinamento.
os modelos de aprendizado profundo geralmente têm um
grande número de hiperparâmetros que precisam ser ajustados
Ajuste de para obter o desempenho ideal. Técnicas como pesquisa em
hiperparâmetros grade ou otimização bayesiana podem ser usadas com o intuito
de determinar o ideal conjunto de hiperparâmetros em uma
tarefa determinada.
usamos a função de perda com o intuito de medir a diferença
entre os dados de saída previstos de um determinado modelo
Funções de
de aprendizado profundo e a saída real. O objetivo em treinar
perda
um determinado modelo de aprendizado profundo é minimizar
essa função de perda.
este algoritmo (Gradient Fall) é um algoritmo de otimização
usado para suavizar o resultado da função de perda encontrada
Descida de
nos modelos de deep learning. Funciona ajustando
gradiente
iterativamente os pesos do modelo em direção negativa do
gradiente na função de perda.
Dropout é uma técnica de regularização usada para evitar o
overfitting em modelos de aprendizado profundo. Ele funciona
Dropout descartando aleatoriamente (definindo como zero) uma certa
porcentagem dos neurônios em cada camada durante o
treinamento.
a normalização em lote é uma técnica usada para melhorar a
estabilidade e a velocidade dos modelos de aprendizado
Normalização profundo. Ele funciona normalizando as entradas para cada
em lote camada que o resultado mediano seja o valor zero e sua
variação total seja unitária, ajudando de forma a evitar
problemas de gradiente de desaparecimento e explosão.
são modelos de aprendizado profundo usado para aprendizado
não supervisionado. Eles são projetados para aprender uma
representação compactada dos dados de entrada, treinando a
-6-
Codificadores rede para reconstruir a entrada original a partir da
automáticos representação compactada.
LSTMs são consideradas uma forma de rede neural recorrente
Rede de projetada para manipular dependências a longo prazo em
memória a longo dados sequenciais. Eles têm um estado de memória interna que
prazo (LSTM) lhes permite lembrar ou esquecer seletivamente informações de
intervalos de tempo anteriores.
Mecanismos de atenção são usados para melhorar o
desempenho de modelos de aprendizado profundo em tarefas
Mecanismos de que requerem processamento de sequências longas ou
atenção entradas grandes. Eles funcionam permitindo que o modelo se
concentre seletivamente em diferentes partes da entrada ou
saída.
Duas grandes categorias de inteligência artificial são conhecidas como aprendizado
não supervisionado e aprendizado supervisionado, que incluem também o aprendizado
profundo.
O aprendizado supervisionado refere-se ao treinamento de um modelo que mapeia as
entradas e sua relação com as saídas, em que os dados de treinamento consistem em
exemplos rotulados dos pares de entrada/saída. O objetivo do aprendizado
supervisionado é aprender uma função que possa prever com precisão a saída para
entradas novas e invisíveis. Alguns exemplos comuns de tarefas de aprendizado
supervisionado incluem detecção de objetos, classificação de imagens, processamento
de modelos em linguagem natural e reconhecimento de fala.
Por outro lado, o aprendizado não supervisionado necessita de um treinamento do
modelo para descobrir padrões ou estruturas nos dados de entrada sem orientação
explícita sobre qual deve ser a saída. Esses dados de treinamento, na forma de “não
supervisionado” consistem em exemplos não rotulados dos dados de entrada. O
aprendizado não supervisionado é usado em aplicativos como agrupamento, detecção
de anomalias e modelagem generativa.
Podemos utilizar o aprendizado profundo em tarefas de aprendizado supervisionadas e
não supervisionadas. No aprendizado supervisionado, as redes neurais profundas são
treinadas usando dados rotulados e a rede aprende a mapear a entrada para a saída.
No aprendizado não supervisionado, as redes neurais profundas podem ser usadas
para tarefas como agrupamento ou extração de recursos sem nenhuma orientação
explícita sobre a saída.
Alguns exemplos de modelos de aprendizado profundo usados no aprendizado
supervisionado incluem redes neurais convolucionais (CNNs) para a classificação de
-7-
imagens, redes neurais recorrentes (RNNs) para a previsão de sequência e modelos
chamados de transformadores, destinados ao processamento da linguagem natural.
Exemplos de modelos de aprendizado profundo usados no aprendizado não
supervisionado incluem codificadores automáticos para a extração de recursos e redes
adversárias generativas (GANs) para a modelagem generativa.
Assista ao vídeo e saiba mais:
[Link]
Desenvolvimento Prático
Vamos supor que queiramos treinar um determinado modelo de machine learning para
reconhecer dígitos manuscritos de imagens. Temos um conjunto de dados de milhares
de imagens rotuladas, em que cada imagem é rotulada com o dígito correto que ela
representa. Utilizamos esse conjunto de dados a fim de se treinar o modelo.
Podemos usar uma rede neural convolucional (CNN) como nosso modelo para esta
tarefa. A CNN toma uma imagem como entrada e emite uma distribuição de
probabilidade sobre os dígitos possíveis (0-9). Durante o treinamento, alimentamos as
imagens de rede de nosso conjunto de dados e comparamos seu dígito previsto com o
rótulo verdadeiro. Seus parâmetros da rede neural (os pesos e os vieses) são
ajustados usando retropropagação para reduzir a diferença entre os rótulos previstos e
verdadeiros.
Após o treinamento do modelo, podemos usá-lo para fazer previsões sobre imagens
novas e invisíveis. Por exemplo, se alimentarmos o modelo com uma imagem de um
dígito manuscrito 7, ele deve gerar uma alta probabilidade para o rótulo 7 e baixas
probabilidades para todos os outros dígitos.
Esse é apenas um exemplo de uma tarefa de aprendizagem supervisionada. Existem
muitas outras aplicações de aprendizado supervisionado, como a previsão de preços
de imóveis com base em recursos como metragem quadrada e número de quartos, ou
a previsão de desligamento de um cliente com base em seu comportamento anterior.
-8-
Coleta de dados:
você precisa coletar um conjunto de dados de exemplos rotulados para sua tarefa.
O tamanho e a qualidade do conjunto de dados são fatores críticos que podem
afetar o desempenho do seu modelo.
Pré-processamento de dados:
você precisa pré-processar os dados para prepará-los para o treinamento. Isso
pode incluir tarefas como dimensionamento, normalização e engenharia de
recursos.
Seleção de modelo:
você precisa selecionar uma arquitetura de modelo apropriada para sua tarefa. Por
exemplo, se estiver trabalhando com dados de imagem, você pode escolher uma
rede neural convolucional (CNN), enquanto para dados de texto, você pode
escolher uma rede neural recorrente (RNN) ou um modelo transformador.
Treinamento de modelo:
você precisa treinar seu modelo no conjunto de dados rotulado usando um
algoritmo de otimização, como descida de gradiente estocástico (SGD). Durante o
treinamento, o modelo aprende a minimizar a diferença entre suas saídas previstas
e os rótulos verdadeiros.
Avaliação do modelo:
devemos então avaliar o desempenho desse modelo em um conjunto de validação
ou conjunto de teste separado para avaliar sua precisão e capacidade de
generalização.
Implantação de modelo:
depois que seu modelo for treinado e avaliado, poderá ser implantado em um
ambiente de produção para fazer previsões em dados novos e ainda não
processados.
Assista ao vídeo e saiba mais:
[Link]
Veja o resumo desta unidade assistindo ao vídeo:
[Link]
-9-
Conclusão
Concluindo, o deep learning (aprendizado
profundo) é uma subvariante do
aprendizado de máquina no qual é
envolvido um treinamento de redes
neurais artificiais para executar tarefas
complexas. Esses modelos se tornam
cada vez mais conhecidos pelos avanços
em hardware, disponibilidade de dados e desenvolvimento algorítmico. O aprendizado
profundo tem inúmeras aplicações, incluindo reconhecimento de fala e utilização de
visão computacional, bem como seu processamento da linguagem natural e sistemas
de recomendação.
No aprendizado profundo, existem dois tipos principais de aprendizado: supervisionado
e não supervisionado. O aprendizado supervisionado envolve treinar um modelo em
dados rotulados para fazer previsões em novos dados não vistos anteriormente, e, por
sua vez, o aprendizado não supervisionado encontra padrões em dados não rotulados.
Ambos os tipos de aprendizado podem ser usados para resolver uma ampla gama de
problemas.
A implementação de modelos de aprendizado profundo envolve várias etapas,
incluindo coleta de dados, pré-processamento, seleção de modelo, treinamento,
avaliação e implantação. Existem muitas bibliotecas e estruturas de aprendizado
profundo disponíveis que podem facilitar a implementação e o treinamento de módulo
em deep learning, como o uso de bibliotecas chamadas TensorFlow, PyTorch e Keras.
O aprendizado supervisionado é uma técnica popular em aprendizado profundo que
envolve o treinamento de um modelo em um conjunto de dados rotulado para fazer
previsões sobre novos dados ainda não analisados. Consideramos esta uma poderosa
ferramenta que resolve diversos tipos de problemas em áreas como visão
computacional e reconhecimento de fala, também da linguagem natural. A
implementação de modelos de aprendizado supervisionado envolve diversas etapas,
incluindo coleta de dados, pré-processamento, seleção de modelo, treinamento,
avaliação e implantação. Existem muitas bibliotecas e estruturas de aprendizado
profundo disponíveis que facilitam a implementação e o treinamento de modelos de
aprendizado supervisionado.
De forma geral, o deep learning trouxe uma revolução no campo da inteligência
artificial e tem o potencial de transformar muitas indústrias no futuro.
- 10 -
RIVAS, P. Deep Learning for Beginners. Packt Publishing, 2020.
GÉRON, A. Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow:
Concepts, Tools, and Techniques to Build Intelligent Systems. O'Reilly Media, Inc, 2019.
CHO et al. Learning Phrase Representations using RNN Encoder–Decoder for
Statistical Machine Translation. EMNLP, 2014. [Link]
___________________________
CRÉDITOS
Imagem da capa: Imagem de <a href=" [Link]
data-technology-background-with-low-poly-plexus-design_34309462.htm#query=deep%
20neural%20network&position=19&from_view=search&track=ais
- 11 -