From 948642f395b5af617fb327b8c0f7faed85ca6451 Mon Sep 17 00:00:00 2001 From: Nelio Machado Date: Wed, 11 Nov 2020 21:16:37 +0000 Subject: [PATCH] Created using Colaboratory --- Notebooks/NB19_Redes_Neurais.ipynb | 1452 ++++++++++++++++++++++------ 1 file changed, 1152 insertions(+), 300 deletions(-) diff --git a/Notebooks/NB19_Redes_Neurais.ipynb b/Notebooks/NB19_Redes_Neurais.ipynb index a2db71b4a..092a20ff0 100644 --- a/Notebooks/NB19_Redes_Neurais.ipynb +++ b/Notebooks/NB19_Redes_Neurais.ipynb @@ -2466,7 +2466,7 @@ "import math\n", "import numpy as np" ], - "execution_count": null, + "execution_count": 1, "outputs": [] }, { @@ -2486,7 +2486,7 @@ "source": [ "np.set_printoptions(precision = 3)" ], - "execution_count": null, + "execution_count": 2, "outputs": [] }, { @@ -2502,7 +2502,7 @@ "cell_type": "code", "metadata": { "id": "U6Mt6zTnXEVq", - "outputId": "155f644f-4608-4350-dee2-850ccd028711", + "outputId": "67d81400-0c90-42c5-bb92-52421801aaba", "colab": { "base_uri": "https://localhost:8080/" } @@ -2511,7 +2511,7 @@ "X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])\n", "X" ], - "execution_count": null, + "execution_count": 3, "outputs": [ { "output_type": "execute_result", @@ -2526,7 +2526,7 @@ "metadata": { "tags": [] }, - "execution_count": 26 + "execution_count": 3 } ] }, @@ -2543,7 +2543,7 @@ "cell_type": "code", "metadata": { "id": "Oauq3veAXEVu", - "outputId": "1da27c01-a32b-40cd-806c-942325189010", + "outputId": "faa3a8cc-7d87-4736-973e-15c36dbcda15", "colab": { "base_uri": "https://localhost:8080/" } @@ -2552,7 +2552,7 @@ "Y = np.array([[0], [1], [1], [0]])\n", "Y" ], - "execution_count": null, + "execution_count": 4, "outputs": [ { "output_type": "execute_result", @@ -2567,7 +2567,7 @@ "metadata": { "tags": [] }, - "execution_count": 27 + "execution_count": 4 } ] }, @@ -2604,7 +2604,7 @@ "source": [ "np.random.seed(20111974)" ], - "execution_count": null, + "execution_count": 5, "outputs": [] }, { @@ -2620,7 +2620,7 @@ "cell_type": "code", "metadata": { "id": "o1eGsPNQXEVx", - "outputId": "f9ee93ea-1a0e-40b8-e8ba-6cd3551ddedf", + "outputId": "12f09198-1e15-4b8b-c089-23172f243b10", "colab": { "base_uri": "https://localhost:8080/" } @@ -2629,7 +2629,7 @@ "W_H = np.array([np.random.random(3), np.random.random(3)])\n", "W_H" ], - "execution_count": null, + "execution_count": 6, "outputs": [ { "output_type": "execute_result", @@ -2642,7 +2642,7 @@ "metadata": { "tags": [] }, - "execution_count": 29 + "execution_count": 6 } ] }, @@ -2663,7 +2663,7 @@ "source": [ "np.random.seed(19741120)" ], - "execution_count": null, + "execution_count": 7, "outputs": [] }, { @@ -2679,7 +2679,7 @@ "cell_type": "code", "metadata": { "id": "ebs8p8mOXEV1", - "outputId": "622826d7-3abb-4529-8a06-d8d40cdabf2e", + "outputId": "1d2dd115-3cbb-48a7-ff99-274747e8a0ba", "colab": { "base_uri": "https://localhost:8080/" } @@ -2688,7 +2688,7 @@ "W_O = np.array([np.random.random(1), np.random.random(1), np.random.random(1)])\n", "W_O" ], - "execution_count": null, + "execution_count": 8, "outputs": [ { "output_type": "execute_result", @@ -2702,7 +2702,7 @@ "metadata": { "tags": [] }, - "execution_count": 31 + "execution_count": 8 } ] }, @@ -2749,7 +2749,7 @@ " y = 1/(1+np.exp(-x))\n", " return y" ], - "execution_count": null, + "execution_count": 9, "outputs": [] }, { @@ -2793,7 +2793,7 @@ " \n", " return f " ], - "execution_count": null, + "execution_count": 10, "outputs": [] }, { @@ -2828,7 +2828,7 @@ "cell_type": "code", "metadata": { "id": "Ar0zOLuUIio1", - "outputId": "0fafe006-ec3b-4b2c-b057-59f5a6f976b4", + "outputId": "4391ee79-2442-4d2e-e625-246838ca7394", "colab": { "base_uri": "https://localhost:8080/" } @@ -2836,7 +2836,7 @@ "source": [ "f0 = MostraCalculos(0)" ], - "execution_count": null, + "execution_count": 11, "outputs": [ { "output_type": "stream", @@ -2937,7 +2937,7 @@ "cell_type": "code", "metadata": { "id": "INUDJ_aMXEWb", - "outputId": "daa66153-288c-4aed-8b63-c23223f3c3f5", + "outputId": "a437faf7-fa53-4146-c2ca-5ac2c50124bc", "colab": { "base_uri": "https://localhost:8080/" } @@ -2945,7 +2945,7 @@ "source": [ "f1 = MostraCalculos(1)" ], - "execution_count": null, + "execution_count": 12, "outputs": [ { "output_type": "stream", @@ -3036,7 +3036,7 @@ "cell_type": "code", "metadata": { "id": "RbnG_WxdXEWg", - "outputId": "20f95d8b-2b2d-4272-b067-6d06b64096c9", + "outputId": "b81e7106-e5fe-4518-8852-18253ef06354", "colab": { "base_uri": "https://localhost:8080/" } @@ -3044,7 +3044,7 @@ "source": [ "f2 = MostraCalculos(2)" ], - "execution_count": null, + "execution_count": 13, "outputs": [ { "output_type": "stream", @@ -3135,7 +3135,7 @@ "cell_type": "code", "metadata": { "id": "qU87GWKjXEWo", - "outputId": "ce25f2ba-6000-4d1c-b028-a986d12e3520", + "outputId": "5df8df11-feaf-464f-af78-f0f7819f56dd", "colab": { "base_uri": "https://localhost:8080/" } @@ -3143,7 +3143,7 @@ "source": [ "f3 = MostraCalculos(3)" ], - "execution_count": null, + "execution_count": 14, "outputs": [ { "output_type": "stream", @@ -3236,7 +3236,7 @@ "cell_type": "code", "metadata": { "id": "efO2aSu8AzMp", - "outputId": "f9064399-16ca-4fe7-fd2a-d9b651989454", + "outputId": "fbbfe562-fcc3-4535-a10b-c7a2fb03c269", "colab": { "base_uri": "https://localhost:8080/" } @@ -3244,7 +3244,7 @@ "source": [ "f0" ], - "execution_count": null, + "execution_count": 15, "outputs": [ { "output_type": "execute_result", @@ -3256,7 +3256,7 @@ "metadata": { "tags": [] }, - "execution_count": 38 + "execution_count": 15 } ] }, @@ -3264,7 +3264,7 @@ "cell_type": "code", "metadata": { "id": "BoDRBC8oXEW0", - "outputId": "78b41130-8d14-48c6-e10d-f2e8ef2d0cee", + "outputId": "d9fc70ea-9f5b-4f66-8271-ad8cb375e5bc", "colab": { "base_uri": "https://localhost:8080/" } @@ -3273,7 +3273,7 @@ "X2 = np.array([f0, f1, f2, f3])\n", "X2" ], - "execution_count": null, + "execution_count": 16, "outputs": [ { "output_type": "execute_result", @@ -3288,7 +3288,7 @@ "metadata": { "tags": [] }, - "execution_count": 39 + "execution_count": 16 } ] }, @@ -3305,7 +3305,7 @@ "cell_type": "code", "metadata": { "id": "ddyC0sa6XEW5", - "outputId": "1bdcfbaa-95b0-47b8-e671-0b54f361fa91", + "outputId": "984f6fc2-2fd9-4c70-c8d9-311f3b49ab9e", "colab": { "base_uri": "https://localhost:8080/" } @@ -3314,7 +3314,7 @@ "S = X2.dot(W_O)\n", "S" ], - "execution_count": null, + "execution_count": 17, "outputs": [ { "output_type": "execute_result", @@ -3329,7 +3329,7 @@ "metadata": { "tags": [] }, - "execution_count": 40 + "execution_count": 17 } ] }, @@ -3346,7 +3346,7 @@ "cell_type": "code", "metadata": { "id": "Jadac2Q3XEW-", - "outputId": "73ab7e44-af11-44f3-8daa-8afd383af449", + "outputId": "dfeb815e-230d-420c-a4f4-d1454bafbe2a", "colab": { "base_uri": "https://localhost:8080/" } @@ -3355,7 +3355,7 @@ "f = FuncaoAtivacao_Sigmoid(S)\n", "f" ], - "execution_count": null, + "execution_count": 18, "outputs": [ { "output_type": "execute_result", @@ -3370,7 +3370,7 @@ "metadata": { "tags": [] }, - "execution_count": 41 + "execution_count": 18 } ] }, @@ -3398,7 +3398,7 @@ "cell_type": "code", "metadata": { "id": "bCu8miA2XEXE", - "outputId": "1ad95920-5c2a-49b4-bf72-979cecf4eb4d", + "outputId": "01ac22ce-5da2-44a7-980e-d7333ce0847a", "colab": { "base_uri": "https://localhost:8080/" } @@ -3407,7 +3407,7 @@ "E = Y - f\n", "E" ], - "execution_count": null, + "execution_count": 19, "outputs": [ { "output_type": "execute_result", @@ -3422,7 +3422,7 @@ "metadata": { "tags": [] }, - "execution_count": 42 + "execution_count": 19 } ] }, @@ -3479,7 +3479,7 @@ "def MSE(Y, f):\n", " return np.square(Y - f).mean()" ], - "execution_count": null, + "execution_count": 21, "outputs": [] }, { @@ -3494,13 +3494,30 @@ { "cell_type": "code", "metadata": { - "id": "C0L5ACZnXEXP" + "id": "C0L5ACZnXEXP", + "outputId": "a289fe92-6adb-42b0-b8b9-22ad1b340d10", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "MSE(Y, f)" ], - "execution_count": null, - "outputs": [] + "execution_count": 22, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "0.2614527354351902" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 22 + } + ] }, { "cell_type": "markdown", @@ -3510,7 +3527,7 @@ "source": [ "### _Backpropagation_ - Ajuste dos pesos $W_{O}= \\begin{bmatrix} W_{O}^{(1)} \\\\ W_{O}^{(2)} \\\\ W_{O}^{(3)} \\end{bmatrix}$\n", "\n", - "> _Backpropagation_ (ou simplesmente _Backward_) é o processo que faz com que a Rede Neural aprenda a partir da atualização iterativa dos pesos $W$. A ideia do _Backpropagation_ é que podemos melhorar a performance da Rede Neural através da calibração dos pesos $W$ usando _Gradient Descent_, de forma que os _outputs_ serão cada vez mais próximos do valor real." + "> _Backpropagation_ (ou simplesmente _Backward_) é o processo que faz com que a Rede Neural aprenda a partir da atualização iterativa dos pesos $W$. A ideia do _Backpropagation_ é que podemos melhorar a performance da Rede Neural através da calibração dos pesos $W$ usando _Gradient Descent_, de forma que os _outputs_ ($\\hat{y}_{i}$) serão cada vez mais próximos do valor real ($y_{i}$)." ] }, { @@ -3565,7 +3582,7 @@ "def Derivada_Sigmoid(y):\n", " return y*(1-y)" ], - "execution_count": null, + "execution_count": 23, "outputs": [] }, { @@ -3580,14 +3597,34 @@ { "cell_type": "code", "metadata": { - "id": "WTpQfBTpXEXi" + "id": "WTpQfBTpXEXi", + "outputId": "db0a0bf9-2163-4ce8-df0f-8f7b6a23c195", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "D_O = Derivada_Sigmoid(f)\n", "D_O" ], - "execution_count": null, - "outputs": [] + "execution_count": 24, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[0.242],\n", + " [0.237],\n", + " [0.238],\n", + " [0.232]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 24 + } + ] }, { "cell_type": "markdown", @@ -3654,7 +3691,7 @@ " Delta_H= D_H*W_O.T*Delta_O\n", " print(Delta_H[i]) " ], - "execution_count": null, + "execution_count": 25, "outputs": [] }, { @@ -3678,13 +3715,42 @@ { "cell_type": "code", "metadata": { - "id": "SiNkv_DBXEXu" + "id": "SiNkv_DBXEXu", + "outputId": "477f760d-e1c2-434c-9728-e5ab050f4699", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "Backpropagation(0)" ], - "execution_count": null, - "outputs": [] + "execution_count": 26, + "outputs": [ + { + "output_type": "stream", + "text": [ + "***** OUTPUT LAYER *****\n", + "*** Função de ativação ***\n", + "[0.587]\n", + "*** Derivada ***\n", + "[0.242]\n", + "*** Erros ***\n", + "[-0.587]\n", + "*** Delta ***\n", + "[-0.142]\n", + "\n", + "\n", + "***** HIDDEN LAYER *****\n", + "*** Função de ativação ***\n", + "[0.5 0.5 0.5]\n", + "*** Derivada ***\n", + "[0.25 0.25 0.25]\n", + "*** Delta ***\n", + "[-0.009 -0.011 -0.005]\n" + ], + "name": "stdout" + } + ] }, { "cell_type": "markdown", @@ -3739,13 +3805,42 @@ { "cell_type": "code", "metadata": { - "id": "S6An6CyUXEX0" + "id": "S6An6CyUXEX0", + "outputId": "eed1f6c1-7731-4368-c3c1-ea5a6a8524c8", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "Backpropagation(1)" ], - "execution_count": null, - "outputs": [] + "execution_count": 27, + "outputs": [ + { + "output_type": "stream", + "text": [ + "***** OUTPUT LAYER *****\n", + "*** Função de ativação ***\n", + "[0.616]\n", + "*** Derivada ***\n", + "[0.237]\n", + "*** Erros ***\n", + "[0.384]\n", + "*** Delta ***\n", + "[0.091]\n", + "\n", + "\n", + "***** HIDDEN LAYER *****\n", + "*** Função de ativação ***\n", + "[0.658 0.702 0.646]\n", + "*** Derivada ***\n", + "[0.225 0.209 0.229]\n", + "*** Delta ***\n", + "[0.005 0.006 0.003]\n" + ], + "name": "stdout" + } + ] }, { "cell_type": "markdown", @@ -3800,13 +3895,42 @@ { "cell_type": "code", "metadata": { - "id": "w39YvfOWXEX7" + "id": "w39YvfOWXEX7", + "outputId": "bff1eb12-46f3-4713-8bfa-060bed4c88a5", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "Backpropagation(2)" ], - "execution_count": null, - "outputs": [] + "execution_count": 28, + "outputs": [ + { + "output_type": "stream", + "text": [ + "***** OUTPUT LAYER *****\n", + "*** Função de ativação ***\n", + "[0.609]\n", + "*** Derivada ***\n", + "[0.238]\n", + "*** Erros ***\n", + "[0.391]\n", + "*** Delta ***\n", + "[0.093]\n", + "\n", + "\n", + "***** HIDDEN LAYER *****\n", + "*** Função de ativação ***\n", + "[0.63 0.639 0.632]\n", + "*** Derivada ***\n", + "[0.233 0.231 0.232]\n", + "*** Delta ***\n", + "[0.005 0.007 0.003]\n" + ], + "name": "stdout" + } + ] }, { "cell_type": "markdown", @@ -3861,13 +3985,42 @@ { "cell_type": "code", "metadata": { - "id": "1APffWq2XEYA" + "id": "1APffWq2XEYA", + "outputId": "24359257-7932-468a-d2c6-c437bab1139a", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "Backpropagation(3)" ], - "execution_count": null, - "outputs": [] + "execution_count": 29, + "outputs": [ + { + "output_type": "stream", + "text": [ + "***** OUTPUT LAYER *****\n", + "*** Função de ativação ***\n", + "[0.634]\n", + "*** Derivada ***\n", + "[0.232]\n", + "*** Erros ***\n", + "[-0.634]\n", + "*** Delta ***\n", + "[-0.147]\n", + "\n", + "\n", + "***** HIDDEN LAYER *****\n", + "*** Função de ativação ***\n", + "[0.766 0.806 0.758]\n", + "*** Derivada ***\n", + "[0.179 0.156 0.183]\n", + "*** Delta ***\n", + "[-0.006 -0.007 -0.004]\n" + ], + "name": "stdout" + } + ] }, { "cell_type": "markdown", @@ -3922,14 +4075,65 @@ { "cell_type": "code", "metadata": { - "id": "poTTrvYEXEYE" + "id": "Zkdw8tUKw5vo", + "outputId": "6a0af2a4-d7bd-4fb2-c810-41e90093d43b", + "colab": { + "base_uri": "https://localhost:8080/" + } + }, + "source": [ + "f" + ], + "execution_count": 30, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[0.587],\n", + " [0.616],\n", + " [0.609],\n", + " [0.634]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 30 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "poTTrvYEXEYE", + "outputId": "c258cfb9-2c0f-4ee3-ea0b-0cf199ac659d", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "D_O = Derivada_Sigmoid(f)\n", "D_O" ], - "execution_count": null, - "outputs": [] + "execution_count": 31, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[0.242],\n", + " [0.237],\n", + " [0.238],\n", + " [0.232]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 31 + } + ] }, { "cell_type": "markdown", @@ -3943,13 +4147,33 @@ { "cell_type": "code", "metadata": { - "id": "AO9Qi9U0aWTx" + "id": "AO9Qi9U0aWTx", + "outputId": "716ef77a-c70d-4a16-bb54-f83e49b1524b", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "E" ], - "execution_count": null, - "outputs": [] + "execution_count": 32, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.587],\n", + " [ 0.384],\n", + " [ 0.391],\n", + " [-0.634]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 32 + } + ] }, { "cell_type": "markdown", @@ -3963,14 +4187,34 @@ { "cell_type": "code", "metadata": { - "id": "6fylksvtaT6h" + "id": "6fylksvtaT6h", + "outputId": "818bdad7-fa5e-4470-e02e-30743e86397f", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "Delta_O = D_O*E\n", "Delta_O" ], - "execution_count": null, - "outputs": [] + "execution_count": 33, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.142],\n", + " [ 0.091],\n", + " [ 0.093],\n", + " [-0.147]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 33 + } + ] }, { "cell_type": "markdown", @@ -3984,14 +4228,34 @@ { "cell_type": "code", "metadata": { - "id": "SCABYAGjaigm" + "id": "SCABYAGjaigm", + "outputId": "3ac18557-4a19-4b44-bb81-21ef383a1f85", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "D_H = Derivada_Sigmoid(X2)\n", "D_H" ], - "execution_count": null, - "outputs": [] + "execution_count": 34, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[0.25 , 0.25 , 0.25 ],\n", + " [0.225, 0.209, 0.229],\n", + " [0.233, 0.231, 0.232],\n", + " [0.179, 0.156, 0.183]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 34 + } + ] }, { "cell_type": "markdown", @@ -4005,14 +4269,34 @@ { "cell_type": "code", "metadata": { - "id": "58r5kgNwa9xo" + "id": "58r5kgNwa9xo", + "outputId": "56870605-a017-4c73-aca3-ff3ebacc8264", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "Delta_H = D_H*W_O.T*Delta_O\n", "Delta_H" ], - "execution_count": null, - "outputs": [] + "execution_count": 41, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.009, -0.011, -0.005],\n", + " [ 0.005, 0.006, 0.003],\n", + " [ 0.005, 0.007, 0.003],\n", + " [-0.006, -0.007, -0.004]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 41 + } + ] }, { "cell_type": "markdown", @@ -4035,22 +4319,39 @@ { "cell_type": "code", "metadata": { - "id": "K991veZeXEYL" + "id": "K991veZeXEYL", + "outputId": "514d0b94-ce57-4bd2-860f-d797bf47e335", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "X2.T.dot(Delta_O)[0]" ], - "execution_count": null, - "outputs": [] - }, - { - "cell_type": "markdown", - "metadata": { - "id": "hz-0fQAGd7Aw" - }, - "source": [ - "\"Drawing\"" - ] + "execution_count": 35, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([-0.065])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 35 + } + ] + }, + { + "cell_type": "markdown", + "metadata": { + "id": "hz-0fQAGd7Aw" + }, + "source": [ + "\"Drawing\"" + ] }, { "cell_type": "markdown", @@ -4074,13 +4375,30 @@ { "cell_type": "code", "metadata": { - "id": "eomk5j12XEYT" + "id": "eomk5j12XEYT", + "outputId": "dbcc9962-07ef-46d3-a52d-e7cca3523aa4", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "X2.T.dot(Delta_O)[1]" ], - "execution_count": null, - "outputs": [] + "execution_count": 36, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([-0.067])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 36 + } + ] }, { "cell_type": "markdown", @@ -4113,13 +4431,30 @@ { "cell_type": "code", "metadata": { - "id": "D05BW8CgXEYc" + "id": "D05BW8CgXEYc", + "outputId": "4cb5fd90-a2fc-444f-db0b-104e6b08098e", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "X2.T.dot(Delta_O)[2]" ], - "execution_count": null, - "outputs": [] + "execution_count": 37, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([-0.065])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 37 + } + ] }, { "cell_type": "markdown", @@ -4165,7 +4500,11 @@ { "cell_type": "code", "metadata": { - "id": "er3DprzjXEYg" + "id": "er3DprzjXEYg", + "outputId": "1a75110a-8346-4769-d138-be521f4eabdf", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "M = 1\n", @@ -4174,8 +4513,23 @@ "W_O_New = W_O*M+alpha*(X2.T.dot(Delta_O))\n", "W_O_New" ], - "execution_count": null, - "outputs": [] + "execution_count": 38, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[0.234],\n", + " [0.312],\n", + " [0.136]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 38 + } + ] }, { "cell_type": "markdown", @@ -4183,7 +4537,7 @@ "id": "0-2weyIriNqN" }, "source": [ - "Abaixo, os pesos atualizados de $W_{O}$:" + "Abaixo, os pesos atualizados de $W_{O}$ (antes e depois)" ] }, { @@ -4234,13 +4588,33 @@ { "cell_type": "code", "metadata": { - "id": "oYxrEVC7XEYn" + "id": "oYxrEVC7XEYn", + "outputId": "484c87ce-47a2-4628-dbdd-d96a464e6521", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "Delta_H" ], - "execution_count": null, - "outputs": [] + "execution_count": 42, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.009, -0.011, -0.005],\n", + " [ 0.005, 0.006, 0.003],\n", + " [ 0.005, 0.007, 0.003],\n", + " [-0.006, -0.007, -0.004]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 42 + } + ] }, { "cell_type": "markdown", @@ -4265,13 +4639,31 @@ { "cell_type": "code", "metadata": { - "id": "06duXU28XEYy" + "id": "06duXU28XEYy", + "outputId": "c4056c7a-7156-4d21-ae23-a6091cbac06d", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "X.T.dot(Delta_H)" ], - "execution_count": null, - "outputs": [] + "execution_count": 45, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.001, -0. , -0.001],\n", + " [-0.001, -0.001, -0.001]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 45 + } + ] }, { "cell_type": "markdown", @@ -4304,13 +4696,31 @@ { "cell_type": "code", "metadata": { - "id": "qF1iFyRWXEY9" + "id": "qF1iFyRWXEY9", + "outputId": "b67a06cf-8a2c-427e-8fc1-01290e91ef60", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "X.T.dot(Delta_H)" ], - "execution_count": null, - "outputs": [] + "execution_count": 46, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.001, -0. , -0.001],\n", + " [-0.001, -0.001, -0.001]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 46 + } + ] }, { "cell_type": "markdown", @@ -4343,13 +4753,31 @@ { "cell_type": "code", "metadata": { - "id": "4UNZFSC5XEZE" + "id": "4UNZFSC5XEZE", + "outputId": "95202ea9-f594-4b74-a964-8b2cbe2a5e62", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "X.T.dot(Delta_H)" ], - "execution_count": null, - "outputs": [] + "execution_count": 47, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.001, -0. , -0.001],\n", + " [-0.001, -0.001, -0.001]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 47 + } + ] }, { "cell_type": "markdown", @@ -4400,13 +4828,33 @@ { "cell_type": "code", "metadata": { - "id": "vfiS9bFqXEZH" + "id": "vfiS9bFqXEZH", + "outputId": "e659b581-4c46-4ded-833a-420901f08631", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "Delta_H" ], - "execution_count": null, - "outputs": [] + "execution_count": 48, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.009, -0.011, -0.005],\n", + " [ 0.005, 0.006, 0.003],\n", + " [ 0.005, 0.007, 0.003],\n", + " [-0.006, -0.007, -0.004]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 48 + } + ] }, { "cell_type": "markdown", @@ -4431,13 +4879,31 @@ { "cell_type": "code", "metadata": { - "id": "SH4yHqoYXEZP" + "id": "SH4yHqoYXEZP", + "outputId": "98c98e25-b3c1-4267-ef4f-b28936ae75fe", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "X.T.dot(Delta_H)" ], - "execution_count": null, - "outputs": [] + "execution_count": 49, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.001, -0. , -0.001],\n", + " [-0.001, -0.001, -0.001]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 49 + } + ] }, { "cell_type": "markdown", @@ -4470,13 +4936,31 @@ { "cell_type": "code", "metadata": { - "id": "YE4DH6P_XEZZ" + "id": "YE4DH6P_XEZZ", + "outputId": "da667dd2-65a7-4aa1-c45b-d7cefc3627b1", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "X.T.dot(Delta_H)" ], - "execution_count": null, - "outputs": [] + "execution_count": 50, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.001, -0. , -0.001],\n", + " [-0.001, -0.001, -0.001]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 50 + } + ] }, { "cell_type": "markdown", @@ -4509,13 +4993,31 @@ { "cell_type": "code", "metadata": { - "id": "7-epl7I3XEZf" + "id": "7-epl7I3XEZf", + "outputId": "402d8680-d2ec-4d9a-e77a-65085978f1d3", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "X.T.dot(Delta_H)" ], - "execution_count": null, - "outputs": [] + "execution_count": 51, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[-0.001, -0. , -0.001],\n", + " [-0.001, -0.001, -0.001]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 51 + } + ] }, { "cell_type": "markdown", @@ -4562,7 +5064,11 @@ { "cell_type": "code", "metadata": { - "id": "Ys_y-R0BL7Iw" + "id": "Ys_y-R0BL7Iw", + "outputId": "dcb98f8d-038e-4957-9b72-4c796929a9af", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "M = 1\n", @@ -4571,8 +5077,22 @@ "W_H_New = W_H*M+alpha*(X.T.dot(Delta_H))\n", "W_H_New" ], - "execution_count": null, - "outputs": [] + "execution_count": 52, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[0.531, 0.57 , 0.542],\n", + " [0.655, 0.857, 0.602]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 52 + } + ] }, { "cell_type": "markdown", @@ -4831,7 +5351,7 @@ "import tensorflow as tf\n", "from tensorflow import keras" ], - "execution_count": null, + "execution_count": 53, "outputs": [] }, { @@ -4847,13 +5367,34 @@ { "cell_type": "code", "metadata": { - "id": "ApSwaqVbQVGx" + "id": "ApSwaqVbQVGx", + "outputId": "1f2cda78-ed28-470b-e3fd-973379009795", + "colab": { + "base_uri": "https://localhost:8080/", + "height": 35 + } }, "source": [ "tf.__version__" ], - "execution_count": null, - "outputs": [] + "execution_count": 54, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "application/vnd.google.colaboratory.intrinsic+json": { + "type": "string" + }, + "text/plain": [ + "'2.3.0'" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 54 + } + ] }, { "cell_type": "markdown", @@ -4872,7 +5413,7 @@ "source": [ "np.set_printoptions(precision = 3)" ], - "execution_count": null, + "execution_count": 55, "outputs": [] }, { @@ -4905,14 +5446,34 @@ { "cell_type": "code", "metadata": { - "id": "nTbtpKKdQh9M" + "id": "nTbtpKKdQh9M", + "outputId": "0002c861-cb8d-4ebc-b98a-462c82466f8a", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "X_XOR = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])\n", "X_XOR" ], - "execution_count": null, - "outputs": [] + "execution_count": 56, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[0, 0],\n", + " [0, 1],\n", + " [1, 0],\n", + " [1, 1]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 56 + } + ] }, { "cell_type": "markdown", @@ -4926,14 +5487,34 @@ { "cell_type": "code", "metadata": { - "id": "Gj4zl-JdQ0nR" + "id": "Gj4zl-JdQ0nR", + "outputId": "0f2d9383-bb95-4e6e-b8b8-2f14d4364d10", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "y_XOR = np.array([[0], [1], [1], [0]])\n", "y_XOR" ], - "execution_count": null, - "outputs": [] + "execution_count": 57, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "array([[0],\n", + " [1],\n", + " [1],\n", + " [0]])" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 57 + } + ] }, { "cell_type": "markdown", @@ -4983,21 +5564,21 @@ }, "source": [ "# Número de Neurônios na Input Layer:\n", - "N_I= 2\n", + "N_I = 2 # Número de variáveis/colunas da matriz de preditoras\n", "\n", "# Número de neurônios na Output Layer:\n", - "N_O= 1\n", + "N_O = 1\n", "\n", "# Número de neurônios na Hidden Layer:\n", - "N_H= 3\n", + "N_H = 3\n", "\n", "# Função de Ativação da Hidden Layer:\n", - "FA_H= tf.keras.activations.sigmoid\n", + "FA_H = tf.keras.activations.sigmoid\n", "\n", "# Função de Ativação da Output Layer\n", - "FA_O= tf.keras.activations.sigmoid" + "FA_O = tf.keras.activations.sigmoid" ], - "execution_count": null, + "execution_count": 58, "outputs": [] }, { @@ -5022,7 +5603,7 @@ "np.random.seed(20111974)\n", "tf.random.set_seed(20111974)" ], - "execution_count": null, + "execution_count": 59, "outputs": [] }, { @@ -5048,21 +5629,48 @@ { "cell_type": "code", "metadata": { - "id": "-LYbXfEZYNcC" + "id": "-LYbXfEZYNcC", + "outputId": "1a48709a-93ad-4b5c-f679-a74d48e21f24", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "from tensorflow.keras import Sequential\n", "from tensorflow.keras.layers import Dense\n", "\n", - "RN= Sequential()\n", - "RN.add(Dense(units= N_H, input_dim= N_I, activation= FA_H, kernel_constraint= tf.keras.constraints.UnitNorm()))\n", - "RN.add(Dense(units= N_O, activation= FA_O))\n", + "RN = Sequential() # nome da Rede Neural\n", + "RN.add(Dense(units = N_H, \n", + " input_dim = N_I, \n", + " activation = FA_H, \n", + " kernel_constraint = tf.keras.constraints.UnitNorm()))\n", + "RN.add(Dense(units= N_O, activation = FA_O))\n", "\n", "# Resumo da arquitetura da Rede Neural:\n", "print(RN.summary())" ], - "execution_count": null, - "outputs": [] + "execution_count": 61, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Model: \"sequential_1\"\n", + "_________________________________________________________________\n", + "Layer (type) Output Shape Param # \n", + "=================================================================\n", + "dense_2 (Dense) (None, 3) 9 \n", + "_________________________________________________________________\n", + "dense_3 (Dense) (None, 1) 4 \n", + "=================================================================\n", + "Total params: 13\n", + "Trainable params: 13\n", + "Non-trainable params: 0\n", + "_________________________________________________________________\n", + "None\n" + ], + "name": "stdout" + } + ] }, { "cell_type": "markdown", @@ -5093,13 +5701,15 @@ "id": "OdIerBPAUGbY" }, "source": [ - "Algoritmo_Opt= tf.keras.optimizers.Adam()\n", - "Loss_Function= tf.keras.losses.MeanSquaredError()\n", + "Algoritmo_Opt = tf.keras.optimizers.Adam() # Algoritmo de otimização\n", + "Loss_Function = tf.keras.losses.MeanSquaredError() # A métrica para cálculo do erro\n", "Metrics_Perf = [tf.keras.metrics.binary_accuracy]\n", "\n", - "RN.compile(optimizer= Algoritmo_Opt, loss= Loss_Function, metrics= Metrics_Perf)" + "RN.compile(optimizer = Algoritmo_Opt, \n", + " loss= Loss_Function, \n", + " metrics = Metrics_Perf)" ], - "execution_count": null, + "execution_count": 62, "outputs": [] }, { @@ -5108,7 +5718,7 @@ "id": "KVx2w28c5urj" }, "source": [ - "### 5. Ajustar a Rede Neural\n", + "### 5. Ajustar/treinar a Rede Neural\n", "\n", "* 1 _Epoch_ = 1 iteração da Rede Neural, passando por todo o dataframe de treinamento, sendo que 1 iteração contempla 1 processo _Forward_ e 1 processo _Backward_." ] @@ -5125,13 +5735,224 @@ { "cell_type": "code", "metadata": { - "id": "45inZ8X3U0Ew" + "id": "45inZ8X3U0Ew", + "outputId": "ad45add5-0027-4f4a-fde0-28bba8bbce54", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ - "hist= RN.fit(X_XOR, y_XOR, epochs= 100)" + "hist = RN.fit(X_XOR, y_XOR, epochs = 100)" ], - "execution_count": null, - "outputs": [] + "execution_count": 63, + "outputs": [ + { + "output_type": "stream", + "text": [ + "Epoch 1/100\n", + "1/1 [==============================] - 0s 1ms/step - loss: 0.3195 - binary_accuracy: 0.5000\n", + "Epoch 2/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3201 - binary_accuracy: 0.5000\n", + "Epoch 3/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3198 - binary_accuracy: 0.5000\n", + "Epoch 4/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3195 - binary_accuracy: 0.5000\n", + "Epoch 5/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3192 - binary_accuracy: 0.5000\n", + "Epoch 6/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3188 - binary_accuracy: 0.5000\n", + "Epoch 7/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.3185 - binary_accuracy: 0.5000\n", + "Epoch 8/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3182 - binary_accuracy: 0.5000\n", + "Epoch 9/100\n", + "1/1 [==============================] - 0s 5ms/step - loss: 0.3179 - binary_accuracy: 0.5000\n", + "Epoch 10/100\n", + "1/1 [==============================] - 0s 1ms/step - loss: 0.3176 - binary_accuracy: 0.5000\n", + "Epoch 11/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3173 - binary_accuracy: 0.5000\n", + "Epoch 12/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3170 - binary_accuracy: 0.5000\n", + "Epoch 13/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3166 - binary_accuracy: 0.5000\n", + "Epoch 14/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3163 - binary_accuracy: 0.5000\n", + "Epoch 15/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3160 - binary_accuracy: 0.5000\n", + "Epoch 16/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3157 - binary_accuracy: 0.5000\n", + "Epoch 17/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3154 - binary_accuracy: 0.5000\n", + "Epoch 18/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3151 - binary_accuracy: 0.5000\n", + "Epoch 19/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3148 - binary_accuracy: 0.5000\n", + "Epoch 20/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3145 - binary_accuracy: 0.5000\n", + "Epoch 21/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3142 - binary_accuracy: 0.5000\n", + "Epoch 22/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3138 - binary_accuracy: 0.5000\n", + "Epoch 23/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3135 - binary_accuracy: 0.5000\n", + "Epoch 24/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3132 - binary_accuracy: 0.5000\n", + "Epoch 25/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3129 - binary_accuracy: 0.5000\n", + "Epoch 26/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3126 - binary_accuracy: 0.5000\n", + "Epoch 27/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3123 - binary_accuracy: 0.5000\n", + "Epoch 28/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3120 - binary_accuracy: 0.5000\n", + "Epoch 29/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3117 - binary_accuracy: 0.5000\n", + "Epoch 30/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3114 - binary_accuracy: 0.5000\n", + "Epoch 31/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3111 - binary_accuracy: 0.5000\n", + "Epoch 32/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.3108 - binary_accuracy: 0.5000\n", + "Epoch 33/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3105 - binary_accuracy: 0.5000\n", + "Epoch 34/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3102 - binary_accuracy: 0.5000\n", + "Epoch 35/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.3099 - binary_accuracy: 0.5000\n", + "Epoch 36/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3096 - binary_accuracy: 0.5000\n", + "Epoch 37/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3093 - binary_accuracy: 0.5000\n", + "Epoch 38/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3090 - binary_accuracy: 0.5000\n", + "Epoch 39/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3087 - binary_accuracy: 0.5000\n", + "Epoch 40/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3084 - binary_accuracy: 0.5000\n", + "Epoch 41/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3081 - binary_accuracy: 0.5000\n", + "Epoch 42/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3079 - binary_accuracy: 0.5000\n", + "Epoch 43/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3076 - binary_accuracy: 0.5000\n", + "Epoch 44/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.3073 - binary_accuracy: 0.5000\n", + "Epoch 45/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3070 - binary_accuracy: 0.5000\n", + "Epoch 46/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3067 - binary_accuracy: 0.5000\n", + "Epoch 47/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3064 - binary_accuracy: 0.5000\n", + "Epoch 48/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3061 - binary_accuracy: 0.5000\n", + "Epoch 49/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.3058 - binary_accuracy: 0.5000\n", + "Epoch 50/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.3055 - binary_accuracy: 0.5000\n", + "Epoch 51/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3053 - binary_accuracy: 0.5000\n", + "Epoch 52/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3050 - binary_accuracy: 0.5000\n", + "Epoch 53/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3047 - binary_accuracy: 0.5000\n", + "Epoch 54/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3044 - binary_accuracy: 0.5000\n", + "Epoch 55/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3041 - binary_accuracy: 0.5000\n", + "Epoch 56/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3038 - binary_accuracy: 0.5000\n", + "Epoch 57/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3036 - binary_accuracy: 0.5000\n", + "Epoch 58/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3033 - binary_accuracy: 0.5000\n", + "Epoch 59/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3030 - binary_accuracy: 0.5000\n", + "Epoch 60/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3027 - binary_accuracy: 0.5000\n", + "Epoch 61/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3025 - binary_accuracy: 0.5000\n", + "Epoch 62/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3022 - binary_accuracy: 0.5000\n", + "Epoch 63/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3019 - binary_accuracy: 0.5000\n", + "Epoch 64/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3016 - binary_accuracy: 0.5000\n", + "Epoch 65/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3014 - binary_accuracy: 0.5000\n", + "Epoch 66/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.3011 - binary_accuracy: 0.5000\n", + "Epoch 67/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.3008 - binary_accuracy: 0.5000\n", + "Epoch 68/100\n", + "1/1 [==============================] - 0s 11ms/step - loss: 0.3006 - binary_accuracy: 0.5000\n", + "Epoch 69/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.3003 - binary_accuracy: 0.5000\n", + "Epoch 70/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.3000 - binary_accuracy: 0.5000\n", + "Epoch 71/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.2997 - binary_accuracy: 0.5000\n", + "Epoch 72/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2995 - binary_accuracy: 0.5000\n", + "Epoch 73/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.2992 - binary_accuracy: 0.5000\n", + "Epoch 74/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.2990 - binary_accuracy: 0.5000\n", + "Epoch 75/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.2987 - binary_accuracy: 0.5000\n", + "Epoch 76/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.2984 - binary_accuracy: 0.5000\n", + "Epoch 77/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.2982 - binary_accuracy: 0.5000\n", + "Epoch 78/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2979 - binary_accuracy: 0.5000\n", + "Epoch 79/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2976 - binary_accuracy: 0.5000\n", + "Epoch 80/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2974 - binary_accuracy: 0.5000\n", + "Epoch 81/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2971 - binary_accuracy: 0.5000\n", + "Epoch 82/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.2969 - binary_accuracy: 0.5000\n", + "Epoch 83/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2966 - binary_accuracy: 0.5000\n", + "Epoch 84/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2964 - binary_accuracy: 0.5000\n", + "Epoch 85/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2961 - binary_accuracy: 0.5000\n", + "Epoch 86/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.2959 - binary_accuracy: 0.5000\n", + "Epoch 87/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.2956 - binary_accuracy: 0.5000\n", + "Epoch 88/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2954 - binary_accuracy: 0.5000\n", + "Epoch 89/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.2951 - binary_accuracy: 0.5000\n", + "Epoch 90/100\n", + "1/1 [==============================] - 0s 5ms/step - loss: 0.2949 - binary_accuracy: 0.5000\n", + "Epoch 91/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2946 - binary_accuracy: 0.5000\n", + "Epoch 92/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.2944 - binary_accuracy: 0.5000\n", + "Epoch 93/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.2941 - binary_accuracy: 0.5000\n", + "Epoch 94/100\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.2939 - binary_accuracy: 0.5000\n", + "Epoch 95/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2936 - binary_accuracy: 0.5000\n", + "Epoch 96/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2934 - binary_accuracy: 0.5000\n", + "Epoch 97/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2931 - binary_accuracy: 0.5000\n", + "Epoch 98/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2929 - binary_accuracy: 0.5000\n", + "Epoch 99/100\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.2927 - binary_accuracy: 0.5000\n", + "Epoch 100/100\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.2924 - binary_accuracy: 0.5000\n" + ], + "name": "stdout" + } + ] }, { "cell_type": "markdown", @@ -5154,13 +5975,37 @@ { "cell_type": "code", "metadata": { - "id": "M4HlrjjjVLjB" + "id": "M4HlrjjjVLjB", + "outputId": "a4efc370-b2fb-4b63-88fc-7671b7005fbe", + "colab": { + "base_uri": "https://localhost:8080/" + } }, "source": [ "RN.evaluate(X_XOR, y_XOR)" ], - "execution_count": null, - "outputs": [] + "execution_count": 64, + "outputs": [ + { + "output_type": "stream", + "text": [ + "1/1 [==============================] - 0s 1ms/step - loss: 0.2922 - binary_accuracy: 0.5000\n" + ], + "name": "stdout" + }, + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "[0.2921895980834961, 0.5]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 64 + } + ] }, { "cell_type": "markdown", @@ -5285,12 +6130,12 @@ "N_H = 64\n", "\n", "# Função de Ativação da Hidden Layer:\n", - "FA_H = tf.keras.activations.relu\n", + "FA_H = tf.keras.activations.relu # ALTERADA!\n", "\n", "# Função de Ativação da Output Layer\n", - "FA_O = tf.keras.activations.sigmoid" + "FA_O = tf.keras.activations.sigmoid # NÃO FOI ALTERADA!" ], - "execution_count": null, + "execution_count": 90, "outputs": [] }, { @@ -5315,7 +6160,7 @@ "np.random.seed(20111974)\n", "tf.random.set_seed(20111974)" ], - "execution_count": null, + "execution_count": 91, "outputs": [] }, { @@ -5350,10 +6195,9 @@ "cell_type": "code", "metadata": { "id": "khod_vL5awS2", - "outputId": "d8442a44-3428-4509-c3d2-dd233804f51a", + "outputId": "6a9845e8-bc9a-4274-d7c7-cf72da60efd1", "colab": { - "base_uri": "https://localhost:8080/", - "height": 243 + "base_uri": "https://localhost:8080/" } }, "source": [ @@ -5367,18 +6211,18 @@ "\n", "print(RN.summary())" ], - "execution_count": null, + "execution_count": 92, "outputs": [ { "output_type": "stream", "text": [ - "Model: \"sequential_13\"\n", + "Model: \"sequential_6\"\n", "_________________________________________________________________\n", "Layer (type) Output Shape Param # \n", "=================================================================\n", - "dense_26 (Dense) (None, 64) 192 \n", + "dense_12 (Dense) (None, 64) 192 \n", "_________________________________________________________________\n", - "dense_27 (Dense) (None, 1) 65 \n", + "dense_13 (Dense) (None, 1) 65 \n", "=================================================================\n", "Total params: 257\n", "Trainable params: 257\n", @@ -5419,13 +6263,16 @@ "id": "FRhAlexLW29o" }, "source": [ - "Algoritmo_Opt = tf.keras.optimizers.Adam()\n", + "#Algoritmo_Opt = tf.keras.optimizers.Adam()\n", + "Algoritmo_Opt = tf.keras.optimizers.Adam(learning_rate=0.01, beta_1=0.9, beta_2=0.999, epsilon=1e-07, amsgrad=False,\n", + " name='Adam')\n", + "\n", "Loss_Function = tf.keras.losses.MeanSquaredError()\n", "Metrics_Perf = [tf.keras.metrics.binary_accuracy]\n", "\n", "RN.compile(optimizer= Algoritmo_Opt, loss= Loss_Function, metrics= Metrics_Perf)" ], - "execution_count": null, + "execution_count": 100, "outputs": [] }, { @@ -5452,220 +6299,219 @@ "cell_type": "code", "metadata": { "id": "vqyeqpq5XGAm", - "outputId": "ea87f9c8-447c-4e81-ec2f-364af106e76a", + "outputId": "61a23fa8-3b38-44ec-d01e-b5b936b50903", "colab": { - "base_uri": "https://localhost:8080/", - "height": 1000 + "base_uri": "https://localhost:8080/" } }, "source": [ - "RN.fit(X_XOR, y_XOR, epochs= 100)" + "RN.fit(X_XOR, y_XOR, epochs = 100)" ], - "execution_count": null, + "execution_count": 101, "outputs": [ { "output_type": "stream", "text": [ "Epoch 1/100\n", - "1/1 [==============================] - 0s 1ms/step - loss: 0.2581 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0820 - binary_accuracy: 1.0000\n", "Epoch 2/100\n", - "1/1 [==============================] - 0s 984us/step - loss: 0.2617 - binary_accuracy: 0.2500\n", + "1/1 [==============================] - 0s 1ms/step - loss: 0.0798 - binary_accuracy: 1.0000\n", "Epoch 3/100\n", - "1/1 [==============================] - 0s 1ms/step - loss: 0.2601 - binary_accuracy: 0.2500\n", + "1/1 [==============================] - 0s 1ms/step - loss: 0.0735 - binary_accuracy: 1.0000\n", "Epoch 4/100\n", - "1/1 [==============================] - 0s 4ms/step - loss: 0.2585 - binary_accuracy: 0.2500\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0681 - binary_accuracy: 1.0000\n", "Epoch 5/100\n", - "1/1 [==============================] - 0s 1ms/step - loss: 0.2570 - binary_accuracy: 0.2500\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0643 - binary_accuracy: 1.0000\n", "Epoch 6/100\n", - "1/1 [==============================] - 0s 911us/step - loss: 0.2555 - binary_accuracy: 0.2500\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0605 - binary_accuracy: 1.0000\n", "Epoch 7/100\n", - "1/1 [==============================] - 0s 1ms/step - loss: 0.2541 - binary_accuracy: 0.2500\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0571 - binary_accuracy: 1.0000\n", "Epoch 8/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2527 - binary_accuracy: 0.0000e+00\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0537 - binary_accuracy: 1.0000\n", "Epoch 9/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2513 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0503 - binary_accuracy: 1.0000\n", "Epoch 10/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2500 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0471 - binary_accuracy: 1.0000\n", "Epoch 11/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2488 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0440 - binary_accuracy: 1.0000\n", "Epoch 12/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2475 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0411 - binary_accuracy: 1.0000\n", "Epoch 13/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2462 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0384 - binary_accuracy: 1.0000\n", "Epoch 14/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2449 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0359 - binary_accuracy: 1.0000\n", "Epoch 15/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2437 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0336 - binary_accuracy: 1.0000\n", "Epoch 16/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2424 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0313 - binary_accuracy: 1.0000\n", "Epoch 17/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2411 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0292 - binary_accuracy: 1.0000\n", "Epoch 18/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2397 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0272 - binary_accuracy: 1.0000\n", "Epoch 19/100\n", - "1/1 [==============================] - 0s 996us/step - loss: 0.2384 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0253 - binary_accuracy: 1.0000\n", "Epoch 20/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2371 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0235 - binary_accuracy: 1.0000\n", "Epoch 21/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2358 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0217 - binary_accuracy: 1.0000\n", "Epoch 22/100\n", - "1/1 [==============================] - 0s 1ms/step - loss: 0.2344 - binary_accuracy: 0.5000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0201 - binary_accuracy: 1.0000\n", "Epoch 23/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2331 - binary_accuracy: 0.7500\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0187 - binary_accuracy: 1.0000\n", "Epoch 24/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2318 - binary_accuracy: 0.7500\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0173 - binary_accuracy: 1.0000\n", "Epoch 25/100\n", - "1/1 [==============================] - 0s 1ms/step - loss: 0.2305 - binary_accuracy: 0.7500\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0159 - binary_accuracy: 1.0000\n", "Epoch 26/100\n", - "1/1 [==============================] - 0s 1ms/step - loss: 0.2292 - binary_accuracy: 0.7500\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0147 - binary_accuracy: 1.0000\n", "Epoch 27/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2279 - binary_accuracy: 0.7500\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.0136 - binary_accuracy: 1.0000\n", "Epoch 28/100\n", - "1/1 [==============================] - 0s 1ms/step - loss: 0.2266 - binary_accuracy: 0.7500\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0126 - binary_accuracy: 1.0000\n", "Epoch 29/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2254 - binary_accuracy: 0.7500\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0116 - binary_accuracy: 1.0000\n", "Epoch 30/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2241 - binary_accuracy: 0.7500\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0107 - binary_accuracy: 1.0000\n", "Epoch 31/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2229 - binary_accuracy: 0.7500\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0099 - binary_accuracy: 1.0000\n", "Epoch 32/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2216 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0091 - binary_accuracy: 1.0000\n", "Epoch 33/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2204 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0084 - binary_accuracy: 1.0000\n", "Epoch 34/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2191 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0078 - binary_accuracy: 1.0000\n", "Epoch 35/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2179 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0072 - binary_accuracy: 1.0000\n", "Epoch 36/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2166 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0067 - binary_accuracy: 1.0000\n", "Epoch 37/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2154 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0063 - binary_accuracy: 1.0000\n", "Epoch 38/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2141 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0058 - binary_accuracy: 1.0000\n", "Epoch 39/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2129 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0054 - binary_accuracy: 1.0000\n", "Epoch 40/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2116 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0051 - binary_accuracy: 1.0000\n", "Epoch 41/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2104 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0048 - binary_accuracy: 1.0000\n", "Epoch 42/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2092 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0045 - binary_accuracy: 1.0000\n", "Epoch 43/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2080 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0042 - binary_accuracy: 1.0000\n", "Epoch 44/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2068 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.0040 - binary_accuracy: 1.0000\n", "Epoch 45/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2056 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0038 - binary_accuracy: 1.0000\n", "Epoch 46/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2044 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0036 - binary_accuracy: 1.0000\n", "Epoch 47/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2033 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0034 - binary_accuracy: 1.0000\n", "Epoch 48/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2021 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0032 - binary_accuracy: 1.0000\n", "Epoch 49/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.2009 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0030 - binary_accuracy: 1.0000\n", "Epoch 50/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1998 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0029 - binary_accuracy: 1.0000\n", "Epoch 51/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1987 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0028 - binary_accuracy: 1.0000\n", "Epoch 52/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1975 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.0026 - binary_accuracy: 1.0000\n", "Epoch 53/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1964 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.0025 - binary_accuracy: 1.0000\n", "Epoch 54/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1953 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0024 - binary_accuracy: 1.0000\n", "Epoch 55/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1942 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0023 - binary_accuracy: 1.0000\n", "Epoch 56/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1931 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.0022 - binary_accuracy: 1.0000\n", "Epoch 57/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1920 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0022 - binary_accuracy: 1.0000\n", "Epoch 58/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1909 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 5ms/step - loss: 0.0021 - binary_accuracy: 1.0000\n", "Epoch 59/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1898 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0020 - binary_accuracy: 1.0000\n", "Epoch 60/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1888 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0019 - binary_accuracy: 1.0000\n", "Epoch 61/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1877 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.0019 - binary_accuracy: 1.0000\n", "Epoch 62/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1867 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0018 - binary_accuracy: 1.0000\n", "Epoch 63/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1856 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0017 - binary_accuracy: 1.0000\n", "Epoch 64/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1846 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.0017 - binary_accuracy: 1.0000\n", "Epoch 65/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1835 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0016 - binary_accuracy: 1.0000\n", "Epoch 66/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1825 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0016 - binary_accuracy: 1.0000\n", "Epoch 67/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1815 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0016 - binary_accuracy: 1.0000\n", "Epoch 68/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1805 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0015 - binary_accuracy: 1.0000\n", "Epoch 69/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1795 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0015 - binary_accuracy: 1.0000\n", "Epoch 70/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1785 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0014 - binary_accuracy: 1.0000\n", "Epoch 71/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1775 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0014 - binary_accuracy: 1.0000\n", "Epoch 72/100\n", - "1/1 [==============================] - 0s 5ms/step - loss: 0.1765 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0014 - binary_accuracy: 1.0000\n", "Epoch 73/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1755 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.0013 - binary_accuracy: 1.0000\n", "Epoch 74/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1745 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.0013 - binary_accuracy: 1.0000\n", "Epoch 75/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1735 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0013 - binary_accuracy: 1.0000\n", "Epoch 76/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1726 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 4ms/step - loss: 0.0012 - binary_accuracy: 1.0000\n", "Epoch 77/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1716 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0012 - binary_accuracy: 1.0000\n", "Epoch 78/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1707 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0012 - binary_accuracy: 1.0000\n", "Epoch 79/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1697 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0012 - binary_accuracy: 1.0000\n", "Epoch 80/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1688 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0011 - binary_accuracy: 1.0000\n", "Epoch 81/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1678 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0011 - binary_accuracy: 1.0000\n", "Epoch 82/100\n", - "1/1 [==============================] - 0s 3ms/step - loss: 0.1669 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0011 - binary_accuracy: 1.0000\n", "Epoch 83/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1660 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 0.0011 - binary_accuracy: 1.0000\n", "Epoch 84/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1651 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0010 - binary_accuracy: 1.0000\n", "Epoch 85/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1641 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 0.0010 - binary_accuracy: 1.0000\n", "Epoch 86/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1632 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 9.9890e-04 - binary_accuracy: 1.0000\n", "Epoch 87/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1623 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 9.8004e-04 - binary_accuracy: 1.0000\n", "Epoch 88/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1614 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 9.6182e-04 - binary_accuracy: 1.0000\n", "Epoch 89/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1605 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 1ms/step - loss: 9.4389e-04 - binary_accuracy: 1.0000\n", "Epoch 90/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1596 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 9.2633e-04 - binary_accuracy: 1.0000\n", "Epoch 91/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1588 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 9.0949e-04 - binary_accuracy: 1.0000\n", "Epoch 92/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1579 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 8.9346e-04 - binary_accuracy: 1.0000\n", "Epoch 93/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1570 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 8.7824e-04 - binary_accuracy: 1.0000\n", "Epoch 94/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1561 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 8.6300e-04 - binary_accuracy: 1.0000\n", "Epoch 95/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1553 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 8.4822e-04 - binary_accuracy: 1.0000\n", "Epoch 96/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1544 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 8.3342e-04 - binary_accuracy: 1.0000\n", "Epoch 97/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1536 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 3ms/step - loss: 8.1917e-04 - binary_accuracy: 1.0000\n", "Epoch 98/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1527 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 8.0674e-04 - binary_accuracy: 1.0000\n", "Epoch 99/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1519 - binary_accuracy: 1.0000\n", + "1/1 [==============================] - 0s 2ms/step - loss: 7.9473e-04 - binary_accuracy: 1.0000\n", "Epoch 100/100\n", - "1/1 [==============================] - 0s 2ms/step - loss: 0.1510 - binary_accuracy: 1.0000\n" + "1/1 [==============================] - 0s 2ms/step - loss: 7.8255e-04 - binary_accuracy: 1.0000\n" ], "name": "stdout" }, @@ -5673,13 +6519,13 @@ "output_type": "execute_result", "data": { "text/plain": [ - "" + "" ] }, "metadata": { "tags": [] }, - "execution_count": 103 + "execution_count": 101 } ] }, @@ -5705,16 +6551,15 @@ "cell_type": "code", "metadata": { "id": "I8-Vr9lXXav4", - "outputId": "d1f217c7-4f95-4a5d-ffd9-68c61da37dd2", + "outputId": "41470be9-af29-4751-a957-035de23b7eca", "colab": { - "base_uri": "https://localhost:8080/", - "height": 52 + "base_uri": "https://localhost:8080/" } }, "source": [ "RN.evaluate(X_XOR, y_XOR)" ], - "execution_count": null, + "execution_count": 70, "outputs": [ { "output_type": "stream", @@ -5727,13 +6572,13 @@ "output_type": "execute_result", "data": { "text/plain": [ - "[0.1501958668231964, 1.0]" + "[0.1501958817243576, 1.0]" ] }, "metadata": { "tags": [] }, - "execution_count": 104 + "execution_count": 70 } ] }, @@ -5772,18 +6617,26 @@ "cell_type": "code", "metadata": { "id": "aum69OJENO6V", - "outputId": "9f627be2-b806-4e9c-825e-540587af4f13", + "outputId": "cc3c4c3d-6e7e-4c16-baf9-80ed53ba8485", "colab": { - "base_uri": "https://localhost:8080/", - "height": 86 + "base_uri": "https://localhost:8080/" } }, "source": [ "y_pred = RN.predict_classes(X_XOR)\n", "y_pred" ], - "execution_count": null, + "execution_count": 95, "outputs": [ + { + "output_type": "stream", + "text": [ + "WARNING:tensorflow:From :1: Sequential.predict_classes (from tensorflow.python.keras.engine.sequential) is deprecated and will be removed after 2021-01-01.\n", + "Instructions for updating:\n", + "Please use instead:* `np.argmax(model.predict(x), axis=-1)`, if your model does multi-class classification (e.g. if it uses a `softmax` last-layer activation).* `(model.predict(x) > 0.5).astype(\"int32\")`, if your model does binary classification (e.g. if it uses a `sigmoid` last-layer activation).\n" + ], + "name": "stdout" + }, { "output_type": "execute_result", "data": { @@ -5797,7 +6650,7 @@ "metadata": { "tags": [] }, - "execution_count": 105 + "execution_count": 95 } ] }, @@ -5805,16 +6658,15 @@ "cell_type": "code", "metadata": { "id": "rNogASabEhz8", - "outputId": "4c0df3af-de21-4679-e307-f471acb2b7d3", + "outputId": "948e70f5-35fd-4932-b106-2b87950c6ca6", "colab": { - "base_uri": "https://localhost:8080/", - "height": 86 + "base_uri": "https://localhost:8080/" } }, "source": [ "y_XOR" ], - "execution_count": null, + "execution_count": 96, "outputs": [ { "output_type": "execute_result", @@ -5829,7 +6681,7 @@ "metadata": { "tags": [] }, - "execution_count": 106 + "execution_count": 96 } ] }, @@ -6367,7 +7219,7 @@ "RN.add(Dense(N_H, input_dim= N_I, kernel_initializer= tf.keras.initializers.GlorotNormal(), activation= FA_H, kernel_constraint= tf.keras.constraints.UnitNorm()))\n", "RN.add(Dropout(0.1))\n", "#RN.add(Dense(N_H2, kernel_initializer= tf.keras.initializers.GlorotNormal(), activation= FA_H, kernel_constraint= tf.keras.constraints.UnitNorm()))\n", - "RN.add(Dropout(0.1))\n", + "#RN.add(Dropout(0.1))\n", "RN.add(Dense(units= N_O, activation= FA_O))\n", "\n", "# Resumo da arquitetura da Rede Neural\n",