Skip to content

Instantly share code, notes, and snippets.

@curtisallen
Created August 14, 2013 20:43
Show Gist options
  • Select an option

  • Save curtisallen/6235379 to your computer and use it in GitHub Desktop.

Select an option

Save curtisallen/6235379 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"metadata": {
"name": "Hyperbolic tangent tanh"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": "[How to represent an unbounded variable as number between 0 and 1](http://stats.stackexchange.com/a/1113)"
},
{
"cell_type": "code",
"collapsed": false,
"input": "%load_ext rmagic \n",
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": "A very common trick to do so (e.g., in connectionist modeling) is to use the [hyperbolic tangent tanh](http://en.wikipedia.org/wiki/Tanh) as the 'squashing function\". It automatically fits all numbers into the interval between -1 and 1. Which in your case restricts the range from 0 to 1. In r and matlab you get it via tanh().\n\nAnother squashing function is the logistic function (thanks to Simon for the name), provided by f(x)=1/(1+e\u2212x), which restricts the range from 0 to 1 (with 0 mapped to .5). So you would have to multiply the result by 2 and subtract 1 to fit your data into the interval between 0 and 1.\n\nHere is some simple R code which plots both functions (tanh in red, logistic in blue) so you can see how both squash:"
},
{
"cell_type": "code",
"collapsed": false,
"input": "%%R\nx <- seq(0,20,0.001)\nplot(x,tanh(x),pch=\".\", col=\"red\", ylab=\"y\")\npoints(x,(1 / (1 + exp(-x)))*2-1, pch=\".\",col=\"blue\")",
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "display_data",
"png": "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\n"
}
],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": "",
"language": "python",
"metadata": {},
"outputs": []
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment