Posts

Decision Making Index

Last edited: August 8, 2025

Lecture notes taking during CS238, decision making. Stanford Intelligence Systems Laboratory (SISL: planning and validation of intelligent systems).

Big Ideas

Themes

  1. There’s a principled mathematical framework for defining rational behavior
  2. There are computational techniques that could lead to better, and perhaps counter-intuitive decisions
  3. 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
  4. 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, 2025

A 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

  1. chance nodes: random variables — some inputs we can observe, some are latent variables we can’t observe — circles
  2. action nodes: what we have control over — squares
  3. utility nodes: output, what the results would be; we typically sum utilities together if you have multiple of them — diamonds

Edges

  1. conditional edge - arrows to chance nodes: conditional probability edges
  2. informational edge - arrows to action nodes: this information is used to inform choice of action
  3. 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, 2025

a 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, 2025

deep 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, 2025

Facts

  1. Everybody writes bugs
  2. 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.