Skip to content

Instantly share code, notes, and snippets.

@tobydriscoll
Created September 6, 2016 13:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tobydriscoll/08fc56bca086f957920f1088e0844c30 to your computer and use it in GitHub Desktop.
Save tobydriscoll/08fc56bca086f957920f1088e0844c30 to your computer and use it in GitHub Desktop.
TB Lecture 4 (matlab)
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Lecture 4: Singular value decomposition"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Geometric interpretation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The SVD has many possible interpretations and uses. We can visualize the geometry of the SVD using the same 2D picture used to illustrate the induced 2-norm."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAjAAAAGkCAIAAACgjIjwAAAACXBIWXMAABcSAAAXEgFnn9JSAAAA\nB3RJTUUH4AkGDQArVo/mnAAAACR0RVh0U29mdHdhcmUATUFUTEFCLCBUaGUgTWF0aFdvcmtzLCBJ\nbmMuPFjdGAAAACJ0RVh0Q3JlYXRpb24gVGltZQAwNi1TZXAtMjAxNiAwOTowMDo0M4kc0VEAACAA\nSURBVHic7d1/fNV13f/xx2D8Goex8fNAC4YNlZUwKmxpNTDj0swLlvgt4yrQy75lRrHqystvV+Hs\nVullxPyml1b+QK9Q+0oxUsPIC1iCTjE9U5qpRxhwxAPifp6NAfvx/WOGmgj7cc55vT+fz/P+B7cx\nd4MncjjPvd6f9+f9yeju7kZERMTaIOsAIiIioEISERFHqJBERMQJKiQREXGCCklERJygQhIRESeo\nkERExAmZ1gFERPqpq6vr1ltv7erqAnJycv7lX/7FOpEMSIZujBURj/rjH/943nnn9XyckZGxc+fO\n/Px800QyIFqyExGvuvPOO4993N3dfffddxuGkYHThCQintTQ0DB58uT29vZjnznllFOi0WhGRoZh\nKhkITUgi4kn33XdfTxvl5OT0fGbnzp2PPvqoaSgZEBWS/23YsCHv7+65556eT7722mszZszo+eS1\n115rm1CkH46t11166aVnnnlmz8d33XXXsS/QK997uiUALr744p6/7tzc3H379nV3dy9atKjnM6ee\nempra6t1QJG+2bFjx7E3saeeeupnP/tZz8ejRo166+tZr3xvUSEFwuuvvz5p0qSef4cXXHDBb37z\nm56PMzMzn3zySet0In32ne98p+c1fNppp3V3d8disWOXju6+++5jX6ZXvreokIJiw4YNx76jHDZs\nWM8HP/zhD61zifTZ0aNHJ06c2PMavvbaa3s++YlPfKLnM5/85Cff+sV65XuIriEFxXnnnfe1r32t\n5+PDhw8DZ5111tVXX20aSqQ/NmzYsH///p6Pv/CFL/R88LnPfa7ng02bNu3Zs+fYF+uV7yEqpAC5\n4YYbJk+efOynt99+++DBgw3ziPTPse0MkydPfvLJJ++999577723o6Oj55Pd77ghSa98r9B9SAFS\nVVU1b968Y3/jV1111XXXXWcbSaSvDh48OHny5KNHj57ga6ZPn/7iiy8e+6le+V6hCSkoWlpali5d\n+tbvP2644YatW7caRhLphzVr1py4jYCXXnpp27ZtPR/rle8hOlw1KL71rW/V1dUB4XB45syZGzdu\n7Orq+tKXvlRTUzNq1CjrdCK9dWy97iMf+UhZWdlb/1NXV9dll13Wc7fs6tWrzz77bPTK9xbLHRWS\nLg8++OCxv/F169bt27cvNze356eXXXaZdTqR3nr66aePvZLvvPPOd35BaWlpz3/Nzs5ua2vTK99b\nVEj+99ZbMS655JKeT771hvbKykrbhCK99I1vfKPnRTt8+PCmpqZ3fsF999137IX9i1/8Qq98b1Eh\n+d+x7bATJkw4ePDgsc9fcMEFPZ8fP378/v37DROK9Mbhw4fHjh3b86K96KKLjvs1iUQiKyur52vC\n4bBe+d6iXXYiIuIE7bITEREnqJBERMQJKiQREXGCCklERJygQhIRESeokERExAkqJBERcYIKSURE\nnKBCEhERJ6iQRETECSokERFxggpJREScoEISEREnqJBERMQJKiQREXGCCklERJygQhIRESeokERE\nxAkqJBERcYIKSUREnKBCEhERJ6iQRETECSokERFxggpJREScoEISEREnqJBERMQJKiQREXGCCklE\nRJygQhIRESeokEREju91Ym00b2J1G82rKGsj8UMubSOxirIDxKqoPEDsADHrmP6RaR1ARMQJe4kc\novEFIsAuaiaQv4vIOSzZQdUszu35mknk93zQSvNL1LxK3avsfoLIfBbcwY3rePwB7ruM5VZ/BK/L\n6O7uts4gImKjgdjfeKSNxhrWn8M3Y9TM4mLgvRT29Zd6idrJTCnji6UsvoubL+Ob2eQUMzf5of1L\nhSQigfMqtcB/cvZ32fYov/pfrGomnk04ib/FWlbnkb+A0sfY/gceXKaxqRdUSCISFAniD3JFCT+6\nncX/wTNJL6F32k8c+CKXfJ1vPkvNf7Aipb+d16mQRMT/EsRvYsa32Ps0txVbDCs1RJpovJjSB9gw\nhgkFnJL+DO5TIYmIb9UTHUrop0y6hu7XqB3f9ytDybWfeAtt0/ngXmqBPCbb5nGNCklEfChOJEzR\nNWRcg4tvcWVcPZUpeUxexALrLA5RIYmIrxwkMs7hKnqreXzml/zf13m9mDnWWZygG2NFxCeaiAJr\nmQ2430bAZh78K8//ht/V8oJ1FidoQhIRn7iVjMtpzSTLOkifzebja7htDGPDjLPOYkkTkoh43q1k\n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\nwiE00lmJVS21xQGuy6U+Sn4JQ0N8fh1DsmzCSFLoGpKI9F93M90xjl5A5g10x8hMy062Zys4/TJ+\nPZWLtnPkCOO1k9svNCGJSP9lZDOokGG7GLyIrvV0buRIKZ0xOmNJ/o12VXK4kTXT2F9Ny26ONnNZ\nA6ML1Ea+oglJRJKmO0H3Hhp/xdBZ1JcxeTuJNeSsoDPO4HAffp2OBMBrjzAkh6duZHIJLbuZXMLE\nYrL68uuIt6iQRCQlOqJkFnCglNFXsf98clbQXsWRIrJm0VzF5G9z4HbyVhArZ9xXqL2aaV9h1y8Y\nPYuDVYwroamGcSUMyWF0MUNCDAlZ/3kk9fQ8JBFJicwCgAnrAKY00J1g5OdpqmZYPsPqAA7X0Zng\ncB2ZIUbPYlQhkxYw/lze83mGawwKJE1IIiLiBG1qEBERJ6iQRETECSokERFxggpJREScoEISEREn\nqJBERMQJKiQREXGCCklERJygQhIRESeokERExAkqJBERcYIKSUREnKBCEhERJ6iQRETECSokERFx\nggpJREScoEISEREnqJBERMQJKiQREXGCCklERJygQhIRESeokERExAkqJBERcYIKSUREnKBCEhER\nJ6iQRETECSokERFxggpJREScoEISEREnqJBERMQJKiQREXGCCklERJygQhIRESeokERExAkqJBER\ncYIKSUREnKBCEhERJ6iQRETECSokERFxggpJREScoEISEREnqJBERMQJKiQREXGCCklERJygQhIR\nESeokERExAkqJBERcYIKSUREnKBCEhERJ6iQRETECSokERFxggpJREScoEISEREnqJBERMQJKiQR\nEXGCCklERJygQhIRESeokERExAkqJBERcYIKSUREnKBCEhERJ6iQRETECSokERFxggpJREScoEIS\nEREnqJBERMQJKiQREXHC/wefhAgrwLN8DwAAAABJRU5ErkJggg==\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"A = [-2 0; -1 3];\n",
"t = linspace(0,2*pi,300);\n",
"x1 = cos(t); x2 = sin(t);\n",
"x = [x1;x2]; Ax = A*x;\n",
"subplot(121), scatter(x1,x2,4,t,'.'), axis equal, axis off, title('x')\n",
"subplot(122), scatter(Ax(1,:),Ax(2,:),4,t,'.'), axis equal, axis off, title('Ax')\n",
"colormap(hsv)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The **left singular vectors** and their associated **singular values** are found from the major and minor axes of the ellipse. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"sigma =\n",
"\n",
" 3.2566 1.8424\n",
"\n",
"\n",
"U =\n",
"\n",
" 0.2883 0.9558\n",
" 0.9576 -0.2939\n"
]
}
],
"source": [
"normAx = sqrt( sum(Ax.^2,1) ); % 2-norms of all the vectors\n",
"[sigma1,k1] = max(normAx); [sigma2,k2] = min(normAx);\n",
"sigma = [ sigma1 sigma2 ]\n",
"U = [ Ax(:,k1)/sigma1 Ax(:,k2)/sigma2 ]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The **right singular vectors** are the pre-images of those vectors on the ellipse."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"V =\n",
"\n",
" -0.4694 -0.8805\n",
" 0.8830 -0.4740\n"
]
}
],
"source": [
"V = [ x(:,k1) x(:,k2) ]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nGYWsEWhBTxVElaU2MwA8H41zBujTMVKLOysxIlxMGPILXkMiIt/ZLbA3omsRQlbD3oiQoKxk+3sp\nrrgXf4zDD/fj4kWM50pupeAIiYh8p4nEsCSEGjF8CWzb0LMTF7PR04ieRj+/kLEKnS3YFI9Te9F6\nFF0W3NuMMQmsRorCERIR+Y3dCvsxtPweI5NxrgCT9sO6CVGF6DFjuM6L83RbAeDMXzAiCp+8iEnp\naD2KSemYmIZwb85D8sKCREQB0W1ASAJOZ2PMkzi1EFGF6KjFxRSEJ8NSi0mP4vR6xBaisRjj7kPD\nKsTfB+PvMCYZZ2sxLh3n6zEuHSOiMCYNI7QYoRX930OBx/2QiCggQhIAYEIlAFzWDLsVo+/E+b0I\n1SPUBACdJvRY0WlCiBZjkhGRhJjFGH8jvncnwjgMUiWOkIiISBK4qIGIiCSBBYmIiCSBBYmIiCSB\nBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmI\niCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSB\nBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmI\niCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSB\nBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmI\niCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSB\nBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCSBBYmIiCTh/wNxsgiuMeF8nQAAAABJ\nRU5ErkJggg==\n",
"text/plain": [
"<IPython.core.display.Image object>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"subplot(121), scatter(x1,x2,4,t,'.'), axis equal, axis off, title('x')\n",
"hold on, plot([0 0; V(1,:)],[0 0; V(2,:)], 'k' )\n",
"text(1.2*V(1,:),1.2*V(2,:),{'v_1','v_2'})\n",
"subplot(122), scatter(Ax(1,:),Ax(2,:),4,t,'.'), axis equal, axis off, title('Ax')\n",
"hold on, plot([0 0; U(1,:).*sigma],[0 0; U(2,:).*sigma], 'k' )\n",
"text(1.1*U(1,:).*sigma,1.1*U(2,:).*sigma,{'\\sigma_1 u_1','\\sigma_2 u_2'})\n",
"colormap(hsv)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Having searched over only a finite number of vectors, we have approximately (up to choices of signs in the singular vectors) found the SVD of this matrix."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"U =\n",
"\n",
" 0.2898 0.9571\n",
" 0.9571 -0.2898\n",
"\n",
"\n",
"S =\n",
"\n",
" 3.2566 0\n",
" 0 1.8424\n",
"\n",
"\n",
"V =\n",
"\n",
" -0.4719 -0.8817\n",
" 0.8817 -0.4719\n"
]
}
],
"source": [
"[U,S,V] = svd(A)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Full versus thin"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the case of a rectangular matrix, some of the SVD is essentially dead weight. We consider (as always in this text) the case with $m>n$, a tall and skinny matrix. The range of $A$ can have at most only $n$ dimensions. The last $m-n$ columns of $U$ therefore describe the remainder of $\\mathbb{C}^m$ in which the range is embedded (i.e., the orthogonal complement). That description can be changed without affecting the matrix at all.\n",
"\n",
"Algebraically, we have \n",
"\n",
"$$U = \\bigl[ U_1 \\: U_2 \\bigr], \\qquad S = \\begin{bmatrix} S_1 \\\\ 0 \\end{bmatrix},$$\n",
"\n",
"where the breaks occur after $n$ columns in $U$ and $n$ rows in $S$. Therefore $US=U_1S_1$, and we change nothing by replacing the SVD with $U_1S_1V^*$. The book calls this the **reduced SVD**, though it is also called the **thin SVD**. "
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"U =\n",
"\n",
" -0.4360 -0.2481 -0.6419 0.3068 -0.4848 0.0844\n",
" -0.4139 -0.3658 0.0391 -0.7713 -0.0349 -0.3120\n",
" -0.4254 0.5159 0.0610 0.2613 0.0834 -0.6884\n",
" -0.4385 -0.3189 0.7227 0.3450 -0.1445 0.2094\n",
" -0.2543 -0.3155 -0.2428 0.2029 0.8540 0.0798\n",
" -0.4480 0.5807 -0.0388 -0.2872 0.0814 0.6095\n",
"\n",
"\n",
"S =\n",
"\n",
" 2.6512 0 0\n",
" 0 1.0597 0\n",
" 0 0 0.7824\n",
" 0 0 0\n",
" 0 0 0\n",
" 0 0 0\n",
"\n",
"\n",
"V =\n",
"\n",
" -0.5240 -0.8512 0.0293\n",
" -0.6235 0.4068 0.6677\n",
" -0.5802 0.3316 -0.7439\n",
"\n",
"\n",
"U1 =\n",
"\n",
" -0.4360 -0.2481 -0.6419\n",
" -0.4139 -0.3658 0.0391\n",
" -0.4254 0.5159 0.0610\n",
" -0.4385 -0.3189 0.7227\n",
" -0.2543 -0.3155 -0.2428\n",
" -0.4480 0.5807 -0.0388\n",
"\n",
"\n",
"S1 =\n",
"\n",
" 2.6512 0 0\n",
" 0 1.0597 0\n",
" 0 0 0.7824\n",
"\n",
"\n",
"V =\n",
"\n",
" -0.5240 -0.8512 0.0293\n",
" -0.6235 0.4068 0.6677\n",
" -0.5802 0.3316 -0.7439\n"
]
}
],
"source": [
"A = rand(6,3); \n",
"[U,S,V] = svd(A) % full SVD\n",
"[U1,S1,V] = svd(A,0) % thin SVD"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The price we pay is that while the columns of $U_1$ are orthonormal, we can't call it a unitary matrix because it isn't square. Take note:"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"ans =\n",
"\n",
" 1.0000 0.0000 0.0000\n",
" 0.0000 1.0000 -0.0000\n",
" 0.0000 -0.0000 1.0000\n",
"\n",
"\n",
"ans =\n",
"\n",
" 0.6637 0.2461 0.0184 -0.1936 0.3450 0.0761\n",
" 0.2461 0.3066 -0.0103 0.3264 0.2112 -0.0286\n",
" 0.0184 -0.0103 0.4509 0.0661 -0.0694 0.4878\n",
" -0.1936 0.3264 0.0661 0.8162 0.0367 -0.0168\n",
" 0.3450 0.2112 -0.0694 0.0367 0.2232 -0.0599\n",
" 0.0761 -0.0286 0.4878 -0.0168 -0.0599 0.5394\n"
]
}
],
"source": [
"U1'*U1 % n by n identity\n",
"U1*U1' % NOT the m by m identity"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We'll discuss the significance of $U_1U_1^*$ in due course."
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Matlab",
"language": "matlab",
"name": "matlab"
},
"language_info": {
"codemirror_mode": "octave",
"file_extension": ".m",
"help_links": [
{
"text": "MetaKernel Magics",
"url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md"
}
],
"mimetype": "text/x-octave",
"name": "matlab",
"version": "0.11.0"
}
},
"nbformat": 4,
"nbformat_minor": 1
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment