Uma breve introdução ao Deep Learning

Victor Carvalho Possani
neurondsai
Published in
11 min readJun 1, 2022

Introdução

Esse artigo aborda o tema da Aprendizagem Profunda, ou Deep Learning, de forma simples, explicando o contexto histórico, algumas aplicações, propondo exemplos.

Deep Learning, ou Aprendizado Profundo, é um tipo de Machine Learning que treina computadores para realizar tarefas como seres humanos, o que inclui reconhecimento de fala, identificação de imagens e previsões. Em vez de organizar os dados para serem executados através de equações pré definidas, o Deep Learning configura parâmetros básicos sobre os dados e treina o computador para aprender sozinho através do reconhecimento padrões em várias camadas de processamento. Em geral é uma técnica de aprendizado de máquina que aprende recursos e tarefas diretamente dos dados, nesse caso, os dados podem ser imagens, textos ou sons.

Além disso, é considerado uma sub- área de Machine Learning (ML), a qual é uma área de inteligência artificial (IA) onde é possível criar algoritmos para ensinar uma determinada máquina a desempenhar uma tarefa. Já essas técnicas de Deep Learning têm aprimorado a capacidade dos computadores em classificar, reconhecer, detectar e descrever; classificar imagens, reconhecer fala, detectar objetos e descrever conteúdo, como sistemas Siri e Cortana são parcialmente alimentas por Deep Learning.

A vantagem do aprendizado profundo é que ele pode processar dados de maneiras que a IA simples baseada em regras não consegue. A tecnologia pode ser usada para gerar resultados de negócios claros tão diversos quanto melhor detecção de fraudes, aumento do rendimento das colheitas, maior precisão dos sistemas de controle de estoque do armazém e muitos outros.

A aprendizagem profunda é utilizada por todos os campos e setores, pode ser utilizado nas diversas aplicações, por exemplo, reconhecimento de fala, reconhecimento facial, até algumas aplicações em Medicina, como auxiliar em diagnósticos médicos.

Deep Learning está sendo cada vez mais importante hoje, visto que vários desenvolvimentos estão avançando devido a isso, iremos explicar melhor no artigo a seguir.

Contexto histórico

A fim de melhor compreender Deep Learning e a ciência de dados como um todo, é necessário entender um pouco mais sobre a grande inspiração por trás de tais inovações. Como grande parte dos desenvolvimentos científicos, a área de ciência de dados baseia-se na observação da natureza, neste caso em específico, o estudo do cérebro humano tem sido a razão de significativos avanços.

Após o surgimento do primeiro modelo computacional de redes neurais — modelos matemáticos revertidos em técnicas computacionais que é capaz de resolver tarefas e ajustar parâmetros, simulando o processo de aprendizagem por experiência — criado por Warren McCulloch e Walter Pitts, baseados em lógica limiar -Threshold logic — os estudos voltados às inteligências artificiais, as “máquinas pensantes”, evoluíram de maneira significativa, especialmente após os incentivos resultantes do Projeto de Pesquisa de verão de Dartmouth sobre IA em 1956, como resultado, o Perceptron — a mais antiga rede neural ainda em funcionamento -, concebido por Frank Rosenblatt em 1958, a partir de sua pesquisa a respeito dos olhos de moscas, revolucionou os sistemas de camada única — é possível existir N entradas, porém apenas uma saída — que toma decisões após a comprovação de evidências.

FONTE: https://www.deeplearningbook.com.br/o-perceptron-parte-1/

Posterior ao inverno da IA — período de 7 anos, até 1981, em que devido às altas expectativas e poucas realizações, além de reflexões sobre as consequências de tais tecnologias, os investimentos no âmbito diminuíram e houve uma estagnação no ramo -, as redes neurais de múltiplas camadas tornam-se palco de debates, dando início as descobertas e trabalhos no que viria a ser Deep Learning.

Finalmente a virada do milênio populariza o conceito de “conhecimento profundo”, que consiste na aplicação de diversos níveis de processamento em um algoritmo de rede neural, que são capazes de gerar conteúdos a partir de assimilação. Na década de 2000, no NIPS, Workshop sobre Aprendizagem Profunda para Reconhecimento de Voz, há a descoberta de que o pré-treinamento não era necessário em conjunto de dados suficientemente grandes, o que resulta na diminuição da taxa de erros.

O Facebook, por sua vez, seguidamente, desenvolve seu algoritmo, sendo este capaz de identificar e marcar automaticamente seus usuários em fotos, tecnologia de aprendizado profundo chamada de DeepFace.

O Deep Learning também possibilitou ao Google em 2016 mapear o jogo Go, tornando-o capaz de vencer o campeão mundial da modalidade, o que à primeira vista soa insignificante, todavia, reflete os avanços no aprendizado por experiência e na análise de possibilidades, ilustrando um futuro promissor em que o processamento de dados será ainda mais veloz.

Aplicações

Veículos Autônomos

É isso mesmo que você acabou de ler, os carros do futuro se utilizam de Deep Learning, para realizarem suas funções autônomas.

Os veículos terão a capacidade de entender sobre a formação das imagens que estão ao seu redor e assim fazer a tomada de decisão sobre o melhor caminho a se seguir, prevendo os obstáculos no espaço .Dessa forma, devido ao Deep Learning, a máquina terá a possibilidade de realizar diversas combinações, algo extremamente importante, pelo fato de que os veículos autónomos se encontram numa realidade do cotidiano em que as decisões devem ser feitas em frações de segundos.

A Tesla é um exemplo na utilização dessa tecnologia no desenvolvimento de seus carros, que possuem oito câmeras externas de visão computacional , operadas por um supercomputador FSD (autocondução completa) de desempenho neural duplo, com capacidade de até 2,5 gigapixels por segundo. Outro detalhe é a chamada “operação de férias”, em que todos os carros da marca cooperam entre si, criando um extenso banco de dados de aprendizado, treinando as “redes neurais” enquanto os veículos circulam.

E dessa forma os carros conseguiram traçar logicamente a solução para um problema de trânsito, pois o Deep Learning permitirá isso.

Reconhecimento de fala

Percebe-se que está muito presente no dia a dia de muitas pessoas as assistentes de voz. Quem nunca estava em uma conversa e do nada a assistente do Google é ativada, não é mesmo?

É por meio do Deep Learning que esses assistentes operam as atividades que são ordenadas a partir de um comando de voz do usuário. A tecnologia auxilia assim no aprendizado de reconhecimento da fala humana e quanto mais interação houver, mais informação será atribuída ao banco de dados e assim resultará em um melhor desempenho dos assistentes. Temos como exemplo a Siri , Google Assistant e Amazon Alexa e Bixby.

Reconhecimento facial

Se você acessar agora mesmo seu celular e ativar o desbloqueio de tela por reconhecimento facial estará fazendo uso de uma tecnologia que tem Deep learning na palma da sua mão.O Deep Learning, por meio de um extenso banco de dados consegue identificar e comparar as características faciais realizando portanto, o desbloqueio ou não da tela.

Porém não se limita a smartphones essa utilização, pois esta tecnologia é muito aplicada em aeroportos, por exemplo, em que todos que estão no ambiente são analisados e uma pessoa de interesse é identificada, ou até mesmo atividades suspeitas são rastreadas.

A Hikvision, empresa líder no mercado atual de segurança, já faz uso dessa tecnologia, pois, lançou nesse ano de 2022 o produto MinMoe, que são Terminais de Reconhecimento facial touch, com tecnologia antifraude, ou seja, fotos e vídeos não funcionaram como forma de verificação, com o objetivo de controlar acessos aos locais.

Auxiliar em diagnósticos médicos

Por fim, algo em que todos devem concordar é o quão desgastante deve ser o trabalho de profissionais da área de saúde, o que torna diagnósticos, principalmente os de imagens, suscetíveis a erros e a Deep Learning veio para auxiliar a área da saúde em obter maior precisão nos diagnósticos.

Na área de câncer de pele, por exemplo, segundo National Center for Biotechnology Report, o Deep Learning já provou-se como útil em detectar a doença por meio de imagens. Sabe-se que se identificado já no começo, o tratamento do câncer se torna mais eficaz e trabalhos publicados no Journal of biomedical Physics & Engineering, também provam que por meio de um banco de dados de imagens dermatológicas, o Deep Learning em uma rede neural convolucional é capaz de detectar se essas imagens seriam de classes benignas ou malignas auxiliando no trabalho na patologia.

Por meio do treinamento do algoritmo com dados reais, a empresa chinesa Infervison utiliza-se também do Deep Learning para auxílio da detecção de sinais cancerígenos no tecido pulmonar, um grande avanço que auxilia no diagnóstico mais ágil de doenças.

Dessa maneira, o Deep Learning pode ser utilizado para o âmbito da saúde auxiliando nos diagnósticos previsão de imagens, automatizando os processos de atendimento médico.

Conclusão

A Ciência de Dados é uma ciência extremamente nova, fruto dos rápidos avanços tecnológicos do século XX e XXI, assim ela não apenas acarreta o surgimento de uma nova área específica de estudos, todavia influencia todas as ciências já criadas com aplicações na astronomia, medicina, biologia e quaisquer outras áreas de pesquisa. Isso se deve ao fato de a “Data Science”, juntamente com avanços tecnológicos específicos, ter revolucionado a própria metodologia científica agregando-lhe velocidade, complexidade e profundidade.

Essa revolução tem origem nos avanços na coleta de dados: telescópios, radares, satélites ou aceleradores de partículas, todos invenções contemporâneas que ressignificam o conceito de observar a natureza, coletando quantidades infinitamente maiores de dados que qualquer ser humano. Não obstante, desse aumento de eficácia decorre o dilúvio de informações, os pesquisadores passam a possuir acesso a mais dados do que podem analisar.

Para resolver este problema surge o “Machine Learning”, um método de I.A. capaz de treinar máquinas para aplicarem algoritmos e realizarem determinadas funções. Isso permitiu aumentar a capacidade de análise de dados na medida que as máquinas podem experimentar e concluir a partir dos parâmetros definidos traduzindo o dilúvio de dados em informação.

Assim,“Machine Learning” é um método muito eficaz e útil, entretanto não consegue ligar completamente a obtenção de dados ao desenvolvimento de informações relevantes, havendo entre esse e aquela um abismo: o desenvolvimento de hipótese ou seu equivalente na data science a criação de algoritmos. Para tanto surge o “Deep Learning” com a promessa de possibilitar que as máquinas aprendam por si só a partir da abundância de dados e hardware.

Essa vertente do “Machine learning” já é responsável por vários avanços já integrados ao nosso cotidiano, o “Deep Learning” é responsável pelo reconhecimento de fala e reconhecimento de imagens. Além disso, essa técnica de I.A. possibilitou os recentes carros autônomos e têm auxiliado em diagnósticos médicos; as possibilidades são infinitas, “Deep Learning”, “Machine Learning” e “Data Science” são o futuro da pesquisa científica.

Implementação

Abaixo, segue uma implementação prática de Deep Learning para tentar “ler” números de 0 a 9.

Começaremos nossa implementação importando algumas bibliotecas úteis para desenvolver o código.

from sklearn.datasets import load_digitsfrom sklearn.neural_network import MLPClassifierfrom sklearn.metrics import classification_reportfrom sklearn.model_selection import train_test_splitimport matplotlib.pyplot as pltimport numpy as np# Mostra a primeira imagem do dataset.digits = load_digits()plt.gray()plt.imshow(digits.images[7])plt.show()

Após isso, separaremos os dados entre dados para treino e para testes, sendo o primeiro a quantidade de dados que o modelo usará para identificar padrões e o segundo para testar se o que o modelo aprendeu é útil para tratar dados que o mesmo ainda não teve contato.

# A avaliação do modelo é feita baseada nos dados de teste.# Os dados de teste não são usados durante o treinamento, então o modelo nunca 'viu' esses dados.# Quanto mais imagens de teste forem classificadas corretamente, melhor é o desempenho do modelo.# A acurácia é um dos principais indicadores, quanto mais próxima de 1, melhor, mas cuidado com overfitting!classes = ['0','1','2','3','4','5','6','7','8','9']print(classification_report(y_teste, y_pred, target_names = classes))

Depois de separado os dados, criaremos nossa rede neural. Aqui definimos três coisas muito importantes: método de otimização, função de ativação e o número de camadas ocultas. O método de otimização irá determinar os parâmetros ‘ótimos’ da rede neural, esses parâmetros são definidos durante o treinamento, é através deles que conseguimos classificar corretamente as imagens.

A função de ativação é responsável por tornar o modelo capaz de classificar dados que não são linearmente separáveis, como mostrado na imagem a seguir.

Duas classes não linearmente separáveis.

Já o número de camadas ocultas (e o número de neurônios em cada camada) define o quanto complexa a rede neural é. Teoricamente, quanto mais complexa a rede, melhor é seu desempenho em tarefas mais difíceis. Além disso, as redes neurais usadas em Deep Learning têm muitas camadas ocultas, a GoogLe Net (uma rede neural convolucional para classificar imagens), por exemplo, tem 22 camadas!

clf = MLPClassifier(solver = 'lbfgs',           # Método de otimização dos parâmetros.activation = 'relu',        # Função de ativação.hidden_layer_sizes = (20,), # Número de neurônios na camada oculta.random_state = 1)clf.fit(x_treino,y_treino)    # Ajusta o modelo.y_pred = clf.predict(x_teste) # Classifica os dados de teste.

E por ultimo, extrairemos os resultados de acurácia das predições da maquina quanto aos dados de testes, quanto mais próximo de 1, melhor o modelo descreve aqueles dados, mas cuidado com o Overfitting!!

classes = ['0','1','2','3','4','5','6','7','8','9']print(classification_report(y_teste, y_pred, target_names = classes))

Ao se rodar o modelo no Google Colab, o resultado foi:

O que mostra que o modelo conseguiu explicar muito bem o resto do banco de dados de números escritos à mão, alcançando acurácia de 95%, o que é muito bom!

Para entender um pouco mais sobre as métricas usadas na avaliação do modelo (precisão, F1-score, recall e acurácia), recomendamos esse artigo.

Clique aqui para mais informações sobre o banco de dados usado.

Créditos

Escrita: Tayná Carlos, Rubens Oliveira, Uenjie Chen, Sabrina Oliveira, Victor Ribeiro, Victor Possani.

Código: Victor Ribeiro.

Referências bibliográficas

(DEEPLEARNINGBOOK) “Capítulo 2 — Uma Breve História das Redes Neurais Artificiais”. Disponível em:<https://www.deeplearningbook.com.br/uma-breve-historia-das-redes-neurais-artificiais/>.

(UNIEEVANGELICA,2018) “Deep Learning Conceitos e Utilização nas Diversas Áreas do Conhecimento”,2018. Disponível em: <http://anais.unievangelica.edu.br/index.php/adalovelace/article/view/4132/2770>.

(USP) “Redes Neurais Artificiais”. Disponível em: <https://sites.icmc.usp.br/andre/research/neural/>.

(MEDIUM,2021) “Machine Learning: tudo o que você precisa saber”,2021. Disponível em: <https://medium.com/neurondsai/machine-learning-tudo-o-que-voc%C3%AA-precisa-saber-40c498d2fd96>.

(UFRGS) “Redes Neurais”. Disponível em: <http://www.inf.ufrgs.br/~engel/data/media/file/cmp121/modelos.pdf>.

(UFRGS) “Redes Neurais e Sistemas Fuzzy”. Disponível em: <http://www.inf.ufrgs.br/~engel/data/media/file/RNSF/RN1.pdf.>.

(EMBARCADOS,2016) “Rede Perceptron de uma única camada”,2016. Disponível em: <https://www.embarcados.com.br/rede-perceptron-de-uma-unica-camada/>.

(DEEPLEARNINGBOOK) “Capítulo 6 — O Perceptron — Parte 1”,2022. Disponível em: <https://www.deeplearningbook.com.br/o-perceptron-parte-1/>.

(LIGGATELECOM) “O que você precisa saber sobre um Winter AI?”.Disponível em: <https://www.liggatelecom.com.br/site/blog/o-que-e-um-winter-ai/>.

(CIENCIAEDADOS,2017) “7 Casos de Uso de Deep Learning”,2017. Disponível em: <https://www.cienciaedados.com/7-casos-de-uso-de-deep-learning/>.

(TOTVS,,202O) Deep Learning: Conheça o conceito e suas aplicações”,202O. Disponível em: <https://www.totvs.com/blog/inovacoes/deep-learning/>.

(DIGITALHOUSE,2020) “Deep learning: entenda como funciona o aprendizado de máquina”,2020. Disponível em: <https://www.digitalhouse.com/br/blog/deep-learning-exemplos-dados/#:~:text=Entre%20suas%20aplicações%20mais%20comuns,smartphones%20e%20sistemas%20de%20segurança.>.

(NEURALMIND,2017) “Deep Learning e o diagnóstico de câncer”,2017. Disponível em: <https://neuralmind.ai/2017/11/03/deep-learning-e-sua-utilidade-para-o-diagnostico-do-cancer/>.

(PNAS,2019) “Evolutionarily informed deep learning methods for predicting relative transcript abundance from DNA sequence”,2019. Disponível em:<https://www.pnas.org/doi/10.1073/pnas.1814551116>.

(NATIONALLIBRARYOFMEDICINE,2020) “A Deep Learning Approach to Skin Cancer Detection in Dermoscopy Images”,2020. Disponível em:<https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7753251/>.

(BUILTIN,2021) “15 Deep Learning Applications You Need to Know”,2021. Disponível em:<https://builtin.com/artificial-intelligence/deep-learning-applications>.

(DOCMANAGEMENT,2020) “Hikvision anuncia Terminais de Reconhecimento Facial MinMoe para controle de acesso e de presença”,2020.Disponível em:<https://docmanagement.com.br/04/27/2020/hikvision-anuncia-terminais-de-reconhecimento-facial-minmoe-para-controle-de-acesso-e-de-presenca/>.

(SAS) “Deep Learning O que é e qual sua importância?”. Disponível em:<https://www.sas.com/pt_br/insights/analytics/deep-learning.html>.

(DEEPLEARNINGBOOK) “Início".Disponível em:<https://www.deeplearningbook.com.br/>.

(RESEARCHGATE,2016) “Introdução à Aprendizagem Profunda”,2016.Disponível em:<https://www.researchgate.net/profile/Eduardo-Bezerra/publication/309321510_Introducao_a_Aprendizagem_Profunda/links/5809ee1108ae3a04d624f369/Introducao-a-Aprendizagem-Profunda.pdf

(UFPE) “Aprendizagem Profunda (Deep Learning)”.Disponível em:<https://www.cin.ufpe.br/~aluizioa/RN/RN-07-deep-Learning.pdf>.

(BOOKSGOOGLE,2020) “Introdução à Inteligência Artificial: Uma abordagem não técnica”,2020.Disponível em:<https://books.google.com.br/books?hl=pt-BR&lr=&id=ON3FDwAAQBAJ&oi=fnd&pg=PT6&dq=aprendizagem+profunda+introdu%C3%A7%C3%A3o&ots=sIDPl3Vbea&sig=MVVhKJwGpPk-sOC4HdxlJDoeNpA#v=onepage&q=aprendizagem%20profunda%20introdu%C3%A7%C3%A3o&f=false>.

(CFCS,2020) “董豪博士等编写的深度强化学习专著:Deep Reinforcement Learning: Fundamentals, Research and Applications 开始预售”,2020.Disponível em:<https://cfcs.pku.edu.cn/xwdt/239174.htm>.

(INCC,2014) ``Ciência de Dados”,2014.Disponível em:<https://www.lncc.br/~ziviani/papers/III-Desafios-SBC2014-CiD.pdf>.

--

--