Uma rápida introdução aos derivados para pessoas aprendizes de máquina

Michael Green Blocked Unblock Seguir Seguindo 25 de dezembro de 2018

Introdução

Se você é como eu, você provavelmente usou derivados para uma grande parte de sua vida e aprendeu algumas regras sobre como eles funcionam e se comportam sem realmente entender de onde tudo vem. Quando crianças, aprendemos algumas dessas regras desde o início, como a regra de poder, por exemplo, em que sabemos que a derivada de é 2x, que de uma forma mais geral se transforma em dx? / dx = ax??¹ . Isto é, em princípio, bom, já que todas as regras podem ser prontamente memorizadas e examinadas em uma tabela. O lado negativo disso é que você está usando um sistema e um formalismo que você fundamentalmente não entende. Novamente, não é necessariamente um problema se você não estiver desenvolvendo frameworks de aprendizado de máquina diariamente, mas mesmo assim é muito bom saber o que está acontecendo nos bastidores. Eu mesmo desprezo as caixas pretas. Então, para cavar um pouco mais fundo nisso, mostrarei a base de tudo. Para fazer isso, temos que definir o que um derivativo deve fazer por você. Você sabe? Tenho certeza que você faz, mas apenas no caso de você não;

Uma derivada é uma descrição contínua de como uma função muda com pequenas mudanças em uma ou várias variáveis.

Vamos examinar muitos aspectos dessa declaração. Por exemplo

  • O que significa pequeno?
  • O que significa mudança?
  • Por que isso é contínuo?
  • Como isso é útil?

Vamos lá!

O total e o derivado parcial

Esses termos são tipicamente uma fonte de confusão para muitos, pois às vezes são vistos como equivalentes e, em muitos casos, parecem indistinguíveis uns dos outros. Eles não são, no entanto! Vamos começar definindo a derivada parcial e depois passar para a derivada total a partir daí. Para isso, usarei uma função imaginária f (t, x, y) onde temos três variáveis t , x e y . A derivada parcial responde às questões de como f muda (? f ) quando uma variável muda por uma pequena quantidade (? x ). Nesse cenário, todas as outras variáveis são consideradas constantes e estáticas. Assim, a derivada parcial é denotada ? f / ? x . Para mostrar o que acontece quando fazemos esta operação, precisamos primeiro definir f como algo. Digamos que pareça com isto f (t, x, y) = txy 4 ? / 3, que incidentalmente é o volume de um elipsóide. Bem, talvez não tão incidentalmente .. De qualquer maneira eu escolhi uma parametrização diferente da que é comumente usada. Na imagem abaixo você pode ver de cima para esquerda para a direita uma esfera, esferóide e elipsóide, respectivamente. Em nosso cenário, podemos escolher t = a, x = b, y = c para as dimensões.

Por Ag2gaeh – Trabalho próprio, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=45585493

A derivada parcial do volume desses espaços geométricos torna-se então ? f / ? x = 4 ? 3 ty onde aplicamos a regra de poder. Como você vê o t eo y não foi tocado desde que assumiu-los para ser corrigido. Assim, na figura acima, modelamos o que acontece com o volume como b se estende ou diminui em uma pequena quantidade. Isso responde a nossa pergunta se eles são realmente independentes de x . Mas e se eles não são? Bem, neste caso, precisamos da derivada total de f em relação a x, que é denotado por df / dx e é definido como este

onde você pode ver a derivada parcial como parte do total. Então, para fins ilustrativos, vamos restringir a função a uma situação onde t = x . O que acontece com a derivada então? Bem, a derivada parcial de antes permanece a mesma. mas os dois outros termos que precisamos calcular. A primeira parte se torna (?f / ?t) (dt / dx) = 4? / 3 ? xy ? 1, enquanto a última parte se transforma em

Então agora nós temos

adicionando os termos e substituindo t = x na última etapa. Agora, esperamos que seja evidente que ?f / ?x ? df / dx e que você precisa ser cuidadoso antes de declarar a independência entre suas variáveis enquanto faz seus derivados.

ESPERAR! Eu ouço você chorar, não poderíamos apenas fazer a substituição depois de calcularmos a derivada parcial? Na verdade, você poderia e você obteria algo que está fora por um fator 2, que pode ser substancial. Basicamente você teria a seguinte insanidade

Isso ocorre porque o que geralmente procuramos é de fato a derivada total e não a parcial. No entanto, você poderia ter feito a substituição antes de calcular a derivada parcial. Isso acabaria bem

onde nós novamente alcançamos consistência. Assim, você não pode conectar dependências em sua derivada parcial depois de ter sido calculada!

Interpretação como diferencial

Vamos retornar à definição da derivada total por um tempo. Lembre-se que parecia assim

para uma função f (t, x, y) com três variáveis. Agora, se multiplicarmos isso por dx em todos os lugares, acabaremos com

que é uma expressão de uma visão diferencial da função f . Afirma que uma mudança muito pequena em f pode ser definida como uma soma ponderada das pequenas mudanças em suas variáveis, onde os pesos são as derivadas parciais da função em relação às mesmas variáveis. Podemos afirmar isso em geral para uma função q com variáveis M como esta

que é uma forma muito mais compacta e agradável de olhar para ela. Escrever termos explicitamente rapidamente se torna tedioso. Por outro lado, também obtemos uma forma compacta de representar nossa definição total de derivativos. Novamente, se atenha à função q com suas variáveis M.

O ??? é definido como 1 em todos os lugares, exceto onde i = p, neste caso, definimos como 0 . Eu sei que não é muito tradicional, mas funciona, então vou usar a função delta dessa maneira. Eu faço isso porque

apesar de estar correto, não coloca o foco na derivada parcial da variável de interesse x?, mas isso é realmente uma questão de gosto e nada importante para o uso.

A regra da cadeia de cálculo

Uma das regras talvez mais comuns para usar ao calcular derivadas analíticas é a regra da cadeia. Matematicamente, basicamente, afirma o seguinte

que não parece impressionante, mas não deixe a simplicidade te enganar. É um cavalo de batalha sem paridade no mundo analítico dos gradientes. Lembre-se, g (x) pode ser qualquer coisa nessa configuração. Então poderia x para esse assunto. Como tal, esta regra é aplicável a tudo relacionado a gradientes.

A regra da cadeia de probabilidade

Uma pequena nota aqui sobre nomeação. A "regra da cadeia" realmente existe em probabilidade, bem como sob o nome de "A regra da cadeia da probabilidade" ou "A regra geral do produto". Eu acho este último mais natural. Em qualquer caso, essa regra declara o seguinte

onde p é a função de probabilidade para eventos x e y . Essa regra pode ser generalizada em n variáveis, iterando essa regra. Veja o seguinte exemplo:

Você pode ser perdoado por acreditar que a ordem das variáveis de alguma forma importa ao aplicar essa regra, mas é claro que isso não acontece, já que tudo o que estamos fazendo é dividir o espaço de probabilidade em pequenos patches independentes. Então, em um formato mais compacto, podemos expressar essa regra geral como esta

onde usamos n variáveis gerais que representam nosso cenário de probabilidade. Agora a razão pela qual eu trouxe isso.

A regra da cadeia da probabilidade não tem nada a ver com a regra da cadeia do cálculo.

Então, lembre-se de sempre pensar no contexto se você ouvir alguém nomeando a “regra da cadeia”, já que sem contexto é bastante ambíguo.

Construindo seu próprio mecanismo de retropropagação para redes neurais profundas

Nesta seção, conduzi-lo-ei através de um perceptron simples em várias camadas e uma derivação do algoritmo de retropropagação. Há muitas maneiras de obter isso, mas vou começar a partir da abordagem de minimização de erros que basicamente descreve o ajuste de uma rede neural f ( x , ? ) pelo desvio de um alvo y conhecido. A arquitetura que vamos resolver é mostrada na imagem abaixo, onde temos duas camadas ocultas. Nós nos ateremos a isso por simplicidade. Também usaremos apenas uma saída em vez de múltipla, mas ela é facilmente generalizada.

Ilustração de uma rede neural simples da alimentação para a frente com duas camadas.

Em vez de representar graficamente nossa rede, faremos aqui uma representação mais formal, onde a forma funcional será declarada matematicamente. Basicamente, a forma funcional será

onde os símbolos da face em negrito denotam vetores. A função ? (s) = 1 / (1 + exp (as)) é a função de ativação sigmoide com um hiperparâmetro a que não iremos ajustar ou nos preocupar nesta introdução. Uma pequena nota aqui, desconsiderando a um parâmetro aqui é realmente bobagem, uma vez que vai mudar fundamentalmente a aprendizagem desta rede. A única razão pela qual me permito fazê-lo é porque está além do escopo de cobri-lo neste momento.

Para treinar uma rede neural, precisamos atualizar os parâmetros de acordo com o quanto eles afetam o erro que vemos. Este erro pode ser definido assim para um problema de regressão para um ponto de dados ( x ?, y?).

Se olharmos para a segunda última camada, então simplesmente atualizamos os parâmetros de acordo com a seguinte regra

para cada novo ponto de dados. Isso é chamado de Descida Estocástica de Gradiente ( SGD ). Você pode ler muito sobre isso em muitos lugares, então eu não vou mergulhar aqui. Basta dizer que esse processo pode ser repetido para cada parâmetro em cada camada. Portanto, o infame algoritmo de retropropagação é apenas uma aplicação de atualização de seus parâmetros pela derivada parcial do erro em relação a esse mesmo parâmetro. Faça as derivadas parciais para você agora e veja como é fácil obtê-lo. Um pequeno truque que você pode usar é perceber que ('(s) = ? (s) (1-? (s)) onde usei a notação principal para um derivado. Há um bom tutorial sobre como fazer isso numericamente aqui .

Levar mensagens para casa

  • O derivado total e a derivada parcial estão relacionados mas, às vezes, fundamentalmente diferentes.
  • Todas as restrições e substituições de variáveis devem ser feitas antes do cálculo da derivada parcial.
  • A derivada parcial ignora as dependências implícitas.
  • O derivativo total leva todas as dependências em conta.
  • Muitas receitas mágicas, como o algoritmo de retropropagação, geralmente vêm de idéias bastante simples e fazê-lo por si mesmo é realmente instrutivo e útil.