# SoftMax Distributions for Human-Robot Interaction

This iPython Notebook is a living document that details the development and usage of SoftMax distributions -- a powerful tool to probabilistically decompose state spaces.

DISCLAIMER: This document's current status is in development. That means code might be broken, text may have typos, and math might be missing/wrong. Read this as ongoing research notes until this disclaimer is removed.

NOTE: While you can read this document as-is using nbviewer, the best way to read it is by downloading the .ipynb files and associated code from the project's GitHub repository, then running ipython notebook locally.

The notebook is publically available at http://nbviewer.ipython.org/github/COHRINT/cops_and_robots/blob/master/notebooks/softmax/Main.ipynb

## Chapter 1 - Introduction to SoftMax Distributions

We look at the basics of why you'd want to use SoftMax distributions, how to make them, and what their general basic properties are.

## Chapter 2 - Using Normals Instead of Weights

Instead of defining weights by hand, we show other ways to create SoftMax distributions: using vector normals.

## Chapter 3 - Building SoftMax Distributions from Templates

We can abstract the SoftMax distribution creation even further using templates.

## Chapter 4 - Subclassing and Superclassing: Multimodal SoftMax

SoftMax distributions can be overly simplistic for some models, so we investigate ways to modify SoftMax distributions for general, non-symmetric cases.

TODO

TODO

TODO

## Chapter 8 - N-Dimensional SoftMax

TODO



In [1]:

from IPython.core.display import HTML

# Borrowed style from Probabilistic Programming and Bayesian Methods for Hackers
def css_styling():
return HTML(styles)
css_styling()




Out[1]:

div.cell{
width:800px;
margin-left:16% !important;
margin-right:auto;
}
h1, h2, h3, h4 {
font-family: "Roboto", "wingdings", sans-serif;
}
h1{
font-weight: 500;
}
h2{
font-weight: 400;
}
h3{
font-weight: 300 !important;
/*         font-style: italic; */
}
h4{
font-weight: 300 !important;
font-style: italic;
margin-top:12px;
margin-bottom: 3px;
}
div.text_cell_render{
font-family: "HelveticaNeue-light", "Helvetica Neue", Arial, Helvetica, Geneva, sans-serif;
line-height: 145%;
font-size: 120%;
width:800px;
margin-left:auto;
margin-right:auto;
}
.CodeMirror{
font-family: "Source Code Pro", source-code-pro,Consolas, monospace;
}
.prompt{
display: None;
}
.text_cell_render h5 {
font-weight: 300;
font-size: 22pt;
color: #4057A1;
font-style: italic;
margin-bottom: .5em;
margin-top: 0.5em;
display: block;
}

.warning{
color: rgb( 240, 20, 20 )
}

MathJax.Hub.Config({
TeX: {
extensions: ["AMSmath.js"]
},
tex2jax: {
inlineMath: [ ['$','$'], ["\$","\$"] ],
displayMath: [ ['$$','$$'], ["\$","\$"] ]
},
displayAlign: 'center', // Change this to 'center' to center equations.
"HTML-CSS": {
styles: {'.MathJax_Display': {"margin": 4}}
}
});