If we conceptually think that advancing from one neural net layer to the next one is the same as taking a time step with an ODE solver, then a bit more precise notation would be
h1 = f(t=1,x) + x
h2 = f(t=2,h1) + h1
h3 = f(t=3,h2) + h2
h4 = f(t=4,h3) + h3
y = f(t=5,h4) + h4
Now you can say that the function f is always the same, but it still can give very different values for Δh when evaluated at different time points.First, to preserve the analogy between eq. 1 and 2, the thetas in equation two should have their own dynamics, which should be learned.
Second, even if Equation 1 doesn't allow it, in a general feed-forward network it's possible for the state to change dimension between layers. I don't see how that could happen with the continuous model.
Neat paper, but it'd be nice if they had tied the analogy more explicitly to RNNs in the introduction.
Second, I agree that general feedforward nets allow dimension changes, but resnets don't. This model is a drop-in replacement for resnets, but not for any feedforward net. If we gave the wrong impression somewhere, please let us know.
We didn't make the analogy with RNNs, because I don't think it fits - standard input-output RNNs have to take in part of the data with every time step, while here the data only appears at the input (depth 0) layer of the network.
You might be able to make a better connection to RNNs by having the input data as a 'forcing' function in your ODE. But you probably need some regularity conditions on the input data to make sure the result is nicely behaved.
Well they can but I don't see they why they have to. And couldn't your network also take input and give output for all times?
> First, we do parameterize a theta that changes with time, using a hypernet.
Ah I see. Did you end up using it in the final model? I don't see that in the mnist example, but I could be missing it as I only skimmed the code.
I don't see a "related work" section in your paper.
Apologies for not looking harder
Or something like that.
Take a simple NN with 3 layers: 5 neurons in the input layer, 3 in the hidden and 1 output.
Force inputs to neuron 4 and 5 in the hidden layer to be zero, and force inputs to neurons 2-5 to be zero in the output layer (and ignore their output). I'm assuming the transfer function obeys f(0) = 0, if not, fix output to zero as well.
My thought was this would be similar to how you enforce boundary conditions when solving partial differential equations by directly setting the value of certain matrix elements before running the solver.
Again, may be completely silly.
So if I understand correctly you have a different take on RNN's but not on deep residual nets in general?