{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "dceec757",
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import time\n",
    "import numpy as np\n",
    "import matplotlib as mpl\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "sns.set_style(\"whitegrid\")\n",
    "sns.set_palette(\"colorblind\")\n",
    "palette = sns.color_palette()\n",
    "figsize = (10, 6)\n",
    "legend_fontsize = 13\n",
    "\n",
    "from matplotlib import rc\n",
    "rc('font', **{'family': 'sans-serif'})\n",
    "rc('figure', **{'dpi': 120})\n",
    "\n",
    "rng = np.random.default_rng(4)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ab7dc236",
   "metadata": {},
   "source": [
    "# Классификатор, графы вычислений и прямой проход"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "9206de3a",
   "metadata": {},
   "source": [
    "## 1. Где мы остановились"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "3d035a46",
   "metadata": {},
   "outputs": [],
   "source": [
    "pages = np.array([1., 2., 3., 4., 5., 6., 7., 8., 8., 9., 10., 11., 12., 12.])\n",
    "color_pages = rng.integers(0, 3, len(pages))               # третий копицентр, этого в чеке нет\n",
    "paid = 20 + 30 * pages + 15 * color_pages\n",
    "_ = rng.normal(0, 4, 12)                                   # четвёртый копицентр был здесь\n",
    "\n",
    "\n",
    "def predict2(w, x):\n",
    "    return w[0] + w[1] * x\n",
    "\n",
    "\n",
    "def mean_sq2(w, x=pages, y=paid):\n",
    "    return np.mean((y - predict2(w, x)) ** 2)\n",
    "\n",
    "\n",
    "X = np.vstack([np.ones_like(pages), pages]).T\n",
    "w_star = np.linalg.solve(X.T @ X, X.T @ paid)\n",
    "x_mean, x_std = pages.mean(), pages.std()\n",
    "z_pages = (pages - x_mean) / x_std                          # отмасштабированный вход\n",
    "\n",
    "\n",
    "def mean_sq2_scaled(w, x=z_pages, y=paid):\n",
    "    return mean_sq2(w, x=x, y=y)\n",
    "\n",
    "\n",
    "Xz = np.vstack([np.ones_like(z_pages), z_pages]).T\n",
    "wz_star = np.linalg.solve(Xz.T @ Xz, Xz.T @ paid)\n",
    "\n",
    "\n",
    "def slope(f, c, eps=1e-4):\n",
    "    \"\"\"Численная производная: чуть-чуть вправо, чуть-чуть влево, поделить на разницу.\"\"\"\n",
    "    return (f(c + eps) - f(c - eps)) / (2 * eps)\n",
    "\n",
    "\n",
    "def gradient(f, w, eps=1e-4):\n",
    "    \"\"\"По одному ответу «чуть-чуть повернуть» на каждую ручку.\"\"\"\n",
    "    g = np.zeros_like(w)\n",
    "    for i in range(len(w)):\n",
    "        dw = np.zeros_like(w)\n",
    "        dw[i] = eps\n",
    "        g[i] = (f(w + dw) - f(w - dw)) / (2 * eps)\n",
    "    return g\n",
    "\n",
    "\n",
    "def descent(f, w0, eta, n_steps, grad=None):\n",
    "    \"\"\"Градиентный спуск; градиент — численный, если не дали готовый.\"\"\"\n",
    "    grad = grad or (lambda w: gradient(f, w))\n",
    "    ws = [np.array(w0, dtype=float)]\n",
    "    for _ in range(n_steps):\n",
    "        ws.append(ws[-1] - eta * grad(ws[-1]))\n",
    "    return np.array(ws)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "c67fb706",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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M7PAYy6p9u7dK4vFoocfflhNmzZV69at9eKLL171/qu8rier1Xpd96ri5syePVvnzp3TP//5zzzbcT0VrAoVKmjVqlV6/vnnc73V4dChQ6pRo4ZdmcViUeXKla/6uZOWlqZTp0459AsJCVFAQACfVzfoWmM0evRoDRo0yK7s119/1eXLl3XLLbdc9bh79+5VqVKl9NRTT6lFixZq1qyZxo4dq9jYWKefQ0lwrXHau3ev/Pz8NHnyZLVp00aNGjXSyJEjdfjw4aseMz/fF5G3a43TX+3YsUM//PCDxo0bp4CAgDzbcj05x/V89+ZzyTm4596Jrtzf8/d/KPz9/SUp14TkStmN9IHzxcTE6KOPPlKXLl1Up04dh/or91xZrVaNHz9eFStW1M8//6yPP/5YZ86c0dSpU10QdfFm/O8+RsMwdPfdd2v06NHatWuXpk2bpoMHD2rOnDkO995zPblWRkaGZs+erdtvvz3nS2puuJ4KXqlSpfKsT0xMzLku/srf3/+q18nVPuOu1Q+5u9YY/V18fLwmTpyocuXKqX///ldtt2/fPp07d0733HOPHnzwQR06dEjvvfee7r//fn3zzTfy8/O7ucBLmGuN0759+5SSkqKgoCBNnz5dp06d0vTp0zVs2DAtWbJEYWFhDn3y830RebuR62nmzJmqVKmS7rzzzmu25XoqOH//7s3nknOQ3DuRzWbLsz63TcDy0wfOtW3bNo0aNUqVK1fWpEmTcm3j5+enTz75RNWqVVPlypUlSa1bt5aXl5feffddPf7443lunIMbZxiGZsyYoZCQkJxZqlatWqls2bIaP368Nm7cqE6dOtn14XpyrRUrViguLk6PPPJInu24nlzPyGNH7tw2FJWufX1drR9uXmxsrEaMGKHY2Fh99tlnec42/vvf/5bFYlHjxo0lSS1btlTt2rV17733asmSJbr33nsLK+wS4ZlnntEjjzyiVq1aScr+eTdv3ly9e/fW7NmzNX78eIc+fFa5ztmzZ7VmzRpNmDBBHh7XToO4ngpGbt+9+VxyDv71cKLAwEBJUnJysl351WYT89sHzvP9999r+PDhqlChgj777DOVLl0613Y+Pj5q165dTiJyRefOnSVl/2YXzmU2m9WmTRuH5adXfub79+936HOt6+lKPQrGihUrdMstt1zz3lOuJ9cLCAhwuE6k7GvlatfJ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sPu5SMo5/uLFiyVJixcvVt26dXXy5MmcNn/88YfCw8PtfhZ/HYcrrjZmAAC4koerAwAAADdu6tSpSkxMVFBQUE7Z5MmT9fnnn2v48OFq166ddu3apbfeektZWVl67LHHctoNGjRId999d87rl19+2e7Y//3vf/Xee+/p3nvv1TPPPKMTJ07oP//5j3bs2KEFCxbIx8cn15jyev+7775bHTp0sHu/l156SZJUvnx5ZWVlSZL+9a9/qVOnTnr//fe1bds2TZs2TSkpKRo/frwk6bnnntPWrVs1btw4Va1aVceOHdN//vMfRUZGatmyZTKZTPn+mb722ms5cQAA4G5I7gEAcCGzOXsRXVZWljw8ru9jedeuXfr2229Vv359JSQkSJISEhI0e/Zs3XfffTmJ8K233qq4uDht2bLFLrkvX768mjZtmvM6ICAg5++XL1/WjBkzdM899+jFF1/MKa9Tp46GDRumRYsWadiwYQ4xXc/7ly9f3u79/hrDlRn08PBwvfXWW5Kkjh07KiUlRZ9//rlGjx4tLy8vJScn64UXXtDtt98uSWrdurWSkpL0xhtv6Pz58woNDb2un+HfrVixQjExMapRo0a++gMA4Gok9wAAuFCZMmUkSWfPnlXlypWv2d4wDL366qsaNGiQ0tPT9euvv0qSduzYoaysLPXo0cOu/QsvvHBD8ezYsUMZGRnq27evXXnLli1VqVIl/frrr7km9856//79+9u97tmzp2bPnq3t27erQ4cOmjVrliTp3LlzOnLkiI4ePaoff/xRkpSRkWHX96+z8H9d2v936enpevPNNzV69Ght3LjxhuIFAKCoILkHAMCF2rdvLw8PD02ePFkvvviiDMPQL7/8ctX2S5Ys0dGjR/XBBx/ozTffzCm/dOmSJCkkJOSm4rlyX33ZsmUd6sqWLavExMRc+znr/cPCwuxeXznelbg2btyo119/XYcPH5a/v7/q1asnPz8/SbLbW+DUqVMKDw+/rvf8+OOP5enpqYceeojkHgDgtkjuAQBwocqVK+v111/XK6+8onbt2knSVZeWJycna+rUqXrqqadUunRpu7or997Hx8erZs2aOeWnT5/W8ePH1aJFC3l6ekpSnvelBwcHS5LOnz9vdxxJiouLU5UqVXLtdyPvn4+x5rYAAAM0SURBVJeLFy/avb5w4YKk7BUOx48f1xNPPKHbbrtNH374oapUqSKTyaQvv/zSISkPDQ3VjBkz7GIfPXq0w/udOXNGH3/8sd577z15eXldMz4AAIoqdssHAMDF+vXrp40bN2rp0qXasGGDoqOjc203Y8YMlSlTRkOGDHGoa9y4sTw9PXOWqF/xySefaNy4cbJYLDlL06/c55+bJk2ayMvLS1FRUXblW7du1enTp9W8efNc+13P+1+P1atX271esWKFfH191aRJE+3evVvp6el69NFHVbVq1ZxfUlxJ7P86c+/l5aVGjRrl/KlTp06u7zd58mRFRESoU6dO1xUfAABFFTP3AAAUAX5+fldNQK/YuXOn5syZk2uiHBISogceeECfffaZvLy81Lp1a8XExGju3Ll67rnndOrUKe3cuVOS7HbY/7tSpUrp0Ucf1fTp0+Xp6akuXbro5MmT+s9//qPatWtrwIABufa71vvn9QuFv1q+fLnKlCmjTp066ddff9WXX36pZ555Rn5+fgoPD5eHh4emTJmihx9+WBkZGVq8eLHWrVsnSUpJSbmu9/irvXv3atmyZXm2OXv2rHbs2GH3WpL27NmjBg0a3PB7AgBQEEjuAQBwE3369FGrVq2uWj9+/HiVKVNG8+bN08yZM1W5cmVNnDhRQ4YM0cSJE7Vo0SI1btw4Z6f5q3nyySdVtmxZzZkzR/Pnz1epUqXUq1cvjR07Nuf+9ht9/+v19NNP69dff9X8+fNVoUIFvfjiixo6dKgkqVq1apo6daqmTZum0aNHKzg4WE2bNtUXX3yh+++/X1u3br3h588PHz5c1apVy7PNwoULtXDhQofyMWPGaO3atTf0fgAAFBST8dc1bAAAAC5w8uRJdevWTZMmTdJdd93l6nCuafHixZo2bRrJPQCgyOCeewAAAAAA3BzJPQAAwA0KCQlR/fr1XR0GAAA5WJYPAAAAAICbY+YeAAAAAAA3R3IPAAAAAICbI7kHAAAAAMDNkdwDAAAAAODmSO4BAAAAAHBzJPcAAAAAALg5knsAAAAAANwcyT0AAAAAAG6O5B4AAAAAADdHcg8AAAAAgJv7f861ALYg7cmbAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1200x720 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def tariff(x):\n",
    "    return 30 * np.minimum(x, 3) + 20 * np.clip(x - 3, 0, 7) + 10 * np.maximum(x - 10, 0)\n",
    "\n",
    "\n",
    "pages_e = np.arange(1, 21, dtype=float)\n",
    "paid_e = tariff(pages_e) + rng.normal(0, 5, len(pages_e))\n",
    "\n",
    "x_m, x_s, y_m, y_s = pages_e.mean(), pages_e.std(), paid_e.mean(), paid_e.std()\n",
    "z_e, u_e = (pages_e - x_m) / x_s, (paid_e - y_m) / y_s\n",
    "\n",
    "H = 14\n",
    "relu = lambda z: np.maximum(0, z)\n",
    "\n",
    "\n",
    "def net(p, z):\n",
    "    \"\"\"Один вход, H включаемых блоков, линейный выход.\"\"\"\n",
    "    W1, b1, W2, b2 = p[:H], p[H:2 * H], p[2 * H:3 * H], p[3 * H]\n",
    "    return relu(np.outer(z, W1) + b1) @ W2 + b2\n",
    "\n",
    "\n",
    "def predict_net(p, x):                       # в рублях и страницах\n",
    "    return net(p, (x - x_m) / x_s) * y_s + y_m\n",
    "\n",
    "\n",
    "def mean_sq_net(p, z=z_e, u=u_e):\n",
    "    return np.mean((u - net(p, z)) ** 2)\n",
    "\n",
    "\n",
    "p_net = rng.normal(0, .5, 3 * H + 1)\n",
    "print(\"Настроек в сети: %d\" % len(p_net))\n",
    "t0 = time.perf_counter()\n",
    "for step in range(12001):\n",
    "    p_net = p_net - 0.2 * gradient(mean_sq_net, p_net)\n",
    "print(\"12 000 шагов по численным производным: ошибка %.1f ₽², времени %.0f с\" % (mean_sq_net(p_net) * y_s ** 2, time.perf_counter() - t0))\n",
    "\n",
    "xs = np.linspace(0.5, 20.5, 400)\n",
    "fig, ax = plt.subplots(figsize=figsize)\n",
    "ax.scatter(pages_e, paid_e, marker=\"*\", s=120, color=\"black\", zorder=5, label=\"чеки пятого копицентра\")\n",
    "ax.plot(xs, tariff(xs), linewidth=1.5, color=\"0.5\", linestyle=\"--\", label=\"настоящий тариф\")\n",
    "ax.plot(xs, predict_net(p_net, xs), linewidth=2.5, color=palette[1], label=\"сеть из %d блоков\" % H)\n",
    "ax.set_ylim(0, 350)\n",
    "ax.set_xlabel(\"число страниц\"); ax.set_ylabel(\"стоимость, ₽\")\n",
    "ax.set_title(\"Там, где мы остановились: ломаная из переломов, положения которых — настройки\")\n",
    "ax.legend(fontsize=11, loc=\"upper left\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c50d7747",
   "metadata": {},
   "source": [
    "## 2. Два входа: нейрон и граница, которую прямая не проведёт"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "d04db312",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "сеть из 6 нейронов (25 настроек)      ошибка 0.013,  верно классифицировано 100.0%\n"
     ]
    }
   ],
   "source": [
    "n_parcels = 200\n",
    "mass = rng.uniform(0, 10, n_parcels)\n",
    "side = rng.uniform(10, 100, n_parcels)\n",
    "oversize = ((mass > 5) | (side > 60)).astype(float)\n",
    "\n",
    "Xp = np.vstack([(mass - 5) / 2.9, (side - 55) / 26]).T      # масштабируем оба входа\n",
    "sigmoid = lambda z: 1 / (1 + np.exp(-z))\n",
    "H2 = 6\n",
    "\n",
    "\n",
    "def net2(p, X):\n",
    "    \"\"\"Два входа → 6 нейронов с ReLU → один выход с уверенностью.\"\"\"\n",
    "    W1, b1 = p[:2 * H2].reshape(2, H2), p[2 * H2:3 * H2]\n",
    "    W2, b2 = p[3 * H2:4 * H2], p[4 * H2]\n",
    "    return sigmoid(relu(X @ W1 + b1) @ W2 + b2)\n",
    "\n",
    "\n",
    "def linear2(p, X):\n",
    "    \"\"\"Для сравнения: один нейрон, то есть одна прямая.\"\"\"\n",
    "    return sigmoid(X @ p[:2] + p[2])\n",
    "\n",
    "\n",
    "def log_loss(model, p):\n",
    "    q = model(p, Xp)\n",
    "    return -np.mean(oversize * np.log(q + 1e-9) + (1 - oversize) * np.log(1 - q + 1e-9))\n",
    "\n",
    "\n",
    "fitted = {}\n",
    "for name, model, n_params, eta in [(\"одна прямая (3 настройки)\", linear2, 3, 0.5),\n",
    "                                   (\"сеть из 6 нейронов (25 настроек)\", net2, 4 * H2 + 1, 0.3)]:\n",
    "    p = rng.normal(0, 1, n_params)\n",
    "    for step in range(3000):\n",
    "        p = p - eta * gradient(lambda q: log_loss(model, q), p)\n",
    "    acc = np.mean((model(p, Xp) > 0.5) == (oversize == 1))\n",
    "    fitted[name] = (model, p)\n",
    "    print(\"%-36s  ошибка %.3f,  верно классифицировано %.1f%%\" % (name, log_loss(model, p), 100 * acc))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "70d1c3e8",
   "metadata": {},
   "outputs": [],
   "source": [
    "mm, ss = np.meshgrid(np.linspace(0, 10, 200), np.linspace(10, 100, 200))\n",
    "grid_X = np.vstack([(mm.ravel() - 5) / 2.9, (ss.ravel() - 55) / 26]).T\n",
    "\n",
    "fig, axes = plt.subplots(1, 2, figsize=(15, 6))\n",
    "for ax, (name, (model, p)) in zip(axes, fitted.items()):\n",
    "    conf = model(p, grid_X).reshape(mm.shape)\n",
    "    ax.contourf(mm, ss, conf, levels=np.linspace(0, 1, 11), cmap=\"RdBu_r\", alpha=0.35)\n",
    "    ax.contour(mm, ss, conf, levels=[0.5], colors=\"black\", linewidths=2)\n",
    "    ax.scatter(mass[oversize == 0], side[oversize == 0], s=25, color=palette[0], label=\"обычная\")\n",
    "    ax.scatter(mass[oversize == 1], side[oversize == 1], s=25, color=palette[3], label=\"негабарит\")\n",
    "    ax.set_xlabel(\"масса, кг\"); ax.set_ylabel(\"длина, см\")\n",
    "    ax.set_title(name)\n",
    "    ax.legend(fontsize=10, loc=\"lower left\")\n",
    "plt.suptitle(\"Чёрная линия — где модель меняет ответ; фон — её уверенность\", y=1.01)\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "17dd3781",
   "metadata": {},
   "outputs": [],
   "source": [
    "model_lin, p_lin = fitted[\"одна прямая (3 настройки)\"]\n",
    "shifts = np.linspace(-3, 3, 601)\n",
    "knob = np.array([1., 0., 0.])                      # крутим одну ручку: вес при массе\n",
    "acc_curve = [np.mean((model_lin(p_lin + t * knob, Xp) > 0.5) == (oversize == 1)) for t in shifts]\n",
    "loss_curve = [log_loss(model_lin, p_lin + t * knob) for t in shifts]\n",
    "\n",
    "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 5))\n",
    "ax1.plot(p_lin[0] + shifts, acc_curve, color=palette[0], linewidth=2.5)\n",
    "ax1.set_ylabel(\"доля верных ответов\")\n",
    "ax1.set_title(\"Точность: ступеньки, производная почти всюду ноль\")\n",
    "ax2.plot(p_lin[0] + shifts, loss_curve, color=palette[3], linewidth=2.5)\n",
    "ax2.set_ylabel(\"логарифмическая ошибка\")\n",
    "ax2.set_title(\"Логарифмическая ошибка: гладкая, есть куда спускаться\")\n",
    "for ax in (ax1, ax2):\n",
    "    ax.axvline(p_lin[0], color=\"0.5\", linestyle=\"--\")\n",
    "    ax.set_xlabel(\"вес при массе\")\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "05d0f9e7",
   "metadata": {},
   "outputs": [],
   "source": [
    "model_net, p_fit = fitted[\"сеть из 6 нейронов (25 настроек)\"]\n",
    "W1n, b1n = p_fit[:2 * H2].reshape(2, H2), p_fit[2 * H2:3 * H2]\n",
    "W2n = p_fit[3 * H2:4 * H2]\n",
    "hidden_maps = relu(grid_X @ W1n + b1n)                         # выход каждого блока на всей карте\n",
    "\n",
    "fig, axes = plt.subplots(2, 3, figsize=(16, 8.5))\n",
    "for j, ax in enumerate(axes.ravel()):\n",
    "    hm = hidden_maps[:, j].reshape(mm.shape)\n",
    "    ax.contourf(mm, ss, hm, levels=15, cmap=\"Oranges\")\n",
    "    ax.contour(mm, ss, hm, levels=[1e-6], colors=\"black\", linewidths=2)\n",
    "    ax.scatter(mass[oversize == 0], side[oversize == 0], s=8, color=palette[0])\n",
    "    ax.scatter(mass[oversize == 1], side[oversize == 1], s=8, color=palette[3])\n",
    "    ax.set_title(\"блок %d: вес на выходе v = %.1f\" % (j + 1, W2n[j]), fontsize=11)\n",
    "    ax.set_xlabel(\"масса, кг\"); ax.set_ylabel(\"длина, см\")\n",
    "plt.suptitle(\"Каждый блок выключен (белый) по одну сторону своей линии и включается по другую; \"\n",
    "             \"линию — свой «перелом» — он нашёл сам\", y=1.0)\n",
    "plt.tight_layout()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6444563d",
   "metadata": {},
   "source": [
    "## 3. Сколько стоит «чуть-чуть повернуть» миллиард ручек"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "08e7f912",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "       512       1537     0.1830 с\n",
      "\n",
      "Время растёт вместе с числом настроек: ~1.2e-04 с на настройку, и это на 20 чеках.\n",
      "Для 10^9 настроек один шаг занял бы 33 часов на 20 чеках;\n",
      "на миллионе примеров — в 50 000 раз дольше, около 189 лет на один шаг (которых нужны миллионы).\n"
     ]
    }
   ],
   "source": [
    "def make_net(H_try):\n",
    "    def net_H(p, z):\n",
    "        W1, b1, W2, b2 = p[:H_try], p[H_try:2 * H_try], p[2 * H_try:3 * H_try], p[3 * H_try]\n",
    "        return relu(np.outer(z, W1) + b1) @ W2 + b2\n",
    "    return lambda p: np.mean((u_e - net_H(p, z_e)) ** 2)\n",
    "\n",
    "\n",
    "print(\"  нейронов   настроек   время одного шага спуска\")\n",
    "for H_try in [8, 32, 128, 512]:\n",
    "    f = make_net(H_try)\n",
    "    p = rng.normal(0, 1, 3 * H_try + 1)\n",
    "    t0 = time.perf_counter()\n",
    "    gradient(f, p)\n",
    "    dt = time.perf_counter() - t0\n",
    "    print(\"  %8d   %8d   %8.4f с\" % (H_try, len(p), dt))\n",
    "\n",
    "per_param = dt / len(p)\n",
    "hours_one_step = per_param * 1e9 / 3600\n",
    "print(\"\\nВремя растёт вместе с числом настроек: ~%.1e с на настройку, и это на 20 чеках.\" % per_param)\n",
    "print(\"Для 10^9 настроек один шаг занял бы %.0f часов на 20 чеках;\" % hours_one_step)\n",
    "print(\"на миллионе примеров — в 50 000 раз дольше, около %.0f лет на один шаг (которых нужны миллионы).\"\n",
    "      % (hours_one_step * 5e4 / 8760))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "30381342",
   "metadata": {},
   "source": [
    "## 4. Цепочка усилений: производная сложной функции"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "80fb830b",
   "metadata": {},
   "outputs": [],
   "source": [
    "x_one, y_one = 2., 60.\n",
    "c = 10.\n",
    "\n",
    "predict_one = lambda c: c * x_one                  # звено 1: настройка → предсказание\n",
    "error_of = lambda y_hat: (y_hat - y_one) ** 2      # звено 2: предсказание → ошибка\n",
    "error_of_c = lambda c: error_of(predict_one(c))     # вся цепочка\n",
    "\n",
    "gain_1 = slope(predict_one, c)\n",
    "gain_2 = slope(error_of, predict_one(c))\n",
    "print(\"Повернули c на ε  →  предсказание изменилось на %.1f·ε     (усиление звена 1)\" % gain_1)\n",
    "print(\"Предсказание изменилось на δ  →  ошибка изменилась на %.1f·δ   (усиление звена 2)\" % gain_2)\n",
    "print(\"Произведение усилений: %.1f\" % (gain_1 * gain_2))\n",
    "print(\"«Чуть-чуть повернуть» всю цепочку сразу: %.1f\" % slope(error_of_c, c))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "1aa496cf",
   "metadata": {},
   "source": [
    "## 5. Прямой проход по графу вычислений"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "823bf3da",
   "metadata": {},
   "outputs": [],
   "source": [
    "def g_forward(x, y, dx, dy, show=True):\n",
    "    \"\"\"Прямой проход: в каждом узле значение и производная (по x, если dx=1 и dy=0).\"\"\"\n",
    "    a, da = x + y, dx + dy\n",
    "    b, db = x * y, dx * y + x * dy\n",
    "    c, dc = a ** 2, 2 * a * da\n",
    "    d, dd = a * b, da * b + a * db\n",
    "    e, de = y ** 2, 2 * y * dy\n",
    "    f, df = c - d, dc - dd\n",
    "    g, dg = f + e, df + de\n",
    "    if show:\n",
    "        for name, val, der in [(\"a = x + y\", a, da), (\"b = x·y\", b, db), (\"c = a²\", c, dc),\n",
    "                               (\"d = a·b\", d, dd), (\"e = y²\", e, de), (\"f = c − d\", f, df),\n",
    "                               (\"g = f + e\", g, dg)]:\n",
    "            print(\"  %-10s  значение %3g   производная %3g\" % (name, val, der))\n",
    "    return g, dg\n",
    "\n",
    "\n",
    "g_val, dg_dx = g_forward(1., 2., 1., 0.)\n",
    "g_formula = lambda x, y: (x + y) ** 2 - x * y * (x + y) + y ** 2\n",
    "print(\"\\nПо формуле: g(1, 2) = %g, ∂g/∂x = 2(x+y) − y(x+y) − xy = %g\" % (g_formula(1., 2.), 2 * 3 - 2 * 3 - 2))\n",
    "print(\"«Чуть-чуть повернуть» x:  %.4f\" % slope(lambda x: g_formula(x, 2.), 1.))\n",
    "_, dg_dy = g_forward(1., 2., 0., 1., show=False)\n",
    "print(\"Ещё один проход, теперь с dx = 0, dy = 1:  ∂g/∂y = %g\" % dg_dy)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "b6ecf185-e87a-4578-bc17-0a0316ded2c5",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
