Decision Making Index
Last edited: August 8, 2025Lecture notes taking during CS238, decision making. Stanford Intelligence Systems Laboratory (SISL: planning and validation of intelligent systems).
Big Ideas
Themes
- There’s a principled mathematical framework for defining rational behavior
- There are computational techniques that could lead to better, and perhaps counter-intuitive decisions
- Successful application depends on your choice of representation and approximation
- you typically can’t solve mathematical models exactly
- so, we have to rely on good models of approximations
- The same computational approaches can be applied to different application domains
- the same set of abstractions can be carried through life
- send Mykel a note about how these topics about where this stuff is applied
These algorithms drive high quality decisions on a tight timeline. You can’t fuck up: people die.
decision network
Last edited: August 8, 2025A decision network is a Baysian Network which is used to make decisions based on optimizing utility.
To solve a problem, we iterate through all possible decision parameters to find the one that maximizes utility.
Nodes
- chance nodes: random variables — some inputs we can observe, some are latent variables we can’t observe — circles
- action nodes: what we have control over — squares
- utility nodes: output, what the results would be; we typically sum utilities together if you have multiple of them — diamonds
Edges
- conditional edge - arrows to chance nodes: conditional probability edges
- informational edge - arrows to action nodes: this information is used to inform choice of action
- functional edge - arrows to utility nodes: computes how the action affects the world
Example

For \(U\), for instance, you can have a factor that loks ilke:
deep approach
Last edited: August 8, 2025a student approach to learning where learning outcomes are driven by student’s own experience to deeply drive educational results independenlty
deep learning
Last edited: August 8, 2025deep learning is MLE performed with neural networks. A neural network is many logistic regression pieces (sic.?) stack on top of each other.
We begin motivating this with trying to solve MNIST with logistic regression. What a time to be alive. After each layer of deep learning, we are going to use a layer of “hidden variable”, made of singular logistic regressions,
Notation:
\(x\) is the input, \(h\) is the hidden layers, and \(\hat{y}\) is the prediction.
Defensive Programming
Last edited: August 8, 2025Facts
- Everybody writes bugs
- Debugging sucks
Defensive Programming Tools + Techniques
- Use language features
- Specs, documentations, Test-Driven Development, unit testing
- Fail fast and loudly
- Systematic debugging
- Investing in tools
Use Language Features
- Descriptors: static, final, pub./priv.
- Type checking: prevent type errors
- Automatic array bounds checking
- Memory management
- Compiler optimization
Key idea: know what language features are available, why/when to use them. don’t work against the language in circumventing them
Specs, Docs., TDD, Unit Tests
- How should it work: specs
- How does it work: docs
- How will I know it works: TDD
- How do I know it still works: unit tests
These all force you to think about your code before!! you write it so then you can correct them as soon as possible.