Created
January 29, 2015 15:41
-
-
Save dmeliza/4a7304f29305061b8f53 to your computer and use it in GitHub Desktop.
Learning models
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"metadata": { | |
"name": "", | |
"signature": "sha256:a905b039fcac5aa3f055d6512113f7060d9baee4f585082816e9c5f2f2d1f571" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"%matplotlib inline\n", | |
"import matplotlib.pyplot as plt\n", | |
"import numpy as np" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 47 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Learning Models\n", | |
"\n", | |
"Classical learning models predict what happens to the strength (V) of the association between CS and US on each trial. Let's build a learning model that can predict the following phenomena:\n", | |
"\n", | |
"- learning curve (defined by rate and asymptote)\n", | |
"- extinction\n", | |
"- blocking\n", | |
"- overshadowing\n", | |
"- inhibitory conditioning\n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## The simplest learning rule\n", | |
"\n", | |
"$V^{(n)} - V^{(n-1)} = \\Delta V = \\alpha \\lambda$\n", | |
"\n", | |
"- $\\alpha$ - the strength or *associability* of the CS\n", | |
"- $\\lambda$ - the strength of the US\n", | |
"\n", | |
"To see how this learning rule works, let's apply it iteratively:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"V_0 = 0\n", | |
"alpha = 0.2\n", | |
"lmbda = 100\n", | |
"\n", | |
"print (alpha * lmbda)" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"20.0\n" | |
] | |
} | |
], | |
"prompt_number": 48 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"V = V_0\n", | |
"for trial in range(0, 20):\n", | |
" plt.plot(trial, V, 'ok', hold=1)\n", | |
" V = V + alpha * lmbda\n", | |
" \n", | |
"plt.xlabel(\"Trial\")\n", | |
"plt.ylabel(\"Associative Strength (V)\")" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 49, | |
"text": [ | |
"<matplotlib.text.Text at 0x10df8e0b8>" | |
] | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "display_data", | |
"png": "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\n", | |
"text": [ | |
"<matplotlib.figure.Figure at 0x10de987f0>" | |
] | |
} | |
], | |
"prompt_number": 49 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Adding an asymptote\n", | |
"\n", | |
"One major problem with the simple model is that it predicts a linear growth in the CR, whereas what we observe is an asymptote. In other words, learning rate *decreases* with training. Here's a second try:\n", | |
"\n", | |
"$\\Delta V = \\alpha (\\lambda - V)$\n", | |
"\n", | |
"And let's see how that looks:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"V = V_0\n", | |
"for trial in range(0, 20):\n", | |
" plt.plot(trial, V, 'ok', hold=1)\n", | |
" V = V + alpha * (lmbda - V)\n", | |
" \n", | |
"plt.xlabel(\"Trial\")\n", | |
"plt.ylabel(\"Associative Strength (V)\")" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Let's play around with $\\alpha$ and $\\lambda$:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"V = V_0\n", | |
"for trial in range(0, 20):\n", | |
" plt.plot(trial, V, 'ok', hold=1)\n", | |
" V = V + alpha * (lmbda - V)\n", | |
"\n", | |
"alpha = 0.4 \n", | |
"V = V_0\n", | |
"for trial in range(0, 20):\n", | |
" plt.plot(trial, V, 'or', hold=1)\n", | |
" V = V + alpha * (lmbda - V)\n", | |
" \n", | |
"plt.xlabel(\"Trial\")\n", | |
"plt.ylabel(\"Associative Strength (V)\")" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Rescorla-Wagner\n", | |
"\n", | |
"To explain blocking, overshadowing, and inhibitory conditioning, we need to expand the model to deal with compound stimuli. One simple way of doing this is to assume that each component of a compound stimulus contributes independently to the CR:\n", | |
"\n", | |
"$V = \\Sigma_i V_i$\n", | |
"\n", | |
"But that the change in associative strength for stimulus $i$ is determined by the **total** $V$:\n", | |
"\n", | |
"$\\Delta V_i = \\alpha_i (\\lambda - V)$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"V_1 = V_2 = 0\n", | |
"alpha_1 = 0.2\n", | |
"alpha_2 = 0.3\n", | |
"lmbda = 100\n", | |
"\n", | |
"print (\"Delta V_1 = %f\" % (alpha_1 * (lmbda - (V_1 + V_2))))\n", | |
"print (\"Delta V_2 = %f\" % (alpha_2 * (lmbda - (V_1 + V_2))))" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Blocking\n", | |
"\n", | |
"Recall that the experimental animals were first trained on a single CS:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"V_1 = V_2 = 0\n", | |
"for trial in range(0, 20):\n", | |
" plt.plot(trial, V_1, 'or', trial, V_2, 'ob', hold=1)\n", | |
" V_1 = V_1 + alpha_1 * (lmbda - (V_1 + V_2))\n", | |
" \n", | |
"plt.xlabel(\"Trial\")\n", | |
"plt.ylabel(\"Associative Strength (V)\")" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Now they're trained on a compound CS. What value is $V_1$?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"print(\"V1 = %f, V2 = %f\" % (V_1, V_2))\n", | |
"for trial in range(0, 20):\n", | |
" plt.plot(trial, V_1, 'or', trial, V_2, 'ob', hold=1)\n", | |
" V_1 = V_1 + alpha_1 * (lmbda - (V_1 + V_2))\n", | |
" V_2 = V_2 + alpha_2 * (lmbda - (V_1 + V_2))\n", | |
" \n", | |
"plt.xlabel(\"Trial\")\n", | |
"plt.ylabel(\"Associative Strength (V)\")\n", | |
"\n", | |
"print(\"V1 = %f, V2 = %f\" % (V_1, V_2))" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"V_1 = V_2 = 0\n", | |
"for trial in range(0, 20):\n", | |
" plt.plot(trial, V_1, 'or', trial, V_2, 'ob', trial, V_1 + V_2, 'ok', hold=1)\n", | |
" V_1 = V_1 + alpha_1 * (lmbda - (V_1 + V_2))\n", | |
" V_2 = V_2 + alpha_2 * (lmbda - (V_1 + V_2))\n", | |
" \n", | |
"plt.xlabel(\"Trial\")\n", | |
"plt.ylabel(\"Associative Strength (V)\")\n", | |
"\n", | |
"print(\"V1 = %f, V2 = %f\" % (V_1, V_2))" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Overshadowing\n", | |
"\n", | |
"We can see overshadowing in the previous example for the control animals: the associative strength of $CS_1$ and $CS_2$ is less than the total associative strength that either one would reach if conditioned alone.\n", | |
"\n", | |
"What happens if $\\alpha_1 \\gg \\alpha_2$?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"alpha_1 = 0.9\n", | |
"alpha_2 = 0.1\n", | |
"V_1 = V_2 = 0\n", | |
"for trial in range(0, 20):\n", | |
" plt.plot(trial, V_1, 'or', trial, V_2, 'ob', trial, V_1 + V_2, 'ok', hold=1)\n", | |
" V_1 = V_1 + alpha_1 * (lmbda - (V_1 + V_2))\n", | |
" V_2 = V_2 + alpha_2 * (lmbda - (V_1 + V_2))\n", | |
" \n", | |
"plt.xlabel(\"Trial\")\n", | |
"plt.ylabel(\"Associative Strength (V)\")\n", | |
"\n", | |
"print(\"V1 = %f, V2 = %f\" % (V_1, V_2))" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Inhibitory conditioning\n", | |
"\n", | |
"Finally, let's consider the case where a CS is paired with the *absence* of a US:\n", | |
"\n", | |
"$\\Delta V_1 = \\alpha_1 (\\lambda - (V_1 + V_2))$\n", | |
"\n", | |
"$\\Delta V_2 = \\alpha_2 (0 - (V_1 + V_2))$" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"alpha_1 = 0.2\n", | |
"alpha_2 = 0.2\n", | |
"V_1 = 100 \n", | |
"V_2 = 0\n", | |
"for trial in range(0, 20):\n", | |
" plt.plot(trial, V_1, 'or', trial, V_2, 'ob', trial, V_1 + V_2, 'ok', hold=1)\n", | |
" V_1 = V_1 + alpha_1 * (lmbda - (V_1 + V_2))\n", | |
" V_2 = V_2 + alpha_2 * (0 - (V_1 + V_2))\n", | |
" \n", | |
"plt.xlabel(\"Trial\")\n", | |
"plt.ylabel(\"Associative Strength (V)\")\n", | |
"\n", | |
"print(\"V1 = %f, V2 = %f\" % (V_1, V_2))" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Observe that $CS_2$ now has a negative associative strength. We can explain the results of a summation test by pairing $CS_2$ with a novel $CS_3$. We can explain the retardation test by comparing how long it takes to reach asymptote relative to controls" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"V_1 = 0\n", | |
"for trial in range(0, 20):\n", | |
" plt.plot(trial, V_1, 'or', trial, V_2, 'ob', hold=1)\n", | |
" V_1 = V_1 + alpha_1 * (lmbda - V_1)\n", | |
" V_2 = V_2 + alpha_2 * (lmbda - V_2)\n", | |
" \n", | |
"plt.xlabel(\"Trial\")\n", | |
"plt.ylabel(\"Associative Strength (V)\")\n", | |
"\n", | |
"print(\"V1 = %f, V2 = %f\" % (V_1, V_2))" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [] | |
}, | |
{ | |
"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