segunda-feira, junho 01, 2020

Aprendendo sobre AI com meu filho - 2a.Parte



Patati na Bela União

Continuação

"... Alan Turing foi uma das duas pessoas de mais impacto na história do desenvolvimento tecnológico da humanidade - a outra pessoa foi Galileo Galilei.

Galileo foi quem fez com que a ciência passasse a fazer experimentos reais para provar ou desprovar suas ideias, em vez de somente “viajar” com as ideias como faziam os filósofos gregos e companhia. Antes se dizia, “um objeto mais pesado cai mais rápido que outro mais leve”, e os outros concordavam, discordavam, discutiam. Galileo foi quem subiu na torre de Pisa e soltou dois objetos de formato igual, um leve e um pesado, e constatou que eles caiam na mesma velocidade, por mais que parecesse que não deveria ser assim.

A partir de Galileo, a coisa começou a fazer progresso. Ele é a chave do porquê hoje se anda de avião, se desenvolvem remédios eficazes, e se vive em casas que não desabam com muita frequência. Por essas ideias, Galileo foi condenado à fogueira pela inquisição, e se salvou somente porque teve o bom senso de negar tudo o que ele havia descoberto, mesmo sabendo que era verdade, que a terra não é o centro do universo, e o sol e as estrelas não giram ao redor da terra. Hoje é fácil dizer isso e saber que é verdade, naquela época se pegava fogueira pra aprender a não dizer bobagem.

 Com Alan Turing a coisa foi muito pior. Depois de inventar o “computador” (eu adoro escrever entre aspas como ele fazia, afinal era um conceito abstrato inventado por ele), Turing foi a chave para decifrar o código secreto das máquinas Enigma de códigos secretos da Alemanha nazista, um esforço que mudou a corrente da guerra e é creditado como  o que salvou mais de 10 milhões de vidas. Muito provavelmente alguns de seus antepassados não teriam sobrevivido se não fosse por Alan Turing, e você não estaria aqui hoje. O filme “O Jogo da Imitação” conta essa história, e é baseado nos arquivos secretos do serviço de inteligência britânico que somente saíram a público em 1975, décadas depois da morte de Turing.

 A parte muito pior é que depois de tudo que Alan Turing fez na segunda guerra e de várias outras contribuições científicas e tecnológicas muito importantes (incluindo o “computador”), Alan Turing foi julgado por uma corte inglesa por ser homossexual, e condenado a tomar injeções de hormônios para “curá-lo” de sua homossexualidade. Pouco depois, aos 41 anos, ele se suicidou.  Hoje Alan Turing vive através de seu trabalho. Esta frase me faz lembrar outra frase do então comediante Woody Allen: “Eu não quero atingir a imortalidade através de meu trabalho, eu quero atingir a imortalidade não morrendo!”.  Tarde demais para Alan Turing, e como diz um fatalista provérbio russo, “a vida é uma coisa perigosíssima, ninguém conseguiu sobreviver ainda”.

Baseados em outro trabalho de Alan Turing e com isso dando imortalidade ao seu trabalho, nos anos 50, dois cientistas americanos - um deles, um biólogo de 65 anos; outro, um matemático de 21-inventaram as redes neurais artificiais, em uma tentativa de criar modelo que replicasse o funcionamento de um cérebro. 

Voltemos às fotos iniciais: uma foto digital é na verdade uma tabela de cores, cada cor representada por um número. Quando você faz zoom em uma foto e chega a um quadrado de uma só cor, significa que você chegou na unidade fundamental da tabela, que é um número, que representa só uma cor especifica.  A tela de seu computador também é uma tabela, cada quadrado da tela é um transmissor que emite um sinal de rádio em uma frequência especifica, (sim, sinal de rádio, como de AM, FM etc.). Dentro do seu olho há células que são antenas calibradas para frequências de rádio específicas, que mandam um sinal para o seu cérebro quando detectam a sua cor assignada. O olho humano é uma tabela dessas células antena de rádio, e elas detectam somente três frequências, correspondentes às cores vermelho, verde e azul. Outras células na mesma tabela detectam presença ou ausência de luz, ou seja, uma imagem em preto e branco. Isso tudo é muito similar ao sensor que capta imagens em uma câmera digital, e não por acaso, porque o sensor foi desenhado para imitar o olho humano.

Cada grupo de células no olho se conecta ao cérebro por um fio (um nervo), e o cérebro interpreta esse sinal como uma cor. A imagem que sai de cada olho é de baixa definição e está de cabeça para baixo. O grosso do trabalho é o processamento feito pelas redes neurais do cérebro, e se estima que 60% do processamento que o cérebro faz é interpretar esses estímulos nervosos e criar uma imagem coerente.

O cérebro humano (e de qualquer outro bicho) é muito sofisticado, porque os sinais que se transmite são químicos, o que permite que se transmitam não somente “tem luz vermelha”, ou “não tem luz vermelha” mas também que intensidade de luz vermelha, e não somente em números inteiros como 1, 2, 3 etc, mas dados de alta resolução com números como “intensidade de vermelho 1,245675445”. Os computadores não são químicos, são elétricos, que é uma coisa muito mais  tosca. A única coisa que se consegue “escrever” com sinal elétrico são numeros inteiros. É pior na verdade, porque somente se consegue escrever DOIS números! O numero zero representado por “neste fio não tem corrente elétrica”, e o numero 1, representado por “PQP este fio dá choque!”.

Mesmo com tal limitação, colocando vários zeros e uns juntos se pode representar qualquer numero. Um fio eletrico permite representar dois numeros, dois fios quatro numeros, tres fios oito numeros, quatro 16 numeros etc. É por isto que tantos numeros em computaçao sao potencias do numero 2, assim se usam todos os fios sem desperdiçar nada. No caso de uma foto digital cada quadrado é uma cor  representada por um numero entre 0 e 16 milhões e tanto, porque são 24 fios um ao lado do outro, então 2x2x2... 24 vezes, ou seja, 2 na vigesima quarta potência. E se voces achavam que matemática do primeiro grau nao servia para nada, provavelmente vão continuar pensando a mesma coisa!

Em um programa de redes neurais, a foto digital, digamos de uma tartaruga, é recebida como números. A partir daí o programa funciona como um grande menu, com uma escolha dentro da outra. O primeiro nível é “o primeiro ponto é verde?”, “sim”. “tem 50 linhas amarelas seguidas”, “não”. Vários submenus adentro, nos niveis mais profundos, a coisa vai sofisticando. “tem quatro patas?”, “sim”, até que o programa chega na resposta final: “Jacaré”. Só que era uma tartaruga, e então ele recebe a resposta “errado, estava bem até o penúltimo”. Todo o truque da coisa é que quando o programa recebe este feedback, ele pega todo o caminho que ele trilhou desde o primeiro menu até chegar no “quatro patas” e aumenta a “nota” deste caminho, e baixa a “nota” do ultimo menu que diz “jacaré”. É assim que ele aprende.

Para se treinar uma rede neural como a de imagens do Google, este processo se repete trilhões de vezes, para cobrir todas as combinações de cores presentes em fotos, e todas as palavras descrevendo o que está em uma foto. Cada vez o programa vai seguindo o caminho entre os menus indicado pelas suas melhores “notas” ligando esta sequência de números que representam as cores da foto e a palavra correspondente. Cada vez o programa recebe feedback e se ajusta.

Quando finalmente o programa começa a acertar e a cometer um número de erros semelhante ao que uma pessoa comete, a rede neural está treinada e pronta para usar. Quando você busca “tartaruga” no Google imagens, a rede usa o treinamento que ela teve e puxa as imagens que correspondem ao caminho de nota mais alta entre a palavra “tartatruga” e as fotos que eles capturaram de toda a internet.

Por mais que o conceito tenha sido inventado nos anos 50, estas redes eram só uma curiosidade até os anos 90, mas o salto realmente se deu nos últimos 10 anos. O problema era que cada camada de menus que se agrega ao programa multiplica por mil a quantidade de calculos necessaria. Com os computadores dos anos 90 se faziam redes com 5 ou 6 niveis de profundidade, o que não permitia muitas coisas. Hoje estas redes chegam a ter 100 mil niveis de profundidade, e a inovação que permitiu isso veio dos videogames.

Para gerar as imagens de um videogame moderno, é necessário multiplicar enormes tabelas de números por outras tabelas de números a uma velocidade muito alta. Olhem qualquer videogame moderno, e uma das coisas que se nota são como a luz do sol se reflete na armadura do heroi do jogo. É um efeito bonito, mas que requer uma quantidade absurda de processamento, com toda a imagem sendo recalculada de 30 a 60 vezes por segundo.

Mesmo que este processo requeira uma quantidade absurda de computação, o mercado de videogames é enorme, e era negocio tentar fazer com que isso funcionasse. Então se desenvolveram chips superespecializados para processar imagens de videogame, um processo que consiste basicamente em multiplicar uma tabela (contendo por exemplo o heroi) por outra tabela (contendo a luz do sol) por 300 outras tabelas contendo as camadas do ambiente em que o herói está, tudo isso de 30 a 60 vezes por segundo, e  sem  incluir o vilāo ainda!  A grande sacada foi quando um engenheiro se deu conta que se podiam usar estes mesmos chips para processar as redes neurais, e toda a ciencia deu um salto. 

Patati com seu amado Tio Mile

No final dos anos 90, uma das primeiras versões utilizáveis das redes neurais para imagens não tentava identificar o que estava na foto, mas somente responder sim ou não à pergunta “tem gente pelada nesta foto?”.  Além de ter boas aplicações comerciais como filtro antipornografia, aquela rede tinha duas vantagens. A primeira era que. para treinar uma rede neural, se precisa ter um grande número de exemplos do que se está tentando ensinar, e fotos de gente pelada é uma coisa que nunca faltou na internet, ao contrário de, por exemplo, fotos de tartaruga, pelo menos no final dos anos 90. O outro problema é que treinar uma rede é exatamente isto, treinar. Uma pessoa precisa alimentar foto por foto, e corrigir a rede quando ela estiver errada. É um trabalho extremamente maçante, e talvez o “tema” dessas fotos tenha facilitado recrutar a mão de obra, que era composta de estudantes universitários.

Até aqui, a moral da historia é que se você é um adolescente e seus pais vierem dizer que os videogames e a pornografia são um disperdicio de tempo, você pode saltar e dizer “Não mesmo! Os videogames e as fotos de gente pelada facilitaram a revolução tecnologica mais importante da historia da humanidade!”

Mesmo com estes avanços, o problema do treinamento existe até hoje. Para treinar o programa de Pôquer que ganhou de todos os campeões, dezenas de jogadores profissionais foram contratados para jogar milhares de jogos de pôquer com o computador. É um sistema muito pouco eficiente. Neste ponto,  a historia volta ao cérebro humano. 
Continua...


Formatura na UFSM - 1997

Nenhum comentário:

Postar um comentário

Obrigada. Logo responderemos sua mensagem.