Last active
December 14, 2015 01:39
-
-
Save rmcgibbo/5008349 to your computer and use it in GitHub Desktop.
Roothan-Hall MSM (Noe)
This file contains hidden or 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": "roothan" | |
| }, | |
| "nbformat": 3, | |
| "nbformat_minor": 0, | |
| "worksheets": [ | |
| { | |
| "cells": [ | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# Roothan-Hall \"MSM\" on the Muller Potential\n", | |
| "# http://arxiv.org/pdf/1211.7103v1.pdf\n", | |
| "\n", | |
| "import random\n", | |
| "# you need to have Rober's Muller Potential code, which can\n", | |
| "# be found on his github and is an installable package\n", | |
| "from mullermsm import muller\n", | |
| "mullerforce = muller.muller_force()\n", | |
| "from sklearn import mixture\n", | |
| "import scipy.linalg" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 121 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# Sample a trajectory on the muller potential\n", | |
| "\n", | |
| "kT = 15.0\n", | |
| "dt = 0.1\n", | |
| "mGamma = 1000.0\n", | |
| "traj_length = 100000\n", | |
| "thinning = 10\n", | |
| "initial_x = [random.uniform(-1.5, 1.2), random.uniform(-0.2, 2)]\n", | |
| "positions = muller.propagate(traj_length, initial_x, kT, dt, mGamma, mullerforce)\n", | |
| "positions = positions[::thinning]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [], | |
| "prompt_number": 63 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# Fit the soft basis functions (fuzzy clustering) with a gaussian mixture model\n", | |
| "# trained by E-M\n", | |
| "\n", | |
| "# create a mixtutre model\n", | |
| "# since we're supposed to be fitting half-weighted eigenfunctions that model\n", | |
| "# \\mu(x)^{1/2}, we're kind of cheating here by fitting the model to \\mu(x)\n", | |
| "# but hopefully this isn't a huge deal...\n", | |
| "print 'positions.shape', positions.shape\n", | |
| "n_components = 10\n", | |
| "mixturemodel = mixture.GMM(n_components=n_components, covariance_type='diag')\n", | |
| "mixturemodel.fit(positions)" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "positions.shape (10000, 2)\n" | |
| ] | |
| }, | |
| { | |
| "output_type": "pyout", | |
| "prompt_number": 64, | |
| "text": [ | |
| "GMM(covariance_type=None, init_params='wmc', min_covar=0.001, n_components=10,\n", | |
| " n_init=1, n_iter=100, params='wmc', random_state=None, thresh=0.01)" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 64 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# plot the mixture model, just\n", | |
| "# for debugging really\n", | |
| "\n", | |
| "from matplotlib.patches import Ellipse\n", | |
| "title('Gaussian Mixture Model, n=%d' % n_components)\n", | |
| "scatter(positions[:,0], positions[:,1], marker='.', facecolors='none', alpha=0.5)\n", | |
| "xlim(-2.0, 1.5)\n", | |
| "ylim(-0.5, 2.0)\n", | |
| "for i in range(n_components):\n", | |
| " circ = Ellipse(mixturemodel.means_[i], width=2*np.sqrt(mixturemodel.covars_[i,0]),\n", | |
| " height=2*np.sqrt(mixturemodel.covars_[i,1]), alpha=0.5, facecolor='red',\n", | |
| " edgecolor='none')\n", | |
| " figure(1).axes[0].add_patch(circ)" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "display_data", | |
| "png": "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\n7t3LggULuP3224EJ///u3bt59NFH+ctf/sLo6ChxcXHARFHSk08+ibO/n8LRUX5w1VVEnsVNJgAy\nMjIwGo3Ex8fj8/s5dPgwsbGxzJbLOXL0KKKwMMLCwvD5fFisVlKSkxFLJMjlclpbWoiNiyMnN5eY\nSZeWUqmEyUVINziIzWZjfkEB8T09JFutNGzbRv7NNxMTE4PT6WTJkiXMnj2bxsZGzGYzBw4cIDk5\nmaqqKiorK8nIyODRRx9Fp9Px5JNP0tXVhdlsZsWKFYyNjVFZWYlarSYrK4vDhw8zPDyMRqOhv7+f\ntra2YMtIkUgUTFM9uXgAjI6OcvDgQdatW8f777/PrFmzuOuuu2hoaOD222//h/Y4DvH3J2T4rwA6\nOjrw+XzceOONbN++/WsN/8n0T5VKddaGItPlk08+oaCggPr6+gn/d3Y2L7/8MjExMcycOZPR0VEy\nMzNxuVz86U9/wmazkZeXh0KhwGKxsGLFiguSJnA6nbz33nssWbKEd955h8cff5yVK1eyaNEipFJp\n8NFWKBSSnp7OW2+9hVgsniKV8NxzzzF44ADXicXMio5GCHh9Pjo6OggEAmRlZZ3WaCYjI4O29nas\nVivJSUno9Xp2796NKjKS/Px8Pv3sMwgEiI2NpaOzk/y8PIZHRoiKikIgEHDgwAGuueYabDYbjQ0N\nAOTm5hIVHY3b46G1pYWIiAhmJSZSFhPDn156idGoKIpLSqisrOS6667jz3/+MxKJhIMHD7Jw4UJW\nr17N7Nmz2bp1K4ODg6xcuZL4+HgiIyODxlgikXDNNdfg9/t56qmn6OnpQaVSkZ2dzT333DPFvy+R\nSLj77rtpb2/nnnvuCS62CoUCv9/P8ePHg72SNRrNBcUGQnzzuWjDv3v3bh588EG8Xi+PPvoojzzy\nyJTXd+3axfr164NyxTfffDM//elPL/a0/1RoNBr0ej2VlZVnzN0+lS+++IK2tjbsdjvf+973Lir3\nXy6XMzw8jNPpRC6Xk5yczC9/+Us+++wzEhISgl2yhoeHEQgEPPjgg/zsZz9j7ty5JCcnU1lZGdyd\nXwhf9V0KBAJefPFFxsbGWL16NWVlZXzve99Dp9MRFxcX7LA1PDzM0ffeY73fj8JiQTNzJsqICI7X\n19PW1oZIJMLj8VB0ygIaYGI3fHKh6uzoIDUtDYfDgVwup3L7doQCAaMGA9HR0QiAzMxMEjQadu7c\n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\n", | |
| "text": [ | |
| "<matplotlib.figure.Figure at 0x10dc13490>" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 65 | |
| }, | |
| { | |
| "cell_type": "code", | |
| "collapsed": false, | |
| "input": [ | |
| "# Now compute the H and S matricies that make the generalized eigenproblem\n", | |
| "\n", | |
| "# we're actually cheating here: our gaussians were fit to model the density, but\n", | |
| "# they should have been fit to model the sqrt of the density since we're using them\n", | |
| "# as \"half weighted\" eigenfunctions. But this requires making a new mixture model\n", | |
| "# type in sklearn...\n", | |
| "\n", | |
| "def get_H_matrix(positions, means, covars, lag_time=1):\n", | |
| " \"\"\"Compute the correlatation matrix\n", | |
| "\n", | |
| " Parameters\n", | |
| " ----------\n", | |
| " positions : array_like, shape=[traj_length, n_dimensions]\n", | |
| " The trajectory\n", | |
| " means : array_like, shape=[n_basis, n_dimensions]\n", | |
| " The means of the gaussian basis functions\n", | |
| " covars : array_like, shape=[n_basis, n_dimensions]\n", | |
| " The (diagonal) covariances of each basis function\n", | |
| " lag_time : int\n", | |
| " The lag time\n", | |
| "\n", | |
| " Returns\n", | |
| " -------\n", | |
| " H : ndarray, shape=[n_basis, n_basis]\n", | |
| " The H matrix\n", | |
| " \"\"\"\n", | |
| " \n", | |
| " n_basis = means.shape[0]\n", | |
| " assert covars.shape[0] == n_basis\n", | |
| " traj_length = positions.shape[0]\n", | |
| " \n", | |
| " H = np.zeros((n_basis, n_basis))\n", | |
| " n_terms = 0\n", | |
| " \n", | |
| " proba = mixturemodel.predict_proba(positions)\n", | |
| " for i in range(traj_length - lag_time):\n", | |
| " # value of the basis functions at position i in traj\n", | |
| " phi_im = proba[i]\n", | |
| " # equlibrium probability at position i in traj\n", | |
| " mu_i = np.square(np.sum(phi_im))\n", | |
| " \n", | |
| " # value of the basis functions at positions i+lag in traj\n", | |
| " phi_jm = proba[i + lag_time]\n", | |
| " # equlibrium probability at position i + lag in traj\n", | |
| " mu_j = np.square(np.sum(phi_jm))\n", | |
| "\n", | |
| " H += np.outer(phi_im, phi_jm) / np.sqrt(mu_i*mu_j)\n", | |
| " n_terms += 1\n", | |
| "\n", | |
| " H /= n_terms\n", | |
| " return H\n", | |
| "\n", | |
| "\n", | |
| "def get_S_matrix(means, covars):\n", | |
| " \"\"\"Compute the overlap matrix\n", | |
| "\n", | |
| " Parameters\n", | |
| " ----------\n", | |
| " means : array_like, shape=[n_basis, n_dimensions]\n", | |
| " The means of the gaussian basis functions\n", | |
| " covars : array_like, shape=[n_basis, n_dimensions]\n", | |
| " The (diagonal) covariances of each basis function\n", | |
| "\n", | |
| " Returns\n", | |
| " -------\n", | |
| " S : ndarray, shape=[n_basis, n_basis]\n", | |
| " The S overlap matrix\n", | |
| " \"\"\"\n", | |
| " # need the analytic formula for the overlap\n", | |
| " n_basis = means.shape[0]\n", | |
| " assert covars.shape[0] == n_basis\n", | |
| " assert covars.shape[1] == means.shape[1]\n", | |
| "\n", | |
| " S = np.zeros((n_basis, n_basis))\n", | |
| "\n", | |
| " for i in range(n_basis):\n", | |
| " for j in range(i, n_basis):\n", | |
| " dx2 = np.square(means[i] - means[j])\n", | |
| " p = covars[i] + covars[j]\n", | |
| " S[i,j] = np.product(np.sqrt(2*np.pi*p)**(-1) * np.exp(-dx2 / (2*p)))\n", | |
| " S[j, i] = S[i, j]\n", | |
| " \n", | |
| " return S\n", | |
| "\n", | |
| "# solve the generalied eigenvalue problem\n", | |
| "H = get_H_matrix(positions, mixturemodel.means_, mixturemodel.covars_)\n", | |
| "S = get_S_matrix(mixturemodel.means_, mixturemodel.covars_)\n", | |
| "eigenvalues, eigenvectors = scipy.linalg.eig(a=H, b=S)\n", | |
| "\n", | |
| "# visualize these??? (how to find the bugs...)\n", | |
| "print eigenvalues\n", | |
| "print -1 / np.log(np.real(eigenvalues))\n", | |
| "print eigenvectors[:,0]" | |
| ], | |
| "language": "python", | |
| "metadata": {}, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "stream": "stdout", | |
| "text": [ | |
| "[ 0.02829032+0.j 0.01278124+0.j 0.00656028+0.j 0.00547353+0.j\n", | |
| " 0.00338804+0.j 0.00273285+0.j 0.00215577+0.j 0.00071616+0.j\n", | |
| " 0.00155569+0.j 0.00117937+0.j]\n", | |
| "[ 0.28048636 0.22936954 0.19893678 0.19201848 0.17582404 0.16942232\n", | |
| " 0.16287692 0.13809079 0.15465901 0.14830685]\n", | |
| "[ 1.52594565e-04 -9.15761256e-07 -3.49805903e-01 -2.76340447e-05\n", | |
| " -9.07852080e-06 2.62325373e-07 7.72079348e-02 1.00000000e+00\n", | |
| " -4.19961013e-02 1.34157598e-06]\n" | |
| ] | |
| } | |
| ], | |
| "prompt_number": 143 | |
| }, | |
| { | |
| "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