Voltando aos trabalhos, tema de hoje: Racismo Algorítmico
Este tem sido um ano complicado: passei várias semanas num hospital acompanhando minha mãe que teve de amputar 3 dedos no pé devido a uma infecção que necrosou [um dos grandes problemas do diabetes é isso de não ter sensibilidade nos pés, automaticamente todos os calçados ficam confortáveis e quando menos se espera eles já fizeram um estrago enorme]. Depois me ocupei com trabalho e mais recentemente foi minha vez de ficar doente, depois de tanta coisa acontecendo ao longo desses meses o que mais quero é voltar a rotina de publicações dessa newsletter que a este ponto, meio que se transformou num porto seguro para organizar as ideias.
O tema de hoje é um que estou passando na frente por alguns motivos:
- Algumas conversas que tive ao longo do último mês me fizeram ver o quanto se foca tanto no algoritmo e quase nada nos dados que os alimentam
- O mais correto seria que o assunto de hoje viesse depois de uma edição dessa newsletter discutindo espaços públicos e privados na perspectiva das redes sociais e estruturas que usam tecnologias da informação, mas estamos chegando perto do 1º turno das eleições e falar de datasets para aprendizado de máquina tangencia questões próprias de pesquisas eleitorais (obviamente explicarei mais à frente), daí que não quero perder este momento.
Espero que gostem do assunto de hoje :-)
Racismo Algorítmico
Para quê serve o algoritmo
Uma das principais habilidades a serem exercitadas por quem se envereda em aprendizado de máquina voltado para o ambiente de produção é a criação de datasets, isto é, um conjunto de dados organizados de forma a servir para o aprendizado de máquina. O problema é que essa talvez seja uma das coisas menos faladas e exigidas numa área com tanto hype. Talvez por ser um trabalho tão exaustivo e com tanta coisa a se considerar ao mesmo tempo que há tão pouco material que aponte algum roteiro ou boas práticas. O fato é que o resultado do algoritmo começa pelos dados que são usados para o treinamento, já que a função do treinamento é apenas adaptar o algoritmo a um conjunto de dados.
Retirando camadas de abstração do parágrafo anterior, vamos imaginar algumas situações que nos ajudam a entender isso de alinhar os dados ao que se espera de um algoritmo. Primeiro para um uso bem a nível de interesse de pessoa comum: melhorar a resolução de fotos mais antigas tiradas a mais de 1 década atrás na época que celulares tinham teclado físico e flip como o Motorola V3 cuja câmera, assim como quase todos na época, afirmava ser apenas VGA, sem isso de se saber quantos MP tinha. É relativamente fácil encontrar tutoriais até em documentações de frameworks sobre o uso do algoritmo pixelshuffle, e uma boa premissa para se criar o dataset é pegar as imagens do celular atual criar cópias em baixa resolução delas, e para isso começamos por ver as informações da foto do celular atual e as do celular antigo e depois é só converter. Mas, por mais que você tenha um conjunto realmente grande de imagens não há garantias que o algoritmo vai funcionar bem para todas as situações, é bem possível ter cem mil fotos de gatos e nenhuma do trânsito, porém mesmo assim, para uso pessoal, pode ser adequado se a pessoa fotografa basicamente gatos. O problema está quando essa mesma lógica é usada em datasets para algoritmos que vão servir ao público em geral, e neste ponto, o desbalanceamento e a negligência sobre isso pesam muito.
Todo dataset se resume em dados de entrada e dados de saída, normalmente chamados de input e output ou data e target, eles precisa estar relacionados de alguma forma e precisa existir um padrão para ser reconhecido pelo algoritmo. Grande parte das vezes se usam datasets “padrão” em artigos que tratam de propor métodos e novos algoritmos, isso se dá por 2 motivos distintos: (1) comparar o desempenho com outros algoritmos mais ou menos em igualdade de condições e (2) esses datasets tem integração com as principais frameworks usadas para deep learning, de modo que a imensa maior parte do trabalho já está pronta de antemão. Algo a se notar neste caso de uso é que o dataset de fato pouco importa neste caso já que o que se está avaliando é a capacidade de adaptação de algum algoritmo ao uso de imagens, de vídeos, áudio, etc. O problema surge quando estes datasets são usados em produção pois, como mostarei à seguir, a realidade que eles refletem é restrita à perspectiva de um grupo realmente pequeno de pessoas quando consideramos todas as pessoas que de uma forma ou de outra terão contato com o algoritmo treinado, como é o caso das câmeras de celular que embranquecem pessoas ou que diante de nuvens alaranjadas por incêndios as fotos apenas mostram um céu próximo ao nublado. A única coisa que um algoritmo faz é reproduzir um padrão, e ter isso em mente ajuda a entender o comportamento de um algoritmo treinado.
Sobre os dados
Como o assunto de hoje é racismo, então cabe o recorte dos datasets de rosto, que são bastantes por sinal, mas vou me ater aos mais recorrentes em artigos acadêmicos ou mais comuns em tutoriais e códigos pelo github, afinal, quando numa startup a pessoa responsável pelos algoritmos de machine learning tem de desenvolver essa parte do produto, quase sempre é na base do se vira e com um prazo tão curto, que só vai conseguir entregar em tempo algo que seja mais “cômodo”, pelo menos para uma configuração inicial do algoritmo que muito frequentemente se torna “definitiva” também pelas questões operacionais e legais envolvidas na coleta de dados para formar um dataset desse tipo.
O mais comum nesses datasets é ser composto de fotos de celebridades que são encontradas procurando em sites de busca (sim, pesquisando no Google, DuckDuckGo, Bing, etc.). Se adicionarmos o fato que pesquisam os termos em inglês usando serviços que levam o país onde está aquele IP que acessou a página em consideração, temos então todos os elementos que indicam mesmo antes de conhecermos o dataset, como ele não representa a realidade.
Sabemos muito bem o quanto o processo colonizatório, a escravidão de povos africanos e posteriormente a eugenia e sua influência política determinaram um rearranjo da distribuição de percentuais de pessoas em relação a cor de sua pele que hoje vemos em grande parte do mundo e muito notadamente ao longo do continente americano, assim como também deram as bases de estruturas que favorecem a desigualdade e diversas formas de violência. Dentre os pontos ligados a tanta desigualdade está o acesso a formação universitária (e especialmente sua manutenção na carreira acadêmica), e este é um dos pontos a se olhar com atenção nesse contexto que nos referimos nesta edição, já que para quem só conheceu o mundo através da lente branca classe média, bombardeado por todo o arsenal ideológico neoliberal na família e todas as mídias que consome e implícito em todas as relações institucionais que teve até então, só vendo gente branca na mesma condição que ela mesma, entender minimamente a realidade de outra pessoa em outra condição de vida e outro contexto, me parece impossível a nível de sociedade.
Então voltamos aos datasets feitos de imagens pesquisadas pela internet compostos de fotos de divulgação e cenas de filmes com pessoas famosas, no fim das contas, estamos falando em grande parte de pessoas brancas, de fotos ajustadas por fotógrafos profissionais, de mulheres brancas, magras de cabelo liso e muito maquiadas e homens brancos também de cabelos brancos ou começando a ficar grisalhos, grande parte norte-americanos e britânicos, mas também com quantidades expressivas de outras partes da Europa como da Alemanha e outras regiões fortemente brancas como Canadá e Austrália. Este é basicamente o perfil indicado no artigo de pesquisadores da Microsoft ao publicar um dos datasets mais usados para treinar algoritmos de reconhecimento facial, o MSCeleb-1M.
conjunto de gráficos que indicam como a distribuição dos dados se encontra no dataset MSCeleb-1M
É interessante notar que no artigo original, a legenda sob estes gráficos ressalta a diversidade quando sabemos que pelo próprio método de coleta dos dados isso é absolutamente improvável ao ponto de ser quase impossível. Mas, lógico, estamos comparando este dataset com a realidade material como se ele devesse representa-la (o que seria o certo num mundo ideal), mas ter 1 milhão de imagens categorizadas de diversas formas tem seus méritos ainda que tenha tanta desproporção diante de dados demográfico e tudo o mais: se pode criar outros datasets a partir dele, não que isso resolva os problemas apontados, mas já ajuda a amenizar alguns aspectos ainda que ao final nem se tenha tantas imagens assim para o treinamento de um algoritmo.
Uma das dificuldades em escrever este texto é que nos artigos que detalham informações sobre os datasets de rosto, nem todos têm informações como este da Microsoft. E como, no geral, esses datasets se destinam a coisas como: treinar algoritmos para descrever pessoas, identificar expressões faciais, fazer diversos tipos de pré-treinamento onde a percepção de um rosto é importante para o algoritmo quando for treinar com dados reais, etc. Essas questões de raça e muitas vezes de gênero são deixadas de lado enquanto cada vez mais fica um vazio nas pesquisas com IA já que não tem como provar que a adaptação do algoritmo aos dados se dá com a mesma qualidade com mulheres e homens negros que se dá com mulheres e homens brancos, vide o famoso caso com a Michelle Obama.
Mas para não ficarmos num só exemplo, resolvi olhar com alguma atenção o dataset feito por pesquisadores da Universidade Chinesa de Hong Kong, o CelebA, ele segue o mesmo método de coleta que o da Microsoft e tem seu foco nos atributos das imagens indicados ou descritos em txt que se assemelha a um arquivo csv. No site do dataset tem os links para download via google drive e baidu drive, daí que acaba se tornando um dos mais acessíveis já que outros exigem que a pessoa que queira fazer uso do dataset exigem que esteja em alguma universidade ou restringe o acesso somente a redes como a do MEC aqui no Brasil.
Este gráfico mostra a distribuição de características descritas no dataset, sendo as barras azuis para ‘sim’ e rosas para ‘não’, e como é possível perceber, existem questões bem subjetivas aí como as ligadas a pecepção se a outra pessoa é gorda e/ou se é atraente. Mas está bem clara a predominância de pessoas identificadas como jovens (último gráfico).
Uma das muitas coisas que saltam aos olhos nesse dataset é o termo empregado para um dos atributos: “Pale Skin” - (Pele Pálida), o que nem de longe significa necessariamente pessoa não-branca, de modo que só um único atributo se refere a cor da pele mas absolutamente nenhum se refere a pessoas não-brancas ou pelo menos, que não tenham a pele clara. Mais uma vez chegamos no apagamento de cores de pele desde a concepção de uma proposta de algoritmo que será submetida para avaliação de pares.
Meu maior objetivo ao falar sobre esses dados para treinamento é deixar bem claro o caráter sistêmico da invisibilização de pessoas não-brancas (o que inclui os muitos descendentes de povos indígenas no continente americano, parte considerável dos povos árabes, indianos, pessoas negras, diversos povos que ocupam as ilhas da oceania muito antes dos colonizadores dominarem aquelas terras). A nível de humanidade temos uma imensa diversidade étnica que é quase sempre completamente ignorada em todas as etapas do desenvolvimento de um algoritmo que vai ser usado justamente num contexto tão diverso.
Os dados são apenas uma ponta do processo, embora seja realmente de fundamental importância para a qualidade do algoritmo, não deixa de ser uma parte num todo que também tem seus outros pontos de atenção. Eu pretendia treinar uma rede neural para identificar a raça de pessoas cujas fotos estão no CelebA mas enquanto eu procurava por datasets acabei me deparando com uma biblioteca chamada DeepFace, que como quase tudo na área tenta vender seu peixe através de números que indiquem percentuais de acerto. Porém as estatísticas eram relativas aos datasets como um todo, e como já vimos, há uma desigualdade gritante na representatividade que foge completamente ao que vemos em países que não fazem parte do dito “ocidente” que na realidade se refere a EUA, Canadá e parte da Europa. Enfim, apliquei o DeepFace no VMER (ao final deixei links para tudo), basicamente selecionei 50 imagens aleatórias e dessas só 4 foram de pessoas afroamericanas (no artigo já diz que só 7.7% das imagens de treinamento e 6.1% das imagens de teste são imagens de pessoas negras, então numa distribuição normal, era de se esperar ter entre 3 e 5 imagens representando esse grupo). O resultado está logo abaixo:
A única mulher foi classificada como homem e metade das pessoas negras foi identificada incorretamente.
Vou deixar para o blog uma análise mais completa de datasets e dessa lib muito bem trabalhada para ser algo “pronto para uso” mas que, seja pelos datasets ou pela falta de uma avaliação mais críticas sobre o resultado do treinamento, pelo menos pelos testes iniciais que fiz não sei dizer se posso chamar de decepcionante ou dentro do esperado considerando essas nuances tão comuns dessa forma de discriminação fundamentada sobre o apagamento e subrepresentatividade. Enfim, espero concluir as análises dentro de 2 semanas (assim espero) e deixarei tudo no geleiadementa.com.
Sobre as métricas
O aprendizado supervisionado em parte se assemelha à brincadeira que aqui chamam de “cabra cega”, isto é, uma criaça fica de olhos vendados, as outras se escondem e começam a gritar se “tá quente” ou “tá frio” para indicar a aproximação ou distanciamento da criança vendada das outras crianças escondidas. Enquanto no caso das crianças há um observador que lida com um ambiente comum a todos, e portanto, sua avaliação da proximidade e direção da criança vendada para as outras crianças tem respaldo na própria realidade, ressalto isso porque quando falamos de coisas de natureza subjetiva como “o que é uma pele bonita?”, “o que é um rosto bonito?”, “o que é uma bela fotografia?”, adentramos em terrenos incertos onde questões culturais, históricas, étnicas e até ligadas a algum modismo passageiro vai influenciar diretamente a percepção. Se no caso da brincadeira que falei a pouco a distância entre os pontos A e B é a mesma independente do sistema métrico ou da nacionalidade e idade do observador, no caso dos filtros desenvolvidos a base de aprendizado de máquina e outros algoritmos que lidam o manejo de imagens, a distância entre a foto que se tem e o objetivo dado ao algoritmo vai distanciar enormemente na percepção do usuário comum.
Meses atrás, antes dessa longa pausa, escrevi uma nota sobre uma pesquisa acerca da capacidade um uma rede neural aprender um comportamento com base na interação humana (falando assim parece ser algo bem mais profundo e existencialista do que realmente é, na verdade era só sobre seguir por determinado caminho num ambiente 3d), mas o que importa para nós agora é só uma das críticas feitas pelos próprios pesquisadores acerca do trabalho que tinham executado. Lá no final do artigo eles apontavam como a falta de uma métrica adequada para medir esse aprendizado é uma barreira para o desenvolvimento de um algoritmo assim. E historicamente esse mesmo questionamento se repete de diferentes formas em todas as épocas. Desde a Escola Pitagórica até mesmo o artigo de Alan Turing que deu origem aos computadores modernos onde descreve o funcionamento do que ficou conhecido como Máquina de Turing lidam com a questão fundamental que é “qual o limite da matemática? O que é que pode ser calculável, quantificável, medido ou não?", toda vez que temos de fazer escolhas acerca da métrica usada num treinamento de um algoritmo que lida com algo que não é simplesmente medido com uma régua ou balança ou outra ferramenta, encaramos essa mesma questão filosófica.
Uma saída comum é pensar com viés estatístico: diante de um volume realmente grande de dados, se tem uma aproximação com a realidade, ou seja, quanto mais fotos, melhor. Mas isso se mostra tão vago ao ponto de ser errado desde o princípio ao abrir um imenso espaço livre de críticas que ignora a realidade, e como já argumentei ao falar de buscar imagens em sites de busca, aqui vale mais a pena usar outro argumento, e esse bem adequado a esta época eleitoral. A validade de uma pesquisa de intenção de voto não se dá pela quantidade de entrevistados, mas pela distribuição de características dos entrevistados de acordo com dados do censo, mantendo as proporções de pessoas brancas e não-brancas, de pessoas que moram no interior e nas capitais, considerando a faixa de renda, e vários etcéteras, além de obviamente não ter perguntas que induzam a respostas esperadas pelos responsáveis pela pesquisa. Pesquisa não é feita para agradar ninguém, mas para se compreender a realidade.
No contexto de se criar um algoritmo para aplicar um filtro numa imagem, seguindo essa linha de raciocínio, usar um dataset de fotos feitas por profissionais de forma eclética e envolvendo fotógrafos do mundo inteiro (como um dataset gerado a partir de imagens no shuttlestock) não é garantia de diversidade já que para haver uma correlação com o público usuário do futuro algoritmo treinado, precisaríamos primeiro estabelecer um conhecimento tanto acerca da origem daquelas fotos quanto das preferências e necessidades e até mesmo da cultura do público. Em resumo, o problema da métrica, que é típica da avaliação dos algoritmos, transpassa a própria área de computação, não apenas como um problema filosófico, mas também como uma clara deficiência em pesquisas antropológicas que deveriam ser comuns para as empresas conhecerem o público consumidor. O impacto dessa cegueira sobre as métricas é perceptível já no dataset selecionado mas acima de tudo, se reflete no uso do algoritmo, afinal, que pessoa negra já não percebeu que o algoritmo que “embeleza” a foto no celular tende a tornar a pessoa mais branca? Mas ainda mais preocupante que isso é o estímulo a transtornos como a dismorfia corporal.
A quem serve o algoritmo
Meu argumento anterior tem uma grande lacuna: trata como se todas as escolhas fossem técnicas quando sabemos que não são, e mesmo uma escolha técnica é fruto de um posicionamento político que revela entre outras coisas, elementos da visão de mundo da pessoa que decidiu ir por um ou por outro caminho de acordo com diferentes justificativas. Dessa forma, os caminhos mais óbvios do argumento começam pela cultura e terminam no indivíduo, enfim, chegaremos na questão da bolha acadêmica, da bolha da indústria de imagens humanas que transpassa a da moda e o trabalho de designers e fotógrafos nesse caso.
Do mesmo jeito que a questão do abandono escolar não é um problema ligado estritamente a sala de aula, mas é algo muito maior fundamentalmente fruto de um processo social, histórico, econômico e político que culmina num contexto que leva ao abandono escolar tornando isso um sintoma de algo ainda maior e estrutural acerca da desigualdade. E um dos meus objetivos desse texto é justamente apontar partes do processo em que se constroem aplicações de IA que reproduzem o racismo sob uma forma de discriminação, sendo, portanto, uma consequência/sinal de algo estrutural e aqui considero o racismo como algo estrutural ao meio acadêmico e corporativo. Recomendo muito o livro Racismo Estrutural de Silvio Almeida, nele, o autor faz uma boa diferenciação entre preconceito, racismo e discriminação, e é justamente a partir dele que resumo esses conceitos:
- Preconceito: Lida com estereótipos, relacionando a capacidade da pessoa com alguma característica racializada, o que em último caso, imprime um ideal de posição na sociedade ligada a essas características no imaginário da população.
- Discriminação: É sempre relacionado ao poder e resultando numa forma de estratificação social ao se estabelecer diferenças entre pessoas com base em alguma característica como gênero, orientação sexual, etnia, região de origem, etc. A discriminação se subdivide entre:
- Direta: Caracterizada pelo repúdioa indivíduos ou grupos, como é o caso de ter o atendimento negado num estabelecimento comercial por conta da raça, por exemplo.
- Indireta: Trata justamente de ignorar a situação de determinados grupos, exatamente como todo o esse apagamento de pessoas negras que tenho falado neste texto.
- Racismo:: Se refere a um sistema que se vale do preconceito e da discriminação sobre grupos racializados para manter determinada ordem social, de modo que o racismo se torna uma regra, e não excessão, sendo reproduzida socialmente ao nível de “normalidade”.
No livro, o autor ainda define o racismo individual e institucional para chegar no racismo estrutural, o que não entrarei mais a fundo pois o caráter institucional e individual a este ponto já deve estar claro o suficiente sobre como se aplica nas pesquisas acadêmicas e na produção de algoritmos como produtos comerciais. Fingir igualdade num ambiente desigual, da mesma forma que tratar como normal/natural algo que não é apenas replica essas violências todas. Falar que o racismo é estrutural não significa que é indissolúvel, tendo em vista que são pessoas que agem em nome de instituições, são pessoas que produzem artigos acadêmicos, são elas que avaliam e decidem quais algoritmos serão usados em cada contexto.
Antes dessa longa pausa, quando escrevi sobre a relação entre tecnologia e guerra citei o caso do criador do YOLO e de sua decisão em deixar de fazer pesquisas em visão computacional. Mais uma vez repito que é bem óbvio o uso desse tipo de algoritmo para tornar drones mais precisos e mais letais mas o meio tão positivista da área de tecnologia ofusca muito dessa visão crítica sobre usos da tecnologia e sobre a forma como se desenvolve, o que muito frequentemente é explícito através das redes de financiamento em pesquisas e desenvolvimento. É justamente a quem paga que o produto deve servir, ou seja, ao dono da empresa e aos investidores. E o racismo como processo histórico de segregação, se torna parte desse esforço ao lidar com coisas como o senso estético, que se torna, entre outras coisas, um elemento de aceitação social tendo como referência datasets como os já citados. Se nos anos de 1980 e 1990 a TV era onipresente e definidora do que é belo, hoje essa tarefa está muito mais ligada a redes comerciais que estimulam o uso de filtros cada vez mais sofisticados. A mudança do meio não altera o caráter estrutural do ideal de beleza propagado, se até mesmo o 1º filme fotográfico colorido da Kodak não foi feito para pessoas negras e isso só mudou por pressão da indústria, já que as pessoas de pele escura foram sistematicamente ignoradas.
Ignorar o racismo estrutural sob uma aparência de asséptica da tecnologia, colocando na crença da pureza tecnológica um atributo de perfeição, nada mais é do que um movimento fortemente ideológico e anti-ciência que reproduz a discriminação típica de relações de poder que visam garantir opressões e desigualdades. A colocação do Tarcizio Silva num slide disponível em seu blog é perfeita nesse aspecto:
Também é importante destacar a questão do uso de algoritmos de reconhecimento facial na segurança pública e como sistema de recomendação como auxiliar de decições na justiça penal, temas esses já recorrentes aqui desde a 1ª edição da newsletter mas que a cada dia parece mais necessário haver transparência num processo que deveria ser minimamente democrático.
Ideias e propostas
Com certeza o primeiro passo para se ter mais justiça social é não normalizar o que não pode ser considerado normal. Faz tempo que falo sobre a necessidade de se criar protocolos e padrões que garantam alguma confiabilidade, e como ficou óbvio aqui, o apagamento de pessoas não-brancas no processo de treinamento e validação de algoritmos, seja na indústria ou na academia, explicita uma discriminação que precisa ser atacada, se possível, institucionalmente mas isso é uma consequência de um processo maior que até mesmo esta newsletter se mostra como consequência: o momento atual da luta de classes, isto é, pelas transformações sociais intrínsecas ao jogo de forças entre grupos de pessoas em situação de oposição pela sua posição social, onde a organização de algumas minorias políticas (que são parte expressiva da população e no caso de países como o Brasil, maior parte da população), criou um acervo material e teórico que fundamenta ações contra-hegemônicas.
Se temos visto ao longo dos últimos anos esses apontamentos, essas críticas, essas pesquisas e até conteúdos teóricos que explicam e destrincham manifestações do racismo estrutural em tantos pormenores da vida moderna e suas consequências, o que inclui até algoritmos na câmera do celular, todo o mérito se dá a grupos e associações de pessoas negras e a pessoas como Fanon, que desenvolveu o conceito de orientalismo. Também é importante salientar a importância de pessoas não-brancas em situação de destaque na política ou na grande mídia, e um bom exemplo é o ex-presidente norte-americano Barack Obama e sua sua esposa, muitas reportagens sobre algoritmos reproduzindo racismo só foram feitas porque eram figuras como eles envolvidas, como essa que fala de algoritmos que embranquecem pessoas, ou essa acerca da baixa qualidade da saída de algoritmos quando envolve mulheres negras, e usam só imagens de mulheres negras muito famosas para deixar a mensagem mais efetiva.
Mas focando estritamente em práticas ligadas a pesquisa e desenvolvimento de algoritmos, pretendo fazer outra publicação, possivelmente apenas no blog, onde vou detalhar formas de explorar bancos de dados, métricas e avaliações de algoritmos, mas por enquanto, vamos a uma visão geral de cada um desses pontos:
Datasets
A construção de datasets envolvendo imagens de pessoas esbarram em um monte de questões legais e éticas mas hoje se tem como gerar imagens a partir de características arbritrárias, datasets sintéticos tem se tornado muito comuns para viabilizar pesquisas como as da área de saúde onde os laboratórios detém as imagens de exames e não é comum haver uma política de incentivo a pesquisa por parte desses laboratórios. Faz alguns anos que a NVidia surpreendeu a todos justamente com uma rede neural capaz de produzir imagens de rostos a partir de outras fotos, inclusive misturando características, e segundo o site do próprio projeto onde se tem uma lista de versões do algoritmo, a primeira versão foi publicada em 2017, de lá para cá surgiram vários outros e muitos desses, à semelhança do stylegan, com o código e pesos das redes treinadas disponíveis publicamente através de código no github.
Usar datasets sintéticos não garantem nem qualidade e nem equidade na qualidade do algoritmo treinado em relação às características representadas nas imagens, essa qualidade almejada é consequência de um trabalho mais extenso que tem por base avaliar o próprio dataset de acordo com o uso real que o algoritmo deverá enfrentar em ambiente de produção. É tão complicado falar de algum procedimento aqui ao ponto de ser quase impossível falar de algum passo obrigatório já que, no exemplo de uma câmera num carro autônomo destinada a autenticação facial do motorista, as características geográficas e climáticas acabam influenciando bastante, afinal uma pessoa toda empacotada pelo frio siberiano vai ter uma aparência diferente ao de um tuaregue no deserto do Saara que por sua vez, vai ser bem diferente de um brasileiro no litoral nordestino. Sobre este ponto específico cabe adentrar no próximo tópico: as métricas.
Métricas
Falar em “métrica” parece algo bastante vago mas vou fazer o possível para parecer mais concreto: no aprendizado de máquina são métricas que norteiam o próprio rumo do aprendizado, normalmente sob a forma de alguma medida de adequação do algoritmo, um exemplo bem básico é na classificação comparar a resposta dada pelo algoritmo e o resultado esperado, essa distância é o erro, que trocando em miúdos significa a distância do que se tem para o ideal. Mas restringir a métrica a isso é muito pouco para muitos casos, já que isso indica apenas alguma adaptação aos dados ou no pior dos casos a completa adaptação a algo ideal mas que está longe da realidade e ofusca a não-adaptação a subconjuntos dos mesmos dados, como é o caso de um algoritmo funcionar super bem para homens brancos de meia idade e pessimamente mal para mulheres negras de todas as idades, por isso é importante segmentar também as métricas durante a avaliação dos algoritmos, e dependendo do caso, se for viável, durante o treinamento.
Outro ponto importante é conseguir saber o que um algoritmo está levando em conta, e embora redes neurais hoje sejam tão populares, ainda são algoritmos tidos como “caixa preta”, onde não é possível saber só de olhar seus parâmetros (que muito facilmente ultrapassam os milhões e até bilhões em quantidade), exigindo um conjunto de métodos para explorar seus resultados e inclusive seu próprio funcionamento. A convolução da forma como é usada nas redes neurais é como um filtro de dados com perdas, o que significa que o “olhar” do algoritmo será direcionado para alguns padrões de pixels na imagem, de modo que mesmo com uma rede neural bem sofisticada e com ótimo índice de acerto em identificar sorrisos usando camadas convolucionais a gente não pode ter certeza que está mesmo identificando a boca ou qualquer outra coisa presente na imagem, é preciso usar ferramentas voltadas para interpretar algoritmos como o captum.
Concluindo…
Falar de ferramentas e algumas boas práticas servem apenas para dizer: “tá vendo? as coisas não são difíceis, fazer um bom trabalho é algo que tem sua complexidade mas não é algo tão complicado que chega a ser impossível”, na verdade, o que fica cada vez mais claro com o tempo é a total falta de vontade política de se fazer algo a respeito. Enquanto não há leis que dizem quais parâmetros de qualidade algoritmos devem obedecer para serem usados em produção, quando não há práticas estabelecidas como fundamentais (e até mesmo obrigatórias), enfim, enquanto a mistificação e a propaganda sobre os algoritmos blindarem empresas e demais responsáveis de encarar sua responsabilidade e vão continuar vendendo algoritmos mal treinados, racistas e misóginas. Por isso é preciso aumentar a discussão pública de forma crítica sobre a tecnologia, seus usos e consequências, só sob muita pressão é que qualquer empresa mudará seu posicionamento, afinal ideologia de empresa é o lucro, e nós somos parte do processo que dá lucro a elas.
Peço desculpas por não disponibilizar os códigos de imediato mas é que admito que ficou muito bagunçado e como pretendo fazer uma análise de datasets e algoritmos de forma mais detalhada e vou reaproveitar os códigos que usei aqui, então vou deixar para disponibilizar tudo de uma vez bem organizado e documentado, mas qualquer coisa, podem me mandar um email pelo geleiadementa@tuta.io que envio meus códigos.
Links relacionados
Site com torrents de datasets (deixei na pesquisa de datasets de rostos): https://academictorrents.com/browse.php?search=face&c6=1
Recomendo muito essa entrevista com Silvio Almeida: https://www.youtube.com/watch?v=PF0r9DniS_E
Outra pessoa que tenho uma enorme admiração pelo trabalho é o Tarcizio Silva: https://tarciziosilva.com.br/blog/, inclusive no blog dele há o vídeo e os slides de um workshop que ele ministrou com o título “O risco do algoritmo: o uso de RIPD no combate à discriminação algorítmica” que eu recomendo demais pelo menos passar a vista pelos slides.
dataset que usei:
- Vggface2: A dataset for recognising faces across pose and age
- VGG-Face2 Mivia Ethnicity Recognition (VMER) Dataset
- CelebA
- MSCeleb