[RANT]: Porque matemática é essencial na computação
Disclaimer
Apesar de parecer que estou descrevendo o óbvio. Este post foi criado especialmente para todos os que decidiram pular a faculdade, pegar algum curso online e entrar direto no mundo da programação.
Mas a maioria dos tutoriais e cursos introdutórios que eu vejo se preocupam em ensinar o "o que" em vez do "porque" e faz sentido. Explicar “o que” fazer é muito mais fácil do que explicar “por que”.
Vejam este canal. O "o que" normalmente tá no título, ou no primeiro minuto do vídeo. É o porque que custa 30 minutos ou 1 hora. - Akita, Fabio em A dor de aprender
Primeiramente, não existe computação sem matemática.
Desde as primeiras manipulações que você faz num computador até a mais dura compilação ou interpretação você estará mexendo com números.
Zipar dados, escrever algoritmos, mexer com blockchains e qubits é tudo matematicamente formulado. Nada que existe de moderno na computação surgiu a partir de um homem com uma máquina e sim de homens com base teórica forte o suficiente para esboçar, formular e comprovar algoritmos para serem usados em ambientes restritos.
A maldade da modernidade
Nos tempos modernos a figura agora parece mudar. Com tudo sendo distribuído via internet, com mais documentações e agora com código aberto ou pseudo-aberto. Parece que facilitaram as bases para quem nunca viu computação decidir tentar.
E PQP que ideia errada. A falta de conhecimento sobre a matemática computacional cobra seu preço quando a pessoa não sabe decidir criteriosamente quais ferramentas usar e decidir ir no caminho do "vou na qual eu sei" em vez de "por motivos X,Y,Z eu devo escolher essa ou aquela".
Com memória infinita e o processamento infinito que a computação moderna nos deu, agora escrever código porco ficou infinitamente mais barato.
Marvin Minsk e Richard Stallman se reviram em seus túmulos
Agora falando sério, até dá para deixar passar você usar alguma ferramenta de terceiro sem analisar o código-fonte dela. Mas preferir a força bruta ao invés do requinte matemática é demais.
Exemplificando no contexto moderno:
Aposto claramente que se eu pedisse para um desenvolvedor de hoje para desenvolver um sistema que evite spam, aposto que a maioria provavelmente pensaria em Vou fazer fine-tuning num modelo GPT para que ele responda se é um spam ou não
.
Se alguém iria responder isso já digo é um lixo total, nem precisa tentar.
Primeiro porque o custo computacional para rodar essa solução localmente é incrivelmente caro.
Segundo que a solução é um over-engineering gigante para um problema exclusivamente pequeno e já resolvido desde o século XVI. E não, não estou zoando.
O segundo exemplo, ainda mais porco
Que tal uma whitelist? Um conjunto de emails onde eu rodo um for
para ir bloqueando os emails que viriam de um possível spam.
Dua vezes mais lixo e com a pior porcentagem de falsos positivos que você pode encontrar.
O estado da arte
Lembra que citei que esse problema foi resolvido desde o século XVI pois bem conheça Thomas Bayes
que formulou o seguinte:
P(A \mid B) = \frac{P(B \mid A) \, P(A)}{P(B)}
Isso é a classificação estatística mais simples e mais fácil de ser calculada e computada. Também conhecida como teorema de Bayes
Aqui dizemos que:
A probabilidade do evento B, dado o evento A é igual à probabilidade do evento A dado o evento B, vezes a probabilidade de A, dividido pela probabilidade de B.
Essa fórmula simples do jeito que é foi implementada por Paul Graham por volta dos anos 2000 em LISP e isso resolveu o problema de spam hell que tinhamos na época: inclusive você pode ler The Plan for Spam que foi originalmente escrito por Graham.
Um exemplo mais moderno
Sabem porque o FFMpeg é o editor de vídeo mais usado por empresas e serviços?
Porque ele não edita vídeos, ele edita binários crus, no raw mesmo. Bitwise para cá e para lá com um pouco de SIMD e SSE2.
Se não entendeu o que eu disse vamos abaixar o nível.
O criador do FFMpeg é chamado Fabrice Bellard que também é o criador do virtualizador e emulador de arquiteturas QEMU.
Ele também é um gênio da matemática que desenvolveu um algoritmo mais eficiente para o cálculo de pi conhecido como Formúla de Bellard
Porra, essa fórmula é tão eficiente que ele conseguiu chegar ao resultado de 2700 bilhões de dígitos decimais de pi, em um computador pessoal. E só foi ultrapassado pela mesma fórmula usando um servidor mais potente, chegando na casa de trilhões.
Agora para os fãs de youtube.
Hoje em dia só temos aúdio na computação por truques matemáticos como a Transformada Rápida de Fourier.
O mesmo vale para AI (que tem seus algoritmos desde os anos 50).
E outras áreas da computação.
Mas por quê?
Porque precisávamos disso, a computação tinha pouca memória e pouco processamento, brute-force não era opção e todo código era basicamente do projeto para o projeto.
E principalmente ciclos de CPU eram mais caros que hora de programador, então você era obrigado a tirar todo recurso disponível.
Conclusão
Aposto que você está pensando assim agora?
Mas porque estudar matemática, agora com a AI ela vai dominar o mundo e o meu trabalho também.
Eu sei, pode ser complicado fazer os neurônios trabalharem em sincronia quando o esforço de raciocinar parece opcional.
Mas deixa que eu empresto um pouco dos meus neurônios para iluminar o caminho:
-
Novas tecnologias chegam mais rápido que modelos LLM se atualizam
-
Estamos perto do fim da curva das leis de retornos decrescentes
-
A matemática possui postulados e axiomas infinitos.
- Novas tecnologias chegam mais rápido que modelos LLM
Mesmo com GPU's super caras como a GPU Grace Hopper da NVIDIA levam se anos para coletar, analisar e treinar dados o suficiente para ter conteúdo de treinamento.
Isso desconsiderando perigos de treinamento como o overfitting que podem e vão atrapalhar a geração de novos modelos
- Estamos perto do fim da lei de retorno decrescente
Não há mais nada na internet que a OpenAI e outras empresas possam tirar para melhorar seus modelos.
A farra acabou e os governos estão regularizando ou pelo menos tentando pegar mais impostos sobre dados de usuário.
Então é focar em multimodais e desfocar da conversa.
ISSO NÃO QUER DIZER QUE AI RACIOCINA SÓ QUE ELA TÁ APRENDENDO A PEGAR OUTROS TIPOS DE INFORMAÇÃO E EXTRAIR TEXTO PARA QUE ELA POSSA USAR.
- A matemática possui postulados e axiomas infinitos
Essa é um pouco mais simples de explicar. Alan Turing desenvolveu o modelo de computador, a infinita máquina de escrever para um simples motivo.
Fazer a prova teórica de que existem infinitos teoremas, leis e axiomas matemáticas com um exercício.
Vídeo explicando um pouco mais sobre o Os Teoremas da Incompletude de Gödel
.
Enfim, espero ter conseguido abrir um pouco da mente de vocês>
Fonte: https://youtu.be/HEaIsKm-pao