{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 複数候補を一度に探索する\n", "\n", "1回の探索ステップで、2つ以上の候補を一度に評価する場合のチュートリアルです。\n", "\n", "## 探索候補データの準備" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import physbo\n", "\n", "import os\n", "import urllib\n", "import ssl\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "ssl._create_default_https_context = ssl._create_unverified_context\n", " \n", "def load_data():\n", " A = np.asarray(np.loadtxt('data/s5-210.csv',skiprows=1, delimiter=',') )\n", " X = A[:,0:3]\n", " t = -A[:,3]\n", " return X, t\n", "\n", "X, t = load_data()\n", "X = physbo.misc.centering(X)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## simulator の定義\n", "\n", "後述の `num_search_each_probe` を2以上にした場合、action には action ID の array が入力されます。 \n", "各 action ID に対応した評価値のリストを返すように定義してください。\n", "\n", "基本チュートリアルと simulator の定義は同じですが、\n", "t は numpy.array であり、action に array が入力されると `self.t[action]` も array になる点に留意してください。" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "class simulator:\n", " def __init__( self ):\n", " _, self.t = load_data()\n", " \n", " def __call__( self, action ):\n", " return self.t[action]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "simulator の実行例" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-1.01487066, -1.22884748, -1.05572838])" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "sim = simulator()\n", "sim([1,12,123])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 最適化の実行" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# policy のセット \n", "policy = physbo.search.discrete.policy(test_X=X)\n", "\n", "# シード値のセット \n", "policy.set_seed( 0 )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`num_search_each_probe` によって、各探索ステップにおいて評価する候補数を指定することができます。\n", "\n", "下記の実行例だと、ランダムサーチにより 2 ×10 = 20回、ベイズ最適化により 8 ×10 = 80回 simulator を評価することになります。 \n", "\n", "**引数** \n", "\n", "- `max_num_probes`: 探索ステップ数 \n", "- `num_search_each_probe`: 各探索ステップにおいて評価する候補数" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "res = policy.random_search(max_num_probes=2, num_search_each_probe=10, simulator=simulator())\n", "\n", "res = policy.bayes_search(max_num_probes=8, num_search_each_probe=10, simulator=simulator(), score='EI', \n", " interval=2, num_rand_basis=100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## 結果の確認" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(res.fx[0:res.total_num_search])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "best_fx, best_action = res.export_all_sequence_best_fx()\n", "plt.plot(best_fx)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "`res.export_sequence_best_fx()` により、各ステップまでに得られたベスト値とその action の履歴 を得られます。 \n", "\n", "`res.export_all_sequence_best_fx()` との違いは、simulator の評価毎ではなく、探索ステップ毎の情報になるという点です。 \n", "(今回の場合は合計ステップ数は 10, 評価数は 100 です)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[]" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "best_fx, best_action = res.export_sequence_best_fx()\n", "plt.plot(best_fx)" ] } ], "metadata": { "anaconda-cloud": {}, "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.16" } }, "nbformat": 4, "nbformat_minor": 1 }