Machine Learning Explicado

Podemos pensar num algoritmo como uma sequência lógica e finita de passos, cujo objetivo é resolver um determinado problema matemático.

De uma forma bastante simplificada, um algoritmo é uma receita. Podemos ainda pensar na programação como o processo de preparar um programa instrucional (uma receita), para um dispositivo, como um computador.

Associando estes dois conceitos, a solução para muitos problemas consistia na preparação destas receitas específicas, lógicas, que eram dadas a computadores. 

Este processo funciona particularmente bem quando conhecemos o método que nos permite solucionar o problema: é só escrever a receita. 

Mas o que fazer quando não conhecemos a solução e apenas sabemos o início (os inputs) e possivelmente, o fim (os outputs)? O que fazer quando a quantidade de dados que nos chega é de tal ordem de grandeza que se torna “humanamente” impossível de se analisar?

É aqui que entra a área de Machine Learning (ML).

ML, sendo um ramo da Inteligência Artificial (IA), pode ser visto como um conjunto de métodos que permite a um computador aprender a solucionar um problema. 

Esta aprendizagem apenas requer os dados do problema. Desta forma, há uma mudança de paradigma na programação. 

Passamos de: indicar explicitamente uma receita a um computador para este solucionar um problema (onde temos que saber, a priori, como fazer esta receita) para apenas ter que providenciar explicitamente os dados do problema em questão, onde o computador aprende a receita.

Deste modo, podemos resumir uma estratégia de resolução de um problema usando ML aos seguintes passos: 

  • 1) Recolha extensiva de dados acerca do problema. Teoricamente, quantos mais dados, melhor, visto garantir melhor a representatividade (ou seja, garantir que há o maior número possível de casos diferentes da vida real). Estes dados terão ainda que ter determinado tipo de informação, consoante o tipo de aprendizagem (supervisionada, não-supervisionada, aprendizagem reforçada), como explicado adiante;

  • 2) Providenciar os dados a um algoritmo de ML. Este criará um modelo que se adapta aos dados (esta fase é conhecida como treino de um modelo);

  • 3) Aplicar o modelo em novos dados. Este modelo poderá ser integrado num produto, ou processo, tendo assim uma aplicabilidade no mundo real. 

A aplicação de modelos de ML em produtos ou processos tem acontecido de forma vertiginosa nos últimos tempos. E porquê?

Em muitas tarefas, estes modelos ultrapassam os humanos e não só: podem realizar estas tarefas muito mais rapidamente. Para além disso, é muito mais fácil escalar uma máquina para uma tarefa de maiores dimensões e também copiá-la o número de vezes necessárias.

Dependendo do problema, a aprendizagem de um humano pode levar anos e ter elevados custos. Adicionalmente, robôs conseguem trabalhar em locais humanamente impossíveis, seja noutro planeta ou nas profundezas do oceano, por exemplo. 

Portanto, apesar de numa determinada tarefa, um especialista humano conseguir desempenhá-la melhor que um modelo de ML, este último poderá ainda ser mais vantajoso devido a estes fatores todos.

Alguns dos usos comuns deste ramo da IA são: em motores de busca online, deteção de spam na nossa inbox, robôs virtuais assistentes que esclarecem dúvidas a utilizadores de um serviço/produto (chatbots), soluções de automação de mecanismos nas empresas, reconhecimento de voz, sistemas de recomendação segundo as nossas preferências. 

Para as empresas esta tecnologia tem inúmeras vantagens: 

  • 1 Permite tomar decisões mais rápidas, providenciando aos gestores caminhos mais rápidos e acertados sobre onde investir e quando investir, tempo e recursos; 

  • 2 Pode tornar uma empresa mais adaptável: se os algoritmos mostram resultados “aqui e agora”, os gestores podem ajustar em tempo real o curso do negócio;

  • 3 Possibilidade de se retirarem melhores insights, visto produzimos 2,5 quintilhões de bytes de dados todos os dias. O processamento de dados desta ordem de grandeza não está ao alcance do cérebro humano; 

  • 4 Maior eficiência e melhores resultados: os outputs obtidos podem revolucionar completamente os processos de uma empresa, fazer previsões que podem ajudar a reduzir custos e melhorar resultados, eliminando/reduzindo o erro humano do processo.

Mas não são apenas para as empresas as vantagens enormes desta tecnologia, a sociedade tem muito a beneficiar.

Na área da saúde, ML é fortemente integrado em software de diagnósticos assistidos por computador, computer-aided detection, ajudando na interpretação de imagens médicas técnicas, como raios-x ou ressonância magnética. O software processa estas imagens e procura evidências na sua aparência para apoiar a decisão tomada pelo profissional.

ML também é usado para fazer prognósticos de doenças, como por exemplo em doenças degenerativas do cérebro (esclerose múltipla, alzheimer) a fim de, com os primeiros anos de doença, prever como é que esta progride nos anos seguintes. O objetivo passa por apoiar a decisão do médico para ajudar a escolher a medicação do doente.

No entanto, estes métodos ainda não conseguem resolver todos os problemas existentes, quer seja na sociedade, na saúde ou numa empresa.

Relativamente ao enviesamento, trata-se de um padrão de distorção de julgamento que não permite imparcialidade. É um mecanismo natural do cérebro humano, causado pelo ambiente e pelas experiências. Por ser um mecanismo humano, pode ser difícil identificá-lo. Se são os humanos que providenciam os dados aos algoritmos de ML, é possível que alguns tipos de bias sejam também providenciados. Os modelos treinados de ML são criados por algoritmos, isto é, por conjuntos de operações lógicas finitas. Deste modo, estas operações limitam-se a encontrar uma solução para os dados providenciados, aprendendo as relações existentes nestes. 

Existem três tipos de enviesamento:

  • Interaction Bias, o algoritmo torna-se enviesado pela interação dos utilizadores.

Por exemplo, a Google pediu aos utilizadores que desenhassem sapatos para treinar modelos de reconhecimento automático. Como os utilizadores desenharam maioritariamente um sapato masculino, o computador ficou com dificuldade em reconhecer sapatos femininos e não conseguiu reconhecer sapatos de salto-alto.

  •  Latent e Selection Bias, o algoritmo relaciona incorretamente dados correlacionados, mas, que na verdade não são causais, como raça ou género.

Por exemplo, se mostrarmos ao computador imagens de cientistas e se dessas 50 imagens 40 forem homens e apenas 10 mulheres, o computador poderá não reconhecer tão facilmente uma mulher cientista apenas pelo facto de ser mulher. 

Estes enviesamentos, para além de existentes, podem tornar-se difíceis de detetar devido a um fator em cima mencionado: uma formalização incompleta do problema. Como os modelos se limitam a aprender as relações existentes nos modelos, os humanos têm que apostar numa formalização completa do problema, ou seja: quando queremos resolver/otimizar um problema, geralmente não queremos o seu sucesso a todo o custo. Há que garantir um conjunto de princípios éticos e morais. Em alguns casos, poderá ser difícil formular o problema de forma completa, especialmente quando o conhecimento a priori é reduzido.

Vejamos mais exemplos, de modo a perceber melhor a importância de reconhecer possíveis enviesamentos. 

Em 2018, o departamento de recursos humanos da empresa Amazon utilizou um software de recrutamento entre 2014 e 2017 para ajudar a rever currículos e fazer recomendações. O software foi, contudo, considerado mais favorável aos candidatos masculinos porque o seu modelo foi treinado em currículos submetidos à empresa durante a última década, quando muitos mais candidatos masculinos foram contratados. O software alegadamente desvalorizou os currículos que continham a palavra “mulheres” ou implicava que o candidato era do sexo feminino. Desde então, a Amazon abandonou o software. A empresa não negou ter utilizado a ferramenta para produzir recomendações, mas disse que nunca foi utilizada para avaliar candidatos. 

Também em 2018, a polícia de tráfego chinesa, que utilizava ML para identificar peões desobedientes no trânsito das cidades ou jaywalkers, identificou erradamente a cara do milionário Mingzhu Dong que estava exposta numa foto num autocarro. Isto levou a uma apreensão errada do milionário, tendo este erro sido amplificado nas redes sociais chinesas.

Como se pode verificar, por ser uma tecnologia com uma aplicabilidade recente nas nossas vidas, ainda há muito para melhorar na integração de ML e outras tecnologias de IA nas nossas vidas diárias. Os modelos treinados são cada vez mais complexos (o recente crescimento no uso de Deep Learning é um claro exemplo), o que pode tornar ainda mais difícil a integração de ML no dia-a-dia das comunidades que são céticas em relação ao seu uso. Uma grande solução para estas dificuldades, pode passar pela aposta na interpretabilidade dos modelos treinados, especialmente em problemas que acarretem um risco para o utilizador.

Estas questões são de tal modo importantes que a União Europeia (UE) incluiu no Regulamento Geral da Proteção de Dados (RGPD), medidas que visam à ética e segurança dos que utilizam esta tecnologia em dados pessoais, como o caso do vulgarmente chamado “direito à explicação”presente no Artigo 22:

“A proteção de dados da UE restringe unicamente a tomada de decisão individual automatizada (tomar uma decisão automaticamente sem qualquer envolvimento humano) e o profiling (tratamento automatizado de dados pessoais para avaliar certas coisas sobre um indivíduo). O profiling pode fazer parte de um processo de tomada de decisão automatizado.

Requisitos adicionais aplicam-se apenas à tomada de decisão automatizada que tenha efeitos legais ou de igual modo significativos.

(1) Os responsáveis pelo tratamento só podem realizar este tipo de tomada de decisão quando a decisão for: (i) necessária para a celebração ou execução de um contrato; ou (ii) autorizada pela legislação da União ou dos Estados-Membros aplicável ao responsável pelo tratamento; ou (iii) baseada no consentimento explícito do indivíduo.

(2) Os responsáveis pelo tratamento devem: (i) fornecer aos indivíduos informações sobre o tratamento; (ii) fornecer formas simples de solicitar a intervenção humana ou contestar uma decisão; (iii) efectuar verificações regulares para se certificarem de que os sistemas automatizados estão a funcionar como previsto.

Existem restrições adicionais à utilização de dados pessoais de categorias especiais e de crianças.”

Existem vários tipos de aprendizagem, em ML, nomeadamente: aprendizagem supervisionada, aprendizagem não-supervisionada, aprendizagem reforçada, ou reinforcement learning.

Como é que a máquina aprende?

Por aprendizagem supervisionada. 

A maioria das metodologias usadas em ML, com que lidamos diariamente, usam aprendizagem supervisionada.

Podemos pensar nesta abordagem como o caso de um professor que supervisiona o processo de aprendizagem de um aluno: o professor dá-lhe problemas (features) e as respetivas soluções (outputs).

A partir dos problemas e respetivas soluções, o aluno (o modelo) vai aprendendo relações existentes.

Matematicamente falando, aprendizagem supervisionada necessita de um input (x) e do respetivo output (y), na qual se utiliza um algoritmo de aprendizagem para criar um modelo. Este modelo f pode ser traduzido numa função matemática, nomeadamente y =f(X), que será obtida de forma diferente, consoante o tipo de classificador utilizado.

Ou seja, consoante o algoritmo de aprendizagem utilizado (exemplo: K Nearest Neighbours, Support Vector Machines, Árvore de Decisão, etc).

Na aprendizagem supervisionada existem dois tipos de problemas: classificação e regressão. A classificação diz respeito a um output categórico, como “cão/gato” ou “feliz/triste”, por exemplo.

A regressão diz respeito a um output contínuo, como o preço de ações no mercado da bolsa, por exemplo. É possível a conversão de um problema de regressão num de classificação através da discretização dos valores de output. 

Aprendizagem não-supervisionada

Aprendizagem não-supervisionada é utilizada quando apenas os inputs (X) estão disponíveis. Nestes casos, não há uma solução “alvo”, mas sim o objectivo de encontrar grupos/associações nos dados e a sua estrutura. Os padrões que daqui emergem terão que ser interpretados com conhecimento a priori do problema em questão.

Podemos classificar os problemas de aprendizagem não-supervisionada em dois tipos: clustering e associação. Nos problemas do primeiro tipo, pretende-se descobrir grupos distintos e inerentes, tal como agrupar clientes a um comportamento de consumo. Nos problemas do segundo, pretende-se retirar ilações que descrevam grande parte dos seus dados, como por exemplo: “As pessoas que compram fraldas tendem a comprar cerveja”.

Reinforcement Learning

É um tipo de aprendizagem em que o objetivo de um modelo é o de maximizar uma determinada recompensa. Não lhe é “dito” que ações tomar, pois é essa a sua função: descobrir que ações levarão a uma maior recompensa. Podemos assim dizer que este método funciona sobre o princípio de feedback. Não existe um conjunto fixo de dados de formação, mas sim um objetivo ou conjunto de objetivos que um agente é obrigado a atingir.

Reinforcement learning funciona particularmente bem para jogos, como é o caso do jogo Go, onde conseguiu bater o melhor jogador humano do mundo. É intuitivo adaptar o desempenho de um videojogo a um sistema de recompensa: ter maior pontuação, derrotar mais inimigos, passar o nível em menor tempo, entre outros. 

Caso Prático – Veículos Autónomos

Em 2018, a empresa Uber matou um peão em testes com veículos autónomos. Foi divulgado que o veículo Uber estava em modo autónomo, com um condutor de segurança humana ao volante. A empresa descobriu que o seu software de auto-condução decidiu não tomar quaisquer medidas após os sensores do carro terem detetado o peão.

O modo autónomo da Uber desativou o sistema de travagem automática de emergência da Volvo instalado de fábrica,  de acordo com o relatório preliminar do US National Transportation Safety Board sobre o acidente.

Na sequência da tragédia, a Uber suspendeu os testes de auto-condução nas cidades norte- americanas e a Nvidia, assim como a Toyota, também suspenderam os seus testes de auto-condução nos EUA. Oito meses após o acidente, a Uber anunciou planos para retomar os testes rodoviários de auto-condução em Pittsburgh, embora o futuro da auto-condução da empresa continue incerto. 

As empresas BMW, Ford, GM, Honda, Mercedes-Benz e outras já têm os seus próprios protótipos com um grau bastante surpreendente de assistência ao condutor.

Apesar de ainda não ser possível existir no mercado um veículo totalmente autónomo, a tecnologia já permite uma independência muito grande. Avanços tecnológicos em condução autónoma, são pois, iminentes. 

Os algoritmos de ML podem contribuir para que esta mudança no paradigma nos veículos autónomos seja cada vez mais uma realidade, mas antes é importante entender o que é um veículo autónomo e onde nos situamos nesta evolução. 

Que tecnologia é utilizada na automação dos veículos?

É importante entender que um veículo autónomo é caracterizado pela sua capacidade de se mover em segurança, com pouco ou nenhum contributo humano.

Segundo a Society of Automotive Engineers (ver figura abaixo), existem cinco níveis de automação. Estes traduzem o espectro de automação de veículos, desde os assistentes de condução aos veículos totalmente autónomos.

Os carros mais recentes possuem tecnologia de automação de nível 2, como o caso do sistema cruise control adaptativo (ACC) ou estacionamento remoto. 

Os veículos autónomos combinam uma variedade de sensores de tecnologia como radar, sonar, som, luz, sistema de GPS e odometria para sensores de movimento. Prevê-se que a passagem do nível 2 para o 3 estará dependente dos avanços tecnológicos nos algoritmos de IA utilizados.

Neste, o condutor apenas supervisiona o processo de condução. Nos seguintes níveis, o veículo domina, progressivamente, o processo de condução até chegar a um funcionamento de automação completa. O software de IA do carro está ligado a todos os sensores e recolhe entradas do Google Street View, das câmaras de vídeo no interior do carro. Estes inputs são utilizados em frameworks que automaticamente criam e seleccionam modelos de Machine Learning, nomeadamente de Deep Learning.

Os modelos treinados são Redes de Convolução Neuronais, vulgarmente conhecidos como CNNs (Convolutional Neuronal Networks). O tipo de aprendizagem utilizado é supervisionado.

Estas redes são muito usadas em inputs de formato imagem, na área de visão computacional. O uso de CNNs (e de outros modelos de Deep Learning) tem vindo a ganhar popularidade com o aumento do poder computacional disponível, especialmente desde o seu uso no famoso concurso ImageNet Large Scale Visual Recognition Challenge. Na edição de 2012 deste concurso, o modelo vencedor foi uma CNN.

Qual é a vantagem da utlização de veículos autónomos?

Em primeiro lugar, pode salvar muitas vidas, estima-se que nos EUA os acidentes de automóvel matem 32.000 por ano e os carros autónomos podem reduzir substancialmente este número máquina tem um rendimento constante: não é influenciado por emoções ou substâncias psicotrópicas. Para além do mais, a replicação do modelo treinado é bastante fácil, ao contrário do processo custoso que é treinar um humano (aprender o código da estrada e tirar a carta de condução).  

No entanto, há que ressalvar que não se prevê que os carros-robô irão acabar com todos os acidentes de condução. É possível a existência de problemas de software, sensores desalinhados, ou até mesmo um possível problema no treino dos modelos. Mas à partida, podemos esperar uma redução significativa de mortes por acidentes de condução.

Uma outra grande vantagem, talvez a mais aliciante: vai oferecer ao humano mais tempo. 

Não será necessário ter as mãos no volante, os pés nos pedais ou a mente na estrada. Podemos, em vez disso, concentrarmo-nos em outras coisas. Assim, não só os veículos autónomos poderão ser mais seguros e confortáveis, como também poderão dar a liberdade de passar tempo da forma que se deseja. 

Quais os desafios da condução autónoma?

Depois de todas as vantagens que já numeramos e sabendo que já existe a tecnologia necessária, porque é que ainda estamos longe de ver veículos autónomos na estrada? Existem ainda problemas de formulação do problema e enviesamento por resolver.

Como foi referido anteriormente, o software destes veículos usa modelos de Deep Learning. Estes possuem milhões de parâmetros, são muito complexos, tornando-se muito difícil interpretar os modelos. Logo, é muito difícil conseguir uma explicação humanamente compreensível. Será justo então que estes modelos sejam usados na vida real (em que podem colocar vidas em risco), se nem percebemos o que está a acontecer por “detrás”?

Poderá o modelo estar a aprender relações que são humanamente inválidas e que, nesse cenário, possam constituir perigo? 

Vejamos o seguintes caso: um estudo da Universidade de Washington em 2017 demonstrou que os carros autónomos não reconheciam sinais de stop que tinham sido adulterados o que prova que apesar desta tecnologia se ter revelado eficaz para a classificação de imagens, pode cometer “erros” que comprometam vidas humanas.

Um ser humano, por exemplo, consegue identificar um sinal stop nestes casos sem problemas.

De modo a colmatar este erro, há que fornecer aos modelos de treino sinais de stop adulterados. No entanto, enquanto não compreendermos intrinsecamente um modelo, estaremos sempre sujeitos a “erros”, pois nunca conseguiremos fazer todos os testes possíveis e não percebemos a lógica da tomada de decisão do modelo. 

Adicionalmente, como estes modelos se baseiam em aprendizagem supervisionada, têm que ser realizadas várias horas de treino de condução (e de teste para validação dos modelos) de forma bastante rigorosa.

Esta recolha de dados pode sofrer de interaction bias. Pode existir ainda bias de selecção, por haver falta de representatividade dos elementos que constituem o ambiente do veículo autónomo.

Por fim, um outro ponto mais complexo com a formulação de problema na condução autónoma é o caso do dilema do bonde. Neste dilema, explica-se: 

“Um bonde está fora de controle numa estrada. No seu caminho estão cinco pessoas amarradas na pista por um filósofo. Felizmente, é possível apertar um botão que encaminhará o bonde para um percurso diferente, mas ali, por desgraça, encontra-se outra pessoa também atada. Deve-se apertar o botão?”.

Este é um problema muito complexo de resolver, pois não se trata apenas de formular algoritmicamente a solução, como é que se pode formular um problema que não tem solução para os humanos?

Se transportarmos este dilema para este caso prático, é importante que os veículos autónomos escolham entre, por exemplo, atropelar um homem idoso ou um jovem que se encontre no caminho. 

Não há dúvidas que ML é uma ferramenta poderosa e que, graças ao ter mudado o paradigma da programação, é hoje muito utilizada.

É expectável que o seu uso seja ainda maior no futuro. No entanto, ainda existem muitas questões por resolver de modo a poder-se utilizar ML não só de forma segura, como também ética e responsável.

Uma possível direção de investigação em ML poderá passar pela interpretabilidade dos modelos utilizados, não só para antecipar possíveis erros em cenários reais, mas também para adquirir conhecimento sobre o problema que se pretende resolver.

Ao conseguir explicar um modelo de forma compreensível a um outro humano, há a possibilidade de as comunidades mais céticas começarem a confiar nestes métodos de ML.

Há ainda um longo caminho a percorrer. 

Fontes:

https://www.ibm.com/cloud/learn/machine-learning#toc-what-is-ma-qhM6PX35

Interpretable Machine Learning: A Guide for Making Black Box Models Explainable, Christoph Molnar, 2017

https://neilpatel.com/br/blog/machine-learning/

Shin, H. C., Roth, H. R., Gao, M., Lu, L., Xu, Z., Nogues, I., Yao, J., Mollura, D., & Summers, R. M. (2016). Deep Convolutional Neural Networks for Computer-Aided Detection: CNN Architectures, Dataset Characteristics and Transfer Learning. IEEE transactions on medical imaging, 35(5), 1285–1298. 

https://doi.org/10.1109/TMI.2016.2528162

Fisher, C.K., Smith, A.M., Walsh, J.R. et al. Machine learning for comprehensive forecasting of Alzheimer’s Disease progression. Sci Rep 9, 13622 (2019). https://doi.org/10.1038/s41598-019-49656-2 

https://qz.com/1064035/google-goog-explains-how-artificial-intelligence-becomes-biased-against-women-and- minorities/ 

https://aws.amazon.com/pt/machine-learning/customers/?customer-references-cards.sort- by=item.additionalFields.publishedDate&customer-references-cards.sort-order=desc&awsf.customer-references- category=category%23ai-ml  

https://medium.com/golden-data/what-rights-related-to-automated-decision-making-do-individuals-have-under-eu- data-protection-law-76f70370fcd0  

https://pt.wikipedia.org/wiki/Discretiza%C3%A7%C3%A3o_(Matem%C3%A1tica)

https://www.datasciencecentral.com/profiles/blogs/data-mining-association-rules-in-r-diapers-and-beer

https://www.machinedesign.com/mechanical-motion-systems/article/21838234/how-ai-is-paving-the-way-for- autonomous-cars 

https://medium.com/syncedreview/automatic-creation-of-machine-learning-algorithms-for-autonomous-vehicles- f0afc11f8360

https://www.wired.com/2013/07/the-surprising-ethics-of-robot-cars/

https://www.digitaltrends.com/cars/self-driving-cars-confuse-stickers-signs/

https://pt.wikipedia.org/wiki/Dilema_do_bonde

8 thoughts on “Machine Learning Explicado”

  1. I have to thank you for the efforts you have put in writing this site. I really hope to view the same high-grade content by you later on as well. In fact, your creative writing abilities has inspired me to get my very own blog now 😉

  2. May I simply say what a comfort to discover somebody who genuinely knows what they are talking about over the internet. You actually understand how to bring a problem to light and make it important. More people ought to check this out and understand this side of the story. I cant believe you arent more popular because you surely possess the gift.

  3. Undeniably believe that which you said. Your favorite justification appeared to be on the net the simplest thing to
    be aware of. I say to you, I certainly get annoyed while people consider worries that they plainly do not
    know about. You managed to hit the nail upon the top as well as
    defined out the whole thing without having side effect , people could take a signal.
    Will likely be back to get more. Thanks

  4. Hi, Neat post. There is an issue along with
    your website in internet explorer, could test this?
    IE still is the marketplace leader and a large portion of other
    folks will omit your wonderful writing because
    of this problem.

  5. Fantastic blog! Do you have any hints for aspiring writers?

    I’m hoping to start my own blog soon but I’m a little lost on everything.

    Would you suggest starting with a free platform like WordPress or go for a paid option?
    There are so many options out there that I’m totally confused ..
    Any suggestions? Thanks a lot!

Leave a Comment

Your email address will not be published. Required fields are marked *