From 064e9373b2df23ea3cff87e6cdc322d1130a0bcc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Mat=C3=ADas=20Duhalde?= <matias.duhalde@uc.cl>
Date: Fri, 10 Nov 2023 20:08:38 +0100
Subject: [PATCH] feat: results

---
 main.ipynb      | 191 ++++++++++++++----------------------------------
 mlp.py          |  44 ++++++-----
 results/mlp.png | Bin 16878 -> 26381 bytes
 3 files changed, 82 insertions(+), 153 deletions(-)

diff --git a/main.ipynb b/main.ipynb
index 72d5d96..1a9357a 100644
--- a/main.ipynb
+++ b/main.ipynb
@@ -23,7 +23,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 33,
+   "execution_count": 165,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -41,7 +41,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 34,
+   "execution_count": 166,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -52,7 +52,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 35,
+   "execution_count": 167,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -61,7 +61,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 36,
+   "execution_count": 168,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -70,7 +70,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 37,
+   "execution_count": 169,
    "metadata": {},
    "outputs": [
     {
@@ -100,7 +100,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 38,
+   "execution_count": 170,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -121,7 +121,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 19,
+   "execution_count": 171,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -410,7 +410,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 39,
+   "execution_count": 187,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -437,7 +437,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 40,
+   "execution_count": 188,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -458,14 +458,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 41,
+   "execution_count": 189,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Loss: 0.07218991126027921\n"
+      "Loss: 0.09592802009114174\n"
      ]
     }
    ],
@@ -492,7 +492,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 42,
+   "execution_count": 190,
    "metadata": {},
    "outputs": [
     {
@@ -503,7 +503,7 @@
        "       [1., 0., 0.]])"
       ]
      },
-     "execution_count": 42,
+     "execution_count": 190,
      "metadata": {},
      "output_type": "execute_result"
     }
@@ -521,7 +521,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 43,
+   "execution_count": 191,
    "metadata": {},
    "outputs": [
     {
@@ -552,14 +552,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 44,
+   "execution_count": 192,
    "metadata": {},
    "outputs": [
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Loss: 0.7075029802848043\n"
+      "Loss: 0.7102590810256381\n"
      ]
     }
    ],
@@ -570,7 +570,7 @@
     "    w2,\n",
     "    b2,\n",
     "    random_data,\n",
-    "    random_targets,\n",
+    "    one_hot(random_targets),\n",
     "    0.1,\n",
     ")\n",
     "\n",
@@ -586,7 +586,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 45,
+   "execution_count": 193,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -597,139 +597,58 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 46,
+   "execution_count": 194,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# Normalize data\n",
+    "norm_train_data_09 = train_data_09 / 255\n",
+    "norm_test_data_09 = test_data_09 / 255"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 195,
    "metadata": {},
    "outputs": [
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "/home/tracert6/Documents/ECL-S9-DeepLearning/TP/TP1/mlp.py:221: RuntimeWarning: overflow encountered in exp\n",
-      "  z2 = np.matmul(a1, w2) + b2\n",
-      "/home/tracert6/Documents/ECL-S9-DeepLearning/TP/TP1/mlp.py:118: RuntimeWarning: overflow encountered in exp\n",
-      "  z2 = np.matmul(a1, w2) + b2\n",
-      "/home/tracert6/Documents/ECL-S9-DeepLearning/TP/TP1/mlp.py:16: RuntimeWarning: invalid value encountered in divide\n",
-      "  \n"
-     ]
-    },
     {
      "name": "stdout",
      "output_type": "stream",
      "text": [
-      "Epoch 0: 0.10592592592592592\n",
-      "Epoch 1: 0.09855555555555555\n",
-      "Epoch 2: 0.10437037037037038\n",
-      "Epoch 3: 0.109\n",
-      "Epoch 4: 0.10901851851851851\n",
-      "Epoch 5: 0.10907407407407407\n",
-      "Epoch 6: 0.10044444444444445\n",
-      "Epoch 7: 0.0995925925925926\n",
-      "Epoch 8: 0.09985185185185186\n",
-      "Epoch 9: 0.09985185185185186\n",
-      "Epoch 10: 0.09985185185185186\n",
-      "Epoch 11: 0.09985185185185186\n",
-      "Epoch 12: 0.09985185185185186\n",
-      "Epoch 13: 0.09985185185185186\n",
-      "Epoch 14: 0.09985185185185186\n",
-      "Epoch 15: 0.09985185185185186\n",
-      "Epoch 16: 0.09985185185185186\n",
-      "Epoch 17: 0.09985185185185186\n",
-      "Epoch 18: 0.09985185185185186\n",
-      "Epoch 19: 0.09985185185185186\n",
-      "Epoch 20: 0.09985185185185186\n",
-      "Epoch 21: 0.09985185185185186\n",
-      "Epoch 22: 0.09985185185185186\n",
-      "Epoch 23: 0.09985185185185186\n",
-      "Epoch 24: 0.09985185185185186\n",
-      "Epoch 25: 0.09985185185185186\n",
-      "Epoch 26: 0.09985185185185186\n",
-      "Epoch 27: 0.09985185185185186\n",
-      "Epoch 28: 0.09985185185185186\n",
-      "Epoch 29: 0.09985185185185186\n",
-      "Epoch 30: 0.09985185185185186\n",
-      "Epoch 31: 0.09985185185185186\n",
-      "Epoch 32: 0.09985185185185186\n",
-      "Epoch 33: 0.09985185185185186\n",
-      "Epoch 34: 0.09985185185185186\n",
-      "Epoch 35: 0.09985185185185186\n",
-      "Epoch 36: 0.09985185185185186\n",
-      "Epoch 37: 0.09985185185185186\n",
-      "Epoch 38: 0.09985185185185186\n",
-      "Epoch 39: 0.09985185185185186\n",
-      "Epoch 40: 0.09985185185185186\n",
-      "Epoch 41: 0.09985185185185186\n",
-      "Epoch 42: 0.09985185185185186\n",
-      "Epoch 43: 0.09985185185185186\n",
-      "Epoch 44: 0.09985185185185186\n",
-      "Epoch 45: 0.09985185185185186\n",
-      "Epoch 46: 0.09985185185185186\n",
-      "Epoch 47: 0.09985185185185186\n",
-      "Epoch 48: 0.09985185185185186\n",
-      "Epoch 49: 0.09985185185185186\n",
-      "Epoch 50: 0.09985185185185186\n",
-      "Epoch 51: 0.09985185185185186\n",
-      "Epoch 52: 0.09985185185185186\n",
-      "Epoch 53: 0.09985185185185186\n",
-      "Epoch 54: 0.09985185185185186\n",
-      "Epoch 55: 0.09985185185185186\n",
-      "Epoch 56: 0.09985185185185186\n",
-      "Epoch 57: 0.09985185185185186\n",
-      "Epoch 58: 0.09985185185185186\n",
-      "Epoch 59: 0.09985185185185186\n",
-      "Epoch 60: 0.09985185185185186\n",
-      "Epoch 61: 0.09985185185185186\n",
-      "Epoch 62: 0.09985185185185186\n",
-      "Epoch 63: 0.09985185185185186\n",
-      "Epoch 64: 0.09985185185185186\n",
-      "Epoch 65: 0.09985185185185186\n",
-      "Epoch 66: 0.09985185185185186\n",
-      "Epoch 67: 0.09985185185185186\n",
-      "Epoch 68: 0.09985185185185186\n",
-      "Epoch 69: 0.09985185185185186\n",
-      "Epoch 70: 0.09985185185185186\n",
-      "Epoch 71: 0.09985185185185186\n",
-      "Epoch 72: 0.09985185185185186\n",
-      "Epoch 73: 0.09985185185185186\n",
-      "Epoch 74: 0.09985185185185186\n",
-      "Epoch 75: 0.09985185185185186\n",
-      "Epoch 76: 0.09985185185185186\n",
-      "Epoch 77: 0.09985185185185186\n",
-      "Epoch 78: 0.09985185185185186\n",
-      "Epoch 79: 0.09985185185185186\n",
-      "Epoch 80: 0.09985185185185186\n",
-      "Epoch 81: 0.09985185185185186\n",
-      "Epoch 82: 0.09985185185185186\n",
-      "Epoch 83: 0.09985185185185186\n",
-      "Epoch 84: 0.09985185185185186\n",
-      "Epoch 85: 0.09985185185185186\n",
-      "Epoch 86: 0.09985185185185186\n",
-      "Epoch 87: 0.09985185185185186\n",
-      "Epoch 88: 0.09985185185185186\n",
-      "Epoch 89: 0.09985185185185186\n",
-      "Epoch 90: 0.09985185185185186\n",
-      "Epoch 91: 0.09985185185185186\n",
-      "Epoch 92: 0.09985185185185186\n",
-      "Epoch 93: 0.09985185185185186\n",
-      "Epoch 94: 0.09985185185185186\n",
-      "Epoch 95: 0.09985185185185186\n",
-      "Epoch 96: 0.09985185185185186\n",
-      "Epoch 97: 0.09985185185185186\n",
-      "Epoch 98: 0.09985185185185186\n",
-      "Epoch 99: 0.09985185185185186\n",
-      "Epoch 100: 0.09985185185185186\n",
-      "Test accuracy: 0.10133333333333333\n"
+      "Epoch: 1 / 10\n",
+      "Epoch: 2 / 10\n",
+      "Epoch: 3 / 10\n",
+      "Epoch: 4 / 10\n",
+      "Epoch: 5 / 10\n",
+      "Epoch: 6 / 10\n",
+      "Epoch: 7 / 10\n",
+      "Epoch: 8 / 10\n",
+      "Epoch: 9 / 10\n",
+      "Epoch: 10 / 10\n",
+      "Epoch 0: 0.0857037037037037\n",
+      "Epoch 1: 0.08585185185185185\n",
+      "Epoch 2: 0.0865\n",
+      "Epoch 3: 0.08796296296296297\n",
+      "Epoch 4: 0.09007407407407407\n",
+      "Epoch 5: 0.0915\n",
+      "Epoch 6: 0.09418518518518519\n",
+      "Epoch 7: 0.09607407407407408\n",
+      "Epoch 8: 0.09666666666666666\n",
+      "Epoch 9: 0.0979074074074074\n",
+      "Epoch 10: 0.09770370370370371\n",
+      "Test accuracy: 0.10083333333333333\n"
      ]
     }
    ],
    "source": [
     "training_accuracy_values, test_accuracy = run_mlp_training(\n",
-    "    train_data_09,\n",
+    "    norm_train_data_09,\n",
     "    train_labels_09,\n",
-    "    test_data_09,\n",
+    "    norm_test_data_09,\n",
     "    test_labels_09,\n",
     "    d_h,\n",
     "    learning_rate,\n",
-    "    num_epoch\n",
+    "    100\n",
     ")\n",
     "\n",
     "for (i, training_accuracy) in enumerate(training_accuracy_values):\n",
diff --git a/mlp.py b/mlp.py
index 944df7f..905d829 100644
--- a/mlp.py
+++ b/mlp.py
@@ -13,7 +13,19 @@ def softmax(x: np.ndarray) -> np.ndarray:
         np.ndarray: The softmax of the given vector.
     """
     e_x = np.exp(x - np.max(x))
-    return e_x / e_x.sum(axis=0)
+    return e_x / (e_x.sum(axis=0) + EPSILON)
+
+
+def sigmoid(x: np.ndarray) -> np.ndarray:
+    """Compute the sigmoid of the given vector.
+
+    Args:
+        z (np.ndarray): The vector to compute the sigmoid of.
+
+    Returns:
+        np.ndarray: The sigmoid of the given vector.
+    """
+    return 1 / (1 + np.exp(-x))
 
 
 def learn_once_mse(
@@ -43,13 +55,9 @@ def learn_once_mse(
     # Forward pass
     a0 = data  # the data are the input of the first layer
     z1 = np.matmul(a0, w1) + b1  # input of the hidden layer
-    a1 = 1 / (
-        1 + np.exp(-z1)
-    )  # output of the hidden layer (sigmoid activation function)
+    a1 = sigmoid(z1)  # output of the hidden layer (sigmoid activation function)
     z2 = np.matmul(a1, w2) + b2  # input of the output layer
-    a2 = 1 / (
-        1 + np.exp(-z2)
-    )  # output of the output layer (sigmoid activation function)
+    a2 = sigmoid(z2)  # output of the output layer (sigmoid activation function)
     predictions = a2  # the predicted values are the outputs of the output layer
 
     # Compute loss (MSE)
@@ -58,7 +66,7 @@ def learn_once_mse(
     # Backward pass
 
     # Compute gradients
-    dC_da2 = 2 * (predictions - targets) / predictions.shape[0]
+    dC_da2 = 2 * (predictions - targets) / data.shape[0]
     dC_dz2 = dC_da2 * a2 * (1 - a2)
     dC_dw2 = np.matmul(a1.T, dC_dz2)
     dC_db2 = np.sum(dC_dz2, axis=0)
@@ -115,26 +123,24 @@ def learn_once_cross_entropy(
     # Forward pass
     a0 = data
     z1 = np.matmul(a0, w1) + b1
-    a1 = 1 / (1 + np.exp(-z1))
+    a1 = sigmoid(z1)
     z2 = np.matmul(a1, w2) + b2
     a2 = softmax(z2)
 
     predictions = a2
 
-    one_hot_targets = one_hot(labels_train)
-
     # Compute loss (Cross Entropy)
     # https://arize.com/blog-course/binary-cross-entropy-log-loss/
     loss = -np.mean(
-        one_hot_targets * np.log(predictions + EPSILON)
-        + (1 - one_hot_targets) * np.log(1 - predictions + EPSILON)
+        labels_train * np.log(predictions + EPSILON)
+        + (1 - labels_train) * np.log(1 - predictions + EPSILON)
     )
 
     # Backward pass
 
     # Compute gradients
 
-    dC_dz2 = a2 - one_hot_targets
+    dC_dz2 = (a2 - labels_train) / data.shape[0]
     dC_dw2 = np.matmul(a1.T, dC_dz2)
     dC_db2 = np.sum(dC_dz2, axis=0)
     dC_da1 = np.matmul(dC_dz2, w2.T)
@@ -181,10 +187,14 @@ def train_mlp(
     accuracy = test_mlp(w1, b1, w2, b2, data_train, labels_train)
     accuracies = [accuracy]
 
-    for _ in range(num_epoch):
+    one_hot_labels = one_hot(labels_train)
+
+    for epoch in range(num_epoch):
         # Train once
+        print("Epoch:", epoch + 1, "/", num_epoch)
+
         w1, b1, w2, b2, _ = learn_once_cross_entropy(
-            w1, b1, w2, b2, data_train, labels_train, learning_rate
+            w1, b1, w2, b2, data_train, one_hot_labels, learning_rate
         )
 
         # Compute current model training accuracy
@@ -218,7 +228,7 @@ def test_mlp(
     # Forward pass
     a0 = data_test
     z1 = np.matmul(a0, w1) + b1
-    a1 = 1 / (1 + np.exp(-z1))
+    a1 = sigmoid(z1)
     z2 = np.matmul(a1, w2) + b2
     a2 = softmax(z2)
     predictions = a2
diff --git a/results/mlp.png b/results/mlp.png
index 7adf3430932d16a46e17db300e3a1335a7211aac..de1a6be9de2e259aaaea5d0553b55697bf7bb139 100644
GIT binary patch
literal 26381
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
YW_*;aUi8g|fq{X+)78&qol`;+0Gj=USpWb4

literal 16878
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
Y?+lAiFiJV|9(1ySr>mdKI;Vst07j07bpQYW

-- 
GitLab