finished generalized solution explanation. added pseudo_code section
parent
35b8c165b6
commit
8f6e0423ab
@ -0,0 +1,53 @@
|
||||
# psuedo code to solve for euler equations with neural networks
|
||||
|
||||
/*
|
||||
# bellman with policy function
|
||||
|
||||
Vt(Θ) = F(Θ,x(Θ)) + β Vtt(G(Θ,x(Θ)))
|
||||
where x() maximizes the standard bellman
|
||||
a-g(Θ,x) < 0
|
||||
|
||||
## Setting up the euler equation
|
||||
|
||||
### Stationarity (optimality) Conditions
|
||||
0 =set= ∇Vt wrt x() - λ
|
||||
- Implies definition of ∇Vtt wrt G() in terms of x(), λ, and Θ
|
||||
#### Complementary Slackness Conditions
|
||||
λ * (a-g()) = 0 and one of the terms is greater than zero.
|
||||
- There is a continuous, roughly parabolic alternative
|
||||
to this condition called the Fisher-Burmeister function.
|
||||
|
||||
### Envelope Conditions
|
||||
∇Vt wrt Θ = ∇F wrt Θ + β ∇Vtt wrt G X ∇G wrt Θ
|
||||
- This defines ∇Vtt wrt G in terms of Θ,x,∇F, and ∇Vt wrt Θ
|
||||
which we call the time-transition function.
|
||||
- It turns out to be an affine problem
|
||||
- There are invertibility conditions that are important to be aware of.
|
||||
*/
|
||||
|
||||
|
||||
// Setup envelope conditions
|
||||
// Set up laws of motion
|
||||
// Recursive definition of time-transition function.
|
||||
|
||||
// Increment optimality/stationarity conditions
|
||||
// Substitute time-transition function as needed into stationarity conditions
|
||||
|
||||
// Choose the set of transitioned, stationarity conditions you will be using
|
||||
// Set them into a vector of conditions.
|
||||
// Now you should have a vector function in terms of Θ, x(), and maybe ∇Vtt.
|
||||
// Make sure to add the complementary slackness conditions
|
||||
|
||||
// Set up loss functions
|
||||
// The most basic is the l_2 metric on the vector.
|
||||
// It may be worth making a penalized loss function, but you do you.
|
||||
|
||||
// Generate your initial neural network
|
||||
// If you didn't solve out ∇Vtt, generate that as a neural network.
|
||||
// Honestly though, you should probably just solve it out.
|
||||
|
||||
// Substitute the neural network into the loss function
|
||||
// Generate a variety of states.
|
||||
// Start using some gradient descent to train the model
|
||||
|
||||
// Notice some error you made, and start over again (do you want to account for asymmetry in the utility functions?)
|
||||
Loading…
Reference in New Issue