Phase 00 - Lesson 22

Funcoes e Graficos

This lesson includes a graded coding exercise that runs in your browser, unlocked with lifetime access.

Uma funcao e uma maquina: alimente-a com um numero, receba um numero de volta. Um grafico e uma foto de todos os pares entrada-saida de uma vez.

Tipo: Aprender Linguagens: Python Pre-requisitos: Variaveis e Algebra (00-21) Tempo: ~40 minutos

Objetivos de Aprendizagem

  • Ler f(x) como "a saida da maquina f quando voce a alimenta com x"
  • Avaliar uma funcao em uma entrada dada
  • Reconhecer as formas de tres funcoes por intuicao: linear, exponencial, sigmoide
  • Conectar cada forma a uma quantidade real de IA (uma reta de taxa de aprendizado, decaimento exponencial, um portao sigmoide)

O Conceito

Uma funcao e uma maquina entrada-saida

Na licao 00-21 uma variavel era um desconhecido para resolver. Uma funcao e diferente: e uma regra que transforma qualquer entrada em uma saida. Escrevemos f(x), lido "f de x", significando "o valor que a maquina f produz quando alimentada com x".

f(x) = 2x + 1

Essa maquina dobra a entrada e adiciona 1. Alimente-a com numeros:

f(0) = 2(0) + 1 = 1
f(3) = 2(3) + 1 = 7
f(5) = 2(5) + 1 = 11

O x e um espaco que voce preenche. Todo o lado direito e apenas a aritmetica da ordem das operacoes da licao 00-13, avaliada no que voce colocar. Note que isto NAO e resolver para x; voce RECEBE x e calcula a saida.

Um grafico e uma foto da maquina

Se voce calcular f(x) para muitas entradas e plotar cada par (entrada, saida) como um ponto, os pontos formam uma forma. Essa forma e o grafico, e sua forma lhe diz instantaneamente como a maquina se comporta. Voce nao precisa desenha-lo perfeitamente; precisa reconhecer tres formas.

Forma 1: linear (uma reta)

f(x) = 2x + 1

Cada passo para a direita de 1 move a saida para cima pela mesma quantidade (aqui, 2). Mudanca constante da uma reta. O numero que multiplica x (o 2) e a inclinacao, chamada de coeficiente angular. Um "aquecimento" de taxa de aprendizado que sobe por uma quantidade fixa a cada passo e uma reta.

Forma 2: exponencial (uma curva que explode ou decai)

f(x) = 2^x

Esta e a licao de potencias (00-17) transformada em funcao. Cada passo para a direita nao adiciona uma quantidade fixa; ele MULTIPLICA por 2. Entao a saida dobra a cada passo: 1, 2, 4, 8, 16. A curva comeca plana e dispara para cima. Rode-a para tras com um sinal negativo e ela decai em direcao a zero:

f(x) = 2^(-x)     ->   1, 0.5, 0.25, 0.125, ...   (dividindo pela metade a cada passo)

Cronogramas de decaimento de taxa de aprendizado e a ponderacao exp(-x) em muitas formulas de IA tem esta forma.

Forma 3: sigmoide (um S que comprime qualquer coisa em 0 a 1)

sigmoide(x) = 1 / (1 + e^(-x))

Parece complicada, mas seu comportamento e simples: ela pega QUALQUER entrada, de um numero negativo enorme a um positivo enorme, e a comprime no intervalo entre 0 e 1. Entrada muito negativa da quase 0, muito positiva da quase 1, e sigmoide(0) = 0.5 fica exatamente no meio. A curva e uma letra S esticada. Esta e a classica forma de "portao" ou "probabilidade": ela transforma uma pontuacao bruta em algo que voce pode ler como "quao ligado, de 0 a 1". Neuronios, portoes de atencao e classificadores binarios todos a usam.

O resumo de uma linha das tres formas

linear:       mudanca constante      ->  reta
exponencial:  mudanca multiplicativa ->  plana depois explosiva (ou decaindo)
sigmoide:     comprimida             ->  curva em S, saida presa em 0..1

Pratica de memoria

Produza a resposta. Mais facil primeiro.

  1. Para f(x) = 2x + 1, quanto e f(4)?
  2. Para g(x) = 2^x, quanto e g(3)?
  3. Aproximadamente, quanto e sigmoide(0), e por que?

Respostas: 9 (2x4+1); 8 (a escada de dobras, 2^3); 0.5, porque uma entrada 0 cai exatamente no meio do intervalo de 0 a 1.

Alerta de equivoco

A armadilha e confundir crescimento linear e exponencial. Uma reta ADICIONA a mesma quantidade a cada passo; um exponencial MULTIPLICA a cada passo. Eles parecem semelhantes perto do inicio, mas o exponencial deixa a reta muito para tras: em x = 10, a reta 2x e 20 enquanto 2^x e 1024. Quando alguem diz "cresce linearmente" versus "cresce exponencialmente", esse fator (50x aqui, e subindo) e toda a diferenca.

Construa

python phases/00-setup-and-tooling/22-functions-and-graphs/code/functions.py

Por que isso importa para IA

Modelos sao funcoes: uma rede e um enorme f(entradas) = saidas. Treinamento remodela essa funcao para se ajustar aos dados. As tres formas aqui estao em todo lugar: camadas lineares fazem Wx + b, cronogramas de taxa de aprendizado sobem e decaem, e a sigmoide (e sua prima softmax) transforma pontuacoes em probabilidades na saida de quase todo classificador. Reconhecer uma forma a partir de sua formula e como voce preve o que uma parte de um modelo vai fazer antes mesmo de roda-la.

0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).