Regras de Derivação e a Regra da Cadeia
Objetivos de Aprendizagem
- Aplicar as regras da constante multiplicativa, da soma, da potência, do produto e do quociente, e indicar o domínio em que cada uma vale.
- Deduzir as regras da potência, do produto e do quociente a partir da definição da derivada por limite.
- Enunciar a regra da cadeia com suas hipóteses e lê-la como a composição de duas aproximações lineares locais.
- Derivar composições aninhadas camada por camada e evitar os erros usuais (esquecer a derivada interna, usar ).
- Explicar como as regras do produto e da cadeia permitem a um programa calcular derivadas exatas automaticamente, e por que a regra da cadeia é o que a retropropagação (backpropagation) aplica.
Contexto e Motivação
A lição anterior, the-derivative-as-a-rate-of-change, definiu como um limite e o calculou para , e , cada vez com uma álgebra diferente. Isso não escala. Uma função como exigiria uma página de álgebra sob o sinal de limite, e uma função definida por um programa com milhares de operações está fora de questão.
A saída é derivar a função pela sua estrutura. Quase toda função deste curso é construída a partir de um pequeno estoque de funções básicas, unidas por aritmética (somas, produtos, quocientes) e por composição ( aplicada à saída de ). Se a derivada de cada operação de junção é conhecida, a derivada do todo sai de forma mecânica. As regras desta lição são as derivadas dessas operações, as regras da soma, da potência, do produto e do quociente demonstradas cada uma uma vez a partir da definição, e a regra da cadeia justificada por um argumento de aproximação linear, e usadas depois para sempre.
A regra da cadeia, a regra da composição, é a de maior alcance. Uma rede neural profunda é uma longa composição de camadas simples, e a derivada da sua perda em relação a um parâmetro das primeiras camadas é obtida multiplicando derivadas locais camada por camada (na forma multivariável da regra, partial-derivatives-and-the-multivariable-chain-rule). Organizar esse produto de modo eficiente é o que a retropropagação faz. Esta lição ensina apenas a regra que a torna possível, não o algoritmo.
Teoria Central
Linearidade e a regra da potência
Se e são diferenciáveis em e é uma constante, então e . Ambas decorrem diretamente das leis dos limites aplicadas ao quociente de diferenças. A derivada de uma constante é .
Regra da potência. Para um inteiro positivo , . Expandindo com o binômio de Newton:
Todo termo depois do primeiro ainda contém um fator , então some no limite. A regra se estende aos inteiros negativos pela regra do quociente abaixo, para . Para outros expoentes reais ela é demonstrada em derivatives-of-exponentials-logarithms-and-trigonometric-functions, onde vale para . Até lá, use-a apenas com expoentes inteiros.
A regra do produto
Se e são diferenciáveis em , então
Dedução: some e subtraia no numerador,
Quando , os quocientes viram e , e porque uma função diferenciável é contínua. Esse passo é essencial: o argumento precisa de , e isso vale porque é diferenciável em . A regra não é : com , o produto é , de derivada , enquanto .
A regra do quociente
Se e são diferenciáveis em e , então
Primeiro o inverso: , o que usa e a continuidade de . Depois, e a regra do produto dão a fórmula. A ordem no numerador importa, porque a diferença não é simétrica. A condição não basta sozinha: com e em , o denominador é , e mesmo assim não tem derivada ali, porque não tem.
A regra da cadeia
Teorema. Se é diferenciável em e é diferenciável em , então é diferenciável em e
Na forma de Leibniz, com e : .
Por que é verdade. Use a leitura por aproximação linear da lição anterior. Um pequeno passo em move a saída interna em cerca de . Um pequeno passo em move a saída externa em cerca de . Encadeando os dois, com , a saída final muda em cerca de . Compor dois mapas lineares locais multiplica suas inclinações. Uma reta de inclinação seguida de uma de inclinação é uma reta de inclinação .
A demonstração ingênua, que multiplica e divide por , divide por zero sempre que assume o mesmo valor em pontos próximos. Uma demonstração completa reescreve a aproximação como uma igualdade com uma função de erro que tende a . O enunciado acima é o teorema padrão.
As hipóteses importam, mas nenhuma é necessária para a conclusão. Sejam e , de modo que . Para , a regra da cadeia dá , que vale , como deveria. Em , a função externa não é diferenciável em , então o teorema não se aplica, e a conclusão falha: tem uma quina em . A hipótese interna pode falhar do mesmo modo: com e , não é diferenciável em , e também não. Mas falhar uma hipótese apenas retira a garantia. Com e , não é diferenciável em , e mesmo assim é.
Camada por camada
Para uma composição de várias funções, derive de fora para dentro, multiplicando ao longo do caminho. Para :
Um programa avalia uma composição de dentro para fora e pode multiplicar as derivadas locais na mesma passada. Essa observação é a base da diferenciação automática no modo progressivo (forward mode), mostrada no Exemplo 3.
Exemplos Resolvidos
Exemplo 1: regra do quociente, domínio e reta tangente
Derive .
O domínio exclui , onde o denominador se anula. Aplicando a regra do quociente:
Em : e . Uma diferença central com passo dá , confirmando a álgebra. A reta tangente é . Ela prevê , e o valor verdadeiro é . Em ela prevê , enquanto o valor verdadeiro é : a função caminha para a assíntota vertical em , e a reta não consegue acompanhá-la.
Exemplo 2: uma cadeia de três camadas
Derive .
Dê nome às camadas: , depois , depois . Multiplique as derivadas locais:
Aqui para todo , então a raiz externa é sempre avaliada em um ponto onde é diferenciável, e existe em todo . Em : , , logo . Uma diferença central dá .
Exemplo 3: a regra da cadeia dentro de um programa
A diferenciação automática no modo progressivo carrega um par (valor, derivada) por todas as operações. A regra do produto define a multiplicação de pares, e a regra da cadeia define como uma função como os transforma:
plaintextimport math class Dual: def __init__(self, v, d=0.0): self.v, self.d = v, d # valor e derivada def __add__(self, o): o = o if isinstance(o, Dual) else Dual(o) return Dual(self.v + o.v, self.d + o.d) # regra da soma __radd__ = __add__ def __sub__(self, o): o = o if isinstance(o, Dual) else Dual(o) return Dual(self.v - o.v, self.d - o.d) def __mul__(self, o): o = o if isinstance(o, Dual) else Dual(o) return Dual(self.v * o.v, self.d * o.v + self.v * o.d) # regra do produto __rmul__ = __mul__ def dsqrt(a): r = math.sqrt(a.v) return Dual(r, a.d / (2 * r)) # regra da cadeia com derivada externa 1/(2 sqrt) def F(x): u = 3 * x * x - x return dsqrt(1 + u * u) out = F(Dual(1.0, 1.0)) # semente: dx/dx = 1 print(out.v, out.d) # 2.23606797749979 4.47213595499958
O programa imprime e , coincidindo com o Exemplo 2 sem nenhuma álgebra simbólica e sem passo, de modo que o compromisso entre erro de truncamento e erro de cancelamento visto nas diferenças numéricas da lição anterior não aparece. Resta apenas o arredondamento comum.
Equívocos Comuns e Armadilhas
- "A derivada de um produto é o produto das derivadas." É . O contraexemplo tem derivada , não .
- "Derivar dá ." Isso omite a derivada interna. A resposta correta é , que em vale , o dobro do valor errado .
- "O numerador da regra do quociente pode ser escrito em qualquer ordem." É . Trocar os dois termos inverte o sinal do resultado.
- "A regra da potência vale para qualquer expoente, inclusive um variável." vale quando o expoente é constante. Em a variável está no expoente e a regra dá a resposta errada, caso tratado na próxima lição.
- "As regras se aplicam onde quer que a fórmula possa ser escrita." Elas se aplicam onde as hipóteses valem. Tome e em : a função externa não é diferenciável em , e a expressão da regra da cadeia é indefinida em , embora valha para . O teorema nada diz em aqui, e a composta por acaso é diferenciável ali, de modo que o valor precisa ser obtido pela definição.
- "Em uma cadeia longa, as derivadas locais são fatores inofensivos." O produto delas é a resposta inteira. Cinquenta fatores se multiplicam em cerca de , e cinquenta fatores em cerca de . É a aritmética por trás dos gradientes que desaparecem e explodem em redes profundas, e é consequência da regra da cadeia, não de um defeito de implementação.
Resumo
Derivadas podem ser calculadas pela estrutura: constantes e somas por linearidade, por para expoentes inteiros, produtos por e quocientes por onde e são diferenciáveis e . As regras da soma, da potência, do produto e do quociente são demonstradas uma vez a partir da definição por limite, e a regra da cadeia é justificada por um argumento de aproximação linear. A regra da cadeia, , exige diferenciável em e diferenciável em , e diz que as inclinações de aproximações lineares locais compostas se multiplicam. Uma composição é derivada de fora para dentro, multiplicando um fator por camada. A mesma contabilidade executada por um programa dá derivadas exatas (a menos de arredondamento) sem álgebra simbólica nem passo, que é o princípio da diferenciação automática e, em aprendizado profundo, da retropropagação. A próxima lição, derivatives-of-exponentials-logarithms-and-trigonometric-functions, fornece as derivadas das demais funções básicas, de modo que estas regras alcancem quase todas as funções da prática.