Eu tenho uma compreensão decente de redes neurais, propagação traseira e regra de cadeia, no entanto, estou lutando para entender a diferenciação automática.
A seguir, consulte a diferenciação automática fora do contexto da propagação de retorno:
- Como a diferenciação automática calcula o gradiente a partir de uma matriz?
- Quais são os requisitos para calcular um gradiente? Uma função precisa ser especificada?
- Quais são alguns casos de uso para isso (além da propagação de retorno)?
- Por que é importante e quais são as alternativas?
Estou esquecendo de algo?
tf.gradient
método que eu deveria estar olhando?Respostas:
Nos sistemas de auto diferenciação, principalmente um operador (por exemplo, adição, subtração) é definido junto com sua diferenciação.
Portanto, depois de escrever uma função empilhando uma série de operadores, o sistema pode descobrir por si mesmo como as derivadas correspondentes devem ser calculadas, geralmente usando gráficos de computação e a regra da cadeia.
A diferenciação automática é benéfica para a otimização baseada em gradiente (por exemplo, treinar uma rede neural usando descida de gradiente), pois evita o cálculo matemático, a implementação do código e a verificação das derivadas numericamente, caso a caso.
Veja como definir um operador (op) em Teano e Tensorflow .
fonte