Esse tema é até um tema um pouco místico no senso popular, as pessoas acham que I.A. são aquelas super maquinas que aparecem nos filmes e tal. Vamos falar o que é a Inteligência Artificial na real, o que se tem disponível e parte do que a compõe. Eu vou falar dos algoritmos que eu já utilizei em algum momento, como o text to speech, a linguagem natural e vários outros modelos. Eu vou colocar somente alguns aqui pra vocês conseguirem entender o que é essa categoria de softwares que une várias coisas na tentativa de chegar num algoritmo que vai utilizar todos esses recursos para compor alguma coisa próxima de uma consciência. Vamos lembrar que I.A. basicamente são algoritmos que realizam funções específicas, como qualquer algoritmo, ok?

Algoritmo de conversão de texto em fala/fala em texto

O primeiro algoritmo que eu quero falar é o text to speech, texto para fala. É um algoritmo que já vem sendo desenvolvido por várias empresas, não é só o Google, embora seja o mais conhecido, e também o inverso, que é o speech to text, que passa de linguagem falada para texto. Esses algoritmos são super importantes dentro da inteligência artificial, inclusive toda I.A. que “fala”, que se comunica, vai ter algum tipo de text to speech. Esses algoritmos fazem a interpretação de falas e transformação em texto pra poder processar, o computador não processa áudio ou texto puramente, ele processa binário, então esse texto vai ser transformado em binário antes de ser processado. Esses algoritmos procuram cada vez mais conseguir interpretar o que está sendo falado e transformado em texto, independente da língua que está sendo falada. Existem várias ferramentas pra fazer isso, inclusive “o editor” dos meus vídeos me mostrou uma ferramenta super bacana que você consegue pegar um áudio ou um vídeo e fazer as legendas, ou transcrever o texto. Perceba que esse algoritmo tem várias aplicabilidades, você pode, por exemplo, transformar um livro em audiobook e vice-versa, pode fazer legendas de um filme, pode fazer várias coisas, ele não é utilizado só para compor uma “inteligência artificial”.

Algoritmo de Linguagem Natural

Outro algoritmo que a gente tem dentro de I.A. é a interpretação de linguagem natural, ou Algoritmo de Linguagem Natural. Esse algoritmo consegue ler um texto e identificar alguns padrões que a mente humana identifica com certa facilidade, por exemplo, um endereço dentro do texto, o nome de uma pessoa famosa, consegue identificar o tom que aquele texto tem, se é mais neutro, mais crítico, se é um texto mais raivoso, mais alterado, consegue identificar nomes de cidade, de eventos históricos, etc. A interpretação da linguagem natural envolve uma série de tags correlacionadas e, obviamente, o do Google é um dos melhores que eu testei até hoje. O algoritmo de linguagem natural é utilizado para fazer interpretação de texto ou pegar informações dentro de um texto de forma automatizada: numero de telefone, endereço e por aí vai. Você consegue, dentro de um texto corrido, rodar esse algoritmo e ele te retorna tags, marcadores que mostram o que tem dentro daquele texto. Esses algoritmos vão sendo melhorados constantemente, de acordo com as leituras, o próprio Google Tradutor utiliza esse tipo de algoritmo para fazer melhores adaptações de texto, para fazer contextualização de sintaxe e tal. É uma analise mais morfológica e gramatical do que somente detecção de padrões, porque cada língua diferente tem várias formas de se escrever e falar. É um algoritmo bem complexo e tem vários sistemas na internet que o utilizam, por exemplo, o Watson da IBM e o Google Natural Language, que foi o que eu utilizei pra fazer uma análise de conversas de grupos de WhatsApp e detectar se as pessoas estavam falando bem ou mal, detectando palavras-chave que fosse interessantes dentro desses textos.

Algoritmo de classificação de imagens

O próximo algoritmo que eu gostaria de falar é a classificação de imagem. Existe uma ferramenta do Google chamada TensorFlow, que tem um pacote de várias ferramentas de I.A. e uma delas é o Image Classifier. No Image Classifier você “ensina” o algoritmo detectar padrões inserindo uma série de imagens, por exemplo, de cachorros, aí você insere outras imagens e fala que são imagens de gatos. Você passa essa base de dados de imagens para o algoritmo, que cria o que a gente chama de dataset, que é como se fosse um banco de índices de padrões e esse algoritmo “aprende” e consegue detectar realmente vários padrões de posições, de raças diferentes. Isso não só se aplica a animais, obviamente, se aplica a qualquer tipo de imagem. Depois de “ensinado”, quando você passa uma imagem aleatória que não estava no grupo de imagens testadas, ele consegue detectar por padrões previamente computados e classificar aquela imagem de acordo com a base que ele tem. Muitos estudos que utilizam esse tipo de algoritmo, por exemplo, existem estudos para detecção de alguns tipos de cânceres e outras doenças baseado em raios-x. Entretanto, um ponto sensível é que a amostragem de treinamento do algoritmo precisa ser muito boa, se não ela vai gerar o que a gente chama de falsos positivos. Eu utilizei esse algoritmo pra classificação de produtos. No Vigia de preço a gente tinha uma base de dados de 150 milhões de produtos, de N categorias diferentes, e eu tinha um modelo pra poder fazer classificação automatizada desses produtos. Como é um algoritmo muito complexo, mesmo com a quantidade de amostragem muito grande, a taxa de acerto dele era em torno de 50%, não era um algoritmo tão bom (ou talvez eu não tenha conseguido escrever de uma forma que fosse muito boa), então ainda precisava de uma revisão manual pra conseguir fazer a classificação, existem inúmeras formas melhores de conseguir classificar um produto, que não só pela imagem. Hoje existem aplicações muito mais simples, que tem resultados muito melhores e tudo vai depender da forma como se instrui o algoritmo pra fazer esse aprendizado de máquina.

Algoritmos de Machine Learning.

Vamos falar do próprio machine learning como algoritmo, pra gente entender o que vem a ser um aprendizado de máquina. O machine learning é um algoritmo de ciclos, basicamente o que você programa são padrões de acerto para a máquina, você aponta o que é o certo e o que é errado (ou só o que é o certo) e a máquina vai começar a tentar várias possibilidades, gerando ciclos de aprendizado. O sistema ramifica em dois testes, quando acerta, ele descarta a ramificação errada e progride na ramificação correta, depois vai ramificando de novo para mais dois novos testes, até que vai chegar num momento em que ele vai conseguir otimizar aquelas tentativas e erros até sempre acertar. Por isso os algoritmos de machine learning são classificados normalmente por taxas de acerto, quanto maior a taxa de acerto do modelo, melhor ele é. Obviamente isso depende muito dos inputs que você está dando no começo do aprendizado de máquina e normalmente esses ciclos de aprendizado demoram bastante tempo, a máquina vai ficar fazendo testes e mais testes, até conseguir fazer o modelo ficar razoavelmente bom. Explicando assim parece ser relativamente simples, mas se você colocar inputs errados vai gerar um dataset de aprendizado que vai apresentar resultados errados e vai gerar uma série de falsos positivos mais na frente e aí, por mais que o sistema aparentemente esteja dando uma taxa de acertos alta, sempre vai precisar de um analista pra conseguir saber se realmente aquela fórmula está correta ou se o modelo está errado e precisa ser descartado.

Algoritmos combinados = Consciência?

Quando a gente pensa numa inteligência artificial, nós temos a capacidade de conseguir processar e interpretar textos, de fazer uma analise complexa desses textos, para conseguir formular potenciais respostas para questionamentos e ter um aprendizado de máquina sendo feito. Existem vários outros algoritmos de inteligência artificial que a gente pode encontrar isoladamente dentro desse ecossistema e também tem muitos outros algoritmos escondidos muito mais complexos do que simplesmente essas funcionalidades separadas. Quando você junta tudo dá pra fazer uma coisa muito mais complexa, por exemplo, uma I.A. que consiga responder a perguntas, que a gente até já vê a venda aí no mercado. Mas eu não considero que nenhum desses projetos atualmente tem a capacidade cognitiva de ter consciência nem qualquer coisa do tipo assim. Nós estamos falando de algoritmos de interpretação, algoritmos simples [no sentido de tarefas realizadas, não de implementação], eu não vejo hoje no mercado nada muito complexo ao ponto de conseguir automatizar o aprendizado sem a intervenção humana em algum sentido. Todos esses algoritmos são programados para ter um comportamento especifico, não é um comportamento generalista como seria necessário para ter uma maquina aprendendo qualquer coisa.

Quem tiver curiosidade, no site do TensorFlow existem vários modelos pré-processados, em que os engenheiros de machine learning, de inteligência artificial do Google, da IBM, da Microsoft, entre outras, pré-processam modelos de algumas funcionalidades especificas e disponibilizam esses modelos pra qualquer pessoa baixar e testar e até utilizar nos seus sistemas de classificação, seja de imagens, seja de tradução, etc.

Quem quiser saber mais sobre minha opinião sobre as I.A. tomando consciência, eu recomendo a leitura deste post aqui:

O conteúdo deste post foi retirado do vídeo “I.A. o que realmente temos até agora”: