A Regra de Três e o Século XXI
Na padaria, compramos 3 pães de queijo e pagamos 15 reais. Imediatamente sabemos que, se tivéssemos comprado 5 pães de queijo, teríamos pagado 25 reais. No dia seguinte, compramos 3 saquinhos de pipoca e 4 refrigerantes e pagamos 29 reais. Esse fato nos faz pensar que o preço do saquinho de pipoca é 3 reais e o preço de cada refrigerante é 5 reais. Portanto, pensamos que, se comprássemos 5 saquinhos de pipoca e 2 refrigerantes pagaríamos 25 reais. Entretanto, observamos que nossa vizinha que acaba de comprar 5 pipocas e 2 refrigerantes pagando 27 reais e 50 centavos.
No caso do pão de queijo, fizemos uma única observação (3 pães de queijo valem 15 reais). Baseados em nossa experiência, postulamos um modelo no qual o valor da conta depende da quantidade dos bens adquiridos de forma linear (por exemplo, se compramos o dobro pagamos o dobro). Trata-se de um modelo que depende de um único parâmetro desconhecido, que chamamos preço. Estimamos muito corretamente o valor desse parâmetro, e isso nos permite prever o resultado do experimento de compra para outras quantidades do pão de queijo transferido. Ou seja, uma observação, um parâmetro estimado, um modelo correto: sucesso total nas previsões. Quando o modelo é linear, chamamos a isso Regra de Três.
No segundo caso (pipoca e refrigerante), partimos, de novo, de uma única observação, nossa compra de 3 pipocas e 4 refrigerantes. Estimamos os preços de 3 reais para a pipoca e 5 reais para o refrigerante porque esses preços (parâmetros) nos permitiam explicar o fato de que fomos onerados em 29 reais. Uma observação, dois parâmetros para ser estimados. Não devia dar certo, e não deu. O bom senso nos diz que, para estimar duas incógnitas, precisamos de pelo menos duas observações. Logo, não espanta o fato de que não tenhamos conseguido prever o resultado do segundo experimento, no qual foram comprados 5 pipocas e 2 refrigerantes.
Entretanto, que teria acontecido se o segundo experimento tivesse sido “Comprar 9 saquinhos de pipoca e 12 refrigerantes”? Nesse caso, nossa estimativa errada de preços (3 reais a pipoca e 5 reais o refrigerante) nos teria levado a pensar que o valor da nova compra seria 87 reais. E, neste caso, a previsão teria sido correta! Ou seja, mesmo um cálculo errado dos preços nos levaria a uma previsão exata do resultado do novo experimento.
Claro, a razão é simples: 9 pipocas e 12 refrigerantes são o triplo de 3 pipocas e 4 refrigerantes, portanto o valor da segunda compra é o triplo da primeira, independentemente dos preços individuais dos produtos. Novamente, a velha Regra de Três em ação. Mas é conveniente registrar estes fatos: previsões corretas podem vir de parâmetros errados, e o bom senso de que o número de observações deve ser maior que o número de parâmetros nem sempre funciona.
De fato, há muitos tipos de modelos, mas entre eles se encontram aqueles em que o relevante são as previsões e os parâmetros não representam nada (ou quase nada) e aqueles em que as previsões não importam nada e a relevância reside nos parâmetros. Na previsão de enchentes, fazemos modelos de rios e canais nos quais precisam ser ajustados parâmetros de atrito cuja exatidão é irrelevante, porque o que importa é o volume e a vazão de água no futuro. Por outro lado, na prospecção sísmica, usam-se modelos cujas incógnitas são as densidades dos materiais no subsolo, e a previsão do resultado de sismogramas ainda não experimentados não tem nenhuma importância.
Ao falar da Regra de Três, tratamos com louvor os modelos lineares. Isto é, aqueles modelos em que, quando uma variável aumenta em determinada quantidade, outra variável que depende dela aumenta na mesma quantidade multiplicada por um fator fixo. E isto ocorre justamente porque o paradigma linear acontece com muita frequência na vida real e, quando não acontece, serve pelo menos de aproximação para as relações corretas. Mas é claro que nem tudo é linear nesta vida. Por exemplo, voltando ao caso do pão de queijo, em que estimamos que o preço unitário era 5 reais, poderíamos ser surpreendidos se nossa vizinha comprasse 20 pães de queijo não por 100 reais, mas por 80 reais. Isto poderia acontecer porque a padaria poderia estimular a venda de seus produtos cobrando um preço menor por compras maiores. Neste caso, a relação entre quantidade e valor da compra não viria dada por uma “função linear” mas por uma função “linear por partes”, isto é, uma função linear diferente para quantidades diferentes. As tabelas de imposto de renda representam sempre funções lineares por partes.
As redes neurais mais populares (o famoso “deep learning”) são funções lineares por partes. Sua construção matemática não é difícil. Dada uma variável “n-dimensional” x, a transformamos em outra variável multidimensional z por meio de uma função linear (matemáticos rigorosos diriam, neste caso, com mais propriedade, “função afim”). Nesta nova variável multidimensional z substituímos todos os elementos negativos por 0 e aplicamos uma nova transformação “afim” para obter w, e assim por diante. A quantidade de vezes em que fazemos esse processo de “função linear seguida de cortar os negativos” se chama “profundidade” da rede neural. No final, obtemos um resultado R que depende do input x e dos parâmetros (digamos, os preços) que definem as transformações lineares (afins) usadas.
Dessa maneira, são obtidas funções lineares por partes de formas extremadamente caprichosas que, talvez por essa razão, se adaptam bem a simular processos da vida real mais complexos que as compras na padaria.
Treinar uma rede neural significa descobrir quais são os parâmetros corretos das funções lineares envolvidas. Para isso, usam-se muitas observações conhecidas, ou seja, casos em que dado x sabemos qual é o R correto. Gilbert Strang, provavelmente o maior analista numérico vivo, se surpreendia em um artigo publicado em SIAM News em 2012 (há muito tempo!) da extraordinária efetividade das redes neurais, apesar de o número de observações usadas para o treino ser sempre muito menor que o número de parâmetros estimados. De fato, as redes neurais são modelos do tipo “o que importa é a previsão, e os parâmetros não significam nada”. Já vimos, no caso da pipoca e o refrigerante, que a previsão boa com parâmetros errados pode não ser tão estranha como, em princípio, parece.
Há 50 anos, quando se falava de linguagens de programação, havia um ditado que dizia: “Não sabemos como será a linguagem da computação científica do futuro, mas sabemos que seu nome será Fortran”. Como é bem sabido, esta previsão não se cumpriu. Analogamente, podemos hoje fazer uma previsão reversa: “Não sabemos como será a Inteligência Artificial no futuro, mas sabemos que a Regra de Três será certamente injustiçada”.
(*) José Mario Martínez é professor emérito da Unicamp e docente do Imecc (Instituto de Matemática, Estatística e Computação Científica).