A Derivada na Computação

Como uma única ideia do cálculo diferencial sustenta inteligência artificial, visão computacional, computação gráfica, métodos numéricos, engenharia, sistemas de informação e criptografia.

Pedro TavaresSarah Bethelim Lucas AguiarMiguel Ângelo Edson GonçalvesGabriel Nunes Anna Júlia DantasAmanda Cavalcante Wenisson JoséGabriel Inácio

Abrir se apresentando brevemente e citando o grupo. Deixar claro logo de início que o fio condutor do trabalho é uma única pergunta prática, não uma lista de fórmulas soltas.

Introdução

O que a derivada responde, na prática

Fora do contexto puramente matemático, a derivada responde a uma única pergunta:

"Quando eu mexo um pouquinho aqui, quanto muda ali?"

É a medida da taxa de variação — a sensibilidade de uma saída em relação a uma entrada. No computador ela quase nunca é calculada "no papel": é obtida de forma discreta, comparando valores vizinhos, ou de forma automática, por bibliotecas que derivam em tempo de execução.

Este é o slide-tese do trabalho: tudo que vem depois é uma instância dessa mesma pergunta aplicada a um domínio diferente (IA, imagem, controle, etc.). Vale enfatizar a frase final — a matemática é a mesma, o método de obtenção é que muda conforme a máquina.

Introdução

Três papéis recorrentes

  • Otimização — em que direção devo ajustar para melhorar? (treinamento de IA, custos, dimensionamento)
  • Detecção de variação — onde algo mudou bruscamente? (bordas em imagens, alertas de monitoramento)
  • Previsão e controle — para onde isso está indo? (controladores, sistemas embarcados, projeções)

Esses três papéis funcionam como roteiro do restante da apresentação: cada bloco temático que vem a seguir (IA, visão, engenharia, ADS) pode ser anunciado dizendo qual desses três papéis ele ilustra.

Fundamentos

Do limite à diferença finita

Como o computador não trabalha com limites, usa-se um passo h pequeno e finito:

f(x) = x³ no ponto x = 2 — valor exato: f'(2) = 12
hprogressivaerrocentralerro
0,112,6100006,10 × 10⁻¹12,0100001,00 × 10⁻²
0,0112,0601006,01 × 10⁻²12,0001001,00 × 10⁻⁴
0,000112,0006006,00 × 10⁻⁴12,0000001,00 × 10⁻⁸

A coluna "erro" usa notação científica: 6,10 × 10⁻¹ significa 0,610. Cada expoente mais negativo move a vírgula mais uma casa para a esquerda — por isso 1,00 × 10⁻⁸ (0,00000001) é um erro bem menor que 6,10 × 10⁻¹.

Ponto-chave: reduzir h por 10x derruba o erro da progressiva por 10x (1ª ordem) e o da central por 100x (2ª ordem) — por isso bibliotecas de sinal preferem a central. Alerta bônus se sobrar tempo: reduzir h abaixo de ~1e-8 piora o resultado por cancelamento catastrófico em ponto flutuante; existe um h ótimo.

Inteligência Artificial

Treinar é descer uma montanha

O erro de um modelo é uma superfície: a altitude é o tamanho do erro. O algoritmo é "cego" — só sente a inclinação do terreno sob os pés. Essa inclinação é a derivada.

novo peso = peso atual − (taxa de aprendizado × derivada do erro)

A taxa de aprendizado (α) é o tamanho do passo dado a cada ajuste: um número pequeno, tipicamente entre 0,001 e 1. Passo grande demais faz o modelo pular o vale e oscilar (ou divergir); passo pequeno demais torna o treinamento lento.

L(w) = (w−3)², α = 0,1, w₀ = 0
iterwL'(w)
00,000−6,000
21,080−3,840
41,771−2,458

Observar que os passos encolhem sozinhos conforme a derivada diminui — perto do mínimo o ajuste é naturalmente mais fino, sem nenhuma lógica extra. Isso prepara o terreno para a demonstração ao vivo no próximo slide, onde o grupo pode variar a taxa de aprendizado e mostrar a divergência acima de α ≈ 1.

Inteligência Artificial · Demonstração

Ajuste a taxa de aprendizado

α é o tamanho de cada passo da bolinha em direção ao mínimo da curva de perda.

Deixar rodando com α = 0,1 primeiro (converge suave), depois subir para perto de 0,9 (oscila) e por fim acima de 1,0 (diverge visivelmente — a bolinha sai da tela). Isso é o limite teórico de estabilidade α < 1 para esta função, mostrado empiricamente.

Inteligência Artificial

Backpropagation é a regra da cadeia

Para saber quanto um parâmetro da primeira camada contribuiu para o erro na última, propaga-se a responsabilidade de trás para frente.

dL_da = 2 * (a_saida - alvo)
da_dz = derivada_sigmoide(a_saida)
delta_saida = dL_da * da_dz  # regra da cadeia

Rede 2-2-1 aprendendo XOR (não linearmente separável), sem nenhuma biblioteca:

saída após 20.000 épocas
entradasaídaesperado
0 XOR 00,00870
0 XOR 10,99251
1 XOR 10,00790

Retirar a linha da_dz faz a rede parar de aprender — não há "inteligência" além da regra da cadeia aplicada repetidamente.

Se der tempo, mencionar a observação experimental do material: trocando a semente aleatória de 1 para 42, a mesma rede fica presa em um mínimo local (erro estaciona ~0,53) — a derivada só enxerga a inclinação imediata, não o relevo inteiro. Isso justifica técnicas como momentum e reinicializações múltiplas.

Inteligência Artificial

Por que a ReLU substituiu a sigmoide

Sigmoide e ReLU são duas funções de ativação — decidem o quanto um neurônio "dispara" a partir da soma que ele recebe. Sigmoide: (comprime qualquer entrada para entre 0 e 1). ReLU: (zero se negativo, o próprio valor se positivo).

A sigmoide tem derivada sempre menor que 0,25. Multiplicando dezenas dessas derivadas entre camadas, o gradiente que chega às primeiras camadas vira praticamente zero.

g_sig = 0.25 ** n   # derivada máx. da sigmoide
g_relu = 1.0 ** n  # derivada da ReLU na região ativa
gradiente que chega à 1ª camada, por profundidade
camadassigmoideReLU
12,500 × 10⁻¹1,0
109,537 × 10⁻⁷1,0
507,889 × 10⁻³¹1,0

Com 50 camadas e sigmoide o gradiente é ~1e-31 — indistinguível de zero em ponto flutuante, o parâmetro nunca é atualizado. Esse cálculo de três linhas explica sozinho por que o deep learning só decolou após a adoção da ReLU. É uma decisão de engenharia tomada inteiramente com base no comportamento de uma derivada.

Visão Computacional

Detectar bordas é detectar derivadas altas

Uma imagem é uma função I(x,y). Onde é uniforme, a derivada é próxima de zero; onde há uma borda, a intensidade muda bruscamente e a derivada dispara.

gx = convolucao(imagem, MASCARA_X, linha, coluna)
gy = convolucao(imagem, MASCARA_Y, linha, coluna)
magnitude = math.sqrt(gx**2 + gy**2)  # |grad I|

Mencionar rapidamente a família de técnicas derivadas dessa ideia: Sobel/Prewitt (1ª derivada direcional), Laplaciano (2ª derivada, localiza a borda no zero-crossing), Canny (padrão da indústria) e fluxo óptico (derivada no tempo). A demonstração ao vivo do Sobel vem no próximo slide.

Visão Computacional · Demonstração

Detectando bordas em uma imagem

exemplo:

Imagem sintética à esquerda (padrão escolhido), mapa de bordas à direita. Subir o limiar mostra só as bordas mais fortes; baixar demais introduz ruído nas regiões uniformes. Os botões "Círculo/Xadrez/Diagonal" trocam o exemplo sintético; "Carregar imagem" processa uma foto enviada pelo próprio computador, inteiramente no navegador — nada é enviado a um servidor. Reforçar: em produção isso é uma linha de API (cv2.Sobel).

Computação Gráfica

Iluminação, trajetória e física em tempo real

Normal por gradiente — direção perpendicular à superfície, usada em iluminação:

Tangente de curva de Bézier — orienta câmeras e personagens:

ângulo da tangente ao longo da curva
tposiçãoângulo
0,00(0,00; 0,00)71,57°
0,50(2,50; 2,25)0,00°
1,00(5,00; 0,00)−71,57°

Motores de física (Unity, Unreal) integram numericamente posição ← velocidade ← aceleração a cada quadro (integração de Euler), o caminho inverso da derivada.

A coluna de ângulos vai de +71,57° a −71,57° passando por 0° no meio — se um carro percorresse essa trajetória em um jogo, essa seria exatamente a rotação aplicada ao modelo a cada quadro. O objeto "aponta para onde está indo" porque a derivada informa a direção instantânea.

Métodos Numéricos

A reta tangente que encontra raízes

A partir de um chute inicial, traça-se a tangente (inclinação = derivada) e usa-se onde ela cruza o eixo como novo chute.

double derivada = df(x);
x = x - fx / derivada;  /* o método, em 1 linha */
raiz quadrada de 2 — convergência quadrática
iteraproximaçãoerro
11,5000008,58 × 10⁻²
21,4166672,45 × 10⁻³
31,4142162,12 × 10⁻⁶
51,4142142,22 × 10⁻¹⁶

O expoente do erro aproximadamente dobra a cada iteração — convergência quadrática. Cinco passos esgotam a precisão de um double. Mencionar a verificação `fabs(derivada) < 1e-12` no código genérico: se a derivada se anula, a tangente fica horizontal e a divisão explode — o principal modo de falha, que vamos ver ao vivo na demo a seguir.

Métodos Numéricos · Demonstração

Encontrando uma raiz quadrada com a tangente

Digite um número: cada tentativa sobe de xi até fi na curva, traça a tangente ali e mostra onde ela cruza o eixo — esse cruzamento vira a próxima tentativa.

1 / 1 (arraste para mover · role o mouse para dar zoom)

Digite qualquer número e clique em Calcular — o padrão é 2, o mesmo exemplo do slide anterior (√2 ≈ 1,414214), então dá pra comparar diretamente com a tabela já mostrada. Todas as tentativas são calculadas de uma vez; use "◀ Anterior" / "Próximo ▶" ou o controle deslizante para navegar tentativa por tentativa e mostrar quantas são necessárias até um valor satisfatório — o gráfico reenquadra sozinho a cada tentativa. Arraste para mover a visão livremente e role o mouse para dar zoom. Depois usar "ver caso de falha": x₀ = 0,01 fica perto de x = 0, onde f'(x) = 2x ≈ 0 — a tangente quase horizontal lança a próxima aproximação para longe. É a mesma falha que o código em C precisa checar com `fabs(derivada) < 1e-12`.

Métodos Numéricos

sin() não existe no processador — é construído

Funções trigonométricas são polinômios cujos coeficientes são derivadas de ordem superior avaliadas em um ponto:

sen(0,5) — libm: 0,479425538604
termosaproximaçãoerro
10,5000002,06 × 10⁻²
30,4794271,54 × 10⁻⁶
50,4794261,22 × 10⁻¹¹

Com cinco termos, a implementação artesanal de 15 linhas coincide com a sin() da biblioteca padrão até a 11ª casa decimal — usando apenas multiplicação, divisão e soma, tudo que o processador sabe fazer nativamente. Cada termo da série vem de uma derivada de ordem superior avaliada em zero.

Engenharia da Computação

PID: antecipar em vez de apenas reagir

P reage ao erro atual. I reage ao erro acumulado. D reage à velocidade com que o erro muda — o componente antecipatório.

double derivada = (erro - c->erro_anterior) / dt;
double termo_d = c->kd * derivada;

Exemplo: um forno que mede 20°C abaixo do alvo agora. O termo D olha se esse erro está diminuindo depressa ou devagar — o valor abaixo é o que ele subtrai da potência só por causa disso, com o erro atual idêntico nos dois casos:

erro atual = 20°C nos dois casos; muda só o erro de instantes atrás
cenáriotermo D (potência descontada)
temperatura subindo devagar−100
temperatura subindo rápido−1000

O erro é idêntico nos dois cenários da tabela, mas o termo derivativo reduz drasticamente a potência quando percebe que o sistema se aproxima rápido demais do alvo — o termo proporcional sozinho seria incapaz de distinguir as duas situações. A demonstração ao vivo no próximo slide compara as curvas completas com e sem esse termo.

Engenharia da Computação · Demonstração

O efeito do termo derivativo

Um forno idêntico é aquecido até 200°C por dois controladores idênticos — a única diferença é que um deles também usa o termo derivativo (D). Veja o quanto cada um ultrapassa o alvo antes de estabilizar.

cinza = sem termo D · verde = com termo D · forno com inércia térmica (200 °C de referência)

Os dois controladores são idênticos exceto pelo ganho do termo derivativo. Sem ele, o forno ultrapassa o alvo em 36,7°C; com ele, cai para 11,7°C — redução de 3,1 vezes. Aos 10s o controlador sem D ainda entrega 100% de potência porque só olha o erro atual; o com D já reduziu para 63% por antecipar a inércia térmica acumulada.

Engenharia da Computação

Do slew rate ao throttling preditivo

Corrente em capacitor e tensão em indutor são proporcionais à taxa de variação. Quanto mais rápido um sinal muda de nível, maior a corrente parasita — um dos limites físicos por trás da migração para arquiteturas multinúcleo.

O throttling de CPUs observa não só a temperatura, mas a velocidade com que ela sobe:

mesma temperatura absoluta (72°C), tendência diferente
cenáriodT/dtação
aquecimento lento+2,0 °C/snormal (4,5 GHz)
aquecimento agressivo+12,0 °C/sreduzir (2,0 GHz)

A temperatura absoluta é a mesma nos dois cenários da tabela; o que difere é a derivada. Um controlador que observasse só o valor absoluto trataria as duas situações de forma idêntica. A derivada transforma uma proteção reativa em preditiva.

Análise e Desenvolvimento de Sistemas

Por que sistemas "quebram do nada"

Até ~70% de utilização, mais carga quase não afeta o tempo de resposta. Perto de 100%, a sensibilidade explode — cresce quadraticamente.

def sensibilidade(carga, capacidade):
    return 1.0 / (capacidade - carga) ** 2
servidor de 100 req/s — impacto de +1 req/s
utilizaçãoTimpacto
50%20 ms+0,4 ms (1x)
90%100 ms+10 ms (25x)
99%1000 ms+1000 ms (2500x)

O mesmo acréscimo de carga custa 2500x mais a 99% de utilização do que a 50%. É a justificativa matemática da prática de arquitetura "nunca dimensionar acima de 70-80% de utilização" — a demo ao vivo no próximo slide deixa isso tátil, arrastando o marcador de carga.

ADS · Demonstração

Arraste a carga até perto de 100%

arraste o marcador vermelho sobre a curva

Arrastar lentamente de 50% até perto de 99% e observar a leitura de dT/dλ crescendo várias ordens de grandeza. Esse é o "sistema caiu do nada" que operações de infraestrutura relatam — na verdade é a derivada explodindo perto da saturação.

Análise e Desenvolvimento de Sistemas

Três decisões de negócio guiadas por derivada

Alerta preditivo de disco

76% de uso não dispara limiar fixo (85-90%). A derivada revela 46,5 h até lotar.

Lote econômico (EOQ)

O lote ideal é onde a derivada do custo total se anula.

Curva de adoção (S)

O pico de pressão sobre a infraestrutura ocorre em U = K/2, não no final.

Três casos, um só princípio: valor absoluto informa pouco, taxa de variação informa muito. Disco: alerta com 2 dias de antecedência, impossível vendo só 76%. EOQ: busca exaustiva precisa de 5000 avaliações, a fórmula fechada (derivada resolvida uma vez) precisa de 1. Adoção: no mês 16 a base quase dobrou, mas a captação de novos usuários já caiu pela metade — sinal que só a derivada revela.

Criptografia · tópico complementar

A tangente que protege o HTTPS

Duplicar um ponto em uma curva elíptica — operação central do ECDSA — usa a reta tangente à curva. Seu coeficiente angular é uma derivada implícita:

numerador = (3*x*x + A) % P
denominador = pow(2*y, -1, P)
lam = (numerador * denominador) % P  # a derivada, em aritmética modular

Curva secp256k1 — mesma do Bitcoin e de implementações de TLS. Gerar uma chave pública:

operaçãoquantidadeusa
duplicação (tangente)253derivada implícita
soma (secante)124reta entre 2 pontos

253 avaliações de derivada implícita para uma única chave. Toda conexão HTTPS e toda transação em blockchain executa centenas dessas avaliações.

Tópico complementar, pouco explorado em trabalhos acadêmicos — bom diferencial de banca. O valor de 2G (duplicação do ponto gerador) é uma constante pública verificável em qualquer implementação de referência do Bitcoin; nosso código de ~30 linhas reproduz esse valor exatamente.

Conclusão

Infraestrutura conceitual, não tópico isolado

  • Sem derivada não existe IA moderna — treinamento é otimização guiada por gradiente.
  • Sem derivada não existe visão computacional — reconhecer formas começa por detectar variações.
  • Sem derivada não existe controle confiável — o termo derivativo antecipa em vez de reagir.
  • Sem derivada não existiriam bibliotecas matemáticas — funções elementares vêm de métodos derivativos.
  • Sem derivada a gestão de sistemas seria reativa — capacidade e risco vêm de taxas de variação.
  • Sem derivada não existiria ECC — a tangente sustenta o ECDSA.

"A derivada é o instrumento que permite a um sistema computacional perceber tendência, e não apenas estado."

Fechar amarrando com o slide 2: a pergunta central ("quanto muda ali quando mexo aqui") atravessou seis áreas diferentes da computação sem nunca mudar de forma — só de aplicação. Boa deixa para abrir perguntas da banca.

Referências

Referências recomendadas para consulta

  • STEWART, James. Cálculo, Volume 1 — aplicações da derivada e taxas relacionadas.
  • GOODFELLOW, I.; BENGIO, Y.; COURVILLE, A. Deep Learning. MIT Press — cap. 4 e 6.
  • GONZALEZ, R.; WOODS, R. Digital Image Processing — segmentação e detecção de bordas.
  • OGATA, Katsuhiko. Engenharia de Controle Moderno — controladores PID.
  • BURDEN, R.; FAIRES, J. Análise Numérica — Newton-Raphson e séries de Taylor.
  • TANENBAUM, A. Organização Estruturada de Computadores — limites físicos de hardware.
  • HANKERSON, D.; MENEZES, A.; VANSTONE, S. Guide to Elliptic Curve Cryptography.
  • Documentação oficial do PyTorch, seção Autograd.

Último slide — deixar aberto para perguntas da banca. Se pedirem a fonte de algum número específico (ex.: 253 duplicações no ECC, 3,1x de redução no PID), esses valores vêm de execução real dos códigos do material de apoio, não de estimativa.

1 / 23

Notas do apresentador