Skip to content

Instantly share code, notes, and snippets.

@syomantak
Created April 1, 2022 22:58
Show Gist options
  • Save syomantak/28703d47af4f642aa0f6a845c3df7f05 to your computer and use it in GitHub Desktop.
Save syomantak/28703d47af4f642aa0f6a845c3df7f05 to your computer and use it in GitHub Desktop.
EECS227C-HW2 Code
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "027c7d3f",
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"import cvxpy as cvx\n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "bd8a5a3d",
"metadata": {},
"outputs": [],
"source": [
"A = np.random.normal(0, 1, (20,20))\n",
"x0 = np.ones(20)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "30effaef",
"metadata": {},
"outputs": [],
"source": [
"def f(x):\n",
" z = A@x \n",
" return z.T@z, 2*A.T@z"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "12547c43",
"metadata": {},
"outputs": [],
"source": [
"u,s,vh = np.linalg.svd(A)\n",
"mu = 2*(s[-1]**2)\n",
"L = 2*(s[0]**2)"
]
},
{
"cell_type": "markdown",
"id": "ed18c2ba",
"metadata": {},
"source": [
"## GD"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "6a50651f",
"metadata": {},
"outputs": [],
"source": [
"xt = x0\n",
"T = 1000\n",
"h = 2/(mu+L)\n",
"arr_gd = []\n",
"\n",
"for t in range(T):\n",
" val,grad = f(xt)\n",
" xt = xt - h*grad\n",
" arr_gd.append(val)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "956f2d52",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.semilogy(arr_gd)\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "9fc9edc8",
"metadata": {},
"source": [
"## AGD"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "f001a36e",
"metadata": {},
"outputs": [],
"source": [
"sigma = 1\n",
"def R(x):\n",
" return 0.5*(x**2),x"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "61d1fd68",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-19-b5e1f9d4720d>:11: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n",
" val,grad = f(yo)/L\n"
]
}
],
"source": [
"zo = xo = x0\n",
"l0 = 1\n",
"gt = 0\n",
"lt = (1-gt)\n",
"\n",
"arr_agd = []\n",
"mins = 1e5\n",
"\n",
"for t in range(T):\n",
" yo = (1-gt)*xo + gt*zo\n",
" val,grad = f(yo)/L\n",
" zt = zo - (gt/lt)*grad\n",
" xt = yo - grad\n",
" \n",
" xo = xt\n",
" zo = zt\n",
" \n",
" if t in [0,1,2]:\n",
" gt = 0\n",
" else:\n",
" gt = 2/(t+1)\n",
" \n",
" lt = lt*(1-gt)\n",
" if val*L < mins:\n",
" arr_agd.append(val*L)\n",
" mins = val*L\n",
" else:\n",
" arr_agd.append(mins)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "962fa548",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.semilogy(arr_agd)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "6866779b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.semilogy(arr_gd)\n",
"plt.semilogy(arr_agd)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "4c2147a6",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "b1a57c50",
"metadata": {},
"source": [
"## AGD Clearly performs much better than GD"
]
},
{
"cell_type": "markdown",
"id": "073624e2",
"metadata": {},
"source": [
"## With Different A matrix"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "88326a83",
"metadata": {},
"outputs": [],
"source": [
"A = np.zeros((20,20))\n",
"\n",
"for i in range(20):\n",
" for j in range(20):\n",
" if abs(i - j)==1:\n",
" A[i,j] = -1\n",
" elif j == i :\n",
" A[i,j] = 2\n",
" else:\n",
" A[i,j] = 0 "
]
},
{
"cell_type": "code",
"execution_count": 26,
"id": "46d5b8d7",
"metadata": {},
"outputs": [],
"source": [
"def g(x):\n",
" z = A@x \n",
" return x.T@z, 2*z"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "8f133046",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[3.97766165 3.91114561 3.80193774 3.65247755 3.46610374 3.2469796\n",
" 3. 2.73068205 2.44504187 2.14946019 1.85053981 1.55495813\n",
" 1.26931795 0.02233835 0.08885439 0.19806226 0.34752245 0.53389626\n",
" 0.7530204 1. ]\n"
]
}
],
"source": [
"Lamb = np.linalg.eigvals(A)\n",
"L = 2*max(Lamb)\n",
"mu = 2*min(Lamb)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "3572bb39",
"metadata": {},
"outputs": [],
"source": [
"xt = x0\n",
"T = 1000\n",
"h = 2/(mu+L)\n",
"arr_gd = []\n",
"\n",
"for t in range(T):\n",
" val,grad = g(xt)\n",
" xt = xt - h*grad\n",
" arr_gd.append(val)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "0bf91d85",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.semilogy(arr_gd)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "4dc53ccf",
"metadata": {},
"outputs": [],
"source": [
"sigma = 1\n",
"def R(x):\n",
" return 0.5*(x**2),x"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "f759735a",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"<ipython-input-33-54c18e540ec2>:11: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray.\n",
" val,grad = g(yo)/L\n"
]
}
],
"source": [
"zo = xo = x0\n",
"l0 = 1\n",
"gt = 0\n",
"lt = (1-gt)\n",
"\n",
"arr_agd = []\n",
"mins = 1e5\n",
"\n",
"for t in range(T):\n",
" yo = (1-gt)*xo + gt*zo\n",
" val,grad = g(yo)/L\n",
" zt = zo - (gt/lt)*grad\n",
" xt = yo - grad\n",
" \n",
" xo = xt\n",
" zo = zt\n",
" \n",
" if t in [0,1,2]:\n",
" gt = 0\n",
" else:\n",
" gt = 2/(t+1)\n",
" \n",
" lt = lt*(1-gt)\n",
" if val*L < mins:\n",
" arr_agd.append(val*L)\n",
" mins = val*L\n",
" else:\n",
" arr_agd.append(mins)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "98b65e8b",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.semilogy(arr_agd)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "632aed60",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.semilogy(arr_gd)\n",
"plt.semilogy(arr_agd)\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "d3efa425",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "4f4c2e61",
"metadata": {},
"source": [
"AGD Performs better but the difference is not as big as the original matrix"
]
},
{
"cell_type": "markdown",
"id": "8fbe521b",
"metadata": {},
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:root] *",
"language": "python",
"name": "conda-root-py"
},
"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.8.8"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment