IGTI Blog
deep learning

Deep Learning: tendência para a análise de dados não estruturados

Nos últimos tempos, o crescente aumento do volume de dados gerados diariamente tem se tornado um “terreno fértil” para descoberta de conhecimento e automatização de processos que possam aumentar a qualidade de vida da sociedade em que vivemos. Estes conhecimentos podem ser usados por organizações de diferentes setores da economia que incluem, por exemplo, a área da saúde com a descoberta de novos medicamentos pela indústria farmacêutica e a área de comércio eletrônico e sistemas de recomendação de produtos e serviços, analisando e monitorando o “sentimento” dos clientes. Entretanto, vale ressaltar que há uma complexidade inerente aos dados armazenados e não é trivial a sua análise.

Muitas tecnologias e ferramentais de Big Data são usadas para coletar e analisar a grande massa de dados armazenada na tentativa da descoberta de padrões ou tendências interessantes, que podem ser úteis às organizações. Considerando a dimensão do quantitativo de dados, o panorama é muito favorável para criação de uma área que chamamos de Ciência de Dados.

O cientista de dados é uma profissão que vem ganhando, ao redor do mundo, muita notoriedade nos últimos anos. Nos Estados Unidos é uma das carreiras de maior remuneração, e a tendência é que esta perspectiva continue para os próximos anos, tendo em vista os investimentos feitos nesta área. Em todo o mundo grandes corporações como, Facebook, Apple, Microsoft, Toyota, Samsung, Google e Amazon utilizam largamente soluções de inteligência artificial em suas aplicações para oferecer aos seus usuários uma experiência individualizada. No Brasil, essa técnica tem ganhado cada vez mais espaço, e muitas empresas já utilizam e sentem os benefícios convertidos em maior rentabilidade e lucro. Os profissionais que procuram qualificação nesta área são muito valorizados e possuem um diferencial dos demais.

O uso da tecnologia caminha a passos largos, entretanto, os sistemas não possuem uma interface comum, ou seja, os dados não são armazenados da mesma forma e no mesmo local. Nesse caso, lidamos muitas vezes com dados não estruturados (imagens, e-mails, vídeos ou dados de redes sociais) e que precisam interagir para produzir o conhecimento. Assim, as soluções de Big Data existentes podem não atender as expectativas do contexto de análise. Para isso, podemos pensar na utilização das redes neurais como forma de driblar essas barreiras.

As Redes Neurais Artificiais (RNAs) são modelos computacionais que se assemelham ao funcionamento das sinapses neuronais no cérebro humano. Os primeiros conceitos sobre redes neurais foram introduzidos no final dos anos 40, porém, os avanços na área tomaram proporções maiores a partir da popularização dos recursos computacionais de processamento de dados com uso de GPUs. Ao mesmo ritmo, o volume de dados gerados pelos sistemas e armazenados diariamente cresce de maneira assustadora, tornando assim um cenário ideal para adoção das RNAs, que incluem múltiplas camadas em busca do conhecimento em um conceito que chamamos de Deep Learning (aprendizado profundo).

Entre as tendências de análise de dados não estruturados que são observadas no mercado, o Deep Learning tem uma capacidade enorme de superar outras técnicas e muitas empresas têm investido fortemente nessa área. As redes neurais profundas possuem diversas camadas e este número varia com a necessidade do problema e a modelagem construída pelo projetista. Deste modo, os dados de entrada fluem pelas camadas que permitem o aprendizado, difundindo o erro pelo mecanismo de retro propagação.

Empresas como a Google, oferecem bibliotecas multiplataformas, gratuitas e robustas como o Tensorflow, para lidar com a modelagem e construção de redes neurais profundas.

O TensorFlow é um framework de software de código aberto desenvolvido por pesquisadores e engenheiros da Google Brain Team no departamento de pesquisas de inteligência de máquina do Google em 2015. É amplamente usado em tarefas de aprendizado de máquina, em especial usando Deep Learning, devido a sua robustez.  É uma ferramenta particularmente desenvolvida para computação numérica onde as operações são feitas por um grafo de fluxo de dados. Neste grafo, os vértices (nós) representam operações matemáticas, enquanto as arestas representam os dados. Essa estrutura é armazenada em arranjo denominado tensor e que se assemelha a um vetor multidimensional. Para os iniciantes que desejam entender o funcionamento esse framework é possível usar uma visualização gráfica construída em uma interface web chamada Tensorflow Playground com a possibilidade de adicionar e remover parâmetros simulando o funcionamento de um modelo de rede neural.

Embora seja possível “brincar” com a criação de modelos de redes neurais profundas, em projetos reais é necessário usar a linguagem de programação do Tensorflow em máquinas com bom poder computacional. Muitos profissionais esbarram na dificuldade de entender a linguagem de baixo nível de máquina usada pelo Tensorflow e, neste sentido, bibliotecas com implementação de tarefas já foram desenvolvidas em várias linguagens de programação. Muitas dessas bibliotecas são gratuitas e podem ser usadas livremente.

A biblioteca Keras é uma API (Application Interface Programming) de alto nível, desenvolvida na linguagem Python para construir e treinar modelos usando o conceito de Deep Learning. Ela é usada para o desenvolvimento e produção mais rápida, uma vez que visa descomplicar os códigos em linguagem de baixo nível quando usamos diretamente o TensorFlow. A proposta de utilização da biblioteca Keras é simplificar, por meio de uma interação amigável, porém, muito eficiente.

A acessibilidade aos recursos computacionais exigidos neste tipo de projeto tem tornado o Deep Learning cada vez mais exequível em todo o mundo. O mercado brasileiro tem se atentado aos benefícios da técnica, entretanto, esbarra na escassez de recursos humanos. Assim, há uma crescente mobilização para qualificar profissionais com habilidades em coletar, processar e analisar dados usando as principais tecnologias para Deep Learning no mercado. Algumas organizações investem em capacitação de seus próprios analistas, com o objetivo de produzir conhecimento de seus dados armazenados.

A técnica de Deep Learning é considerada fantástica em todo o mundo, porém, não é uma “caixa preta” e não produz soluções mágicas. O cientista de dados precisa ter muita perseverança e habilidade em produzir modelos adequados ao contexto ou cenário analisado. O Deep Learning não é simplesmente uma solução de software, onde se injeta dados e produz resultados numéricos ou visuais, e sim um conceito muito poderoso que exige expertise em várias áreas como aprendizado de máquina e suas definições e estatística para validação dos resultados. Para se ter uma ideia podemos ter uma tarefa de classificação que consiste em arranjar elementos com características similares.  A esta tarefa chamamos de aprendizado supervisionado, tendo em vista que já conhecemos as classes previamente. Outro tipo de aprendizado é o não supervisionado, que agrupa elementos pela similaridade entre eles sem conhecer previamente a classe em que pertence.

As competências exigidas de um cientista de dados para trabalhar como Deep Learning incluem o bom conhecimento de uma das principais linguagens de programação nesta área (R ou Python), compreensão do significado e aplicação em um determinado contexto, raciocínio lógico, capacidade analítica, conhecimento de projetos computacionais, conhecimento em aprendizado de máquina, conhecimento estatístico e inglês.

É importante ressaltar que as competências exigidas para a carreira de cientista de dados usando Deep Learning são essenciais ao profissional, todavia, é uma área de atuação extremamente desafiadora. O profissional deve possuir um perfil entusiasmado e auto motivado sempre em busca do conhecimento que é essencial e infinito.

Professora autora: Valdete Almeida