• Michel

Deep Learning – Conceitos e Aplicações

Deep learning (aprendizagem profunda) é um ramo de Machine Learning

usado para treinar computadores para realizar tarefas como seres humanos, o que inclui reconhecimento de fala e imagens, previsões de mercados, análise de textos e muito mais. O algoritmo de Deep Learning treina o computador para aprender sozinho através do reconhecimento de padrões em várias camadas de processamento.



Para entender Deep Learning


Neste artigo apresento o que um algoritmo de Deep Learning pode fazer, mas não como ele funciona, pois isto seria assunto para vários artigos.

Imagine um serviço hipotético de estimativa de preço de passagens aéreas. Vamos usar um algoritmo de Deep Learning para fazer estas estimativas.

Queremos que o nosso estimador de preço de passagens preveja o preço usando as seguintes variáveis como entradas:

· Aeroporto de origem

· Aeroporto de destino

· Data de partida

· CIA aérea

Em primeiro lugar, para poder usar(treinar) um algoritmo de Deep Learning são necessários:

· grande conjunto de dados

· grande poder computacional

Para o nosso estimador de preços de passagens precisamos encontrar dados históricos dos preços das passagens. E devido à grande quantidade de combinações possíveis de aeroportos e datas de partida, precisamos de uma lista muito grande de preços de bilhetes – talvez centenas de milhares de observações.

Para treinar o algoritmo precisamos fornecer as entradas de nossa base de dados históricos e comparar as saídas que o algoritmo prevê (os preços) com as com as saídas de preços reais de nossa base histórica de dados. Como, no inicio, o algoritmo ainda não está treinado, suas saídas estarão provavelmente bastante erradas. Quando o valor do preço calculado é comparado com o valor real o algoritmo percebe que errou e procura corrigir este erro atribuindo pesos aos dados de entrada de modo a reduzir o erro, e depois de milhares de iterações o algoritmo começa a acertar, isto é, os preços previstos das passagens vão ficando cada vez mais próximos do preço real.

Na figura vemos que cada conexão entre os neurônios está associada a um peso . Esse peso determina a importância da variável de entrada. Os pesos iniciais são definidos aleatoriamente, e, ao longo das iterações vão sendo modificados.



Vemos que ao prever o preço da passagem, a data de partida é um dos fatores mais significativos, por isso tem um peso maior, assim também a Companhia aérea tem o menor peso.


Um histórico


Deep Learning atingiu um nível de atenção e investimento da indústria nunca antes visto na história da Inteligência Artificial, mas não é a primeira forma bem sucedida de Machine Learning.

É fato que a maioria dos algoritmos de aprendizado de máquina usados hoje não são algoritmos de Deep Learning. O Deep Learning nem sempre é a ferramenta certa para o projeto — às vezes não há dados suficientes para Deep Learning ser aplicável, e às vezes o problema é melhor resolvido por um algoritmo diferente. Se Deep Learning é o seu primeiro contato com aprendizado de máquina, então você pode se encontrar em uma situação em que você tem um martelo, e cada problema parece um prego. A única maneira de não cair nesta armadilha é estar familiarizado com outras abordagens e praticá-las quando apropriado.

Uma discussão detalhada das abordagens clássicas de aprendizado de máquina está fora do escopo deste artigo, mas vamos brevemente passar por eles e descrever o contexto histórico em que foram desenvolvidos. Isto permitirá colocar Deep Learning no contexto de aprendizagem de máquina e compreender melhor de onde Deep Learning provém e como ele se diferencia dos algoritmos tradicionais.


Modelos por extrapolação

Talvez o tipo mais popular de um modelo de Machine Learning seja a Regressão, que consiste em prever (ou extrapolar) uma variável contínua como por exemplo, prever a temperatura, valores de carros usados ou prever o tempo que um projeto de software levará para ser completado, a partir de uma base de dados existente.



A primeira forma de regressão foi o método dos mínimos quadrados, que foi publicado por Legendre em 1805, e por Gauss em 1809. Legendre e Gauss aplicaram o método ao problema de determinar, a partir de observações astronômicas, as órbitas de corpos em torno do Sol (principalmente cometas, mas também depois os recém-descobertos planetas menores). O termo "regressão" foi cunhado por Francis Galton no século XIX para descrever um fenômeno biológico. O fenômeno era que as alturas dos descendentes de ancestrais altos tendem a regredir em direção a uma média normal (um fenômeno também conhecido como regressão em direção à média ). Para Galton, a regressão tinha apenas esse significado biológico, mas seu trabalho foi posteriormente estendido por Udny Yule e Karl Pearson para um contexto estatístico mais geral.


Modelos probabilísticos

A modelagem probabilística é a aplicação dos princípios da estatística à análise de dados. Foi uma das primeiras formas de aprendizado de máquina, e ainda é amplamente usada.

Um dos algoritmos mais conhecidos nesta categoria é o algoritmo Naive Bayes. Naive Bayes é um tipo de classificador de aprendizado de máquina baseado na aplicação do Teorema de Bayes. Supomos que os atributos de entrada (features) são todos independentes, uma suposição naive (ingênua) porque muitas vezes pouco sabemos sobre as relações entre as features. Esta forma de análise de dados antecede os computadores e foi aplicada à mão décadas antes da primeira implementação em computador (provavelmente remonta à década de 1950).

O Teorema de Bayes e os fundamentos da estatística datam do século XVIII, e estes são tudo que você precisa para começar a utilizar classificadores Naive Bayes.


Fórmula do Teorema de Bayes

Um modelo bastante relacionado com o Naive Bayes é a Regressão Logística que é um algoritmo de classificação.



Assim como Naive Bayes, a Regressão Logística antecede a computação por um longo tempo, mas é ainda útil, graças à sua natureza simples e versátil. É muitas vezes a primeira coisa que um cientista de dados tentará em uma tarefa de classificação.


SVM (Support Vector machines)

Uma nova abordagem ao aprendizado de máquina começou a decolar entre os pesquisadores na década de 1990: os métodos Kernel.

Os métodos Kernel são um grupo de algoritmos de classificação, sendo o SVM o mais conhecido deles.

Os SVM's visam resolver problemas de classificação procurando encontrar as melhores fronteiras de decisão (ver figura abaixo) entre dois conjuntos de pontos pertencentes a duas categorias diferentes. Uma fronteira de decisão pode ser pensada como uma linha ou superfície separando os dados de treinamento em dois (ou mais) espaços correspondentes a duas (ou mais) categorias. Para classificar novos pontos de dados, você só precisa verificar de qual lado da fronteira de decisão eles estão.



Os SVMs encontram essas fronteiras meswmo quando a fronteira entre as vari´veis é não-linear. Na figura abaixo os dados em duas dimensões não estão separados linearmente, mas podem ser mapeados para uma nova representação em uma dimensão acima (três dimensões) em que a fronteira de decisão pode ser expressa como um plano (hiperplano) , ou seja passamos de uma representação não-linear para uma linear, muito mais simples de resolver matematicamente.



Árvores de decisão (Decision trees, random forests, gradient boosting machines)



As árvores de decisão começaram a receber interesse significativo da pesquisa na década de 2000, e por 2010 elas eram muitas vezes preferidas aos métodos de kernel.

Em particular, o algoritmo Random Forest introduziu um robusto e prático método de aprendizagem que envolve a construção de um grande número de árvores de decisões de valor preditivo fraco que, em seguida, são combinadas formando um modelo robusto. São aplicáveis a uma ampla gama de problemas e são quase sempre o segundo melhor algoritmo para qualquer projeto inicial de aprendizado de máquina.

Gradient Boosting Machines assim como as Random Forest, são técnicas baseadas em conjuntos (ensemble) porque usam muitas árvores para decidir o melhor modelo. Aplicado às árvores de decisão, o uso da técnica de gradient descent resulta em modelos que superam Random Forest na maioria das vezes, ao ter propriedades semelhantes.

Árvores de decisão são um dos melhores, se não o melhor, algoritmo para lidar com dados de difícil interpretação.


Redes Neurais

As primeiras Redes Neurais foram completamente suplantadas pelas variantes modernas, mas é útil estar ciente de como o Deep Learning se originou.

Embora as ideias centrais das Redes Neurais tenham sido investigadas na década de 1950, as abordagens mais significativas demoraram décadas para começar. Durante muito tempo, a peça que faltava foi uma maneira eficiente de treinar grandes Redes Neurais. Isso mudou em meados da década de 1980 quando vários cientistas de forma independente reinventaram o algoritmo de backpropagation (retorprogramação)— uma maneira mais eficiente de treinamento.

A primeira aplicação prática bem-sucedida de Redes Neurais veio em 1989 na Bell Labs, quando Yann LeCun combinou as idéias anteriores de Redes Neurais convolucionais e backpropagation, e aplicou-as para o problema de classificação manuscrita de dígitos.

A rede resultante, apelidada de LeNet, foi usada pelo serviço postal dos Estados Unidos na década de 1990 para automatizar a leitura de códigos postais em envelopes de correio.

Nos anos 2000 passou a fazer parte do ecossistema de Machine Learning uma serie de competições em que se buscava resolver problemas de previsão usando os algoritmos já conhecidos em que, até hoje, são oferecidos prêmios substanciais aos competidores.

Em 2012, o desafio anual de classificação de imagens em grande escala ImageNet foi notoriamente difícil para a época, consistindo na classificação de imagens coloridas de alta resolução em 1.000 categorias diferentes após o treinamento em 1,4 milhões de imagens. Anteriormente, em 2011, a precisão do modelo vencedor, com base em abordagens clássicas para o reconhecimento de imagens, foi de 74,3%. Então, em 2012, uma equipe liderada por pioneiros do Deep Learning foi capaz de alcançar uma precisão de 83.6% — um avanço significativo.

A competição foi dominada por redes Deep Learning convolucionais todos os anos desde então. Em 2015, o vencedor alcançou uma precisão de 96,4%, e a tarefa de classificação de imagens no ImageNet foi considerada um problema resolvido, e desde então as redes de Deep Learning (convnets) são o algoritmo para uso em reconhecimento de imagens.

Ao mesmo tempo Deep Learning também foi aplicado em muitos outros tipos de problemas, como processamento de linguagem natural e veículos autônomos. Ele também substituiu completamente os SVM's e Árvores de Decisão em uma ampla gama de aplicações.

Deep Learning nos dias atuais

Numa base de dados os dados são descritos em termos de observações ou instâncias (linhas) que são feitas de features chamados em português de variáveis independentes ou atributos, que são as colunas.

No reconhecimento de imagens, uma imagem é uma observação, mas uma feature pode ser uma linha na imagem. No processamento de linguagem natural, um documento ou um tweet é uma observação, e uma frase ou a contagem de palavras podem ser features. No reconhecimento de fala, um enunciado é uma observação, mas uma feature pode ser uma única palavra ou fonema.

Uma feature em geral deve ser útil ou significativa para o seu problema, mas também pode ser inútil ou até prejudicial. Por exemplo, se você tem uma feature que representa uma dada área, uma em cm2 e outra em pol2, você só precisa de um delas, e usar as duas pode até confundir o algoritmo.

O Deep Learning automatiza o trabalho de Feature Engineering. As novas features são preparadas automaticamente, mas geralmente você não consegue interpretar estas features e então tem que trabalhar numa caixa preta.



Do ponto de vista matemático, as Redes Neurais e, principalmente Deep Learning são áreas da ciência de dados bastante desafiadoras, porém, a aplicação é acessível para não matemáticos, desde que os conceitos fundamentais sejam entendidos.


Como funciona

Grande parte das inovações modernas usam o reconhecimento de imagens, como, por exemplo, a tecnologia para o reconhecimento facial em nossos smartphones ou os veículos autônomos, já que um carro deve ser capaz de distinguir entre uma árvore, um poste de sinalização e um pedestre.

As Redes Neurais Deep Learning usam algoritmos com camadas em sequencias, de maneira similar ao raciocínio lógico que usamos como humanos (é por isso que o chamamos de "inteligência artificial"). Quando vemos algo, nosso cérebro procura rotular a imagem, prevendo e reconhecendo padrões armazenados em nossa memória. Um computador usando Deep Learning processa informações de maneira semelhante, mas o faz usando padrões de números. Onde reconhecemos padrões através do nosso sentido de visão (em conjunto com nossos outros sentidos), o algoritmo faz isso dividindo as imagens em uma sequencia de números que configuram um dado padrão.

Na figura abaixo mostramos o treinamento de uma rede de Deep Learning. Cada observação de entrada (cão ou gato) corresponde a um padrão nos dados de entrada. Ao ler este padrão de números a primeira camada gera um peso e uma pontuação para os nós na próxima camada, até que a camada de saída seja alcançada onde o erro da pontuação é calculado. Por exemplo, se a entrada for a imagem de um gato e a saída diz que é um cão, o modelo gera um erro. Através da backpropagation os erros são enviados de volta pela rede novamente e os pesos são ajustados melhorando o modelo. Esse processo é repetido milhares de vezes, ajustando os pesos de um modelo em resposta ao erro produzido, até que o erro não possa mais ser reduzido. Durante esse processo, as camadas aprendem as features ideais para o modelo.



Na fase de produção, isto é, com o algoritmo treinado resultando em um modelo para esta aplicação, ao se querer saber se a imagem de entrada é um cão ou gato, simplesmente apresentamos a imagem na entrada e o modelo nos dirá com um certo grau de precisão qual é o animal da imagem.



Uma rede Deep Learning aprenderá com o tempo se suas previsões forem precisas. Como com qualquer bom modelo, é preciso muito treinamento para que os computadores façam previsões corretas; eles não sabem automaticamente como classificar os objetos do mundo real. É importante notar que a medida que o tempo passa o algoritmo vai automaticamente se aperfeiçoando com mais dados de entrada e correções nas saídas. Por exemplo, quando você recebe uma oferta da Amazon que não lhe interessa o algoritmo reconhece que errou na previsão de suas preferências e se auto-corrige.

Deep Learning versus algoritmos tradicionais

Como vimos muitas das idéias de Redes Neurais estão conosco a décadas. Por que essas idéias só estão decolando agora? Dois dos maiores propulsores do progresso recente são:


• Disponibilidade de dados

As pessoas estão gastando mais tempo em dispositivos digitais (celulares, relógios, laptops, internet das coisas, etc.). As atividades digitais geram enormes quantidades de dados que alimentam o algoritmo de aprendizagem.


• Capacidade computacional

Apenas há alguns anos pudemos começar a treinar Redes Neurais grandes o suficiente para tirar proveito das enormes Base de Dados que temos agora.


Na verdade, mesmo quando você acumula mais dados, geralmente o desempenho do aprendizado usando algoritmos tradicionais, tais como regressão logística ou SVD, atingem um nível máximo tal que o algoritmo pára de melhorar, mesmo que você forneça mais dados. É como se os algoritmos mais antigos não soubessem o que fazer com todos os dados que temos agora.

No gráfico abaixo elaborado por Andrew Ng, vemos que se você treinar uma pequena rede neural e um algoritmo de aprendizado supervisionado na mesma tarefa, poderá obter um desempenho ligeiramente melhor com a rede neural. Se você treinar redes neurais maiores e maiores (Deep Learning) você pode obter um desempenho ainda melhor.

Assim, você obtém o melhor desempenho, isto é, o da curva vermelha, quando:

· treina uma rede Deep Learning muito densa, isto é, com muitas camadas, e

· tem uma enorme quantidade de dados



Muitos outros detalhes, como a arquitetura de rede de Deep Learning também são importantes, e tem havido muita inovação aqui também. Mas uma das maneiras mais confiáveis para melhorar o algoritmo de desempenho ainda é treinar uma rede maior e obter mais dados.

Prevê-se que muitos aplicativos de Deep Learning afetarão nossa vida no futuro próximo. Na verdade, eles já estão causando grande impacto. Nos próximos cinco a dez anos, Deep Learning se tornará padrão nos kits de ferramentas de desenvolvimento de software.

Então, aqui estão algumas das principais aplicações do Deep Learning que irão dominar nosso futuro:


Experiência do cliente

O aprendizado de máquina já é usado por muitas empresas para melhorar a experiência do cliente. Alguns exemplos incluem soluções de auto-atendimento on-line e criar fluxos de trabalho eficientes. Já existem modelos de Deep Learning sendo usados ​​para chatbots e, à medida que o Deep Learning continua amadurecendo, podemos esperar que essa seja uma área em que o Deep Learning será indispensável.


Saúde

Da análise de imagens médicas à análise de genomas e à descoberta de novos fármacos, todo o setor da saúde está sendo transformado pelo Deep Learning. Um dos mais impressionantes sistemas atualmente utilizados nesta área é Watson da IBM que dá apoio a decisões clínicas dos médicos baseadas nas base de dados integradas de muitos hospitais e até em artigos técnicos recentes.


Prever resultados legais

Deep Learning tem a capacidade de analisar os dados para ajudar a fazer previsões sobre os resultados de processos judiciais melhor do que os seres humanos. Os clientes frequentemente pedem para seu advogado prever o futuro com perguntas como "se formos a julgamento, qual a probabilidade de ganhar?" ou "devo negociar?" Com o uso de Deep Learning que tem acesso a anos de dados experimentais, os advogados são capazes de responder melhor tais perguntas.


Previsão do mercado de ações

Previsões para o mercado de ações é uma das coisas mais difíceis de fazer. Há tantos fatores envolvidos na predição – fatores físicos, psicosocias, comportamento racional e irracional, etc. Todos estes aspectos se combinam para tornar os preços das ações voláteis e muito difíceis de prever com um razoável grau de precisão.

Combinando informações como os últimos anúncios sobre uma organização, seus resultados de receita trimestral, a concorrência, etc., Deep Learning têm o potencial de desenterrar padrões e insights que não vemos a olho nu, e estes podem ser usados para previsões.


Veículos autônomos

O algoritmo de Deep Learning recebe sinais de sensores, de sistemas de controle e atuadores para sensorear o ambiente e determina a execução de ações de forma mais segura e confiável do que poderia ser obtida por um condutor humano comum.


Reconhecimento de imagens

O Deep Learning já produziu precisão sobre-humana para classificação de imagens, detecção de objetos, restauração de imagens e segmentação de imagens.


Geração de texto

As máquinas aprendem a pontuação, a gramática e o estilo de uma parte do texto e podem usar o modelo desenvolvido para criar automaticamente texto totalmente novo com a ortografia, a gramática e o estilo corretos do texto de exemplo. Tudo, desde Shakespeare até as entradas da Wikipedia, foi criado.


Agregador de notícias com base no sentimento

Quando você quiser filtrar os fatos negativos que chegam ao seu conhecimento, o processamento avançado de linguagem natural e o Deep Learning podem ajudar. Os agregadores de notícias que usam essa nova tecnologia podem filtrar notícias com base na análise de opinião , para que você possa criar fluxos de notícias que cubram apenas as boas notícias que estão acontecendo.


Salvando baleias e classificando o plâncton!

Ao classificar fotos de baleias, podemos estudar melhor as populações de baleias ameaçadas de extinção.


O crescimento de modelos de Deep Learning deverá acelerar e criar aplicações ainda mais inovadoras nos próximos anos.


Referências


Machine Learning Yearning – Andrew Ng

https://www.forbes.com/sites/bernardmarr/2018/08/20/10-amazing-examples-of-how-deep-learning-ai-is-used-in-practice/#2f83c879f98a

https://www.ibm.com/watson/health/index-1.html

http://www.yaronhadad.com/deep-learning-most-amazing-applications/

3 Dimensões

Inteligência Artificial nas Empresas

Al. das Papoulas, 147 - Santana de Parnaíba - Alphaville, SP 06539-180 - (11) 4153 6004  - (11) 9 9795 9765

michel@3dimensoes.com.br