{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "colab": {
      "name": "day34_01_simpleRNN.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "authorship_tag": "ABX9TyOcbQPro0QML4vSSylreSP3",
      "include_colab_link": true
    },
    "kernelspec": {
      "name": "python3",
      "display_name": "Python 3"
    },
    "language_info": {
      "name": "python"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/rkti498/e_shikaku/blob/main/day34_01_simpleRNN.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "92THlk0B11ZF"
      },
      "source": [
        "# RNN バイナリ加算のサンプル"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "j0boG2fNAaBl"
      },
      "source": [
        "import numpy as np\n",
        "\n",
        "# 中間層の活性化関数\n",
        "# シグモイド関数(ロジスティック関数)\n",
        "def sigmoid(x):\n",
        "    return 1/(1 + np.exp(-x))\n",
        "\n",
        "# ReLU関数\n",
        "def relu(x):\n",
        "    return np.maximum(0, x)\n",
        "\n",
        "# ステップ関数(閾値0)\n",
        "def step_function(x):\n",
        "    return np.where( x > 0, 1, 0) \n",
        "\n",
        "# 出力層の活性化関数\n",
        "# ソフトマックス関数\n",
        "def softmax(x):\n",
        "    if x.ndim == 2:\n",
        "        x = x.T\n",
        "        x = x - np.max(x, axis=0)\n",
        "        y = np.exp(x) / np.sum(np.exp(x), axis=0)\n",
        "        return y.T\n",
        "\n",
        "    x = x - np.max(x) # オーバーフロー対策\n",
        "    return np.exp(x) / np.sum(np.exp(x))\n",
        "\n",
        "# ソフトマックスとクロスエントロピーの複合関数\n",
        "def softmax_with_loss(d, x):\n",
        "    y = softmax(x)\n",
        "    return cross_entropy_error(d, y)\n",
        "\n",
        "# 誤差関数\n",
        "# 平均二乗誤差\n",
        "def mean_squared_error(d, y):\n",
        "    return np.mean(np.square(d - y)) / 2\n",
        "\n",
        "# クロスエントロピー\n",
        "def cross_entropy_error(d, y):\n",
        "    if y.ndim == 1:\n",
        "        d = d.reshape(1, d.size)\n",
        "        y = y.reshape(1, y.size)\n",
        "        \n",
        "    # 教師データがone-hot-vectorの場合、正解ラベルのインデックスに変換\n",
        "    if d.size == y.size:\n",
        "        d = d.argmax(axis=1)\n",
        "             \n",
        "    batch_size = y.shape[0]\n",
        "    return -np.sum(np.log(y[np.arange(batch_size), d] + 1e-7)) / batch_size\n",
        "\n",
        "\n",
        "\n",
        "# 活性化関数の導関数\n",
        "# シグモイド関数(ロジスティック関数)の導関数\n",
        "def d_sigmoid(x):\n",
        "    dx = (1.0 - sigmoid(x)) * sigmoid(x)\n",
        "    return dx\n",
        "\n",
        "# ReLU関数の導関数\n",
        "def d_relu(x):\n",
        "    return np.where( x > 0, 1, 0)\n",
        "    \n",
        "# ステップ関数の導関数\n",
        "def d_step_function(x):\n",
        "    return 0\n",
        "\n",
        "# 平均二乗誤差の導関数\n",
        "def d_mean_squared_error(d, y):\n",
        "    if type(d) == np.ndarray:\n",
        "        batch_size = d.shape[0]\n",
        "        dx = (y - d)/batch_size\n",
        "    else:\n",
        "        dx = y - d\n",
        "    return dx\n",
        "\n",
        "\n",
        "# ソフトマックスとクロスエントロピーの複合導関数\n",
        "def d_softmax_with_loss(d, y):\n",
        "    batch_size = d.shape[0]\n",
        "    if d.size == y.size: # 教師データがone-hot-vectorの場合\n",
        "        dx = (y - d) / batch_size\n",
        "    else:\n",
        "        dx = y.copy()\n",
        "        dx[np.arange(batch_size), d] -= 1\n",
        "        dx = dx / batch_size\n",
        "    return dx\n",
        "\n",
        "# シグモイドとクロスエントロピーの複合導関数\n",
        "def d_sigmoid_with_loss(d, y):\n",
        "    return y - d\n",
        "\n",
        "# 数値微分\n",
        "def numerical_gradient(f, x):\n",
        "    h = 1e-4\n",
        "    grad = np.zeros_like(x)\n",
        "\n",
        "    for idx in range(x.size):\n",
        "        tmp_val = x[idx]\n",
        "        # f(x + h)の計算\n",
        "        x[idx] = tmp_val + h\n",
        "        fxh1 = f(x)\n",
        "\n",
        "        # f(x - h)の計算\n",
        "        x[idx] = tmp_val - h\n",
        "        fxh2 = f(x)\n",
        "\n",
        "        grad[idx] = (fxh1 - fxh2) / (2 * h)\n",
        "        # 値を元に戻す\n",
        "        x[idx] = tmp_val\n",
        "\n",
        "    return grad\n",
        "\n",
        "\n",
        "def im2col(input_data, filter_h, filter_w, stride=1, pad=0):\n",
        "    N, C, H, W = input_data.shape\n",
        "    out_h = (H + 2*pad - filter_h)//stride + 1\n",
        "    out_w = (W + 2*pad - filter_w)//stride + 1\n",
        "\n",
        "    img = np.pad(input_data, [(0,0), (0,0), (pad, pad), (pad, pad)], 'constant')\n",
        "    col = np.zeros((N, C, filter_h, filter_w, out_h, out_w))\n",
        "\n",
        "    for y in range(filter_h):\n",
        "        y_max = y + stride*out_h\n",
        "        for x in range(filter_w):\n",
        "            x_max = x + stride*out_w\n",
        "            col[:, :, y, x, :, :] = img[:, :, y:y_max:stride, x:x_max:stride]\n",
        "\n",
        "    col = col.transpose(0, 4, 5, 1, 2, 3).reshape(N*out_h*out_w, -1)\n",
        "    return col\n",
        "\n",
        "\n",
        "def col2im(col, input_shape, filter_h, filter_w, stride=1, pad=0):\n",
        "    N, C, H, W = input_shape\n",
        "    out_h = (H + 2*pad - filter_h)//stride + 1\n",
        "    out_w = (W + 2*pad - filter_w)//stride + 1\n",
        "    col = col.reshape(N, out_h, out_w, C, filter_h, filter_w).transpose(0, 3, 4, 5, 1, 2)\n",
        "\n",
        "    img = np.zeros((N, C, H + 2*pad + stride - 1, W + 2*pad + stride - 1))\n",
        "    for y in range(filter_h):\n",
        "        y_max = y + stride*out_h\n",
        "        for x in range(filter_w):\n",
        "            x_max = x + stride*out_w\n",
        "            img[:, :, y:y_max:stride, x:x_max:stride] += col[:, :, y, x, :, :]\n",
        "\n",
        "    return img[:, :, pad:H + pad, pad:W + pad]"
      ],
      "execution_count": null,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "Ma8DLL-i1l_0",
        "outputId": "7e85f0b8-cf2f-4d50-b263-8ebac7e7bbd4"
      },
      "source": [
        "import numpy as np\n",
        "# from common import functions\n",
        "import matplotlib.pyplot as plt\n",
        "\n",
        "\n",
        "def d_tanh(x):\n",
        "    return 1/(np.cosh(x) ** 2)\n",
        "\n",
        "# データを用意\n",
        "# 2進数の桁数\n",
        "binary_dim = 8\n",
        "# 最大値 + 1\n",
        "largest_number = pow(2, binary_dim)\n",
        "# largest_numberまで2進数を用意\n",
        "binary = np.unpackbits(np.array([range(largest_number)],dtype=np.uint8).T,axis=1)\n",
        "\n",
        "input_layer_size = 2\n",
        "hidden_layer_size = 16\n",
        "output_layer_size = 1\n",
        "\n",
        "weight_init_std = 1\n",
        "learning_rate = 0.1\n",
        "\n",
        "iters_num = 10000\n",
        "plot_interval = 100\n",
        "\n",
        "# ウェイト初期化 (バイアスは簡単のため省略)\n",
        "# W_in = weight_init_std * np.random.randn(input_layer_size, hidden_layer_size)\n",
        "# W_out = weight_init_std * np.random.randn(hidden_layer_size, output_layer_size)\n",
        "# W = weight_init_std * np.random.randn(hidden_layer_size, hidden_layer_size)\n",
        "# Xavier\n",
        "W_in = np.random.randn(input_layer_size, hidden_layer_size) / (np.sqrt(input_layer_size))\n",
        "W_out = np.random.randn(hidden_layer_size, output_layer_size) / (np.sqrt(hidden_layer_size))\n",
        "W = np.random.randn(hidden_layer_size, hidden_layer_size) / (np.sqrt(hidden_layer_size))\n",
        "# He\n",
        "# W_in = np.random.randn(input_layer_size, hidden_layer_size) / (np.sqrt(input_layer_size)) * np.sqrt(2)\n",
        "# W_out = np.random.randn(hidden_layer_size, output_layer_size) / (np.sqrt(hidden_layer_size)) * np.sqrt(2)\n",
        "# W = np.random.randn(hidden_layer_size, hidden_layer_size) / (np.sqrt(hidden_layer_size)) * np.sqrt(2)\n",
        "\n",
        "\n",
        "# 勾配\n",
        "W_in_grad = np.zeros_like(W_in)\n",
        "W_out_grad = np.zeros_like(W_out)\n",
        "W_grad = np.zeros_like(W)\n",
        "\n",
        "u = np.zeros((hidden_layer_size, binary_dim + 1))\n",
        "z = np.zeros((hidden_layer_size, binary_dim + 1))\n",
        "y = np.zeros((output_layer_size, binary_dim))\n",
        "\n",
        "delta_out = np.zeros((output_layer_size, binary_dim))\n",
        "delta = np.zeros((hidden_layer_size, binary_dim + 1))\n",
        "\n",
        "all_losses = []\n",
        "\n",
        "for i in range(iters_num):\n",
        "    \n",
        "    # A, B初期化 (a + b = d)\n",
        "    a_int = np.random.randint(largest_number/2)\n",
        "    a_bin = binary[a_int] # binary encoding\n",
        "    b_int = np.random.randint(largest_number/2)\n",
        "    b_bin = binary[b_int] # binary encoding\n",
        "    \n",
        "    # 正解データ\n",
        "    d_int = a_int + b_int\n",
        "    d_bin = binary[d_int]\n",
        "    \n",
        "    # 出力バイナリ\n",
        "    out_bin = np.zeros_like(d_bin)\n",
        "    \n",
        "    # 時系列全体の誤差\n",
        "    all_loss = 0    \n",
        "    \n",
        "    # 時系列ループ\n",
        "    for t in range(binary_dim):\n",
        "        # 入力値\n",
        "        X = np.array([a_bin[ - t - 1], b_bin[ - t - 1]]).reshape(1, -1)\n",
        "        # 時刻tにおける正解データ\n",
        "        dd = np.array([d_bin[binary_dim - t - 1]])\n",
        "        \n",
        "        u[:,t+1] = np.dot(X, W_in) + np.dot(z[:,t].reshape(1, -1), W)\n",
        "\n",
        "        z[:,t+1] = sigmoid(u[:,t+1])\n",
        "        y[:,t] = sigmoid(np.dot(z[:,t+1].reshape(1, -1), W_out))\n",
        "\n",
        "        # z[:,t+1] = relu(u[:,t+1])\n",
        "        # y[:,t] = relu(np.dot(z[:,t+1].reshape(1, -1), W_out))\n",
        "\n",
        "        z[:,t+1] = np.tanh(u[:,t+1])    \n",
        "        y[:,t] = np.tanh(np.dot(z[:,t+1].reshape(1, -1), W_out))\n",
        "\n",
        "\n",
        "        #誤差\n",
        "        loss = mean_squared_error(dd, y[:,t])\n",
        "        \n",
        "        delta_out[:,t] = d_mean_squared_error(dd, y[:,t]) * d_sigmoid(y[:,t])        \n",
        "        \n",
        "        all_loss += loss\n",
        "\n",
        "        out_bin[binary_dim - t - 1] = np.round(y[:,t])\n",
        "    \n",
        "    \n",
        "    for t in range(binary_dim)[::-1]:\n",
        "        X = np.array([a_bin[-t-1],b_bin[-t-1]]).reshape(1, -1)        \n",
        "\n",
        "        delta[:,t] = (np.dot(delta[:,t+1].T, W.T) + np.dot(delta_out[:,t].T, W_out.T)) * d_sigmoid(u[:,t+1])\n",
        "\n",
        "        # delta[:,t] = (np.dot(delta[:,t+1].T, W.T) + np.dot(delta_out[:,t].T, W_out.T)) * d_relu(u[:,t+1])\n",
        "\n",
        "        # delta[:,t] = (np.dot(delta[:,t+1].T, W.T) + np.dot(delta_out[:,t].T, W_out.T)) * d_tanh(u[:,t+1])    \n",
        "\n",
        "        # 勾配更新\n",
        "        W_out_grad += np.dot(z[:,t+1].reshape(-1,1), delta_out[:,t].reshape(-1,1))\n",
        "        W_grad += np.dot(z[:,t].reshape(-1,1), delta[:,t].reshape(1,-1))\n",
        "        W_in_grad += np.dot(X.T, delta[:,t].reshape(1,-1))\n",
        "    \n",
        "    # 勾配適用\n",
        "    W_in -= learning_rate * W_in_grad\n",
        "    W_out -= learning_rate * W_out_grad\n",
        "    W -= learning_rate * W_grad\n",
        "    \n",
        "    W_in_grad *= 0\n",
        "    W_out_grad *= 0\n",
        "    W_grad *= 0\n",
        "    \n",
        "\n",
        "    if(i % plot_interval == 0):\n",
        "        all_losses.append(all_loss)        \n",
        "        print(\"iters:\" + str(i))\n",
        "        print(\"Loss:\" + str(all_loss))\n",
        "        print(\"Pred:\" + str(out_bin))\n",
        "        print(\"True:\" + str(d_bin))\n",
        "        out_int = 0\n",
        "        for index,x in enumerate(reversed(out_bin)):\n",
        "            out_int += x * pow(2, index)\n",
        "        print(str(a_int) + \" + \" + str(b_int) + \" = \" + str(out_int))\n",
        "        print(\"------------\")\n",
        "\n",
        "lists = range(0, iters_num, plot_interval)\n",
        "plt.plot(lists, all_losses, label=\"loss\")\n",
        "plt.show()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "iters:0\n",
            "Loss:2.153564894745493\n",
            "Pred:[0 0 1 0 0 0 0 0]\n",
            "True:[1 1 0 1 0 1 0 0]\n",
            "121 + 91 = 32\n",
            "------------\n",
            "iters:100\n",
            "Loss:0.5659978109753718\n",
            "Pred:[0 0 1 1 1 1 1 0]\n",
            "True:[0 0 1 1 0 0 1 1]\n",
            "24 + 27 = 62\n",
            "------------\n",
            "iters:200\n",
            "Loss:1.5234273549747595\n",
            "Pred:[0 0 0 0 1 0 0 0]\n",
            "True:[0 1 0 1 1 0 1 1]\n",
            "5 + 86 = 8\n",
            "------------\n",
            "iters:300\n",
            "Loss:1.0732684500064333\n",
            "Pred:[0 0 0 1 1 1 0 0]\n",
            "True:[0 1 1 1 1 1 0 1]\n",
            "111 + 14 = 28\n",
            "------------\n",
            "iters:400\n",
            "Loss:1.3702915075700555\n",
            "Pred:[0 0 0 0 1 1 1 0]\n",
            "True:[0 1 1 1 1 0 0 1]\n",
            "10 + 111 = 14\n",
            "------------\n",
            "iters:500\n",
            "Loss:0.9647743604989347\n",
            "Pred:[0 1 0 0 1 1 0 0]\n",
            "True:[1 0 0 1 0 1 1 0]\n",
            "70 + 80 = 76\n",
            "------------\n",
            "iters:600\n",
            "Loss:1.1480619329217434\n",
            "Pred:[1 1 1 1 1 1 1 0]\n",
            "True:[1 1 1 0 0 0 0 1]\n",
            "114 + 111 = 254\n",
            "------------\n",
            "iters:700\n",
            "Loss:1.0431930834757628\n",
            "Pred:[1 1 1 1 1 0 1 0]\n",
            "True:[1 0 1 1 1 1 0 0]\n",
            "73 + 115 = 250\n",
            "------------\n",
            "iters:800\n",
            "Loss:0.8700848545561863\n",
            "Pred:[0 0 1 1 1 0 0 0]\n",
            "True:[0 1 0 0 0 0 0 0]\n",
            "24 + 40 = 56\n",
            "------------\n",
            "iters:900\n",
            "Loss:0.9435390961625657\n",
            "Pred:[1 1 0 1 0 0 0 0]\n",
            "True:[1 0 0 1 0 1 1 0]\n",
            "69 + 81 = 208\n",
            "------------\n",
            "iters:1000\n",
            "Loss:1.2748087371021117\n",
            "Pred:[0 0 1 1 1 1 0 1]\n",
            "True:[0 1 0 0 1 1 1 0]\n",
            "25 + 53 = 61\n",
            "------------\n",
            "iters:1100\n",
            "Loss:1.0681730984674394\n",
            "Pred:[0 0 1 1 1 0 0 1]\n",
            "True:[0 1 0 0 0 1 0 1]\n",
            "25 + 44 = 57\n",
            "------------\n",
            "iters:1200\n",
            "Loss:0.5352576913311647\n",
            "Pred:[0 1 1 1 0 0 0 0]\n",
            "True:[0 1 1 1 1 0 0 0]\n",
            "24 + 96 = 112\n",
            "------------\n",
            "iters:1300\n",
            "Loss:0.6447085338301011\n",
            "Pred:[0 0 0 0 0 0 0 0]\n",
            "True:[0 0 0 0 1 1 0 1]\n",
            "3 + 10 = 0\n",
            "------------\n",
            "iters:1400\n",
            "Loss:0.8743242683856232\n",
            "Pred:[0 0 1 0 0 0 0 0]\n",
            "True:[0 0 1 1 1 1 0 1]\n",
            "17 + 44 = 32\n",
            "------------\n",
            "iters:1500\n",
            "Loss:0.9926579862906834\n",
            "Pred:[0 0 1 0 0 1 0 0]\n",
            "True:[0 0 1 1 1 1 1 0]\n",
            "26 + 36 = 36\n",
            "------------\n",
            "iters:1600\n",
            "Loss:1.1973668032523332\n",
            "Pred:[1 1 1 1 1 1 0 1]\n",
            "True:[1 1 0 0 0 0 1 1]\n",
            "86 + 109 = 253\n",
            "------------\n",
            "iters:1700\n",
            "Loss:0.5712612361030289\n",
            "Pred:[0 0 1 1 0 1 1 0]\n",
            "True:[0 0 1 0 0 1 1 1]\n",
            "19 + 20 = 54\n",
            "------------\n",
            "iters:1800\n",
            "Loss:1.1251359893632809\n",
            "Pred:[1 0 1 1 1 1 0 0]\n",
            "True:[1 0 1 0 0 0 0 0]\n",
            "93 + 67 = 188\n",
            "------------\n",
            "iters:1900\n",
            "Loss:0.6588827075097232\n",
            "Pred:[1 1 1 1 1 0 1 0]\n",
            "True:[1 0 1 1 1 1 1 0]\n",
            "68 + 122 = 250\n",
            "------------\n",
            "iters:2000\n",
            "Loss:0.8459203533313725\n",
            "Pred:[0 1 0 1 1 1 0 0]\n",
            "True:[1 0 0 1 1 1 0 0]\n",
            "125 + 31 = 92\n",
            "------------\n",
            "iters:2100\n",
            "Loss:0.6806428475661361\n",
            "Pred:[1 1 0 1 1 1 0 0]\n",
            "True:[1 1 0 1 1 0 0 0]\n",
            "123 + 93 = 220\n",
            "------------\n",
            "iters:2200\n",
            "Loss:0.28051406170320214\n",
            "Pred:[0 1 0 0 1 0 0 0]\n",
            "True:[0 1 0 0 1 1 0 0]\n",
            "41 + 35 = 72\n",
            "------------\n",
            "iters:2300\n",
            "Loss:0.2678601472715533\n",
            "Pred:[0 0 1 1 1 0 1 1]\n",
            "True:[0 0 1 1 1 0 0 1]\n",
            "26 + 31 = 59\n",
            "------------\n",
            "iters:2400\n",
            "Loss:0.5053430276519022\n",
            "Pred:[0 1 0 0 1 1 1 1]\n",
            "True:[0 1 0 1 1 1 1 1]\n",
            "25 + 70 = 79\n",
            "------------\n",
            "iters:2500\n",
            "Loss:0.4214456423294395\n",
            "Pred:[1 1 1 0 1 0 0 0]\n",
            "True:[0 1 1 0 1 0 0 0]\n",
            "69 + 35 = 232\n",
            "------------\n",
            "iters:2600\n",
            "Loss:0.43138557041268244\n",
            "Pred:[0 0 1 1 0 0 1 1]\n",
            "True:[0 0 1 1 0 1 1 1]\n",
            "22 + 33 = 51\n",
            "------------\n",
            "iters:2700\n",
            "Loss:0.08342940450333307\n",
            "Pred:[1 1 1 0 1 0 1 0]\n",
            "True:[1 1 1 0 1 0 1 0]\n",
            "127 + 107 = 234\n",
            "------------\n",
            "iters:2800\n",
            "Loss:0.9843271892876817\n",
            "Pred:[1 1 0 1 1 1 0 0]\n",
            "True:[1 0 0 0 1 0 0 0]\n",
            "17 + 119 = 220\n",
            "------------\n",
            "iters:2900\n",
            "Loss:0.27041290556212505\n",
            "Pred:[0 1 1 1 0 1 1 1]\n",
            "True:[0 1 1 1 0 0 1 1]\n",
            "85 + 30 = 119\n",
            "------------\n",
            "iters:3000\n",
            "Loss:0.17747346976447112\n",
            "Pred:[0 0 1 1 1 1 0 1]\n",
            "True:[0 0 1 1 1 1 0 1]\n",
            "36 + 25 = 61\n",
            "------------\n",
            "iters:3100\n",
            "Loss:0.15474438566810336\n",
            "Pred:[0 1 0 0 1 1 0 1]\n",
            "True:[0 1 0 0 1 1 0 1]\n",
            "31 + 46 = 77\n",
            "------------\n",
            "iters:3200\n",
            "Loss:0.2925576273470318\n",
            "Pred:[1 0 1 1 1 1 1 0]\n",
            "True:[1 0 0 1 1 1 1 0]\n",
            "38 + 120 = 190\n",
            "------------\n",
            "iters:3300\n",
            "Loss:0.058212540150715524\n",
            "Pred:[0 1 1 0 0 0 0 1]\n",
            "True:[0 1 1 0 0 0 0 1]\n",
            "65 + 32 = 97\n",
            "------------\n",
            "iters:3400\n",
            "Loss:0.23097330361993285\n",
            "Pred:[0 1 1 1 0 0 0 1]\n",
            "True:[0 1 1 1 0 0 0 1]\n",
            "70 + 43 = 113\n",
            "------------\n",
            "iters:3500\n",
            "Loss:0.12528287152008144\n",
            "Pred:[0 1 0 1 1 0 1 0]\n",
            "True:[0 1 0 1 1 0 1 0]\n",
            "33 + 57 = 90\n",
            "------------\n",
            "iters:3600\n",
            "Loss:0.11931292858767471\n",
            "Pred:[1 0 0 1 0 1 1 1]\n",
            "True:[1 0 0 1 0 1 1 1]\n",
            "35 + 116 = 151\n",
            "------------\n",
            "iters:3700\n",
            "Loss:0.03487172172445985\n",
            "Pred:[0 1 1 0 0 0 0 0]\n",
            "True:[0 1 1 0 0 0 0 0]\n",
            "24 + 72 = 96\n",
            "------------\n",
            "iters:3800\n",
            "Loss:0.42386621971691407\n",
            "Pred:[1 1 0 0 0 1 1 0]\n",
            "True:[1 0 0 0 0 1 1 0]\n",
            "56 + 78 = 198\n",
            "------------\n",
            "iters:3900\n",
            "Loss:0.04679461229142709\n",
            "Pred:[0 1 0 0 1 1 1 0]\n",
            "True:[0 1 0 0 1 1 1 0]\n",
            "51 + 27 = 78\n",
            "------------\n",
            "iters:4000\n",
            "Loss:0.08500932952686045\n",
            "Pred:[0 1 0 1 1 1 0 0]\n",
            "True:[0 1 0 1 1 1 0 0]\n",
            "16 + 76 = 92\n",
            "------------\n",
            "iters:4100\n",
            "Loss:0.028449876185565142\n",
            "Pred:[1 1 1 1 0 0 1 1]\n",
            "True:[1 1 1 1 0 0 1 1]\n",
            "125 + 118 = 243\n",
            "------------\n",
            "iters:4200\n",
            "Loss:0.010387937689509383\n",
            "Pred:[1 0 0 0 0 1 1 1]\n",
            "True:[1 0 0 0 0 1 1 1]\n",
            "87 + 48 = 135\n",
            "------------\n",
            "iters:4300\n",
            "Loss:0.16121578777568452\n",
            "Pred:[1 0 0 0 0 1 0 1]\n",
            "True:[1 0 0 0 0 1 0 1]\n",
            "55 + 78 = 133\n",
            "------------\n",
            "iters:4400\n",
            "Loss:0.008219474578897448\n",
            "Pred:[0 1 1 1 0 1 1 1]\n",
            "True:[0 1 1 1 0 1 1 1]\n",
            "7 + 112 = 119\n",
            "------------\n",
            "iters:4500\n",
            "Loss:0.3146766921785453\n",
            "Pred:[1 1 1 1 1 1 0 0]\n",
            "True:[1 0 1 1 1 1 0 0]\n",
            "81 + 107 = 252\n",
            "------------\n",
            "iters:4600\n",
            "Loss:0.023366812397411115\n",
            "Pred:[1 1 1 0 0 0 1 0]\n",
            "True:[1 1 1 0 0 0 1 0]\n",
            "107 + 119 = 226\n",
            "------------\n",
            "iters:4700\n",
            "Loss:0.021387873678467333\n",
            "Pred:[1 1 0 1 0 1 0 0]\n",
            "True:[1 1 0 1 0 1 0 0]\n",
            "98 + 114 = 212\n",
            "------------\n",
            "iters:4800\n",
            "Loss:0.030882954549819937\n",
            "Pred:[0 1 1 0 1 1 0 1]\n",
            "True:[0 1 1 0 1 1 0 1]\n",
            "11 + 98 = 109\n",
            "------------\n",
            "iters:4900\n",
            "Loss:0.12399539928882054\n",
            "Pred:[0 1 0 0 1 0 1 1]\n",
            "True:[0 1 0 0 1 0 1 1]\n",
            "61 + 14 = 75\n",
            "------------\n",
            "iters:5000\n",
            "Loss:0.040624100294295765\n",
            "Pred:[0 1 1 1 0 1 1 0]\n",
            "True:[0 1 1 1 0 1 1 0]\n",
            "99 + 19 = 118\n",
            "------------\n",
            "iters:5100\n",
            "Loss:0.029890623469243406\n",
            "Pred:[1 0 0 1 1 0 1 1]\n",
            "True:[1 0 0 1 1 0 1 1]\n",
            "94 + 61 = 155\n",
            "------------\n",
            "iters:5200\n",
            "Loss:0.006747409869158992\n",
            "Pred:[1 1 0 1 0 1 0 0]\n",
            "True:[1 1 0 1 0 1 0 0]\n",
            "104 + 108 = 212\n",
            "------------\n",
            "iters:5300\n",
            "Loss:0.11362048400667227\n",
            "Pred:[0 0 1 1 1 1 0 0]\n",
            "True:[0 0 1 1 1 1 0 0]\n",
            "43 + 17 = 60\n",
            "------------\n",
            "iters:5400\n",
            "Loss:0.036499078282814464\n",
            "Pred:[1 0 0 1 0 0 0 1]\n",
            "True:[1 0 0 1 0 0 0 1]\n",
            "104 + 41 = 145\n",
            "------------\n",
            "iters:5500\n",
            "Loss:0.0020271442734815285\n",
            "Pred:[1 0 1 1 1 0 0 0]\n",
            "True:[1 0 1 1 1 0 0 0]\n",
            "92 + 92 = 184\n",
            "------------\n",
            "iters:5600\n",
            "Loss:0.019150168217955153\n",
            "Pred:[0 0 0 1 0 0 1 1]\n",
            "True:[0 0 0 1 0 0 1 1]\n",
            "14 + 5 = 19\n",
            "------------\n",
            "iters:5700\n",
            "Loss:0.015615537960966534\n",
            "Pred:[0 1 1 0 1 1 1 0]\n",
            "True:[0 1 1 0 1 1 1 0]\n",
            "11 + 99 = 110\n",
            "------------\n",
            "iters:5800\n",
            "Loss:0.055848845352638045\n",
            "Pred:[0 1 0 0 0 0 0 0]\n",
            "True:[0 1 0 0 0 0 0 0]\n",
            "3 + 61 = 64\n",
            "------------\n",
            "iters:5900\n",
            "Loss:0.027811941122713048\n",
            "Pred:[1 0 1 1 0 1 0 1]\n",
            "True:[1 0 1 1 0 1 0 1]\n",
            "85 + 96 = 181\n",
            "------------\n",
            "iters:6000\n",
            "Loss:0.010294577678977852\n",
            "Pred:[1 0 1 0 0 0 1 0]\n",
            "True:[1 0 1 0 0 0 1 0]\n",
            "106 + 56 = 162\n",
            "------------\n",
            "iters:6100\n",
            "Loss:0.0294434376838914\n",
            "Pred:[0 1 0 1 0 0 0 0]\n",
            "True:[0 1 0 1 0 0 0 0]\n",
            "63 + 17 = 80\n",
            "------------\n",
            "iters:6200\n",
            "Loss:0.09631313639715536\n",
            "Pred:[0 1 0 0 0 1 0 1]\n",
            "True:[0 1 0 0 0 1 0 1]\n",
            "24 + 45 = 69\n",
            "------------\n",
            "iters:6300\n",
            "Loss:0.01924271266456333\n",
            "Pred:[1 1 0 0 1 0 0 1]\n",
            "True:[1 1 0 0 1 0 0 1]\n",
            "110 + 91 = 201\n",
            "------------\n",
            "iters:6400\n",
            "Loss:0.08407179514535484\n",
            "Pred:[0 1 1 1 1 1 1 0]\n",
            "True:[0 1 1 1 1 1 1 0]\n",
            "20 + 106 = 126\n",
            "------------\n",
            "iters:6500\n",
            "Loss:0.004977384528896935\n",
            "Pred:[1 0 0 0 1 0 0 0]\n",
            "True:[1 0 0 0 1 0 0 0]\n",
            "36 + 100 = 136\n",
            "------------\n",
            "iters:6600\n",
            "Loss:0.023494576741571575\n",
            "Pred:[1 0 0 0 1 1 1 0]\n",
            "True:[1 0 0 0 1 1 1 0]\n",
            "95 + 47 = 142\n",
            "------------\n",
            "iters:6700\n",
            "Loss:0.003000975419069599\n",
            "Pred:[1 0 1 1 0 0 1 1]\n",
            "True:[1 0 1 1 0 0 1 1]\n",
            "96 + 83 = 179\n",
            "------------\n",
            "iters:6800\n",
            "Loss:0.0021108360627262197\n",
            "Pred:[1 0 0 1 1 0 0 1]\n",
            "True:[1 0 0 1 1 0 0 1]\n",
            "87 + 66 = 153\n",
            "------------\n",
            "iters:6900\n",
            "Loss:0.043114944696639484\n",
            "Pred:[0 1 0 1 1 0 1 0]\n",
            "True:[0 1 0 1 1 0 1 0]\n",
            "63 + 27 = 90\n",
            "------------\n",
            "iters:7000\n",
            "Loss:0.006124100758764581\n",
            "Pred:[0 1 1 1 1 0 0 0]\n",
            "True:[0 1 1 1 1 0 0 0]\n",
            "114 + 6 = 120\n",
            "------------\n",
            "iters:7100\n",
            "Loss:0.06282776676401762\n",
            "Pred:[0 1 1 0 0 0 0 1]\n",
            "True:[0 1 1 0 0 0 0 1]\n",
            "69 + 28 = 97\n",
            "------------\n",
            "iters:7200\n",
            "Loss:0.012013012155202389\n",
            "Pred:[0 1 0 0 0 0 0 1]\n",
            "True:[0 1 0 0 0 0 0 1]\n",
            "32 + 33 = 65\n",
            "------------\n",
            "iters:7300\n",
            "Loss:0.028836632944875068\n",
            "Pred:[1 1 0 1 1 0 0 1]\n",
            "True:[1 1 0 1 1 0 0 1]\n",
            "122 + 95 = 217\n",
            "------------\n",
            "iters:7400\n",
            "Loss:0.03777987985745057\n",
            "Pred:[0 1 1 0 0 0 1 1]\n",
            "True:[0 1 1 0 0 0 1 1]\n",
            "60 + 39 = 99\n",
            "------------\n",
            "iters:7500\n",
            "Loss:0.0016045064751352685\n",
            "Pred:[0 1 0 1 1 0 1 0]\n",
            "True:[0 1 0 1 1 0 1 0]\n",
            "10 + 80 = 90\n",
            "------------\n",
            "iters:7600\n",
            "Loss:0.011171217721587709\n",
            "Pred:[1 0 1 0 0 0 0 1]\n",
            "True:[1 0 1 0 0 0 0 1]\n",
            "125 + 36 = 161\n",
            "------------\n",
            "iters:7700\n",
            "Loss:0.08617873995102997\n",
            "Pred:[0 1 0 0 1 1 1 0]\n",
            "True:[0 1 0 0 1 1 1 0]\n",
            "40 + 38 = 78\n",
            "------------\n",
            "iters:7800\n",
            "Loss:0.010397438122656017\n",
            "Pred:[0 1 1 0 1 0 1 0]\n",
            "True:[0 1 1 0 1 0 1 0]\n",
            "88 + 18 = 106\n",
            "------------\n",
            "iters:7900\n",
            "Loss:0.02433398525828952\n",
            "Pred:[1 0 0 0 0 1 0 1]\n",
            "True:[1 0 0 0 0 1 0 1]\n",
            "77 + 56 = 133\n",
            "------------\n",
            "iters:8000\n",
            "Loss:0.001718991142316749\n",
            "Pred:[1 1 0 1 0 1 0 1]\n",
            "True:[1 1 0 1 0 1 0 1]\n",
            "117 + 96 = 213\n",
            "------------\n",
            "iters:8100\n",
            "Loss:0.0007114582440403065\n",
            "Pred:[0 1 1 1 0 1 1 1]\n",
            "True:[0 1 1 1 0 1 1 1]\n",
            "88 + 31 = 119\n",
            "------------\n",
            "iters:8200\n",
            "Loss:0.025349840562032013\n",
            "Pred:[1 1 0 0 1 1 1 1]\n",
            "True:[1 1 0 0 1 1 1 1]\n",
            "90 + 117 = 207\n",
            "------------\n",
            "iters:8300\n",
            "Loss:0.021087777651367698\n",
            "Pred:[0 0 0 0 1 1 1 0]\n",
            "True:[0 0 0 0 1 1 1 0]\n",
            "5 + 9 = 14\n",
            "------------\n",
            "iters:8400\n",
            "Loss:0.012730265116910503\n",
            "Pred:[1 0 1 0 0 0 0 1]\n",
            "True:[1 0 1 0 0 0 0 1]\n",
            "111 + 50 = 161\n",
            "------------\n",
            "iters:8500\n",
            "Loss:0.010435261233883586\n",
            "Pred:[1 0 1 0 1 0 0 1]\n",
            "True:[1 0 1 0 1 0 0 1]\n",
            "125 + 44 = 169\n",
            "------------\n",
            "iters:8600\n",
            "Loss:0.06613496188358742\n",
            "Pred:[0 1 1 1 0 1 0 1]\n",
            "True:[0 1 1 1 0 1 0 1]\n",
            "109 + 8 = 117\n",
            "------------\n",
            "iters:8700\n",
            "Loss:0.011993586944276585\n",
            "Pred:[0 0 1 1 1 0 0 1]\n",
            "True:[0 0 1 1 1 0 0 1]\n",
            "10 + 47 = 57\n",
            "------------\n",
            "iters:8800\n",
            "Loss:0.019079905925579396\n",
            "Pred:[0 0 1 0 0 1 1 1]\n",
            "True:[0 0 1 0 0 1 1 1]\n",
            "18 + 21 = 39\n",
            "------------\n",
            "iters:8900\n",
            "Loss:0.013600918569904754\n",
            "Pred:[1 0 1 0 0 1 1 1]\n",
            "True:[1 0 1 0 0 1 1 1]\n",
            "75 + 92 = 167\n",
            "------------\n",
            "iters:9000\n",
            "Loss:0.009621368877386419\n",
            "Pred:[1 0 0 0 1 0 0 1]\n",
            "True:[1 0 0 0 1 0 0 1]\n",
            "73 + 64 = 137\n",
            "------------\n",
            "iters:9100\n",
            "Loss:0.01811070525066136\n",
            "Pred:[0 1 1 0 1 0 1 0]\n",
            "True:[0 1 1 0 1 0 1 0]\n",
            "63 + 43 = 106\n",
            "------------\n",
            "iters:9200\n",
            "Loss:0.004258061377861931\n",
            "Pred:[1 0 1 1 1 1 1 0]\n",
            "True:[1 0 1 1 1 1 1 0]\n",
            "64 + 126 = 190\n",
            "------------\n",
            "iters:9300\n",
            "Loss:0.04397747646965129\n",
            "Pred:[0 1 1 0 1 0 0 0]\n",
            "True:[0 1 1 0 1 0 0 0]\n",
            "69 + 35 = 104\n",
            "------------\n",
            "iters:9400\n",
            "Loss:0.03249117145077845\n",
            "Pred:[0 1 1 0 0 0 0 1]\n",
            "True:[0 1 1 0 0 0 0 1]\n",
            "80 + 17 = 97\n",
            "------------\n",
            "iters:9500\n",
            "Loss:0.02220329506937916\n",
            "Pred:[1 0 1 1 0 0 0 0]\n",
            "True:[1 0 1 1 0 0 0 0]\n",
            "70 + 106 = 176\n",
            "------------\n",
            "iters:9600\n",
            "Loss:0.020627497677411313\n",
            "Pred:[1 0 1 0 0 0 0 1]\n",
            "True:[1 0 1 0 0 0 0 1]\n",
            "37 + 124 = 161\n",
            "------------\n",
            "iters:9700\n",
            "Loss:0.010723291665635452\n",
            "Pred:[0 1 0 1 0 0 0 0]\n",
            "True:[0 1 0 1 0 0 0 0]\n",
            "25 + 55 = 80\n",
            "------------\n",
            "iters:9800\n",
            "Loss:0.026674913935543214\n",
            "Pred:[1 0 0 0 1 1 1 0]\n",
            "True:[1 0 0 0 1 1 1 0]\n",
            "102 + 40 = 142\n",
            "------------\n",
            "iters:9900\n",
            "Loss:0.03234901207213073\n",
            "Pred:[0 1 1 0 1 0 0 0]\n",
            "True:[0 1 1 0 1 0 0 0]\n",
            "97 + 7 = 104\n",
            "------------\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "PlRjNu4cAz9G"
      },
      "source": [
        "sigmoid(ランダム初期化)の結果\n",
        "\n",
        "![image.png](data:image/png;base64,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)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "-TkkCuBOJ929"
      },
      "source": [
        "sigmoid(Xavier初期化)  \n",
        "![image.png](data:image/png;base64,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)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "692rSn7sBHp_"
      },
      "source": [
        "ReLU(ランダム初期化)の結果  \n",
        "![image.png](data:image/png;base64,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)\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "hBAK-mtmI0Fg"
      },
      "source": [
        "ReLU(He初期化)の結果  \n",
        "![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAgAElEQVR4Ae2dC3xV1Z3vfx0d5965d+48nNvP7efewUrrtD6mrca26rS2tjq+OnamVW+91baO1rZOO1brVBB8AIqKoqggqKCCIiIqqEAgARLeCQmEJISQEEIgAQLhER7hkQDrfn4re5/ss8/OAzg57Oz9W5/P+Zy111p7n72+/3V+e+21115/QEEEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERKCXCZx99tkmKytLHzFQG1AbUBs4gTYAoKmX5fnUDk9hVxABERABETgxAgCKT019e3lvifuJGVSlRUAERIAEJO5qByIgAiIQQQIS9wgaVVUSAREQAYm72oAIiIAIRJCAxD2CRlWVREAEREDirjYgAiIgAhEkIHGPoFFVJREQARGInbjvP9xmJhdsMseOHZf1RUAERCCyBGIn7g99UGrOeWimKa7bFVmjqmIiIAIiECtxX7FxlxV2ivv0VQ2yvgiIgAhElkBsxP1I2zFzzfP55rLh86zAvzy/OrJGVcVEQAREIDbiPiZvvRX13IpGkzUs13B4RkEEREAEokogFuK+eVeL+dLg2eaeSUXWjj8cvcT89PWCqNpU9RIBERCBeKwtMy6/xvba63e3WJP/++SV5jsjFsj8IiACIhBZArHouVPMr3hqfsKIT82uNF98eJamQyaIKCICIhA1ArEQ9+8+m5cYkqEB315eZ3vy25oPRc2eqo8IiIAIWAKRF/d9h1pTZsfkrdtu04o2aq67/gciIALRJBB5cS/YsNMK+YJ12xMWXL99v03TXPcEEkVEQAQiRiDy4j5+ca0V8h37DidMd6j1qE3TXPcEEkVEQAQiRiDy4v7790rMN57MTTGb5rqnIFGCCIhAhAhEXtyvHplv/u3NFSkm01z3FCRKEAERiBCBSIt7y5E2c+6Ameb5nKoUk2muewoSJYiACESIQKTFvbhutx1bz6loTDGZ5rqnIFGCCIhAhAhEWtwnLttoxX1r88EUk2muewoSJYiACESIQKTF/cH3V5tLhuaY48dTHXNornuEWrGqIgIikEIg0uJ+3ahF5o4JhSmVZoLmugdiUaIIiEBECKRT3N8AsAPAGgSHzwB4CUANgDIAlwQXS07Nyso6KdScy/6FgbPMM9mVgftrrnsgFiWKgAhEhEA6xf1KR7A7E/cbAGQDoMhfBqAwWcaDt05W3Evr99jx9tllWzs1lea6d4pGGSIgAn2cQDrFner8+S567q8CuM0j4VUAPufZDoyerLi/U9C+OBjXcu8saK57Z2SULgIi0NcJZFLcZwL4lkfB5wO41LPtjd7jnFhxv379Toox15Lh26lBD1PdA2quu0tC3yIgAlEjEFZxTwj9yfbce2IozXXvCSWVEQER6IsEMinuGR2W6YkxNNe9J5RURgREoC8SyKS43+h7oLoi0T3vItKbPXcO3Zzz0Eyjdd37YtPVOYuACHRFIJ3iPgXANgBtABoA3AXg186H8s1ZMmMAbABQ3sV4e5LU96a4u8sT8IUmBREQARGIEoF0inuSKKdrozfFvay+2fbccwPWnomSkVUXERCB+BGItbhXbtvb7Vz4+DUJ1VgERCAKBGIt7u4SBDNKGqJgS9VBBERABBIEYi3um3a22J77tOL6BBBFREAERCAKBGIt7lwKmLNlphRuioItVQcREAERSBCItbjTaTbFfdKyjQkgioiACIhAFAjEWtybW1qtuI9fXBsFW6oOIiACIpAgEGtxp49V9tzH5tckgCgiAiIgAlEgEGtxbz16zIr7y/Oro2BL1UEEREAEEgRiLe5cMZI995E5VQkgioiACIhAFAjEWtxpwC8+PMs83Ym3pigYWHUQARGIJ4HYi/v5j2SbYZ9WxNP6qrUIiEBkCcRe3L/y+Fzz2MdrImtgVUwERCCeBGIv7lnDcszAj8riaX3VWgREILIEYi/ulw2fZx58f3VkDayKiYAIxJNA7MX9288sMPdNWRVP66vWIiACkSUQe3H/3nN55t7JKyNrYFVMBEQgngRiL+7XvrDQ/HJiUTytr1qLgAhElkDsxf0HLy02v3ijMLIGVsVEQATiSSD24v6vY5aYn75eEE/rq9YiIAKRJRB7cb913DLDj4IIiIAIRIlA7MWdvXb23hVEQAREIEoEYi/uHG/nuLuCCIiACESJQOzFnTNlOGNGQQREQASiRCD24s457pzrriACIiACUSIQe3Hn26l8S1VBBERABKJEIPbiznVluL6MggiIgAhEiUC6xf06AFUAagAMQGroByAPQAmAMgA3pBZJTsnKyupV3lwRkitDKoiACIhAlAikU9zPALABQH8AZwEo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)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "I9DJd7AzBTMA"
      },
      "source": [
        "tanh(ランダム初期化)の結果  \n",
        "![image.png](data:image/png;base64,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)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "zsFA4_zRJm2C"
      },
      "source": [
        "tanh(Xavier初期化)の結果  \n",
        "![image.png](data:image/png;base64,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)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "FqjobgfAKPXK"
      },
      "source": [
        "### 考察\n",
        "実施する度に結果が少々ばらつくが、どれもうまい具合に収束する。\n",
        "tanhのランダム初期化だけはあまりうまくいかない。\n",
        "他のReLUとtanhは初期化にあまり影響を受けていないように見える。\n",
        "\n"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "-u0A5ThGjKVH"
      },
      "source": [
        "# サイン波予測\n",
        "maxlen:2 iters_num:100  \n",
        "maxlen:2 iters_num:500  \n",
        "maxlen:2 iters_num:3000  \n",
        "maxlen:5 iters_num:100  \n",
        "maxlen:5 iters_num:500  \n",
        "maxlen:5 iters_num:3000  \n",
        "\n",
        "\n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "IjjFN0eciCUL",
        "outputId": "c1b2a888-a131-4985-cec8-d37aaa09d3cd"
      },
      "source": [
        "import numpy as np\n",
        "import matplotlib.pyplot as plt\n",
        "from sklearn.model_selection import train_test_split\n",
        "\n",
        "np.random.seed(0)\n",
        "\n",
        "# sin曲線\n",
        "round_num = 10\n",
        "div_num = 500\n",
        "ts = np.linspace(0, round_num * np.pi, div_num)\n",
        "f = np.sin(ts)\n",
        "\n",
        "def d_tanh(x):\n",
        "    return 1/(np.cosh(x)**2 + 1e-4)\n",
        "\n",
        "# ひとつの時系列データの長さ\n",
        "maxlen = 5\n",
        "\n",
        "# sin波予測の入力データ\n",
        "test_head = [[f[k]] for k in range(0, maxlen)]\n",
        "\n",
        "data = []\n",
        "target = []\n",
        "\n",
        "for i in range(div_num - maxlen):\n",
        "    data.append(f[i: i + maxlen])\n",
        "    target.append(f[i + maxlen])\n",
        "    \n",
        "X = np.array(data).reshape(len(data), maxlen, 1)\n",
        "D = np.array(target).reshape(len(data), 1)\n",
        "\n",
        "# データ設定\n",
        "N_train = int(len(data) * 0.8)\n",
        "N_validation = len(data) - N_train\n",
        "\n",
        "x_train, x_test, d_train, d_test = train_test_split(X, D, test_size=N_validation)\n",
        "\n",
        "input_layer_size = 1\n",
        "hidden_layer_size = 5\n",
        "output_layer_size = 1\n",
        "\n",
        "weight_init_std = 0.01\n",
        "learning_rate = 0.1\n",
        "\n",
        "iters_num = 3000\n",
        "\n",
        "# ウェイト初期化 (バイアスは簡単のため省略)\n",
        "W_in = weight_init_std * np.random.randn(input_layer_size, hidden_layer_size)\n",
        "W_out = weight_init_std * np.random.randn(hidden_layer_size, output_layer_size)\n",
        "W = weight_init_std * np.random.randn(hidden_layer_size, hidden_layer_size)\n",
        "\n",
        "# 勾配\n",
        "W_in_grad = np.zeros_like(W_in)\n",
        "W_out_grad = np.zeros_like(W_out)\n",
        "W_grad = np.zeros_like(W)\n",
        "\n",
        "us = []\n",
        "zs = []\n",
        "\n",
        "u = np.zeros(hidden_layer_size)\n",
        "z = np.zeros(hidden_layer_size)\n",
        "y = np.zeros(output_layer_size)\n",
        "\n",
        "delta_out = np.zeros(output_layer_size)\n",
        "delta = np.zeros(hidden_layer_size)\n",
        "\n",
        "losses = []\n",
        "\n",
        "# トレーニング\n",
        "for i in range(iters_num):\n",
        "    for s in range(x_train.shape[0]):\n",
        "        us.clear()\n",
        "        zs.clear()\n",
        "        z *= 0\n",
        "        \n",
        "        # sにおける正解データ\n",
        "        d = d_train[s]\n",
        "\n",
        "        xs = x_train[s]        \n",
        "        \n",
        "        # 時系列ループ\n",
        "        for t in range(maxlen):\n",
        "            \n",
        "            # 入力値\n",
        "            x = xs[t]\n",
        "            u = np.dot(x, W_in) + np.dot(z, W)\n",
        "            us.append(u)\n",
        "            z = np.tanh(u)\n",
        "            zs.append(z)\n",
        "\n",
        "        y = np.dot(z, W_out)\n",
        "        \n",
        "        #誤差\n",
        "        loss = mean_squared_error(d, y)\n",
        "        \n",
        "        delta_out = d_mean_squared_error(d, y)\n",
        "        \n",
        "        delta *= 0\n",
        "        for t in range(maxlen)[::-1]:\n",
        "            \n",
        "            delta = (np.dot(delta, W.T) + np.dot(delta_out, W_out.T)) * d_tanh(us[t])\n",
        "            \n",
        "            # 勾配更新\n",
        "            W_grad += np.dot(zs[t].reshape(-1,1), delta.reshape(1,-1))\n",
        "            W_in_grad += np.dot(xs[t], delta.reshape(1,-1))\n",
        "        W_out_grad = np.dot(z.reshape(-1,1), delta_out)\n",
        "        \n",
        "        # 勾配適用\n",
        "        W -= learning_rate * W_grad\n",
        "        W_in -= learning_rate * W_in_grad\n",
        "        W_out -= learning_rate * W_out_grad.reshape(-1,1)\n",
        "            \n",
        "        W_in_grad *= 0\n",
        "        W_out_grad *= 0\n",
        "        W_grad *= 0\n",
        "\n",
        "# テスト        \n",
        "for s in range(x_test.shape[0]):\n",
        "    z *= 0\n",
        "\n",
        "    # sにおける正解データ\n",
        "    d = d_test[s]\n",
        "\n",
        "    xs = x_test[s]\n",
        "\n",
        "    # 時系列ループ\n",
        "    for t in range(maxlen):\n",
        "\n",
        "        # 入力値\n",
        "        x = xs[t]\n",
        "        u = np.dot(x, W_in) + np.dot(z, W)\n",
        "        z = np.tanh(u)\n",
        "\n",
        "    y = np.dot(z, W_out)\n",
        "\n",
        "    #誤差\n",
        "    loss = mean_squared_error(d, y)\n",
        "    print('loss:', loss, '   d:', d, '   y:', y)\n",
        "        \n",
        "        \n",
        "        \n",
        "original = np.full(maxlen, None)\n",
        "pred_num = 200\n",
        "\n",
        "xs = test_head\n",
        "\n",
        "# sin波予測\n",
        "for s in range(0, pred_num):\n",
        "    z *= 0\n",
        "    for t in range(maxlen):\n",
        "        \n",
        "        # 入力値\n",
        "        x = xs[t]\n",
        "        u = np.dot(x, W_in) + np.dot(z, W)\n",
        "        z = np.tanh(u)\n",
        "\n",
        "    y = np.dot(z, W_out)\n",
        "    original = np.append(original, y)\n",
        "    xs = np.delete(xs, 0)\n",
        "    xs = np.append(xs, y)\n",
        "\n",
        "plt.figure()\n",
        "plt.ylim([-1.5, 1.5])\n",
        "plt.plot(np.sin(np.linspace(0, round_num* pred_num / div_num * np.pi, pred_num)), linestyle='dotted', color='#aaaaaa')\n",
        "plt.plot(original, linestyle='dashed', color='black')\n",
        "plt.show()"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "loss: 1.0231756688222737e-07    d: [-0.29761864]    y: [-0.29716628]\n",
            "loss: 1.2201090156041725e-08    d: [-0.56307233]    y: [-0.56322854]\n",
            "loss: 4.038245320901024e-11    d: [-0.65766776]    y: [-0.65765877]\n",
            "loss: 1.012613171470193e-08    d: [0.13182648]    y: [0.13168417]\n",
            "loss: 6.953992391246068e-08    d: [0.49909101]    y: [0.49871807]\n",
            "loss: 5.5838333193039375e-08    d: [0.9518317]    y: [0.95149752]\n",
            "loss: 1.006541644062743e-07    d: [0.97784112]    y: [0.97739245]\n",
            "loss: 1.7033534573325946e-08    d: [-0.58880346]    y: [-0.58861889]\n",
            "loss: 5.2622812685924356e-08    d: [-0.78351093]    y: [-0.78383534]\n",
            "loss: 2.60918282588755e-10    d: [-0.49909101]    y: [-0.49906816]\n",
            "loss: 5.712849721315155e-08    d: [0.21857331]    y: [0.21823529]\n",
            "loss: 9.126545094849141e-08    d: [-0.33938943]    y: [-0.3389622]\n",
            "loss: 1.0304339135538811e-07    d: [-0.43793098]    y: [-0.43747701]\n",
            "loss: 1.1445752972814562e-07    d: [-0.33346065]    y: [-0.3329822]\n",
            "loss: 4.487028896407404e-08    d: [-0.99639027]    y: [-0.9960907]\n",
            "loss: 4.518845122030081e-08    d: [0.88624247]    y: [0.88654309]\n",
            "loss: 2.3166269315110745e-08    d: [-0.92833248]    y: [-0.92811723]\n",
            "loss: 7.877136645016467e-10    d: [-0.52075286]    y: [-0.52079255]\n",
            "loss: 8.254988700985761e-09    d: [-0.55262221]    y: [-0.5527507]\n",
            "loss: 8.291678208274492e-08    d: [0.47711265]    y: [0.47670543]\n",
            "loss: 3.515702303123948e-08    d: [0.60896952]    y: [0.60923469]\n",
            "loss: 4.6349673171343807e-08    d: [-0.94587102]    y: [-0.94556656]\n",
            "loss: 9.366188781076226e-08    d: [0.27953518]    y: [0.27910237]\n",
            "loss: 7.187670231870784e-08    d: [0.73863456]    y: [0.73901371]\n",
            "loss: 2.5175272023918393e-08    d: [-0.00629574]    y: [-0.00607135]\n",
            "loss: 4.238282860583762e-08    d: [0.54208448]    y: [0.54179333]\n",
            "loss: 5.364268767133932e-08    d: [0.99781582]    y: [0.99748827]\n",
            "loss: 7.761284716153206e-08    d: [-0.96441607]    y: [-0.96402208]\n",
            "loss: 7.29946476567447e-08    d: [0.07547747]    y: [0.07509539]\n",
            "loss: 5.374729213271438e-12    d: [0.66239735]    y: [0.66240063]\n",
            "loss: 3.917648631674704e-08    d: [-0.54736419]    y: [-0.54708428]\n",
            "loss: 1.1396823999698672e-07    d: [0.99393675]    y: [0.99345932]\n",
            "loss: 1.8916287872014157e-10    d: [0.96441607]    y: [0.96443552]\n",
            "loss: 6.104853811859931e-08    d: [-0.22471249]    y: [-0.22436306]\n",
            "loss: 3.374712152402054e-08    d: [-0.99393675]    y: [-0.99367695]\n",
            "loss: 7.459208770391463e-08    d: [-0.71705202]    y: [-0.71743827]\n",
            "loss: 3.3346599617550096e-09    d: [0.8649742]    y: [0.86505587]\n",
            "loss: 1.0502769561892032e-07    d: [-0.11933469]    y: [-0.11887638]\n",
            "loss: 3.7402892316320774e-08    d: [-0.40941891]    y: [-0.4091454]\n",
            "loss: 1.1571745806193722e-07    d: [0.39789889]    y: [0.39741782]\n",
            "loss: 1.3219146512941343e-08    d: [0.98611478]    y: [0.98595218]\n",
            "loss: 6.82473798362108e-08    d: [-0.0691982]    y: [-0.06882875]\n",
            "loss: 7.74733530193459e-08    d: [0.35709413]    y: [0.3567005]\n",
            "loss: 4.2013170888265586e-08    d: [0.99583607]    y: [0.9955462]\n",
            "loss: 2.1526965553360173e-08    d: [-0.92597363]    y: [-0.92618113]\n",
            "loss: 6.817128658024936e-08    d: [0.36882689]    y: [0.36845764]\n",
            "loss: 1.1810524118698761e-08    d: [0.91617219]    y: [0.9160185]\n",
            "loss: 1.511514695515008e-09    d: [0.52611726]    y: [0.52617224]\n",
            "loss: 8.054071771358459e-08    d: [0.96606148]    y: [0.96566013]\n",
            "loss: 1.956018209202484e-08    d: [0.43793098]    y: [0.43773319]\n",
            "loss: 2.365114287876332e-09    d: [-0.86811636]    y: [-0.86818514]\n",
            "loss: 7.426592869136916e-08    d: [-0.99975723]    y: [-0.99937184]\n",
            "loss: 3.369004516388851e-08    d: [0.77562491]    y: [0.77588449]\n",
            "loss: 4.2428732558073345e-09    d: [0.04405617]    y: [0.04414829]\n",
            "loss: 9.775107382870593e-09    d: [0.71705202]    y: [0.71719184]\n",
            "loss: 4.388321808758248e-10    d: [0.8773359]    y: [0.87736552]\n",
            "loss: 3.008800038067477e-08    d: [0.91363079]    y: [0.9138761]\n",
            "loss: 3.4353135857868203e-09    d: [-0.97784112]    y: [-0.97775823]\n",
            "loss: 8.641444917528756e-10    d: [0.96101064]    y: [0.96105221]\n",
            "loss: 8.711809080390049e-08    d: [0.26742375]    y: [0.26700633]\n",
            "loss: 5.0207765974484416e-08    d: [-0.87122411]    y: [-0.871541]\n",
            "loss: 2.838017375633304e-08    d: [-0.91617219]    y: [-0.91641043]\n",
            "loss: 1.5567226856080684e-09    d: [0.87122411]    y: [0.87127991]\n",
            "loss: 9.803777837499867e-09    d: [0.98394564]    y: [0.98380562]\n",
            "loss: 4.14806161320395e-08    d: [0.4036669]    y: [0.40337887]\n",
            "loss: 8.246547424877302e-08    d: [0.0880268]    y: [0.08762068]\n",
            "loss: 3.519939115353052e-08    d: [0.81012572]    y: [0.81039105]\n",
            "loss: 3.3475921950765465e-08    d: [0.41515469]    y: [0.41489593]\n",
            "loss: 3.920213266201233e-08    d: [-0.99524241]    y: [-0.9949624]\n",
            "loss: 6.676591329593643e-09    d: [-0.94789551]    y: [-0.94801107]\n",
            "loss: 2.7259396135763863e-08    d: [0.16916853]    y: [0.16893503]\n",
            "loss: 5.901954968651478e-08    d: [-0.95374324]    y: [-0.95339967]\n",
            "loss: 7.404264207154143e-08    d: [-0.72577151]    y: [-0.72615633]\n",
            "loss: 1.950089841485295e-08    d: [0.74286391]    y: [0.7430614]\n",
            "loss: 9.1706563452403e-09    d: [-0.94380904]    y: [-0.94394447]\n",
            "loss: 1.8342443304828862e-08    d: [-0.83516734]    y: [-0.83535887]\n",
            "loss: 4.0168629526980415e-08    d: [-0.94170965]    y: [-0.94142621]\n",
            "loss: 1.0438172705832991e-07    d: [0.32156366]    y: [0.32110676]\n",
            "loss: 7.96519652519902e-08    d: [-0.48263615]    y: [-0.48223703]\n",
            "loss: 4.522391104134645e-08    d: [0.03776568]    y: [0.03746493]\n",
            "loss: 8.671646127145176e-08    d: [0.34530476]    y: [0.34488831]\n",
            "loss: 3.0057469610811475e-08    d: [0.56307233]    y: [0.56282714]\n",
            "loss: 3.344824485318678e-08    d: [0.90843947]    y: [0.90869812]\n",
            "loss: 9.740854716739049e-08    d: [0.99940055]    y: [0.99895917]\n",
            "loss: 5.2790241458557934e-08    d: [0.85534252]    y: [0.85566745]\n",
            "loss: 1.3438734027154209e-08    d: [0.93739898]    y: [0.93756292]\n",
            "loss: 1.0825441262363102e-07    d: [0.99738016]    y: [0.99691486]\n",
            "loss: 7.346796784291748e-08    d: [-0.6992734]    y: [-0.69965672]\n",
            "loss: 9.62971935624344e-08    d: [-0.10682399]    y: [-0.10638513]\n",
            "loss: 4.974432822949506e-09    d: [-0.54208448]    y: [-0.54218422]\n",
            "loss: 7.137974552014359e-08    d: [0.9995987]    y: [0.99922087]\n",
            "loss: 1.1991319740559976e-07    d: [0.29761864]    y: [0.29712892]\n",
            "loss: 3.111699813899164e-08    d: [0.99322482]    y: [0.99297535]\n",
            "loss: 9.573921959195159e-08    d: [0.33346065]    y: [0.33302307]\n",
            "loss: 5.1818369725854564e-08    d: [-0.83168816]    y: [-0.83201008]\n",
            "loss: 1.1452214926486475e-08    d: [-0.98504973]    y: [-0.98489839]\n",
            "loss: 5.381547067764966e-08    d: [-0.64332332]    y: [-0.6436514]\n",
            "loss: 1.0539082479572855e-07    d: [0.43226238]    y: [0.43180327]\n",
            "loss: 3.26643400999611e-08    d: [-0.81380058]    y: [-0.81405617]\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "iI6SQJcHj62q"
      },
      "source": [
        "maxlen:2 iters_num:100\n",
        "\n",
        "![image.png](data:image/png;base64,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)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "ylqvxrZ-9IvP"
      },
      "source": [
        "maxlen:2 iters_num:500\n",
        "\n",
        "![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXwAAAD8CAYAAAB0IB+mAAAgAElEQVR4Ae19B/QVxfn2i4CogCVqsAQDKEbAkgCxxnIkNkywJbbYMZhYP1GxoMQS1FjQEFGjSDAWQMWCCKIgERUVUGliQEBMsCEqiTHNJPOdZ/+7P/e37O7d2Tuz7T5zzj13y+yUZ2affeedd94RYSACRIAIEAEiQASIABEgAkSACBABIkAEiAARIAJEgAgQASJABIgAESACRIAIEAEiQASIABEgAkSACBABIkAEiAARKBACo0RklYgsjCjTfiLyFxGZ6/6GRMTjZSJABIgAESg4AvuISM8ahD+x4HVg8YgAESACRCAhAp1I+AmRYjQiQASIQMkRqEX4n4jIPBGZLCI9Yuo6QETm4Ne2bVvVq1cv/ogB+wD7APtAwj4gIh/H8KuxW3GEv6GItHNz6isibyfJFWTPQASIABEgAskRcAXmJBRbV5w4wg8mvEJENgteDJ6T8JM3MmMSASJABIBAEQh/CxFp4RL6riLyJ995kOebzkn47MBEgAgQAT0EsiD8MSLygYh8KSIrRaS/iPzM/YHAzxaRN10d/isismcTq8cckPD1GpqxiQARIAJZEH4Mbae/RcJn5yUCRIAI6CFAwtfDi7GJABEgAqVFgIRf2qZjwYkAESACegiQ8PXwYmwiQASIQGkRIOGXtulYcCJABIiAHgIkfD28GJsIEAEiUFoESPilbToWnAgQASKghwAJXw8vxiYCRIAIlBYBEn5pm44FJwJEgAjoIUDC18OLsYkAESACpUWAhF/apmPBiQARIAJ6CJDw9fBibCJABIhAaREg4Ze26VhwIkAEiIAeAiR8PbwYmwgQASJQWgRI+KVtOhacCBABIqCHAAlfDy/GJgJEgAiUFgESfmmbjgUnAkSACOghQMLXw4uxiQARIAKlRYCEX9qmY8GJABEgAnoIkPD18GJsIkAEiEBpESDhl7bpWHAiQASIgB4CJHw9vBibCBABIlBaBEj4pW06FpwIEAEioIcACV8PL8YmAkSACJQWARJ+aZuOBScCRIAI6CFAwtfDi7GJABEgAqVFgISfYdP961//Ug888IA6+uijVY8ePdT//vc/J/crr7xS7bvvvmrIkCHqtddey7BEzIoIEIFGQoCEn0Frg9jvvfde1bFjRyUiaosttlDHHHOM+vvf/+7kfsstt6jvfve7qkWLFs79nj17qjFjxmRQMmZBBIhAIyGQBeGPEpFVIrJQwkMLERkuIktFZL6I9AyP1vxqr169StNOzz33nEPku+22m5o8ebL673//G1r2jz/+WI0YMUJ1797dGQWERuJFIkAEiEBKBLIg/H1cEo8i/L4iMllEQPy7i8irzak9/KwMhO+pbPD/+OOPq//85z+JmgkfhDVr1jhx33rrLXXWWWepL774ItGzjEQEiAARiEIgC8IHY3eKkfB/KyLH+Wh9sYhs6TsPPSw64X/++edqv/32U6+//noU9k3X8SH429/+FvpBuP322x1VT7du3dS8efOanuEBEUiKwD//+c/QvpX0ecarDgJFIPyJIvI9H6tPE5HevvPQwyITPgi8X79+ap111lGTJk0K7S2ffPKJ+vLLL517f/7zn9VDDz2kcA0B5P/ZZ581PTd16lRH79+mTRs1evTopus8IAJhCKxYsUJhZOiF6dOnq2effdY7jVQpNkXgQWURKBvhD3ALPGebbbYpbKPccMMNjs5++PDhoWWErh4Ev3TpUuc+1DXLly9X//73v53zhQsXqocfflj94x//aHp+1apVqk+fPk6648ePb7rOAyIQRACWXlOmTGmyAnvvvfcUfghQFz799NPqnXfeCT6mff7BBx+o+++/X912223qzjvvdISbDz/8UDsdPpAdAkUg/EqpdObOnatat26tjjrqqKYXzmtODK29AKneI3jvmvcP882VK1d6p03Ej+vXX39903lTBB40NAIYUb7xxhvqr3/9q4MDzr35oyAw6HMvvPCCSkvMEDw+/fRTJ9mJEyc6Aggsz/w/GCkwFBOBIhD+oYFJ21mhOpzAxaKqdM4880xH/QIp3h8gzT/22GMKun2dgHQg0XsSmvcs1D+XX355k1rIu87/xkMAKsAnnnhCLVmyRLvyEDy8D0Xcw/iAwIKsffv26vzzz3ei4jmMRvHxQDr4kEAg8dJD/Msuu6zpPC593ssGgSwIf4yIfCAiX4rIShHpLyI/c3+gcVjnjBCRZSKyIIn+Hg8VlfDxYvzpT39aq/XwUkIKg/SlEyCRYYgO6d4foMuHVPWTn/xEO01/OjwuLwJ+KT7YP5LUCnNIEyZMUC+//HJsdKgcMWJFfzvwwAPVokWLYuN7N88++2znma222soRdrzr/M8PgSwIPyCb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)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "qTUnnjwx9X_8"
      },
      "source": [
        "maxlen:2 iters_num:3000 \n",
        "\n",
        "![image.png](data:image/png;base64,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)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "xyfTBafWRb2M"
      },
      "source": [
        "maxlen:5 iters_num:100 \n",
        "\n",
        "![image.png](data:image/png;base64,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)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "52L8VqJ3RxqZ"
      },
      "source": [
        "maxlen:5 iters_num:500  \n",
        "\n",
        "![image.png](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXwAAAD8CAYAAAB0IB+mAAAgAElEQVR4Ae2dB7wdRfXHD5AQIAEEQglISZDQVEoi0oQgJISAUkRAICoEAlKlKCWIgCChF6kaQAlVQQghgQRCMbQgkAAJNcEWpERERUX/lv1/vuvdx759u/dumdmdvfecz+e9u2V25sxvZs+eOXPmjIiSIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIKAKKgEMIXC8i74rI3ASehonIn0VkTuPv9IR0elkRUAQUAUXAcQS2E5HNWwj8ex2vg7KnCCgCioAikBKBdVTgp0RKkykCioAiUHMEWgn890TkeRG5T0Q2blLXsSLyDH99+/b1hgwZon+KgfYB7QPaB1L2ARFZ1ES+GrvVTOAvJyL9GiWNEpHX05SKsFdSBBQBRUARSI9AQ2FOI2ILpWkm8KMZ/1pE+kcvRs9V4KdvZE2pCCgCigAIuCDwVxORxRoCfQsR+W3oPCrnu85V4GsHVgQUAUUgGwJlCPxbReQtEfmXiCwUkTEicnjjDwF+lIjMa9jwnxKRrbukepMDFfjZGlpTKwKKgCJQhsBvIrbz31KBr51XEVAEFIFsCKjAz4aXplYEFAFFoLYIqMCvbdMp44qAIqAIZENABX42vDS1IqAIKAK1RUAFfm2bThlXBBQBRSAbAirws+GlqRUBRUARqC0CKvBr23TKuCKgCCgC2RBQgZ8NL02tCCgCikBtEVCBX9umU8YVAUVAEciGgAr8bHhpakVAEVAEaouACvzaNp0yrggoAopANgRU4GfDS1MrAoqAIlBbBFTg17bplHFFQBFQBLIhoAI/G16aWhFQBBSB2iKgAr+2TaeMKwKKgCKQDQEV+Nnw0tSKgCKgCNQWARX4tW06ZVwRUAQUgWwIqMDPhpemVgQUAUWgtgiowK9t0ynjioAioAhkQ0AFfja8NLUioAgoArVFQAV+bZtOGVcEFAFFIBsCKvCz4aWpFQFFQBGoLQIq8GvbdMq4IqAIKALZEFCBnw0vTa0IKAKKQG0RUIFf26ZTxhUBRUARyIaACvxseGlqRUARUARqi4AK/No2nTKuCCgCikA2BFTgZ8NLUysCioAiUFsEyhD414vIuyIyV+JpMRG5XETmi8gLIrJ5fLLuV4cMGVJb0JVxRUARUASqQKAMgb9dQ4gnCfxRInKfiCD4txSRWd1Fe/yZCvwquouWqQgoAnVGoAyBj8Rep4mGf62IfCUk1l8VkQGh89jDdhL4//jHP7y///3v3n//+9869yXl3QEE6EPajxxoCEdZcEHg3ysi24ak+gwRGRo6jz2ss8D/v//7P+93v/tdV5d45plnvLvuuqvr/G9/+5v3n//8p+tcDxSBNAj89a9/9e6++25v/vz5fvJ//vOf3n333detr6XJR9O0LwJ1E/hjGww/s9Zaa9W2VV5++WXvpz/9qffBBx/4dXjvvfe83/72t/4x2tkDDzzgzZgxQzW12rZweYzThxYuXNjVd+bMmeO98847/jkfgF/84hce/QtC0fjXv/7lH+u/zkTABYHfESYdXjQ0dwjNK3gJo90Ogf/mm296b7/9dtctHaJ3QaEHEQQQ6FOmTEmlHDz77LPe/fff7/373/+O5KKnnYKACwJ/18ik7dOxNpzIxTqZdBDYaOzTpk1L9WKGO98bb7zhPf744/qShkHR465+hBIRKBKtYEHzf+WVV1ol0/ttjEAZAv9WEXlLRP4lIgtFZIyIHN74Q4zjnXOliCwQkRfT2O95qE4Cn/6zaNEi76233srclV577TVv5syZOhTPjFz7PoDQnjVrVpfQz1PTP//5z94f/vCHPI/qMzVGoAyBH9HNzZzWQeAzdH733XcLd4/ApMNvcFw4U82gtgjMmzfPe/LJJwv1hYcfftif0NX+VNtukItxFfi5YEv30Isvvuj97Gc/65qcTfdUfCrmAB555BHv1VdfjU+gVzsKgaKCmsnewGmgo4Dr8MqqwLfYARDSYffLIkXxgj/11FMeNn2lzkOAtRpo5e+//77xymPbL/oBMc6UZmgFARX4FmBlEZUNP3p9KS00Vk2y/OMf/+hNnTrV49ck/f73v/ddhAO3YJN5a17uIaAC33CbIOinT5/uPfbYY4Zz/ig7Jn/xt1bqLARsfPDJ89e//nUhBYU8Lr30Um+zzTbzBg8e7O28887ePffco6MGB7unCnzDjULnR1vCl94WMTeAPzULaZTaG4EPP/zQe/3110sRnigreT8qu+yyi7flllt6++yzj/fxj3/cExHvhBNOaO/GqWHtVODXsNHw/rFhMqohFG3PMquyTU38NwMLX37CMPzmN79plqzbPRYHBiam8FoAFJGLLrrIg3cltxBQgW+wPYiJw/C4LELwqy91WWhXUw4a95/+9CfrhVPOE0880W2Fd7NC6XvDhg3zNtpoo6aLAlFMCCOSd+TQjIdOvPfNb37Tj5eUt+4q8PMiF3kOjxxW07700kuRO/ZOn3vuOe/OO+/08OBQ8rynn37aO+6447wRI0Z4Bx98sHfLLbfUdiSEgHTZZDd+/HjfbHPDDTc07Xp33HGHn+6KK65omk5vtkaAtReYys4555zWiRNSqMBPACbPZV7SMk0tBMfKs3o3T91cf4aP32KLLeYttdRS/uRh//79/ZeDuY460q9+9Stfk/vLX/5SKvv0X+YMmDtIIkw5/fr183bfffeWmjvvBB9g0mcxFyWV3cnXP//5z3urrLJKofUTKvAN9CCWqaPhK1WHAILlmmuu8QIByTk2aX4hXGXrRPjbE+ws4L8s3lmMxZxBswV+RxxxhLfEEks0TRPml49X3759vV133TV8WY8zIMDoFe3+4osvzvBUz6Qq8HtikukKLyRa5EMPPZTpOZOJibeDcOhEOuWUU7zZs2c3rTovy5prrtkVJ75pYr3pocAkfWiw3Y8cOdJD6GehCy64wBdYVb4nWfh1LS2m4q9+9at+2xThTQV+EfQazzJxGsQgN5Bd5ixeeOEFP8BameakzExaeABfb7Se0047rWnuCxYs8FZYYQXv05/+tIcZzGWiDXm5XZiXQbgnUda+homID8Wjjz6alKVeLwEBFfglgGy7iCRtzHa5VeaPyQN7JkI8jXDEvION/5hjjqmS7ZZlYx/Hq6XquRkUmEmTJnXTKPlYBputtKyIJjCGABsizZ0710h+KvALwMgkFNp1M02oQPaZH0Xwhf2hM2dQowdOPvlkX7vPYsrCDIHQJ7Swy8Q8RNUfcfoSbpphl1A8bXr16lXINMbGPz/60Y8qr5/L7R/l7VOf+pS31VZbRS/nOleBnwu2/z1EeAO+vlW/nHDDEBsTBy9puxMB6fDGOeCAAzJVFdv0Gmus4Z144omZnisrcVYzSVl8BeVsuumm3uabbx6c5vq98sor/Q81O3UptUYAhRKzpSm3VhX4rTFvmiKq3aMRYW6IXm+aiaGbCMKwRmYoW+eyQfvEWwHvj6wUrAzN+pzt9CgNTP43846xzUNc/mCNeen555/3Bc/ll18elyz1NUaguMzutttuqZ/p5IQ4JeARZWqOUAV+zt7EvrRhwryDBsTXmD8mCceOHavhjMMgOXQ8f/78VLb/slhmkRUrtV2zkROS+6677vJY4dm7d29/57aimJx++um+aU1DfTdHEiVgnXXW8Se7m6dMf1cFfnqsulKiJbKCkNCywTCcxjn22GO9733ve772iblhmWWW8aMIdj1YwgEaFG6KLq/SLAID9t8f/vCHhcxobBGILfrqq68uwkpHPItfPiPW1VZbzdtjjz2M1JmRKFrrSSedZCS/ds2EBXBLL72012o1c5b6q8DPglYjLUKVlZ3Y1/AS4TeOiJgZmHaIsVOGrZ9JMRbO8DFqN8K8sOqqq3pEZixCtMNnP/tZb9CgQU4smMP7JVgwVqReNp8lAizrPUzRXnvtlXkOxlTZdcoHWWNy0aAK/Jytj+/9wIEDfdfAVgt/EPbLL7+8d9ZZZ+UsLdtjCMZ2JNwVMZfhYlmUMFOQ16233lo0q8LP//KXv/R+/vOfO/HxiasMq8gxN5ncJEVXpschbf+aCvyMGKO1o0XvtNNO3pJLLulvJt0qCzTK0aNH+wKGYGdlUWBuKqs82+WwsQYrZoNRU5HywGaDDTbw4+6UMfJqxiuLkmzun9Cs7Fb3wOnAAw/0zj//fCuBAV2dRG+Fi+37LBZkQxkCppkkFfgZ0EQwTJ482bfVox1iT05LvNSYEZZddtlSQijjMsoeqO1CTIrjQ8+Enyki9g62ZGz6SvEIsHMbff2mm26KT1DgKrZpJoJd/dgVqFrhRy+55BIfd5wLTJIK/IxoYi7B/ogdOatmiFcCUQOJemdb+0ZDwJUuK48Z4SgtOXMm22yzjVGvJ+yjVXrF0Acw57is5bJrFSNZ1jBAJp0BcEHlY8LoQak7AsOHD/c23HDD7hcNnKnAzwEiQjRvTBY8TMaMGdM0/GwOlvSRgghU8WFkzQRzCVV+dFrBtv766/vhjUmHgGauwaTQZwUpK0mVPkIARaRPnz7+3g4fXTVzpAI/JY54Udx4440e+8nWidAeTdi8q6zzu+++a21nL0ZszMecd955lVSRtrE92stbMdwC0cAvu+wyPwv6Ev0/ugYlb/48R96UoWa1j1CcOnWqj4mNvRxU4H+Ec9Mj7IxoO7jymXhBCdlrarl0EuN4EuHZUua2i0m8FLlO3Bz8kW25Lm677bZ+25ap5ZdZVl7sCdPBxKFpO3KYH3zyEfhFdnEK59cOx8ybfOlLXzLqjhngogI/QKLF75QpU/yOOWHChBYp090+9NBD/QmrPOEB0pXg+fZ75g1MamRpyzaVDsFoerVhlLfrrrvOb9sy4xDNmzfP3xKzbqMv2mPRokVdNv0olnnOmRA26fKZh4dOeUYFfoqWRmBuvfXW3lprrWXMfolmg52OvVeVkhHA/xsN0ORqw2hpjBzYkemQQw6J3rJ2zoc+S6RPa4wkZIydPm49B/7z2PGZbFYyjwB90abXUhkCf6SIvCoi80XkZOlJXxeRRSIyp/F3SM8kPa8MGTLEPNoJOQYuUqZNMIRiwC3Q5ArGuCrQgfDaqSONGzfOxwjzlE362te+5i+OixNyNst1NW8Wt2FGixPsaPgmF04xapg4caJX5hoVV3FnnhAFhxGgDbIt8JcQkQUiMkhElhSR50Vko4j4RuBfEbnW8rQsgU9nPPXUU70BAwYYt6kRhZAwv7Y1S0wV06ZNq6WL5sYbb+ztsMMONvp+tzwff/xx76KLLsrtfdUtsxYnTH7Sr1ymwB0Tj5EyaIsttvCGDh1aRlFOl3HQQQd5K664opF5wriK2hb4W4nItJD0PkVE+AuT0wI/AM2W5ocGO378+KAYK7/wbmKi2QpzLTLFU8Rl00cL9nvcpi2IdeS6txeRX4cNG9aD/+ACo0YW95kifPHRbG3OaZni1WY+hGvZc889rRVhW+DvLSITQtJ9dIw2j8B/S0ReEJE7RGTNUPro4dgGw89gT7dNaGG8mHUVlrbxabf8WVzEkNpksKooRvQl/O5teRxFy8tzjhsswvfss89OfByTA44Mpkw7mBwp88ILL0wss91v4E0HBkX3HGiGkwsCfyUR6dOQ7IeJyENRKR93XoZJhxeToGdsjWeTmCDDfmlz+MwGCtOnT6+Vx86ZZ57p4ZNcFoEPL1yn25Jvv/12Hwdi4ScR3kWmzVLspmVqK78kvl2+/uMf/9jHPSn6rgnebQv8NCadsDzH5v/n8IWk4zIEPu5iCAA0GZvEdm+UY9MTBbvxjBkzarMjFqtQmdBmx5+yCG2V3Zj23XdfK0USWx4TlcmVqjYYZUUt+zqk0d4R+qYE/xlnnOGvurVlPrWBlck8mdNjhGnTomBb4PcSkTdEZGBo0nbjiBAfEDrfU0SeCp0nHpYh8FmQs+6661ptADoMLwxxMwiupvQ/BLBz8xGcOXNmqZAcdthh/sY1eUNnNGMWQcpCOJsmo2blm77HRxllyNT2e3Vbk2AazzLysy3wEdijROS1hrfOuIYEP0tEvtg4PldE5jU8eB4WkQ0SpXzohm2BjzaMwCkrsFOwxJwgYTaJl8p1DZP6463wsY99LJWWaRKvhx56yG93zBqmiQ87Wr7L9Pbbb3v33ntvKvMiIwA+yLhpmiRTIwaTPNnOi0lwdmAzjWWU7zIEfkhMmzu0LfD3228/Y3t4RkGPO8fkgt8z++DaIl7QSZMmJe7QZavcrPkypGVLPVumlWb88EGkbPZw7UQi5DeKzksvvVRJ9ZmwxFOl07T966+/3sd97ty5VnFXgZ8AL/t4mthZKSH72MtotbjD2bThEaQKLwyXie0Z2ZzkJz/5SSVs2tCyCFVt+2U2ARYf2dVXXz2TXR5FwpSZ6rbbbvMFX5lhLkzgVjQPNkhaeeWVM+Gep0wV+HlQs/QMboE2hb0ltq1l205YzJo1y98m0BpYBjIGb4QOwictYX7BBGRqZyZGuosvvrh32mmnpWWh9unAkJ3cvvzlL1uviwr8GIjRtM8999yYO+Vcsm1jx/3T1ESbDURcEPTEODrppJOMVs912zQjEMw5mBeyELuRmRwV4SyBi2anEAEOwd106JY4/FTgR1BBw2CHH/bxrIIeeeQRf2m1TV9cwgjcc8891oePefAjZg5LyxnaV0l77LGHr3WZENIufMDSYMmWjwiequMuff/73/f5wLTXCcQmOOCO2c82qcCPIMyOVIBPvPoqCPs6/uemtctwXXCnc3Wl5y233OLj32zRT7guto6DkMlFwwcw+chEOS6ZrhMfJhSNPB85vI/Q9E0QE8bsgdApAh/M3nvvvVLMuSrwIz2UfVOZMMzT6SNZ5T7dddddfe2yLpph7orGPPjVr37VW2mllSr30sA9kU3TWYBUhAitzUfDZRNakfoFz6Kd3nHHHbVw+Q147sRfFfihViduDtr9t7/97dDV8g9vvfVWnw/MO7aICeLZs2eXolWkrQMfWTxE9tlnn7SPWE3HQjiiOHYCYUdm0RkrgfMQXjomQ4N8+OGHtdwgJit2aPajRo3y2OWqDFKBH0IZ0Jksevnll0NXyz/kxenXr5/VsMks9CBmDHMWrhABufjg4gvuArG7Gaa1vCMtzDmYz6ocLabFMfC/r7rvB/zefPPNfl+Ii8cfpGmH38mTJ1tX7sI4qcAPo+HQMXF1TLm6xVULIZYmVkrcs7auES0QAdsu293xUSWUAuYh1wlXzFVWWaXQx4l5IdxPTWj6xJXh4287dHjV7cJcRe/evY1glqYuKvAbKBE7BQ+ROmhjaRpW05hBABt8Xu8JgoCxAXjeEYKZGqTLZe211/b23nvvdIkTUiHw8ThBWJsgNr8ZPny4iayczQMX1DJjaKnAb3QFvBMI2OVSpD72c8VryBZhJ3300Uf9+Oy2ykibL4L14Ycfdgp/eD/qqKN88xr8tSuZjMNu8uPGFqCEG3HpnTTZB6gX+1qzu1hZpAK/gTSLnUxpJqYa75hjjvE7hC0XSkYzBIkz5U5XpN58eBjCs0G2SwQ/8AV/WYi5ETaqNykAs5SfJS1zV2j4RV1Qw2WaGCmzVgTsUQTakTBdfu5zn/NXKpdVPxX4ZSGdo5xACFa9CCkH65kfYSk9S+qJYeQSwQ/rItiKMgsxOsO8UQeBH9TLhJBmopqIo8RsKkr49jOP5dpcU9F6Vfm8CnzP8xjSuqDlRjsCL8+qq65qPcYGL7rtcA7RukXPt9xyS48/F2nrrbf2PvOZz2RiDUGP62sdyISgD9eTidtO35s2jEfScRUfMhX4nudrJOw65SIdfvjhXt++fa3O4qOREW6hKkKLRrv/zne+UxULTctlq0UWYTGp327EatYBAwb4oTZcrBurbjFt1uXjmRZDFALCcDfbNzhtXlnSqcBv7Djl6sTQAw884G8EgonAFhE7hVFOVZTXTl4Wv2irbPSRViNjPUHeBUxl1SkoJ9i/Fq3cJDFqMBEyOdiQBnt+O1Gw5iRroLqiGKjAL4qg5ecx67SzhwjwYU5i4rBd6sncS1WxmLJ2xyOOOMIfQab9mKXNHwwefPDBtMkT0+FJttRSS3l47LQTXXvttf6E9GuvvVZqtTpa4KOFYMqpUrtN29rwatrWGi4boWsyxG0473Y4ZutJTE5p26Auk7Wf/OQnvREjRhhvooULF/oL6NLi1YyBnXbayYPPdiJiRhVd6JYHj44W+IHvN3FEXCa0gMGDB/sbRtvi89lnn/VDLZjW9Frxi2sa2wm63gZBFNVWW/+ZEHCtMDN1nw88bo9l25Gz8k8AO/gk7ky70KBBg7y99tqr9Op0tMAvHe2cBTK/sNxyy/kbe+fMouVjTIoRmrlsgRXEcMGm6TJhx0foXHLJJYlsotVPnTrV+Y9XUAFCPxx99NEeH3sbRL9F0y9KjMLxVquLmaxVfekn559/vh82u1Va0/c7VuAj2LCP14X2339/r3///rXiOQ22RMbMuodqmnxtpGGUtcsuuyRmjb2ZOP51iJ2TWAmDNxgNEUuo6OQtArJsRcQgDE5l1bECnyiGeIfU5eUMNne2GUaVoFe8pGV9CHmRiX2PPbMOFExwVr1mwRRWhAO3acJD0LPiWIV19xYjNhOj6SqoYwU+4QoIvYpWVgfiA9WrVy+rO2ERWgKNrKzOiKspZpKJEyfWoQn8DT7YfjFuFSkfr7r0JcCmP7H2gTUGdSA2V1lvvfU8Vt/WnTbbbDPv85//fCXV6FiBXwnaBQtlcu2+++4rmEvy4witosPv5Nx73iH0wMorr1ybURbaMBjFEQuY+FjWxdNpypQp/scWP3ebxKiRwIRF+9X06dN9fqdNm2aTXet5M1fGh/a73/2u9bLiCuhIgY8mRjhkpeoRaJfhPv2JieekD0L1SHfngF3dyojDjoAjCm3RyVs0+zwxjbrXuvqz+++/3/9wsaCyCupIgc+LiTbm6uraZh2BzbBteVVQLpiw6tL23EZdBT395lOf+lStzDdx/YkY7OzfXAaZWlDHdpNEl6wzESSQD1dVpqmOFPhoY3VYbBXXsTfaaCOr9j80VIb7tv3iKQNfZFe21IvDOu5aXMhe7OGYcuryEQu05VNPPTWuis5eO/HEE70ll1yy1h/b7bff3hs6dGhlGJch8EeKyKsiMl9ETpae1EdEbm/cnyUi6/RM0vPKkCFDKgOtyoLZApDJW4SMLSpDcLFUniXzRW27tjBIyjeY7Dz99NO7kuAfznxEWd5NXQXnPEDjxqTAaLEMYu6D4HxFlQji4h966KGlORXYwAbMcd2timwL/CVEZIGIDBKRJUXkeRHZKCK+jxCRaxrX9msI/0iSnqd5BT6Ta7bNFTYbE7dMPFvKiJFvU/AzUqnr9nWESmZruoA0LEWARPwv/eiRRx6pTUC5+Fq0x1XbAn8rEZkWEteniAh/YeI+6aBeIvIHEVmscZ74k1fgs8MTf3UltEgWYB1wwAHWqsALSvAr3FZtEDtB8dG64IILbGRvPU9GWUx41nXinzARdV21ismxrrH2WYV93XXXVWr6sy3w9xaRCSGpPVpErgidczhXRD4eusaIoH/oPHw4tsHwM2uttVauFxuBWdWESS6GYx5ioRLujDY9QliUYyvELyFhEfh5NwePgaTUSyz1/9rXvuYxWiTOEfGA6kKY0LCDf+tb36qE5aILvbDjsz9EHRe/7bbbbn5MrEqAbxRaN4HfJfzzavhVgm2qbARMnQNJYc9lc3CbJiNTWDfLB/7xDzcdS75ZmUXvBfHlJ0+eXDSrzM/T7ph2ihAunigLdcKc+qKcrbDCCt6YMWOKVL/ws7YFvnMmncKIdVAGCLS6j4ZsNRfYYFrgt07aJgt+2L2rir2DmbQtOmpk/g2BT/CxOhEjZvi+4YYbEtmmLzF6xORpi2wLfGzyb4jIwNCk7cZdavr/Do6MTNr+NHI/9rSTNXw6w5133umNHj3aVr/w88WGP2nSJKOaOGaQuXPnGs3TKggJmX//+9/3V0za9JZKKLrQ5WHDhnks7a8zrb/++h7mkTrR1Vdf7Qv8+fPnJ7LNglA2jbHpMm5b4COsR4nIaw1vnXEN6X2WiHyxcbyUiPys4Zb5dMOjJ1bIhy92usC//PLL/Q5k07UO33LMRybnCsaPH+/zjeCvM/FittLYXKsf81fM/bD/QFVEXyq6NzCumcsvv3xt3GDB+rjjjvP3DkaLb0Vp0rTKI+l+GQI/LKeNHXe6wA/is1988cVJbevk9R133NFfqeokcxmYYg4FT52xY8dmeKr6pEyaVjkqwbSBHb7IKneC7rEArugEcNmt0cw8ipA3qVgl1U0FfhIyNbi+8cYbW111CwS8mNheTWgdBNLCQ+SEE06oAbqtWdxhhx28TTfdtHVCTdGFAEKP0V0Zwq2r0BocoECweM928D0V+DXoDEkslrHqFpOOqSiQQeCoukc8RFihXQZb7xU1USS1r+nrRx55ZO0mO5MwYH6J/SzqQAjy3Xffvakpi1EXnkem4g4l4aICPwmZGlzHzY3YHDbt+Ag2PDpMaPjYjvv06eOh6deZ2DeASXNMC/zWITwEnkT4ryP0qyZGjaxfKCLcvvKVr6S2iVdd38MOO8zfotSF0Bsq8KvuDR1UPqFycTurO6GNPffcc7WaNJw5c6Y/ycwHqmpiFyxGjUXcD6+66iq/Ps28XqquZ1A+pteRI0cGpz1+URjKUhpU4PeAv34X0MBtag9oZKyKrfNiL1utypaQhCpwnc444wzf/96FNmS0yI5zRSiNX3uR/E09i00eb65zzjknMUs2iGFHrzLWc6jAT2yGetxgpSfxtZ988klrDGPWwV5aZNEMmuW5555r9cNkDYBQxkw6hr0tqBMvdFnbQoZYyXRIHPl28mxjHoWVqwcffHAmHMpOjCCnf2B+TSI+fjmwm9AAABvjSURBVDZ978PlqsAPo1HDYzQ2tkwbN26cVe6LjiBGjBjhbbDBBlZ5LCNzgo7x8Qu8TPjQ8kJjonCV0KiJv8THyRVCiWAjnyJmnS984Qse5hKXiYWL2223XSnaexocVOCnQcnxNGhvm2yyibNcElUSd8zjjz/eWR7TMkZdwovGGIb369fPO+KII9Jmoek8z3cCYH/mIhvg0A512jg+ruGpg21XzHC5KvDDaNT0+LzzzvO1zCLaUquqoyWyccOcOXNaJe1xHy0HLbjOYal7VCp0YZdddvE23HDD0BW3Dpksd5FMeH65WK+AJ+a++GtGuCgXDSjXLP/oPRX4UURqeM4evQjUa665xir3DMEpKyvhlrbssssWcsPLWqaN9Kxufuedd3pkzQeXEQzeJy4SsXP2228/F1nzeSoi+AkGd9lllzlZt1tvvdXf1a3ZKIYRYnhOyHZFVODbRriE/HlhcFNzdWMIYse7LHDSNBEY33vvvbHb06FBu7q2gEVhRMc866yz0lSz9DTMiTSb0GzFEKudXQ0GR9gNFB3mK1whFfiutESN+Gg1TI2rShEtLi6/Kq4xcV03m3EQP76IULWJ9SuvvOJHT81bBnsL47TgotlqvfXW83bdddfEqrFwj0V8ZZIK/DLRtlgWQpghJAuCbNLs2bMzhUwuw7fYZn3T5n3TTTd5rP50jTCnMancru3AZuyYMwnb4RItXLjQ5+vCCy+MZYv3dcqUKYVcnWMzbnFRBX4LgOpyG82TpfPf+MY3rLKMDZtl8WndNLfcckvv8MMPt8qT7cypK3v8xtnvg7LZnxfB8+abbwaXnPj9xCc+0VTLdIFJRn957dg8xzoU227JWXFCAaA/MO+VRNQ7cO9NSmP6ugp804hWmN8ee+zhsdevK+YTAq/R6V3y/87TPJgLcCFsJvAZnlPXm2++OU8RVp6hHzDqcz1YHRviFFlpStgC1wQ+8a2SFhrSLlW9oyrwrbxq1WQ6YcIEX+iwVNsmofHiP9yq0wabtGCnrTu1eknBhE05DjnkkLpXtXT+iU1ECG6XJjdtgsBE+tSpUyvx6lKBb7NlS84bIYyWyfZ7Ngl/f1aWNtN4KR8PCpf909NgxJC71YctyIeVn+uuu25wWvkv4SxsRlKtvIIRBtK2U+Qx46e8h2zQkhQQDYFPEMEq5lVU4Btv7mozJF7Kvvvua5UJNDG8C5rZH1k96KJtNSswxDiZPHlyKrfLa6+91hs1alTii5617CLpmdNZeumlvaOOOqpINqU9S5/6zW9+03KhUhxD1JWwHa6YDq+88kpf8WKuyzVSge9aixTkp8rt68KswwcLYogmWWciKBq+4q5oj2mxDDabwROkDkR/YdS4YMGCXOwykmTFswv0xS9+0Rs4cGBsn+HjVKXpSgW+Cz2khjzQaTEXlBkHpC4wubAI69hjj63dZjOYOvJ+WFnktNxyy6X2HrPVl9jUBTfYJM80duoi1Eiz0bEt3shXBb5NdCvK+1vf+pZ34IEHWi2dDnv33Xd7cRPEuMrdcMMN/k5ZVpmwnDlha7PuykSAuLXXXju34DJVpcGDB3s777yzqeycz2fixIm+GYV1IlXSww8/7PPBtoZxxEeNCeqqSAV+VchbLDfYSrDoJhOtWExaccvQnMnjMoNCteI1z334z7qgh3hG1L3KyVLWAjB/4mqMmaS2QLvHBJhHIBJWBNzxDKuSzjzzTK9Xr15OrvwFFxX4VfYOS2XjAUDnv/322y2V0DzbPffc01tttdUqH14357L1XfYawOMiC2GDBvsf/OAHWR4znhabuCvzOVkq99BDD/lzJlmeIS0fi2OOOabyiKzwkbRREKtv8y4wy4pHUnoV+EnI1Pg6PuGrrLKKdW8dICJ65qxZs7rQQkgSOfK4447rutZpB4MGDfKYuFPKjgB9tx2JerFxDgv0qiQV+FWib7HsIIYKXgE2iVWSxMkPJttwTUTDrbpjF60zJpm8JjEm7IiSWIWfNRPGw4cP94gxU2cK+lOWOvAMrpBVhalmMpaFd0mB3GgbNtCpklTgV4m+xbJnzpzpnXDCCaVvPH7ooYf6PtF5XliLcGTKmheTKJN5/ajZ9hBbftLCm0zMZEzMYis+uJhG6krgztxJ1j7Eim7qXtWm8gcccIC38sorV+aBk6a9VeCnQUnTtEQgPIFbR9txtIKMjKrQ0KN8ZD1H6Ky00kqV+npn5TmaHls3ax+y4s8HYvXVVy/FlBnlGZMNwn7//feP3vJDamP2zDti7JFhgQs2Bf6KIvKAiLze+F1B4uk/IjKn8XdPfJKeV1lRqtQcAXzl0fSyvjjNc+15l1ALaMTvv/9+z5sdegWhhdtqmcRHF1/0gw8+uMxinSqLzdr79+9fupb92GOP+aMLgtVF6e233/Zw02x3gX++iJzcENX8ntdTbPtX/ppwvellFfjRbtXzPNhLlkiPNglt+Pnnn/c233xzZ3dWSlt/4gM98cQThc0x3/nOd/yNOcr8CBKQC5MGO3O1A2HvzjqJ+5Of/MTHIM/ey0UwO/HEE73evXsnekZlrUcRXpo9a1PDf1VEBjSkNr+cx5EK/GYtVOAegpgIjmg9tomNVxA2tvfVtV0PYucgOIu+oIFrLDb1sohN4gkvEDavlVW26XKYeGU9B/F1slCrjUey5JUl7dlnn+2xlWeUss5DRJ83fW5T4P8pJN0XE5HweeiW/LvBxFMiskf4Rszx2EbaZ4j7rtQagTFjxvhLvW0v9ydIF+6Yru6r2xqpj1KYeEkxo7HEHm8ppewI0AZMwubpt4xwWNHqAqEIsYDPRJ8yUZ+iAv9BEZkb87d7jIB/P0aAc2mNxvVBIvJrEVk3IV23y2rSSdf82PDRvG+77bZ0D+RIxUvJSGK77bbz8FCpK5me69h9991L25CGBWKuCLm6tn9evrHRJ8XGmT9/vm/uzJu36eeKCvxuQjhyktakE37sxyKyd/hC0rEK/HRdAdPEGmus4Y0ePTrdAzlSXX/99f5HhUlK00IzBzu5H3nwwQf9NQW5M4g8+KMf/cjHpYwwC0cffbTv+98O5pwwjEQrxUyThZg3YctJ5pXKoKFDh3rshVAHsinwL4hM2jKJGyU8d/o0LvZvePRsFE0Ud64CP333YmhsMyQr4QTYdMWVYWt6ZD5KCe/4f2e1GX+UQ88jFuCUscct2iUfdba4bDdiL+Gs8YwQ+Isvvrh3+umnW4cj2MZz/PjxPcpi1blr74RNgb+SiMxoCHFMP7hpQkNFZELjeGsReVFEnm/8jmlcb/mjAr9H/3LiAl4urLJ1raM7AY4lJsow21livWW2eOrkUVa22GILb+utt26Zf9EExEzCZBodxcE3k84vv/xy0SKMPm9T4LcU2kUSqMDP1g8wu2y//fbGBTFD53BUTGyWTJrZDumQrfbNU2P2QhNPssM2f7r5XeKf77bbbi23g2yeS/O7+N0TyiHPBGfznOt795RTTvEjhiaFOTBVsx133DF2G0/6FNq/a22iAt9Uyzuez4033uhrItipTRHmD8LwEsIhIIRm3bR76oE21mqP3qCOWX4Dd1Xs+TaIeP1MmMe5BNoor4o8cdEkznwWJSIY9RCwzBbRX+j/p556qq0ijOerAt84pG5myMvC0m+Tk0uEo6XD47seJYS+DY05Wo6Jc/jEy8XGh4o8iZ45cuRIE6zG5sEcSlJI3tgHanaRFaqsjcjihYTzACtuzz//fGu1pQxGs9FtGfkQcM3F/q8C31p3cC9jJrEWW2wxI8IBAbnUUkt5Bx10UI+K8iKwupfJYiXPYwcyNsWoKopjO7RBno9xVR5LzGGx8X0enm23lQp82wg7lP9bb73lL/9mkVRRIt492j02+zh69tlnS/FQiSs7y7W8OyxlKYPAWUzssezfJLHIjbj7rk0MmqxjOC8EaBazTvCsDcEL9uPGjfN4p6JEeVVESo3yEXeuAj8OlTa+dumll/qxYopWEe8ETDp1Jl5MbMNMrNokymF/WdNhFk477TR/xGbSldQmDkXzxjmA9kpLePcMGzbMSnwnQinwEY+uLLfxcUlb3zTpVOCnQUnT5EIAT4WsWwTmKqjgQ/BZN8JsRihgm3MDrmHChw3PlyxCdZtttvE+/elPG60KtnnmZXbYYYdu+dImzDVkXSjWLRPLJyrwLQPsYvYMQ7/xjW/00E7S8MruVnj8pJmQwlyC94sLYWGjdYP/sgU9vtmmzC+33HKLr2G2S2TMaPuYOmdEG+cnXyT/wAPopptu6pYN7UvQPJfnalTgd2uyzjghfn3fvn19//As2hJ2yfXXX99bc801U23GzKQZHgtZyiirBdAUCQVR5seIdRCbbrpp4SqC52c+8xlvvfXWS/XhLVygQxnwkWbeKO2ELH0dgY8JxhSxyQyusK7a6ZvVUwV+M3Ta+N6FF17ovwhZ/JSPP/54/5m675dKs7LsvewVwZdffrmPH775RQjb9DnnnONNnDixSDa1fJaFVIwak5wF4irFittNNtkk7lbma3xsWeh27LHHdnuWXd7SfoS6PVjyiQr8kgF3pTjsjbwEbIcX50cf5ZOdfNCUMAVlIV4QzBjqoun5Q/1lllmmo3ekytJ3ktIiXLOMGu+44w4P004aM2RSmdHr0fJRgqZPnx5N5ty5CnznmqQ8hoj/wZZ4o0aNaloowagwAW277ba5tJjHH3/cqbDJb7zxRq56NAUp5c3DDz/c69Onj7do0aKUT3RPNnv2bI+Pb9nzD925cOMsKnRtc8XI6sUXX4wtho+QjZXasYUVuKgCvwB47fAorm6BV0H0BeI8uMYkIaFq85BJzSpP+eFnsNljEqhqxDFv3jx/pDRhwoQwW6mP+TivuOKKnu0YMakZqighHjvTpk1L/eGj3W+44YZC4btvv/12v+2YmK0rqcCva8tZ4HvPPff0V4UyBGarQnyYEY6mCBtnnsiHpsoP8kEbq5IPvJfyECYDzGpxoXjz5FfnZ9h0ZObMmaknTu+55x4fu7wby6O04N45ePDgbh8ZtHoWGRLTqA6kAr8OrVQCj6xg3Hffff2FPAgV/gYMGOCh2ZsgPBqYIM4r7EzwEIxWTORlIg/c+NIScy4bbriht+6661ZmjkrLq4vp+MDTn0eMGJGLPT4UvBO4JIcJs+iUKVO6fQTC9107VoHvWotUzA+mArxI8IIwLSAxo1RpimAuIckGWzbsmBeYMI9bmh/HS7CykxgtSh8hELj+fnQl+QjPJoQ28yBZCO1+s8028z+2cSPDOs2nqMDP0vKatrYI8PHCDdPUwqeiQKAZEnyOWPlpPqxokUceeWSqtEV5q9PzfMQnTZqUSsPG+YB9A/bbb79MVZw7d67/XNgNljb74IMPMuXjQmIV+C60QgfxgOkIm2eeIFjtBtMll1zia5zMlyRRHRf3JNXFxnUmY7OMGr/97W/7GwFl1cpxWAg7H+DowPxWXkcGG1ikyVMFfhqUNI0xBNCKCCLGCsiyiJeyzBW1aeuFAMGmzP6rt912W4/HCMzFJOFVV13V455e6IlAmpESO1ClSRfkPmPGjNj0TNLicRX+CATPuPyrAt/l1mlT3spckcjLzSbYLIzJ8qKXBT0Tt4RcCIQ6cViY62AlNOYH/jBbKDVHYM6cOd7TTz/dPFHoLnMnjz32WOhKz0OcDLD553Wh7Zlj9VdU4FffBh3LQdYVk3mBwnyUZdift5y8z4XNC2yXh5Dhj2iM0fC7ecto9+ews+NskPajPnz4cP9j+sILL8RCQ8hsFiWyd3bY5ZIRKh+KOtrvqagK/Njm1ou2EUCTxQZqc2s+XtS0AsB2fdPmTzRS9r9Fy68b72nraCNdVqwwKRJemkCA0dhG7Pu8wgoreAMHDvTDMYf5Jdw3nlKubU4e5rHZsQr8ZujoPWsI8IIi7PEvt0FozZhyoi+zjbI0T3cQYK4GD6g0RN/AN793797emDFj/A8siki/fv38SKRJo6u62e3DWKjAD6Ohx5UgwAtk+iXig4ILZlo/90oqroUaRwBbPouk0s4TsTH617/+dW+nnXbq4oU5k6h3FCbBIARJV8IaHqjAr2GjtRPLCHq2rcNV0xRlHd6bKlfzqR4BRnZRYW2CK2z6+PvbGpGa4DFNHirw06CkaawiwMRZmhDNaZhgcQ2mHH6VOhsBNrmJWxmbBxU+JO3Qp1Tg52l9fcYaAkU1KF5KJt1saHnWKq0ZG0cADzCcAoqsrGakSIiRsBeVcUZLzlAFfsmAa3HJCDBhhv01j9097DqnJp1kjDvpDgvuivQF7Pt8NBYsWNA2sNkU+F8WkXki8l8RGSrJNFJEXhWR+SJycnKy7nfwj1VqLwTQ7nFLzKqd4xPNh6KdXsz2atlqa0O/YlFWWlfKsAMBW2EW+WhUW/OepdsU+BuKyPoi8kgTgb+EiCwQkUEisqSIPC8iG3UX7fFnKvB7NmY7XeElw7bfbMFU8CLyy6Svi+ET2qlN6loXNP277ror1S5jjDIJVNcO9vq49rIp8ANJ3UzgbyUi04KEInJK4y90Kf5QBX5cc7bPNUIO8JIGWjsmGzabCCbhuD516tSu8/apudbEBgLhuSHs+sTBCYh+hSYP0c/wGkPwtyNVLfD3FpEJIZE+WkSuCJ0nHqrAb8fu2L1O4R2y8LjAnspkHITWhqtcVvNP9xL0rNMQYDRIaIRZs2Z1VR3Fgd2zOoGKCvwHRWRuzN/uIUndTMPPKvDHNhh+Zq211uqE9tE6NhBA+LOtXaDhKzCKQBEEAnMgeWC+SbtQq0iZLjxbVOCH5HriYTOBryYdF3qB8qAIKAIdgUDVAr+XiLwhIgNDk7YbJ346QjfUpNMR/VMrqQgoAgYRsCnw9xSRhSLyTxF5JzQ5u7qITA3J7lEi8lrDW2dc6HrTQxX4BnuBZqUIKAIdgYBNgd9UYBe9qQK/I/qnVlIRUAQMIqAC3yCYmpUioAgoAi4joALf5dZR3hQBRUARMIiACnyDYGpWioAioAi4jIAKfJdbR3lTBBQBRcAgAirwDYKpWSkCioAi4DICKvBdbh3lTRFQBBQBgwiowDcIpmalCCgCioDLCKjAd7l1lDdFQBFQBAwioALfIJialSKgCCgCLiOgAt/l1lHeFAFFQBEwiIAKfINgalaKgCKgCLiMgAp8l1tHeVMEFAFFwCACKvANgqlZKQKKgCLgMgIq8F1uHeVNEVAEFAGDCKjANwimZqUIKAKKgMsIqMB3uXWUN0VAEVAEDCKgAt8gmJqVIqAIKAIuI6AC3+XWUd4UAUVAETCIgAp8g2BqVoqAIqAIuIyACnyXW0d5UwQUAUXAIAIq8A2CqVkpAoqAIuAyAirwXW4d5U0RUAQUAYMIqMA3CKZmpQgoAoqAywiowHe5dZQ3RUARUAQMIqAC3yCYmpUioAgoAi4joALf5dZR3hQBRUARMIiACnyDYGpWioAioAi4jIAKfJdbR3lTBBQBRcAgAjYF/pdFZJ6I/FdEhkoy/VpEXhSROVmYGTJkiEEYNCtFQBFQBNofgSwyNllkx9/ZUETWF5FHUgj8/vFZJF9Vgd/+nVNrqAgoAmYRsCnwA2mtAt9sm2luioAioAjkQsAFgf8rEXlORJ4VkbHBVyLhl/vPNP4+CB0H19L+YkZKm7asdMpT+jZRrNJh5SJOvE8u8tUpPC1KkK2pLj8oInNj/nYPPd1Kw1+jkXYVEXleRLYLPWvrkE7nGilP6VtEsUqHlYs4wbmLfClP6fpUy1StBH44gzNE5MTwBUvH2rjpgHURJzh3kS/lKV2f0varN04tuW8m8PuKyLKNHDh+QkRGtsyxeAJ9OdNh6CJOcO4iX8pTuj6l7VdvnBK531NEForIP0XkHRGZ1ki5uohMbRwPaphxMOXgwjkuMTezN1rNFZgtLV1uylM6nEilWKXDykWctP3StZ2rOKXnXlMqAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIKALZEWBC+FURmS8iJ2d/3MgTa4rIwyLyUmPe4thGrngovdkIMUGYiVFGSsuWCb7I0TAXK4rIAyLyeuN3hWxZFkrNSm2wCP7+IiLfFJEqsLpeRN5tuCAHlUrCZjERubzRz14Qkc2DBwz/xvF0gYi8IiKUe5eIfKxR5joi8mEIy2sM8xJkF8dTs/Y6pYET7+XOQSaGf+N4uj2EBf2ePgaVhRNlJcmCqvvV/5Co+f8lRGSBiDBRvGRjsnijCuo0ICQA8FB6TUTgoyyX1GZVpuNHw1ycH/o48pE8r1kGFu/Rfm+LyNoVYcX6EAQ3604CSsKGj/V9IoLg31JEZgUPGP6N42mEiPRqlENbBe2FIAvzbpiVruzieErq2/R7HDb6iMjAxvtJO5umOJ7CZVwkIqc3LpSFE8UlyYKq+1UYm9oebxXyFKISaBb8VU2TRGR4RUIsWvc4gY/mRceE+OW8CkKQPd4oOEmA2OYrKgySsLlWRL4SYiacLnTZyGGUp3CmeMrd3LjQLF34GRPH0bKS2iv6DuLJx3tqg6I8BWXwUf6diKzXuJCULkhv8zeQBeH+En7nyuxXNutZSt57i8iEUEmjReSK0HkVh3Su34rIcg2Bj8BlKM4QtEzTSVD3uDAXfwpuNjTW8HnolvVDMDmqUQoCpAqsosIgjAWCIzi/V0S2DSEyo0UAwVDSzIdRnsIZTBaRAxsXSPc3EZktIo+KyOfCCQ0fR3lKai/ev4A/WLhORHhPbVCUp6AMtP/wGooycQp44JdyA1kQ9COuV9WvwrzV8tg1gd+vET9orwaaq4oIw9nFReSchtAvG+i4MBfhzgc/75fNVMME9wcRASOoKqyiQiMJGxcEPmtasOEjMCDMJis1joc0tFoUDRsUxSmpvVwQ+FeLyAkhEMrEKSg2Kgtc6FcBb7X9dcmk07thXjo+Ac3oC5OQzOrlYBieNLy0Wngkc2IzTY9cC07LxCpaVhI2ZQ69ozyBy9dF5EkRWSYAKea32Qr4mOSZLsXxFGQQvle1SYe5DhaFfjxgLubXJk4UFycLXOhXMVDU6xKN+0ZjciiYtN24giqgcd0oIpdGyg7s5Fw+TkRui9y3fZoU5gKvj8CjiV8mlMomsDgoVGhVWIWFFewkYbNrZNL26RDvpg+jPOGJhgfYypGCOA8mRHFcwCMMbxAbFOUpqb14/8KTtryfAY+m+YryRP5ghXkrTGXilCQLXOhXYUxqe4z3BF4xeOuUFcYhCha2Xa9hqw/cDeFrYsMlEhv+PaGJ0ujzts6TwlxgBsAGjVsm0VFtCYmkevEhek9Elg8lqAKrW0XkLRH5VyNkyJiGiSQOG17kKxv9DDfXZju+haqV+TCOJ1yOmYQM+lbgfvmlhhsw1wlH/oXMpaV7II6nZu3Fe8j7iFa7S7oiMqeK44lMfiwih0dyKwsnik2SBUnvXFn9KgKJnioCioAioAgoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIKAKKQBSB/wejyLlonwaT9wAAAABJRU5ErkJggg==)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "5SD7pir8UNRJ"
      },
      "source": [
        "maxlen:5 iters_num:3000  \n",
        "\n",
        "![image.png](data:image/png;base64,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)"
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "pK4Jprp9UVx5"
      },
      "source": [
        "### 考察\n",
        "maxlen:2 のときは学習がうまく進まない。iters_numを増やしてもうまくいかない。\n",
        "maxlen:5 にすると、iters_num:3000でほぼ正確なサイン波を予測できている。\n"
      ]
    }
  ]
}