diff --git a/doc/HandwrittenNotes/2023/NotesDec182023.pdf b/doc/HandwrittenNotes/2023/NotesDec182023.pdf
new file mode 100644
index 0000000..9c400e4
Binary files /dev/null and b/doc/HandwrittenNotes/2023/NotesDec182023.pdf differ
diff --git a/doc/pub/day7/ipynb/day7.ipynb b/doc/pub/day7/ipynb/day7.ipynb
index b294358..f5028c0 100644
--- a/doc/pub/day7/ipynb/day7.ipynb
+++ b/doc/pub/day7/ipynb/day7.ipynb
@@ -3,9 +3,7 @@
{
"cell_type": "markdown",
"id": "81a0f176",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"\n",
@@ -15,9 +13,7 @@
{
"cell_type": "markdown",
"id": "f8220ceb",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"# Convolutional (CNN) and Recurrent (RNN) Neural Networks\n",
"**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and Facility for Rare Ion Beams, Michigan State University, USA\n",
@@ -30,9 +26,7 @@
{
"cell_type": "markdown",
"id": "cf40bf6e",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## December 13 and 18\n",
"\n",
@@ -62,9 +56,7 @@
{
"cell_type": "markdown",
"id": "8580f3c5",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Convolutional Neural Networks (recognizing images)\n",
"\n",
@@ -89,9 +81,7 @@
{
"cell_type": "markdown",
"id": "7e859741",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## What is the Difference\n",
"\n",
@@ -105,9 +95,7 @@
{
"cell_type": "markdown",
"id": "8f267713",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Neural Networks vs CNNs\n",
"\n",
@@ -123,9 +111,7 @@
{
"cell_type": "markdown",
"id": "cf6b4588",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Why CNNS for images, sound files, medical images from CT scans etc?\n",
"\n",
@@ -153,9 +139,7 @@
{
"cell_type": "markdown",
"id": "a641c887",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Regular NNs don’t scale well to full images\n",
"\n",
@@ -183,9 +167,7 @@
{
"cell_type": "markdown",
"id": "5bfb53b8",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## 3D volumes of neurons\n",
"\n",
@@ -223,9 +205,7 @@
{
"cell_type": "markdown",
"id": "30a4390a",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Layers used to build CNNs\n",
"\n",
@@ -252,9 +232,7 @@
{
"cell_type": "markdown",
"id": "5a227109",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Transforming images\n",
"\n",
@@ -274,9 +252,7 @@
{
"cell_type": "markdown",
"id": "9cca89be",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## CNNs in brief\n",
"\n",
@@ -302,9 +278,7 @@
{
"cell_type": "markdown",
"id": "c96a8b7a",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Key Idea\n",
"\n",
@@ -319,9 +293,7 @@
{
"cell_type": "markdown",
"id": "2cac31ab",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Mathematics of CNNs\n",
"\n",
@@ -339,9 +311,7 @@
{
"cell_type": "markdown",
"id": "98d89819",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"y(t) = \\int x(a) w(t-a) da,\n",
@@ -351,9 +321,7 @@
{
"cell_type": "markdown",
"id": "e271bdce",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"where $x(a)$ represents a so-called input and $w(t-a)$ is normally called the weight function or kernel.\n",
"\n",
@@ -363,9 +331,7 @@
{
"cell_type": "markdown",
"id": "2fd4bdb4",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"y(t) = \\left(x * w\\right)(t).\n",
@@ -375,9 +341,7 @@
{
"cell_type": "markdown",
"id": "0419c54a",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"The discretized version reads"
]
@@ -385,9 +349,7 @@
{
"cell_type": "markdown",
"id": "494f5728",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"y(t) = \\sum_{a=-\\infty}^{a=\\infty}x(a)w(t-a).\n",
@@ -397,9 +359,7 @@
{
"cell_type": "markdown",
"id": "6851c52f",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"Computing the inverse of the above convolution operations is known as deconvolution.\n",
"\n",
@@ -409,9 +369,7 @@
{
"cell_type": "markdown",
"id": "26bf3a3a",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Convolution Examples: Polynomial multiplication\n",
"\n",
@@ -424,9 +382,7 @@
{
"cell_type": "markdown",
"id": "28238c11",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"p(t) = \\alpha_0+\\alpha_1 t+\\alpha_2 t^2,\n",
@@ -436,9 +392,7 @@
{
"cell_type": "markdown",
"id": "7303cb8d",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"and"
]
@@ -446,9 +400,7 @@
{
"cell_type": "markdown",
"id": "bfd47f2f",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"s(t) = \\beta_0+\\beta_1 t+\\beta_2 t^2+\\beta_3 t^3.\n",
@@ -458,9 +410,7 @@
{
"cell_type": "markdown",
"id": "1df68583",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"The polynomial multiplication gives us a new polynomial of degree $5$"
]
@@ -468,9 +418,7 @@
{
"cell_type": "markdown",
"id": "3a22d91a",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"z(t) = \\delta_0+\\delta_1 t+\\delta_2 t^2+\\delta_3 t^3+\\delta_4 t^4+\\delta_5 t^5.\n",
@@ -480,9 +428,7 @@
{
"cell_type": "markdown",
"id": "a1145019",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Efficient Polynomial Multiplication\n",
"\n",
@@ -493,9 +439,7 @@
{
"cell_type": "markdown",
"id": "42616957",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"\\begin{split}\n",
@@ -512,9 +456,7 @@
{
"cell_type": "markdown",
"id": "27d00553",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"We note that $\\alpha_i=0$ except for $i\\in \\left\\{0,1,2\\right\\}$ and $\\beta_i=0$ except for $i\\in\\left\\{0,1,2,3\\right\\}$.\n",
"\n",
@@ -524,9 +466,7 @@
{
"cell_type": "markdown",
"id": "e7f2ed8e",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"\\delta_j = \\sum_{i=-\\infty}^{i=\\infty}\\alpha_i\\beta_{j-i}=(\\alpha * \\beta)_j,\n",
@@ -536,9 +476,7 @@
{
"cell_type": "markdown",
"id": "f7d036a8",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"or as a double sum with restriction $l=i+j$"
]
@@ -546,9 +484,7 @@
{
"cell_type": "markdown",
"id": "9aee1a68",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"\\delta_l = \\sum_{ij}\\alpha_i\\beta_{j}.\n",
@@ -558,9 +494,7 @@
{
"cell_type": "markdown",
"id": "b29c325d",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"Do you see a potential drawback with these equations?"
]
@@ -568,9 +502,7 @@
{
"cell_type": "markdown",
"id": "2a6101ad",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## A more efficient way of coding the above Convolution\n",
"\n",
@@ -582,9 +514,7 @@
{
"cell_type": "markdown",
"id": "4d8b1e03",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"\\boldsymbol{\\delta}=\\begin{bmatrix}\\alpha_0 & 0 & 0 & 0 \\\\\n",
@@ -600,9 +530,7 @@
{
"cell_type": "markdown",
"id": "bfef406c",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"The process is commutative and we can easily see that we can rewrite the multiplication in terms of a matrix holding $\\beta$ and a vector holding $\\alpha$.\n",
"In this case we have"
@@ -611,9 +539,7 @@
{
"cell_type": "markdown",
"id": "23a56386",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"\\boldsymbol{\\delta}=\\begin{bmatrix}\\beta_0 & 0 & 0 \\\\\n",
@@ -629,9 +555,7 @@
{
"cell_type": "markdown",
"id": "10566cdb",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"Note that the use of these matrices is for mathematical purposes only and not implementation purposes.\n",
"When implementing the above equation we do not encode (and allocate memory) the matrices explicitely.\n",
@@ -649,9 +573,7 @@
{
"cell_type": "markdown",
"id": "2a61ed4d",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"\\boldsymbol{A}=\\begin{bmatrix}a_0 & 0 & 0 \\\\\n",
@@ -667,9 +589,7 @@
{
"cell_type": "markdown",
"id": "cef457df",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"with elements $a_{ii}=a_{i+1,j+1}=a_{i-j}$ is an example of a Toeplitz\n",
"matrix. Such a matrix does not need to be a square matrix. Toeplitz\n",
@@ -684,9 +604,7 @@
{
"cell_type": "markdown",
"id": "a2b0ff1e",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Convolution Examples: Principle of Superposition and Periodic Forces (Fourier Transforms)\n",
"\n",
@@ -696,9 +614,7 @@
{
"cell_type": "markdown",
"id": "7131b590",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"m\\frac{d^2x}{dt^2}+\\eta\\frac{dx}{dt}+x(t)=F(t),\n",
@@ -708,9 +624,7 @@
{
"cell_type": "markdown",
"id": "0e4b132a",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"where $F(t)$ is an applied external force acting on the system (often\n",
"called a driving force), one can use the theory of Fourier\n",
@@ -724,9 +638,7 @@
{
"cell_type": "markdown",
"id": "3b97b431",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"\n",
"
\n",
@@ -742,9 +654,7 @@
{
"cell_type": "markdown",
"id": "0ed4a6c0",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"This is known as the principle of superposition. It only applies when\n",
"the homogenous equation is linear. \n",
@@ -759,9 +669,7 @@
{
"cell_type": "markdown",
"id": "ac010076",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"$$\n",
"\\begin{eqnarray}\n",
@@ -773,9 +681,7 @@
{
"cell_type": "markdown",
"id": "599408a8",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"One example of a non-sinusoidal periodic force is a square wave. Many\n",
"components in electric circuits are non-linear, for example diodes. This \n",
@@ -786,9 +692,7 @@
{
"cell_type": "markdown",
"id": "52a36dc6",
- "metadata": {
- "editable": true
- },
+ "metadata": {},
"source": [
"## Simple Code Example\n",
"\n",
@@ -801,11 +705,19 @@
"cell_type": "code",
"execution_count": 1,
"id": "72a6cd36",
- "metadata": {
- "collapsed": false,
- "editable": true
- },
- "outputs": [],
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "image/png": "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a6evf+utt4JPfOITwa233hps3LgxeOyxx4I+ffoEP/nJT0ocOUuheb711luDv//7vw9+9atfBa+//nowf/78oE+fPsGrr75a4sh5Cs112t69e4NRo0YFNTU1wfjx40sTLFh38nzVVVcFF1xwQVBfXx9s2bIl+OUvfxn84he/KGHUPIXmedWqVUGvXr2Cf/7nfw7eeuutYNWqVcHYsWODq6++usSRsyxfvjy4++67g7q6ukBS8Nxzzx339WH0hS5ecpx//vnB7Nmz83539tlnB3feeWenr7/jjjuCs88+O+933/rWt4JJkyYVLcY4KDTPnTn33HODe++992SHFjvdzfXMmTOD7373u8E999zj4qULCs3zz372s6CysjLYvXt3KcKLjULz/I//+I/BqFGj8n73wAMPBEOHDi1ajHHTleIljL7Qy0YpBw8e1Pr161VTU5P3+5qaGq1evbrTv1mzZk2H119xxRVat26dDh06VLRYybqT5/aOHj2qffv26fTTTy9GiLHR3Vw//vjjevPNN3XPPfcUO8RY6E6ely1bpokTJ+of/uEfdOaZZ+rTn/605s2bpw8//LAUISN1J89TpkzRO++8o+XLlysIAr377rv6yU9+oi996UulCLnHCKMvLPizjeJq165dOnLkSIcPjayqqlJzc3Onf9Pc3Nzp6w8fPqxdu3b585g60Z08t/dP//RPOnDggP7qr/6qGCHGRndy/cYbb+jOO+/UqlWrVFbm5qErupPnt956S6+88or69eun5557Trt27dJNN92kPXv2eN/LMXQnz1OmTNFTTz2lmTNn6qOPPtLhw4d11VVX6V/+5V9KEXKPEUZf6JmXdhKJRN7PQRB0+N2JXt/Z7y1foXlO+7d/+zd973vf0zPPPKNBgwYVK7xY6Wqujxw5oq997Wu699579elPf7pU4cVGIff00aNHlUgk9NRTT+n888/X9OnTdf/992vp0qWefTmBQvK8ceNGzZ07V3/3d3+n9evX68UXX9SWLVs0e/bsUoTao5S6L/TQKmXgwIHq3bt3hwp+586dHSrKtMGDB3f6+rKyMg0YMKBosZJ1J89pzzzzjG644Qb9+Mc/1he+8IVihhkLheZ63759WrdunRobG3XzzTdLSnayQRCorKxML730ki677LKSxE7SnXu6urpaZ555piorKzO/O+eccxQEgd555x2NHj26qDETdSfPCxYs0Oc//3n9zd/8jSTpz/7sz3TKKado6tSp+uEPf+jZ8ZMkjL7QMy8pffv21YQJE1RfX5/3+/r6ek2ZMqXTv5k8eXKH17/00kuaOHGi+vTpU7RYybqTZyk543L99dfr6aef9np1FxWa64qKCv3ud7/Thg0bMl+zZ8/WmDFjtGHDBl1wwQWlCh2lO/f05z//ef3xj3/U/v37M797/fXX1atXLw0dOrSo8VJ1J88ffPCBevXK7+Z69+4tKTszYB9fKH1h0bYCA6Ufw1u8eHGwcePG4LbbbgtOOeWU4O233w6CIAjuvPPOYNasWZnXpx8Pu/3224ONGzcGixcv9qPSXVBonp9++umgrKwseOihh4KmpqbM1969e8P6X8AoNNft+Wmjrik0z/v27QuGDh0afOUrXwl+//vfBw0NDcHo0aODG2+8Maz/BYRC8/z4448HZWVlwcMPPxy8+eabwSuvvBJMnDgxOP/888P6X0DYt29f0NjYGDQ2NgaSgvvvvz9obGzMPJIehb7QxUs7Dz30UDB8+PCgb9++wWc/+9mgoaEh88+uu+664OKLL857/YoVK4Lzzjsv6Nu3bzBixIjgkUceKXHETIXk+eKLLw4kdfi67rrrSh84UKH3dC4XL11XaJ43bdoUfOELXwj69+8fDB06NKitrQ0++OCDEkfNU2ieH3jggeDcc88N+vfvH1RXVwdf//rXg3feeafEUbO8/PLLx21zo9AXJoLAc2dmZmbG4T0vZmZmhuLixczMzFBcvJiZmRmKixczMzNDcfFiZmZmKC5ezMzMDMXFi5mZmaG4eDEzMzMUFy9mZmaG4uLFzMzMUFy8mJmZGcr/B4s7G+pVgm8JAAAAAElFTkSuQmCC\n",
+ "text/plain": [
+ "