Computer-Implemented Symbolic Differentiation Using Chain Rule
A computer accesses a first symbolic expression for an output value as a function of an input value. The computer computes a first symbolic Jacobian of the input value with respect to an input tangent space from a symbolic Lie group definition. The computer computes a second symbolic Jacobian of the output value with respect to the input value. The computer computes a third symbolic Jacobian of an output tangent space with respect to the input value from the symbolic Lie group definition. The computer applies symbolic matrix multiplication to the first symbolic Jacobian, the second symbolic Jacobian, and the third symbolic Jacobian to obtain a second symbolic expression for the output tangent space with respect to the input tangent space. The computer provides a representation of the second symbolic expression.
1 . A method comprising:
accessing, at a computing device comprising multithreaded processing circuitry and memory, a first symbolic expression for an output value as a function of an input value;
computing, at a first thread of the multithreaded processing circuitry, a first symbolic Jacobian of the input value with respect to an input tangent space from a symbolic Lie group definition;
computing, at a second thread of the multithreaded processing circuitry, a second symbolic Jacobian of the output value with respect to the input value;
computing, at a third thread of the multithreaded processing circuitry, a third symbolic Jacobian of an output tangent space with respect to the input value from the symbolic Lie group definition;
applying symbolic matrix multiplication to the first symbolic Jacobian, the second symbolic Jacobian, and the third symbolic Jacobian to obtain a second symbolic expression for the output tangent space with respect to the input tangent space; and
providing a representation of the second symbolic expression.
2 . The method of claim 1 , wherein the first symbolic Jacobian, the second symbolic Jacobian, and the third symbolic Jacobian are computed in parallel.
3 . The method of claim 1 , wherein accessing the first symbolic expression comprises accessing a cost function for operating an unmanned aerial vehicle, wherein the cost function comprises the first symbolic expression.
4 . The method of claim 3 , further comprising:
controlling operation of the unmanned aerial vehicle based on the second symbolic expression to implement an optimization based on the cost function.
5 . The method of claim 4 , wherein the computing device comprises a flight control subsystem of the unmanned aerial vehicle, and wherein controlling operation of the unmanned aerial vehicle comprises transmitting instructions to a motor of the unmanned aerial vehicle.
6 . The method of claim 1 , wherein the first thread comprises one or more first threads, wherein the second thread comprises one or more second threads, wherein the third thread comprises one or more third threads.
7 . The method of claim 6 , wherein the one or more first threads, the one or more second threads, and the one or more third threads are mutually exclusive.
8 . A non-transitory computer-readable medium storing instructions which, when executed by a computing device, causes the computing device to perform operations comprising:
accessing, at the computing device comprising multithreaded processing circuitry and memory, a first symbolic expression for an output value as a function of an input value;
computing, at a first thread of the multithreaded processing circuitry, a first symbolic Jacobian of the input value with respect to an input tangent space from a symbolic Lie group definition;
computing, at a second thread of the multithreaded processing circuitry, a second symbolic Jacobian of the output value with respect to the input value;
computing, at a third thread of the multithreaded processing circuitry, a third symbolic Jacobian of an output tangent space with respect to the input value from the symbolic Lie group definition;
applying symbolic matrix multiplication to the first symbolic Jacobian, the second symbolic Jacobian, and the third symbolic Jacobian to obtain a second symbolic expression for the output tangent space with respect to the input tangent space; and
providing a representation of the second symbolic expression.
9 . The computer-readable medium of claim 8 , wherein the first symbolic Jacobian, the second symbolic Jacobian, and the third symbolic Jacobian are computed in parallel.
10 . The computer-readable medium of claim 8 , wherein accessing the first symbolic expression comprises accessing a cost function for operating an unmanned aerial vehicle, wherein the cost function comprises the first symbolic expression.
11 . The computer-readable medium of claim 10 , the operations further comprising:
controlling operation of the unmanned aerial vehicle based on the second symbolic expression to implement an optimization based on the cost function.
12 . The computer-readable medium of claim 11 , wherein the computing device comprises a flight control subsystem of the unmanned aerial vehicle, and wherein controlling operation of the unmanned aerial vehicle comprises transmitting instructions to a motor of the unmanned aerial vehicle.
13 . The computer-readable medium of claim 8 , wherein the first thread comprises one or more first threads, wherein the second thread comprises one or more second threads, wherein the third thread comprises one or more third threads.
14 . The computer-readable medium of claim 13 , wherein the one or more first threads, the one or more second threads, and the one or more third threads are mutually exclusive.
15 . A computing device comprising:
multithreaded processing circuitry; and
a memory storing instructions which, when executed by the processing circuitry, cause the processing circuitry to:
access a first symbolic expression for an output value as a function of an input value;
compute, at a first thread of the multithreaded processing circuitry, a first symbolic Jacobian of the input value with respect to an input tangent space from a symbolic Lie group definition;
compute, at a second thread of the multithreaded processing circuitry, a second symbolic Jacobian of the output value with respect to the input value;
compute, at a third thread of the multithreaded processing circuitry, a third symbolic Jacobian of an output tangent space with respect to the input value from the symbolic Lie group definition;
apply symbolic matrix multiplication to the first symbolic Jacobian, the second symbolic Jacobian, and the third symbolic Jacobian to obtain a second symbolic expression for the output tangent space with respect to the input tangent space; and
provide a representation of the second symbolic expression.
16 . The computing device of claim 15 , wherein the first symbolic Jacobian, the second symbolic Jacobian, and the third symbolic Jacobian are computed in parallel.
17 . The computing device of claim 15 , wherein accessing the first symbolic expression comprises accessing a cost function for operating an unmanned aerial vehicle, wherein the cost function comprises the first symbolic expression.
18 . The computing device of claim 17 , the memory further storing instructions which, when executed by the processing circuitry, cause the processing circuitry to:
control operation of the unmanned aerial vehicle based on the second symbolic expression to implement an optimization based on the cost function.
19 . The computing device of claim 18 , wherein the computing device comprises a flight control subsystem of the unmanned aerial vehicle, and wherein controlling operation of the unmanned aerial vehicle comprises transmitting instructions to a motor of the unmanned aerial vehicle.
20 . The computing device of claim 15 , wherein the first thread comprises one or more first threads, wherein the second thread comprises one or more second threads, wherein the third thread comprises one or more third threads.