Skip to content

Instantly share code, notes, and snippets.

@alinaselega
Last active August 16, 2021 20:15
Show Gist options
  • Save alinaselega/6f136413664f997015a71070109995cf to your computer and use it in GitHub Desktop.
Save alinaselega/6f136413664f997015a71070109995cf to your computer and use it in GitHub Desktop.
This notebook demonstrates the steps of using a scaled translated sigmoid to bound a free parameter to an interval [a,b].
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "7358d9bb",
"metadata": {},
"source": [
"Reparameterisation for a free parameter to a bounded interval."
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "2cb5fa26",
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import matplotlib.pyplot as plt\n",
"plt.style.use(\"ggplot\")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "1e7ea718",
"metadata": {},
"outputs": [],
"source": [
"x = torch.linspace(-10, 10, 100)"
]
},
{
"cell_type": "markdown",
"id": "86013932",
"metadata": {},
"source": [
"Map $x \\in R \\rightarrow [0,1]$ with a sigmoid:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "83f8b4e5",
"metadata": {},
"outputs": [],
"source": [
"y = torch.sigmoid(x)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "eca5895a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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xo2qr69XSUmJDh8+fM5/f/Py8vTuu+9Kkt59991m/3O4UDt37lRWVlajf8/OVltbq5qamobLH3/8sXJyciKS5bSz96Nu2rTpnP/K9uvXT4cPH1ZJSYkCgYA2btyovLy8iObavn27XnvtNc2cOVMJCQnnnCZa66s19z8vL08bNmyQMUZ79uxRcnJyxEvMGKMlS5YoOztbY8aMOec0FRUVDVuHxcXFcl1XXbp0iWiu1jwusVhfp53vv+1YrK/TWtND7fVavOQ/kbtp0ya99NJLOn78uDp16qQ+ffroN7/5jaTQ7oG3335bHo9HDz74oK699lpJ0pIlS3TrrbeqX79+OnHihBYuXKjS0lJlZGTo0UcfbfdDNiVp0aJF6t+/v0aPHt0wzO/3609/+pOefPJJHT16VM8++6yk0H8FN954o8aNG9fuOc72wgsvaN++fXIcR927d9fUqVOVlpbWKJckbd26VStWrJDrurr55psjnutnP/uZAoFAw+PQv39/TZ06NWbr61z3f926dZKk0aNHyxijpUuXaseOHYqPj9f06dMbHTocCZ999plmz56tnJychv+EJkyY0LAFPXr0aL355ptat26dvF6v4uPj9cADD2jgwIERzdXc4xLr9SVJJ0+e1E9/+lP98Y9/bNiqPztXtNbXc889p127dunEiRNKSUnR+PHjNXTo0HP2UCRei5d86QMAWq/D7t4BADRF6QOARSh9ALAIpQ8AFqH0AcAilD4AWITSBwCLUPoAYBFKHwjDkSNHNGXKFH355ZeSQp+q/vGPf6yioqIYJwNah9IHwpCZman77rtPL7zwgk6ePKkXX3xRI0eO1ODBg2MdDWgVvoYBaIOnn35aJSUlchxHTz31lOLi4mIdCWgVtvSBNhg1apT279+v22+/ncLHJYXSB8JUW1urFStW6JZbbtHq1atVWVkZ60hAq1H6QJiWLVumvn37atq0aRoyZIj+/Oc/xzoS0GqUPhCGzZs3a/v27Zo6daokafLkydq7d6/ee++9GCcDWoc3cgHAImzpA4BFKH0AsAilDwAWofQBwCKUPgBYhNIHAItQ+gBgEUofACzy/wFWT2waT31WNAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(x, y)\n",
"plt.xlabel(\"x\")\n",
"plt.ylabel(r\"$\\sigma(x)$\")\n",
"plt.ylim(-0.5, 4.5)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "6c3d9ac9",
"metadata": {},
"source": [
"Scale the output of the sigmoid from $[0,1] \\rightarrow [0, b-a]$:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "161cd564",
"metadata": {},
"outputs": [],
"source": [
"a = torch.tensor([2.])\n",
"b = torch.tensor([4.])\n",
"\n",
"y_scaled = torch.sigmoid(x) * (b-a)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "d9bc5c2a",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(x, y_scaled)\n",
"plt.xlabel(\"x\")\n",
"plt.ylabel(r\"$\\sigma(x) \\cdot (b-a)$\")\n",
"plt.ylim(-0.5, 4.5)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "1c491020",
"metadata": {},
"source": [
"Translate the output to the desired interval $[a, b]$:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "7e03fa20",
"metadata": {},
"outputs": [],
"source": [
"y_bounded = torch.sigmoid(x) * (b-a) + a"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "155d509e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"plt.plot(x, y_bounded)\n",
"plt.xlabel(\"x\")\n",
"plt.ylabel(r\"$\\sigma(x) \\cdot (b-a) + a$\")\n",
"plt.ylim(-0.5, 4.5)\n",
"plt.show()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.12"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment