TensorFlow: o que é e como pode ser aplicado

0

Agatha Carriello | Janeiro 15, 2019

Já ouviu falar em TensorFlow (TF)? Lançado pelo Google há alguns anos, é uma biblioteca de software para inteligência artificial gratuita e de código aberto. Ela reúne um compilado de funções que permitem que programadores e pesquisadores desenvolvam sistemas capazes de identificar padrões em grandes volumes de dados, para auxílio na tomada de decisões.

Thalles Silva, um de nossos Data Scientists, é um dos entusiastas pelo tema, com um artigo escrito no FreeCodeCamp (Medium), que você pode ler clicando aqui. Aproveitamos seu conhecimento sobre TF e elaboramos um artigo exclusivo para nosso blog Daitan!. Acompanhe e entenda um pouco mais sobre as perspectivas futuras dessa tecnologia ;)

TensorFlow

Algoritmos capazes de extrair padrões de grandes conjuntos de dados (algoritmos de aprendizado de máquina) estão cada vez mais populares. Assim, grandes empresas começaram a investir bastante em ferramentas para desenvolvê-los. No entanto, algoritmos de aprendizado de máquina são conhecidos por serem muito complexos. Principalmente, porque demandam, por parte dos desenvolvedores, conhecimentos sólidos de matemática e estatística.

Na tentativa de reduzir a complexidade em construir algoritmos de aprendizado de máquina, o Google criou o Tensorflow (TF). Inicialmente, seu foco era em Deep Learning (DL), uma área subconjunta de Machine learning, que por sua vez é um subconjunto da Inteligência Artificial (IA). Esse tipo de algoritmo é conhecido por exigir gigantescos conjuntos de dados (para treinamento). Consequentemente, DL também exige um elevado nível de poder computacional.

Assim como a maioria das bibliotecas de DL, Tensorflow utiliza o poder de processamento paralelo de GPUs (graphic processing units) - os mesmos dispositivos utilizados para executar jogos de altíssima demanda gráfica -, para que modelos (algoritmos) com tal complexidade sejam construídos em tempo hábil.

3 fases da construção de algoritmos

O desenvolvimento de algoritmos de aprendizado de máquina pode ser dividido em pelo menos 3 grandes fases:

1) Aquisição e preparo dos dados (Data Engineering);

2) Construção e refinamento do modelo;

3) Disponibilizar (servir) o modelo para que clientes possam consumi-lo.

A primeira fase engloba toda e qualquer transformação que deva ser feita nos dados para que eles estejam prontos para a segunda fase. Essa etapa é conhecida como Data Engineering e, geralmente, exige profissionais voltados exclusivamente para esse tipo de tarefa. Aqui, o número de possibilidades de transformações nos dados é muito grande. Porém, tarefas básicas incluem transformação de dados, seleção das features mais adequadas ao problema, limpeza de dados nulos e etc.

A segunda fase, de construção ou treinamento dos algoritmos de aprendizado, é uma das mais complexas. Nela, o engenheiro de Machine Learning (cientista de dados) deve considerar os vários tipos de algoritmos disponíveis, assim como modelar o problema as necessidades dos clientes. Além disso, o processo de refinamento do algoritmo é geralmente um processo longo, em que devem ser avaliadas várias possibilidades em um único modelo.

Como você pode notar, as duas primeiras fases são bem dependentes entre si. E, na prática, elas se alternam em ciclos, o que exige um alto nível de colaboração entre engenheiros e cientistas de dados.

A terceira fase, tem se tornado um tópico bastante recorrente. Ela visa soluções para oferecer os modelos construídos na etapa anterior para que o público (clientes) em geral tenham acesso. Inclusive, esse artigo é sobre essa parte do pipeline - servir modelos para consumo de clientes.

Em todas as 3 etapas acima, Tensorflow possui algoritmos prontos para serem utilizados.

Machine Learning, sobretudo Deep Learning, já é uma realidade. Aqui na Daitan, aprendizado de máquina é uma área abordada em muitos dos nosso projetos. E a tendência de crescimento é inevitável. Inclusive, a popularidade da ferramenta Tensorflow é tão grande que, em alguns casos, os nossos próprios clientes sugerem a sua utilização.

Se você é desenvolvedor e tem interesse na disseminação de técnicas de aprendizado de máquina e das ferramentas necessárias, como Tensorflow, cadastre seu currículo e faça parte do nosso time!