IntelligenceLab para Delphi, C++ e .NET

Sei que talvez você deve estar curioso para saber sobre o IntelligenceLab, mas antes disso é importante explicar um pouco sobre uma das tarefas mais utilizadas da mineração de dados, a classificação. Essa tarefa consiste em analisar bases de dados históricas, aprender com elas e fazer previsões futuras sobre um comportamento até então desconhecido. Por exemplo, vamos supor que desejamos prever se uma pessoa do sexo masculino, na faixa dos 30 anos e que tenha casa própria irá comprar ou não um determinado livro. Para isso, utilizamos os dados históricos de todas as pessoas para as quais foi feita propaganda deste livro, submetemos esses dados a algum algoritmo de aprendizagem de máquina e depois, submetemos os dados dessa pessoa para o sistema, que irá nos responder qual é a probabilidade dessa pessoa comprar ou não o livro, baseado em suas características. Com isso, podemos tomar a decisão de enviar ou não uma propaganda para ela, levando em conta as chances de ela ter ou não interesse no produto! Desta forma, conseguimos fazer um marketing direcionado somente para as pessoas certas e evitamos gastos com campanhas para pessoas erradas!

Caso você tenha interesse em conhecer outras técnicas de aprendizagem de máquina, eu escrevi um ebook gratuito chamado “7 técnicas de inteligência artificial para profissionais de TI ganharem mais dinheiro”. Nele você pode encontrar vários outros exemplos de aplicações da inteligência artificial na prática! O link para baixar ele é https://iaexpert.academy/ebook-aprendizagem-maquina/

Agora que já entendemos um pouco sobre o que é classificação, vamos agora ver o que o IntelligenceLab tem a nos oferecer! O IntelligenceLab é uma biblioteca de componentes voltada para ser utilizada em aplicações comerciais de inteligência artificial, ou seja, filtros de SPAM, visão computacional, reconhecimento de voz, aplicações OCR, reconhecimento de faces e diversas outras aplicabilidades relacionadas à tomada de decisão em empresas. Todas as funções da biblioteca estão relacionadas à tarefa de classificação que vimos anteriormente!

Essa biblioteca é um prato cheio para desenvolvedores Delphi, já que ela tem suporte desde o RAD Studio XE4 até o recente lançamento da Embarcadero, o RAD Studio 10.1 Berlin. O melhor de tudo é que o Intelligence Lab é compatível tanto com a VCL quanto com o FireMonkey. Como o FireMonkey é a tecnologia para o desenvolvimento multidispositivo do Delphi, isso quer dizer que você pode desenvolver aplicativos nativos de inteligência artificial para Windows, iOS, OSX e Android, utilizando o mesmo código fonte! Inclusive algumas pesquisas recentes estão apontando para um grande crescimento em aplicativos de inteligência artificial móvel, portanto, as facilidades de desenvolvimento do RAD Studio podem ser unidas com as funcionalidades do IntelligenceLab! Além do Delphi, a biblioteca é também compatível com o framework .NET da Microsoft, suportando também as seguintes linguagens: C#, J#, F# e C++. No que diz respeito ao C++, podemos desenvolver os aplicativos utilizando o Microsoft Visual C++.

Com relação aos algoritmos de aprendizagem de máquina, o IntelligenceLab disponibiliza o Naive Bayes, o K-NN e as redes neurais artificiais. Eu já fiz alguns experimentos com alguns desses componentes no RAD Studio Seattle e todos funcionam adequadamente, inclusive construí um software completo utilizando o Naive Bayes e uma base de dados real. Utilizei o FireMonkey e desenvolvi um aplicativo móvel no qual o usuário pode cadastrar os clientes e o algoritmo fará previsões sobre o tipo de carro que é mais adequado, baseado em características como casa própria, sexo, idade e salário. A programação é simples e boa parte dela é baseada em configuração de componentes, pois toda a implementação dos algoritmos de inteligência artificial já estão prontos! Além disso, qualquer fonte de dados pode ser utilizada, ou seja, DataSets, ClientDataSets, XML, arquivos de texto, dentre vários outros! Talvez um pré-requisito para entender os componentes é ter um conhecimento básico sobre aprendizagem de máquina, principalmente os conceitos chave da área e um pouco sobre cada um desses algoritmos. É importante conhecer o funcionamento deles, pois alguns ajustes em seus parâmetros pode trazer resultados melhores.

Com isso, eu vejo uma grande oportunidade de negócio: utilizar bases de dados já existentes, prepará-las para que a mineração de dados possa ser aplicada e realizar previsões dos mais variados tipos possíveis, independente da área de atuação. Penso que hoje em dia qualquer software pode colher os benefícios da inteligência artificial, visto que todos eles possuem bases de dados, e consequentemente, previsões podem ser realizadas de maneira fácil! Eu comento bastante sobre essas oportunidades de negócio no meu ebook gratuito “7 técnicas de inteligência artificial para profissionais de TI ganharem mais dinheiro”.

A figura abaixo mostra o exemplo de reconhecimento de face utilizando redes neurais, o qual está disponível para download no site da Mitov Software (http://www.mitov.com/). Perceba que do lado esquerdo estão as imagens de treinamento com as quais a rede neural irá aprender, e do lado direito, estão os resultados das predições.

A próxima figura apresenta um exemplo da aplicação do algoritmo Naive Bayes, o qual tem o objetivo de classificar os pontos nas classes vermelho, verde e azul. O download para esses dois exemplos pode ser feito na página da empresa.

Vale ainda ressaltar que o IntelligenceLab é gratuito para uso acadêmico e não comercial, bastando fazer o download do arquivo executável (nenhum código fonte é instalado). Para uso comercial, a biblioteca pode ser encontrada em três versões: sem fontes (U$ 389), com fontes (U$ 1.369) e com os fontes atualizados a cada nova versão (U$ 1.179). Esses valores correspondem aos pacotes para o RAD Studio e são diferentes para o .NET e C++.

Agora que estudamos um pouco sobre o IntelligenceLab, vamos conhecer um pouco mais da empresa que o desenvolve! A Mitov Software está localizada em uma pequena cidade da Califórnia chamada Moorpark, nos Estados Unidos, e está no mercado desde 1997. Ela é especializada em desenvolvimento de software de alto desempenho e abrange muitas áreas! Alguns exemplos são: processamento de vídeo, processamento de áudio, processamento digital de sinais, aquisição de dados em tempo real, comunicação, controle de processos, visão computacional, inteligência artificial, visualização de dados, instrumentação visual, computação paralela e em grade e controle de hardware. Quando estava desenvolvendo o aplicativo de exemplo, o Boian Mitov (proprietário da empresa) foi bastante acessível e sempre respondeu rapidamente as dúvidas sobre os componentes e enviou outros exemplos de código fonte! Esse pode ser um ponto positivo devido ao fato de que a empresa não disponibiliza materiais para treinamento para aprender a trabalhar com os componentes (existe somente um PDF que mostra como instalar e mostra o código fonte de um dos exemplos). Eu escrevi um artigo sobre o Intelligence Lab integrado à um aplicativo mobile, que saiu na capa da revista Clube Delphi 168 e você pode conferir no link: http://www.devmedia.com.br/revista-clubedelphi-168/36848.

Inclusive conversei um pouco com ele sobre mercado de trabalho, e a empresa está contratando profissionais com experiência em inteligência artificial para trabalho totalmente remoto! Com isso, penso também que o conhecimento sobre IA pode abrir várias oportunidades de trabalho fora do Brasil, já que por aqui essa área não é tão conhecida assim! Para motivá-lo(a), apresento aqui alguns clientes da Mitov Software bem conhecidos e de grande peso no mercado, como Seagate, Samsumg, Motorola, Ericsson, Siemens, Philips e até a NASA!

Em próximos artigos vamos abordar mais alguns detalhes práticos sobre o IntelligenceLab e também sobre o VisionLab, que é uma biblioteca para trabalhar com a área de Visão Computacional. Abaixo você pode conferir um vídeo que gravei sobre essa ferramenta, no qual eu também mostro a aplicação de reconhecimento facial em funcionamento!