Fonte: IGTIBlog
Entretanto, uma confusão recorrente de quem está iniciando em Análises de Dados e Data Science é sobre a relação entre deep learning e machine learning. Neste artigo, irei aproveitar esta dúvida para apresentar alguns conceitos e esclarecimentos.
Machine learning (ML), traduzida para a Língua Portuguesa como “aprendizado de máquina”, é uma expressão que mostra a intenção de fazer com que as máquinas aprendam a partir da observação do ambiente no qual estão inseridas. A observação do ambiente pode acontecer a partir do processamento em tempo real de dados obtidos de sensores, como nos veículos autônomos, ou a partir do processamento de dados coletados ao longo de um período de tempo e armazenados em um banco de dados, como os dados de transações comerciais realizadas pelos clientes de uma organização. Atualmente o volume de dados disponíveis pode se tornar tão grande que exige técnicas específicas para o seu processamento, como as técnicas de Big Data. O que importa para nós aqui é que os dados estão sendo coletados a todo momento, de muitas fontes, e assim as máquinas conseguem aprender muita coisa sobre praticamente tudo. Vamos entender como isto ocorre.
A expressão machine learning foi cunhada pelo cientista da computação Arthur Samuel, em 1959, como sendo o “campo de estudo que fornece aos computadores a habilidade de aprenderem sem serem programados de forma explícita”. Desde aquela época, ML é considerada uma subárea da Inteligência Artificial. Entretanto, a definição do Arthur Samuel é antiga e informal.
Em 1998 outro cientista da computação, Tom Mitchell, apresentou uma definição mais atualizada para ML. Segundo ele, “diz-se que um programa de computador aprende, a partir da experiência E em relação a uma classe de tarefas T e uma medida de desempenho P, se seu desempenho nas tarefas de T, medido por P, melhora com a experiência E”.
A partir da definição de Tom Mitchell vamos considerar, como exemplo, a utilização de uma aplicação para prever o churn rate de clientes, ou seja, o percentual de clientes que cancelam os serviços de uma empresa. Dessa forma teremos: a experiência E corresponde à observação dos dados coletados dos clientes que cancelaram e que não cancelaram os serviços; T corresponde ao processamento dos dados dos clientes e à geração de um modelo que permita predizer se um novo cliente irá cancelar ou não os serviços (este modelo pode ser uma árvore de decisão, uma rede neural, dentre vários outros tipos); e P será uma medida de desempenho do modelo, que pode ser, por exemplo, a acurácia, que indica o percentual de acertos que o modelo alcançou. Portanto, utilizando um algoritmo de ML, à medida que são fornecidos mais dados de clientes, o desempenho do modelo tende a melhorar, pois o algoritmo irá aprender com a “experiência”, e conseguirá predizer com uma taxa de acerto satisfatória, quais clientes irão ou não cancelar os serviços. Ressalto que este foi apenas um exemplo, dentre uma infinidade de possibilidades de aplicações para o ML.
Os principais algoritmos de ML estão nas categorias de “aprendizado supervisionado”, no qual os dados estão previamente rotulados (por exemplo, os rótulos “cancelou” e “não cancelou” para os clientes do exemplo anterior) e “aprendizado não-supervisionado”, cuja principal aplicação é a segmentação (ou clusterização), na qual os dados são agrupados conforme características similares e não precisam estar previamente rotulados.
Na categoria de aprendizado supervisionado há vários tipos de tarefas que podem ser executadas. As principais são a classificação, que permite predizer um valor não numérico (por exemplo, “o cliente irá cancelar ou não os serviços?”) e a regressão, que permite predizer um valor numérico (por exemplo, “qual será o valor que a ação XPTO irá alcançar no próximo mês?”).
São várias as técnicas que podem ser utilizadas para abordar um problema de classificação. As principais são árvores de decisão, regras de classificação e redes neurais. Vamos falar um pouco sobre esta última.
As “redes neurais artificiais” (ou simplesmente “redes neurais”) correspondem a um modelo computacional que busca imitar, de forma simplificada, como o cérebro humano processa a informação. Inicialmente elas foram desenvolvidas nas décadas de 1950 e 1960 para a resolução de problemas bem específicos. Nas décadas mais recentes é que elas foram aperfeiçoadas de forma a estender as possibilidades de aplicações e saíram do meio acadêmico para serem utilizadas nas mais diferentes áreas.
A ideia principal das redes neurais é que, a partir de dados de entrada, chamados features, seja fornecida uma saída correspondente. Assim, elas podem, por exemplo, identificar uma uma face em uma imagem usando os pixels como features ou predizer o comportamento de um cliente usando os seus dados como features.
Uma rede neural é formada por um conjunto de neurônios artificiais conectados em camadas. De uma forma simplificada podemos dizer que cada neurônio da rede irá receber um valor de entrada e poderá repassá-lo ou não adiante, de acordo com uma função de ativação. As conexões entre os neurônios recebem pesos que devem ser aplicados aos valores que passam através delas. Durante o processo de treinamento de uma rede neural, que é quando ela irá aprender com a observação dos dados, os pesos das conexões vão sendo ajustados de forma a melhorar o resultado obtido pela rede.
A Figura 1 mostra uma configuração de rede neural simples com uma camada de neurônios de entrada, uma camada de saída e duas camadas intermediárias, chamadas de camadas ocultas. Esta rede neural é chamada de Multilayer Perceptron (MLP) e cada neurônio, chamado perceptron, está representado por um círculo. As conexões entre os neurônios estão representadas como setas indicando o sentido da informação que transita entre eles. x1 a x5 são as features da entrada e y’ e y” são os rótulos da classificação. Para determinados valores para as features, apenas um rótulo será ativado, indicando o resultado da classificação considerando aqueles dados de entrada.
os últimos anos, com o aumento dos dados disponíveis e o aumento da capacidade computacional, inclusive com a utilização de GPUs (unidades gráficas de processamento) para o processamento de redes neurais, foi possível aumentar muito o número de camadas e o número de neurônios em cada uma das camadas. Isto tornou as redes neurais mais flexíveis e com uma maior capacidade de processamento das entradas e de aprendizado. Foram então aperfeiçoados outros tipos de redes neurais, como as Redes Neurais Convolucionais (Convolutional Neural Networks – CNN), Redes Neurais Recorrentes (Recurrent Neural Networks – RNN) e as Redes Geradoras Adversárias (Generative Adversarial Networks – GAN). Estas redes, com grandes quantidades de camadas e de neurônios, passaram ser chamadas de redes neurais “profundas” (deep neural networks) e daí surgiu a expressão deep learning, que é o aprendizado de máquina que utiliza estas redes neurais profundas.
Mesmo sem nos darmos conta, atualmente o deep learning vem sendo utilizado de forma intensa e eficiente na realização de várias atividades do nosso dia-a-dia, como a identificação de padrões em imagens, transcrição do que falamos para os mais diversos dispositivos, e a recomendação de produtos e serviços.
Resumindo, deep learning é expressão que se refere a uma sub-área do aprendizado de máquina (machine learning) que apresenta um conjunto de arquiteturas específicas para as redes neurais, que só foi possível graças ao aumento da capacidade de processamento e do volume de dados disponíveis para o treinamento destas redes.
0 comentários:
Postar um comentário