Machine Learning

Se você estuda, trabalha ou é um entusiasta da área de tecnologia, certamente já ouviu falar sobre Machine Learning recentemente, correto? Mesmo se a resposta for não, tenho certeza que já utilizou sites, aplicativos e programas que usam essa tecnologia. De fato, Machine Learning está em uma grande vertente nas ultimas décadas e diversas pesquisas e aplicações estão sendo desenvolvidas e aprofundadas nessa área tão inovadora e muito promissora. 

Mas afinal, o que é Machine Learning. Machine Learning, ou no português “Aprendizado de Máquina”, é uma área da computação e uma vertente da inteligência artificial, que desenvolve algoritmos capazes de “aprender” sem serem explicitamente programados para isso. Os algoritmos são alimentados por uma grande quantidade de dados para treinar a identificação de padrões, e assim possam generalizar esse padrões para dados inéditos, tomando decisões com o mínimo ou nenhuma interação humana. O conjuntos desses dados são chamados Datasets e podem representar qualquer tipo de informação como imagens, textos, vídeos, valores, etc. 

Devido a essa versatilidade, algoritmos de Machine Learning são usados em diferentes áreas e também estão presentes em nosso dia-a-dia, como por exemplo o algoritmo de recomendações da Netflix ou do Youtube, nos algoritmos de buscas da Google. 

Essa área é muito complexa e necessita de conhecimentos de matemática e computação específicos para um total entendimento. Para poder entender os casos de viés nessa área, será apresentado conceitos básico de forma muito geral e simplificada, apenas para haver um entendimento mínimo de certos conceitos.

Redes Neurais e DeepLearning

Dentro da área de Machine Learning há diferentes métodos de algoritmos como Árvores de Decisão, Regressão, Clustering, mas aqui iremos falar um pouco sobre as Redes Neurais. As redes neurais recebem esse nome por se tratar de uma abstração de uma rede neural biológica, possuindo similaridades com o processo do cérebro humano. Ela pode ser definida por uma estrutura interligada de elementos de processamento, podendo realizar operações de fora paralela. 

A unidade fundamental das redes neurais, é o neurônio que esta representado na Figura 1 ao lado. É uma unidade onde ocorre uma série de operações matemáticas. Os dados de entrada são multiplicados por uma matriz de parâmetros “W” e somados a outro parâmetro “b”, de forma a fazer uma linearização. E por fim, esse valor gerado é aplicado em uma função de ativação. Esse resultado final é chamado de predição, uma tentativa da rede prever um resultado com base nos dados de entrada. Ao comparar essa predição com a resultado real, o neurônio faz um procedimento inverso (backpropagation), atualizando os parâmetros W e b, para que na próxima tentativa a predição chegue mais próxima do resultado real.

Seguindo o pensamento lógico, uma Rede Neural é uma concatenação de camadas de neurônios interligados, formando uma rede similar à Figura 2, ao lado. Redes neurais com muitas camadas são chamada de Redes Neurais Profundas e integram uma subárea chamada DeepLearning.

DeepLearning está sendo usado para diversas aplicações em tecnologias nas ultimas décadas. Dentro do DeepLearning há dois tipos de redes neurais que ganham maior atenção: as Redes Neurais Convolucionais (ConvNets), muito utilizadas em aplicações de Visão Computacional, por exemplo. E as Redes Neurais Sequenciais, muito utilizadas em aplicações de Processamento de Linguagem Natural.

 

Figura 1 - Comparação entre neurônio biológico e artificial.
Figura 2 - Processos em uma rede neural artificial.

"Bias"

Apesar de muito promissora, essa área está longe de ser infalível. “Bias” em Machine Learning é o nome dado ao fenômeno que ocorre quando um algoritmo produz resultados que são sistematicamente prejudicados devido a suposições errôneas. “Bias” possui diferentes traduções como “viés”, “tendência” ou até mesmo “preconceito”, e pode ocorrer em algoritmos por diversos motivos. Dentre os principais motivos, citaremos alguns exemplos a seguir:

Viés de Amostra

O primeiro exemplo é o chamado “Viés de Amostra”. Ele ocorre quando os dados usados no treinamento não correspondem às situações que vão ser enfrentadas pelo algoritmo uma vez pronto. Por exemplo, imagine um algoritmo para um veículo autônomo que só foi treinado com imagens diurnas. É muito provável que esse veículo não tenha uma boa performance quando operar no período da noite. 

Muito confuso ainda? Vamos tentar com uma atividade mais prática! Vamos dizer que queremos desenvolver um algoritmo que seja capaz de identificar um indivíduo com pele saudável. Para isso, vamos utilizar um ConvNet, porém antes precisamos construir nosso Dataset para nosso modelo. Resolvemos fazer uma pesquisa simples na internet para coletar nossos dados, pesquisamos por “pele saudável” e esses foram os resultados:

Se utilizarmos os resultados dessa pesquisa como nosso dataset, o algortimo irá “aprender” que pele saudável são similares às imagens: mulheres, brancas, jovens, com maquiagem, etc… Desse modo, como nosso modelo será capaz de predizer se a pele de uma pessoa negra ou de um homem, é saudável ou não?

Pode parecer um exemplo bobo, afinal nenhuma aplicação profissional criaria seu dataset com base em apenas uma pesquisa na internet. “Essa é a função de um cientista de dados!”. De certa forma sim, o trabalho de um cientista de dados é fundamental para diversificar um dataset e reduzir viés como esse. Porém, até mesmos datasets utilizados em âmbito profissional não estão muito bem diversificados. Na Figura 3 ao lado, temos alguns dos melhores algoritmos de detecção de gêneros por grandes empresas como Microsoft e IBM. Mas vejam os resultados. Eles preveem homens brancos com 99.7% de precisão, mas com um gap de 34.4% comparados com mulheres negras. Uma das possíveis explicações para esse resultado é um viés de amostra do dataset utilizado.


Analisando os maiores datasets utilizados atualmente, temos o IJB-A para detecção facial, com apenas 4.4% de imagens de mulheres negras. Além disso, podemos analisar os dados da Figura 4 ao lado, o ImageNet, um dos maiores datasets abertos atualmente, possui dois terços de suas imagens vindas do ocidente. Essa desproporção de um dataset pode influenciar diversos fatores como por exemplo raças, culturas e paisagens encontradas no oriente e que não existem no ocidente estarão muito pouco representadas no dataset, podendo alterar a performance do algoritmo nesses casos.

Figura 3 - Algoritmos de detecção de gêneros.
Figura 4 - Distribuição da origem de imagens do dataset ImageNet.

Viés Histórico

Outro tipo de viés encontrado é o “Viés Histórico”. Ele ocorre quando o viés do dataset vem de estereótipos, preconceitos e padrões presentes na nossa sociedade. Por exemplo, um algoritmo para detectar imagens de profissões. Estatisticamente, nós temos muito mais enfermeiras mulheres do que homens. E esse fato se traduz no dataset, onde teremos muito mais imagens de mulheres que homens, e isso será “aprendido” pelo algoritmo se nada for feito para balancear. 

Isso fica muito visível em algoritmos de processamento de linguagem natural, onde são feitas associações necessárias entre palavras para poder entender a sintaxe da frase, como por exemplo: Associar a palavra “Man” com “King” e “Woman” com “Queen”. É uma associação necessária que a maquina faz para entender o gênero de alguns substantivos. Porém , do mesmo modo, o algortimo acaba fazendo outras associações como: “Father” com “Doctor” e “Mother” com “Nurse”. Isso no caso da língua inglesa, em que “Doctor” e “Nurse” são comuns  para ambos os gêneros. Essa associação é feita por tabela, se olharmos a representação das palavras como vetores veremos “Woman” e “Mother” muito próximos, e por consequência, “Nurse” também próximo. E esse vetores aparecem opostos aos de “Man”, “Father” e “Doctor”, o que acaba por denotar que mulher não são associadas à médicos, o que não é verdade. E essas associações aqui refletem gênero por ser mais fácil de visualizar, mas podem representar também etnia, idade, orientação sexual, entre outras.

Um exemplo real disso, é o algoritmo COMPAS usado em muitos estados dos EUA, que prevê a probabilidade de um criminoso cometer novos crimes se caso for liberado. Esses estados utilizam esse algoritmo pra conceder e calcular fiança, julgar liberdades, etc. Apesar de etnia/raça não ser um parâmetro explicito do algoritmo, podemos perceber nos resultados apresentados na Figura 5 abaixo, um erro 2 vezes maior para afro-americanos, comparado aos brancos. Raça não é parâmetro explícito, mas o algoritmo “aprende” essa correlação de maneira implícita através de outros parâmetros utilizados, como moradia, renda, educação, redes sociais etc.

 

Figura 5 - Comparação dos resultados do algoritmo COMPAS.

Viés de Medida

Outro tipo de viés encontrado é o “Viés de Medida”. Ele ocorre quando a métrica utilizada pelo algoritmo não reflete o problema que se quer resolver. Um exemplo desse viés é um estudo publicado na revista “Nature”, de um algoritmo usado nos EUA que encaminha pessoas com problemas complexos de saúde para hospitais. E foi notado que negros eram menos propensos a serem encaminhados para os hospitais. Isso porque a métrica utilizada pelo algoritmo era o custo com saúde em 1 ano pelo indivíduo. Por motivos sociais, muitos negros nos EUA não possuem condições de terem muito gasto com saúde, e por isso não eram encaminhados pelo algoritmo, apesar de muito possuírem problemas de saúde tão complexos quanto. Nesse caso, a métrica “gastos com saúde” não é uma boa métrica para encaminhar pessoas aos hospitais pois não contemplava muitos casos.

 

 

Feedback Loops

Além desses tipos de viés, temos um em específico, chamado “Feedback Loops”.  Eles ocorrem quando o próprio algoritmo controla a entrada dos próximos dados do dataset. Por exemplo, algoritmos de recomendação. Eles usam dados de histórico de pesquisa e visualização para indicar conteúdo ao usuário, mas depois de indicar um conteúdo e o mesmo for acessado ou pesquisado, ele altera os próximos dados, indicando conteúdos similares, gerando uma espécie de loop.

Em 2019, notícias relacionadas ao Youtube foram divulgadas no jornal New York Times afirmando que o sistema de recomendação da plataforma fornecia e indicava material para potenciais pedófilos. No caso me questão, o algoritmo indicava conteúdos relacionados a pesquisa dessas pessoas, e continuava enviando mais material similar, apesar desse conteúdo ser de teor infantil para pessoas com problemas relacionados a pedofilia. Logo percebemos o grande problema que isso pode gerar.

 

Ética de Dados

Um ponto relacionado à ética de dados, que os profissionais devem levar muito em consideração, são as chamadas consequências não intencionais. A ideia é não só considerar como sua tecnologia vai ser usada, mas também quem vai usá-la. A grande maioria das tecnologias que apresentam esses problemas éticos,  são desenvolvidas com a melhor da intenções, mas muitas podem ser mal aplicadas por pessoas como “trolls”, por assediadores, por governos autoritários, para disseminação de fakenews e consequentemente para a desinformação. Então atentar quem pode usar a tecnologia e como ela pode ser usada para outro fim é um debate abordado pela ética de dados. 

É muito comum escutar, geralmente por pessoas leigas na área, que deveríamos utilizar inteligência artificial pra fazer o trabalho de políticos, juízes e advogados, pois o computador não tem sentimentos e, portanto, não serão preconceituosos. Mas acabamos de ver, por diferentes motivos, que isso não é um fato. Os algoritmos são construídos por humanos e são alimentados por dados. Esses mesmos dados são criados, registrados, e manipulados por humanos e refletem nossa realidade, a nossa sociedade. Apesar de serem maquinas, há humanos por todo lado do processo, e isso reflete a importância da ética de dados, pois vimos que a grande maioria das aplicações em nossa sociedade leva à dilemas morais e éticos, e os profissionais, os cientistas de dados, os engenheiros de Machine Learning precisam ter ciência desses problemas e saber como lidar com eles da melhor forma possível. 

Por esse motivo, nas grandes universidade no mundo todo, em especializações voltadas para essa área, há sim matérias e estudos focados na ética de dados, por ser essencial na formação desses profissionais e para evitar possíveis consequências negativas desses trabalhos. Então esses profissionais precisam procurar desenvolver métricas para minimizar esse viés, criar e tornar os datasets mais balanceados e diversificados, e talvez usar modelos maiores já treinados pra tentar diluir esse viés. São algumas abordagens praticas de desenvolvimento.

Gostaria de deixar como recomendação a fonte utilizada para esse post: o curso do FastAi – Pratical DeepLearning for coders, ministrado por Jeremy Howard e Rachel Thomas, para quem se interessar e quiser ter uma abordagem mais prática nessa áreas.  FastAi – Pratical DeepLearning for coders

slotonline