この本の最初の 2 章では、進化アルゴリズムをやや抽象的な意味で定義しています。スコアリング、選択、集団、交差、突然変異はすべて進化アルゴリズムの重要な機能ですが、これらすべての機能を組み合わせた具体的なアルゴリズムはまだありません。 遺伝的アルゴリズムは進化的アルゴリズムの特殊なタイプですが、その定義はそれを説明する文献によって異なります。この本では、遺伝的アルゴリズムを、交差演算子と突然変異演算子を使用して固定長ベクトルを最適化できる進化的アルゴリズムとして定義しています。スコアリング関数は、良いソリューションと悪いソリューションを区別して、固定長ベクトルを最適化できます。この定義は遺伝的アルゴリズムの本質を示しています。 さらに、遺伝的アルゴリズムにオプションの機能を追加して、そのパフォーマンスを向上させることもできます。種分化、エリート主義、その他の選択方法などの技術により、遺伝的アルゴリズムのパフォーマンスが向上する場合があります。 3.1 離散問題に対する遺伝的アルゴリズム 他のアルゴリズムと同様に、遺伝的アルゴリズムは、連続学習と離散学習に対して若干異なるアプローチを採用します。連続学習では数値を計算し、離散学習では非数値を認識します。このセクションでは、離散学習と連続学習を次の 2 つの古典的な AI 問題に適用する方法を示します。 巡回セールスマン問題; 3.1.1 巡回セールスマン問題 巡回セールスマン問題 (TSP) では、巡回セールスマンの最短経路を決定します。巡回セールスマンは一定数の都市を訪問しなければなりません。どの都市から出発してどの都市で終わることもできますが、各都市を訪問できるのは 1 回だけです。 TSP にはいくつかのバリエーションがあり、その中には各都市を複数回訪問したり、各都市に異なる値を割り当てたりできるものもあります。この章の TSP は、各都市を 1 回ずつ訪問しながら、可能な限り最短のルートを探すだけです。図3-1にここで紹介したTSPと最短経路を示します。 図3-1 巡回セールスマン問題 最短経路を見つけることは、通常の反復プログラムでは十分簡単なようです。ただし、都市の数が増えると、可能な組み合わせの数は劇的に増加します。問題に 1 つまたは 2 つの都市が含まれる場合、選択できるパスは 1 つだけです。3 つの都市が含まれる場合、可能なパスは 6 つに増えます。次のリストは、パスの数がどれだけ速く増加するかを示しています。 1 つの都市には 1 つのパスがあります。2 つの都市には 2 つのパスがあります。3 つの都市には 6 つのパスがあります。4 つの都市には 24 つのパスがあります。5 つの都市には 120 つのパスがあります。6 つの都市には 720 つのパスがあります。7 つの都市には 5,040 つのパスがあります。8 つの都市には 40,320 つのパスがあります。9 つの都市には 362,880 つのパスがあります。10 つの都市には 3,628,800 つのパスがあります。11 つの都市には 39,916,800 つのパスがあります。12 つの都市には 479,001,600 つのパスがあります。13 つの都市には 6,227,020,800 つのパスがあります… 50都市には3.041 × 10ˆ64のパスがある 上記の表では、パスの合計数を計算するために使用される式は階乗です。階乗演算子を使用してください。都市の数nに作用します。任意の値 n の階乗はn ×( n − 1)×( n − 2)×…×3× 2×1 で表されます。プログラムがブルートフォース検索を実行する必要がある場合、これらの値は非常に大きくなる可能性があります。 TSP は、非決定性多項式時間 (NP) 困難問題の例です。 「NP 困難」は非公式には「総当たり探索では解決できない一連の問題」と定義されます。都市が 10 を超える場合、TSP はこの定義を満たします。 NP困難性の正式な定義は「コンピュータと扱いにくさ:NP完全性理論へのガイド」[1]に記載されています。 図 3-2 の漫画に示すように、動的プログラミングは TSP を解決するためのもう 1 つの一般的なアプローチです。 この本では動的プログラミング全体を網羅しているわけではありませんが、その基本的な機能を理解するのに役立ちます。動的プログラミングは、TSP のような大きな問題を小さな問題に分割します。この作業は多くの小さなプログラムで再利用できるため、力ずくの解決に必要な反復回数が減ります。 図3-2 TSPを解く方法(xkcdウェブサイトより) ブルートフォースソリューションや動的プログラミングとは異なり、遺伝的アルゴリズムでは最適なソリューションが見つかる保証はありません。良い解決策が見つかりますが、スコアは最高ではない可能性があります。セクション3.1.2で説明するサンプルプログラムは、遺伝的アルゴリズムがわずか数分で50都市のTSPの許容可能なソリューションを生成する方法を示しています[2]。 3.1.2 巡回セールスマン問題に対する遺伝的アルゴリズムの設計 TSP は最も有名なコンピューター サイエンスの問題の 1 つです。従来の反復アルゴリズムでは NP 困難な問題を解決できないことが多いため、プログラマーは遺伝的アルゴリズムを使用して潜在的な解決策を生成する必要があります。そこで、遺伝的アルゴリズムをTSPに適用する方法を研究します。 離散遺伝的アルゴリズムによって、使用する交差演算子と突然変異演算子のタイプが決まります。離散問題は分類問題なので、数値を扱う必要はありません。つまり、あなたが訪れる可能性のある都市は、TSP の機密情報です。訪問した順に並べられた都市のリストは、各ソリューションのゲノムです。 TSP ゲノムを表現する方法は次のとおりです。 [ロサンゼルス、シカゴ、ニューヨーク] 初期人口はこれらの都市のランダムな順列になります。たとえば、初期のランダムな集団は次のリストのようになります。 [ロサンゼルス、シカゴ、ニューヨーク] [シカゴ、ロサンゼルス、ニューヨーク] [ニューヨーク、ロサンゼルス、シカゴ] 各経路で移動したマイル数 (1 マイル = 1,609.344 メートル) を計算することで、上記の都市のスコアリング関数を作成できます。最初の集団メンバーについて考えてみましょう。 Google マップの運転ルートによると、ロサンゼルスからシカゴまでは 2,016 マイル、シカゴからニューヨークまでは 790 マイルです。したがって、最初の個体が移動した総距離は 2,806 マイルでした。距離は最小化したいスコアです。上記 3 つの母集団メンバーとそのスコアを以下に示します。 [ロサンゼルス、シカゴ、ニューヨーク] -> スコア: 2 016 + 790 = 2 806 [シカゴ、ロサンゼルス、ニューヨーク] -> スコア: 2 016 + 2 776 = 4 792 [ニューヨーク、ロサンゼルス、シカゴ] -> スコア: 2 776 + 2 016 = 4 792 ご覧のとおり、巡回セールスマンはどの都市からでも出発できるため、最後の 2 つのパスのスコアは同じになり、最後の 2 つのパスの距離は同じになります。巡回セールスマン問題のいくつかのバリエーションでは、出発都市と到着都市を固定できます。旅するセールスマンの故郷なので、出発点と到着点は同じです。他のバリエーションでは、巡回セールスマンが同じ都市を複数回訪問することができます。つまり、巡回セールスマン問題のルールをどのように定義するかによって、コンピュータ プログラムの実装方法が決まります。 次のシナリオを考えてみましょう。巡回セールスマンは常に同じ都市(故郷)から出発し、常にそこに戻ります。この例では、本拠地都市はミズーリ州セントルイスです。さらに、スコアは 2 つの都市間の最も安い航空運賃の価格になります。ゲノムは依然としてロサンゼルス、シカゴ、ニューヨークの組み合わせで構成されるため、ゲノムの最初と最後にセントルイスが現れる必要はありません。これにより、アルゴリズムがセントルイスをパスの開始点または終了点ではないポイントに変更することが防止されます。つまり、スコアリング関数は暗黙的にセントルイスをパスの開始点と終了点と見なし、適切に処理します。以下に示すように、最初の集団メンバーを確認します。 [ロサンゼルス、シカゴ、ニューヨーク] 例には次の行程が含まれます。 セントルイスからロサンゼルス -> 料金: 393 ドル ロサンゼルスからシカゴ -> 料金: 452 ドル シカゴからニューヨーク -> 料金: 248 ドル ニューヨークからセントルイス -> 料金: 295 ドル 合計: $1388 問題に対する小さな変化は大きな複雑さをもたらします。セントルイスはアメリカの中央に位置していたため、巡回セールスマンは東から西、あるいは西から東への単純なルートを取ることができなくなりました。さらに、シカゴからセントルイスまでの運賃は、セントルイスからシカゴまでの運賃と必ずしも同じではないため、チケットの価格は互換性がありません。この問題は、旅行当日の航空運賃の変更によってさらに悪化します。したがって、ゲノムには開始日と終了日が含まれる場合があります。このようにして、遺伝的アルゴリズムは旅行計画と都市の順序を最適化することができます。 巡回セールスマンが同じ都市を複数回訪問できるようにするアルゴリズムを作成することもできますが、この要件によりスコアリング関数の複雑さが増します。巡回セールスマンが同じ都市を複数回訪問できるようにするという要件を緩和すると、最高スコアは次のソリューションから得られる可能性があります。 [シカゴ、シカゴ、シカゴ] 上記のソリューションのスコアは非常に理想的です。アルゴリズムはセントルイスから最も安い目的地であるシカゴまでの経路を選択しました。次に、アルゴリズムは再びシカゴを 2 番目と 3 番目の停留所として選択します。シカゴからシカゴまでの航空運賃が 0 ドルだったので、この旅行のスコアは素晴らしかったです。明らかに、この場合、アルゴリズムはプログラマーのために余分な作業を行いません。したがって、真の最適解のパラメータを伝えるには、スコアリング関数をより複雑にする必要があります。おそらく、いくつかの都市はより価値があり、訪問することが必須ですが、他の都市はオプションです。スコアリング関数の設計は、遺伝的アルゴリズムのプログラミングにとって非常に重要です。 3.1.3 遺伝的アルゴリズムにおける巡回セールスマン問題の応用 ここで、一連の都市を通る適切な経路を見つける遺伝的アルゴリズムの簡単な例を見てみましょう。 50 の都市が 256×256 のグリッド上にランダムに配置されます。このプログラムは 1,000 個のパスを使用して、都市を通る最適なパスを開発しました。都市のリストはカテゴリ別であるため、TSP は離散問題です。この例では、スコアリング関数は、どの都市も 2 回訪問されない都市のパスによってカバーされる合計距離を計算します。 これらのパラメータによって、最も適切な突然変異および交差演算子の選択が決定されます。この例では、シャッフル変異演算子が最適な選択です。第 2 章で述べたように、シャッフル突然変異演算子は固定長のカテゴリデータで使用できます。ここでも、繰り返しなしでスプライス クロスオーバー演算子を使用します。どちらの演算子も 1,000 個のパスの集団の進化を許可し、繰り返しのクロスオーバーがないため、同じ都市を 1 回だけ訪問するという要件が強制されます。 私はこの手順を何百回も繰り返し、最適なパスの長さが 1 つも改善されないまま 50 回連続で繰り返し実行しました。 1 回の反復は 1 世代です。プログラムの出力は以下の通りです。 反復: 1、最適パス長 = 5308.0 反復回数: 2、最適パス長 = 5209.0 反復回数: 3、最適パス長 = 5209.0 反復回数: 4、最適パス長 = 5209.0 反復回数: 5、最適パス長 = 5209.0 反復回数: 6、最適パス長 = 5163.0 反復回数: 7、最適パス長 = 5163.0 反復回数: 8、最適パス長 = 5163.0 反復回数: 9、最適パス長 = 5163.0 反復回数: 10、最適パス長 = 5163.0 ... 反復回数: 260、最適パス長 = 4449.0 反復回数: 261、最適パス長 = 4449.0 反復回数: 262、最適パス長 = 4449.0 反復回数: 263、最適パス長 = 4449.0 反復回数: 264、最適パス長 = 4449.0 反復回数: 265、最適パス長 = 4449.0 良い解決策が見つかりました: 22>1>37>30>11>33>39>24>9>16>40>3>17>49>31>48>46>20>13>47>23> 0>2>29>27>14>34>26>15>7>35>19>21>18>6>28>25>45>8>38>43>32> 41>5>10>4>44>36>12>42 ご覧のとおり、プログラムが解決策を見つけるまでに 265 回の反復が発生しました。都市はランダムなので実際の名前はなく、代わりに「1」「2」「3」などのラベルが付けられます。上記の最適解は都市 22 から始まり、都市 1 へ進み、最終的に都市 42 で停止します。 TSP のオンライン実装は次の URL で参照できます。 http://www.heatonresearch.com/aifh/vol2/tsp_genetic.html 3.2 連続問題に対する遺伝的アルゴリズム プログラマーは遺伝的アルゴリズムを使用して連続的な(つまり数値的な)データを進化させることもできます。次の例では、4 つの入力測定値に基づいてアイリスの花の種を予測します。したがって、私たちの遺伝的アルゴリズムは、ラジアル基底関数 (RBF) ネットワーク モデルをトレーニングします。 モデルとは、入力ベクトルに基づいて予測を行うアルゴリズムであり、予測モデリングと呼ばれます。アイリス データセットの場合、アイリスの花を記述する 4 つの測定値を RBF ネットワークに提供します。 RBF ネットワークは、これら 4 つの測定値に基づいてアヤメの種を予測します。トレーニング例の 150 個の花のデータを使用して予測を行うことを学習します。このモデルは、トレーニング セットに含まれていなかった新しい花の種を予測できます。 モデルのトレーニング方法を確認しましょう。遺伝的アルゴリズムがモデルをトレーニングする方法を決定する主な部分は 3 つあります。 トレーニング設定; ハイパーパラメータはモデルの構造を定義します。 RBF ネットワークの構造を示す図 3-3 を考えてみましょう。 図3-3 アイリスデータセットを入力とするRBFネットワークの構造 図 3-3 の 2 番目の列には、凸形状の曲線を持つ 3 つのボックスが表示されています。これらは、RBF ネットワークが予測を行えるようにする RBF です。このタスクに必要な RBF ネットワークの数は、プログラマーまたはコンピューターによって決定できるハイパーパラメータです。 RBF の数は遺伝的トレーニングには影響しませんが、トレーニングに PSO と ACO を使用している場合は、RBF の数を設定する必要があります。ただし、注意が必要です。RBF の数を低く設定しすぎると、情報から学習できないほど単純なモデルが作成されます。一方、RBF の数を高く設定しすぎると、複雑でトレーニングが困難なネットワークが作成され、過剰適合につながる可能性があります。これは、モデルがより一般的なソリューションを学習するのではなく、データセットにデータを保存し始めるという望ましくない状況です。第 10 章では、過剰適合とそれを回避する方法について説明します。この章では、RBF の数を 5 に設定しましたが、これは Iris データセットに適しているようです。私は実験を通じてこの数値を決定しました。 コンピューターはハイパーパラメータを決定することもできますが、その場合、試行錯誤で見つけることが多いです。 1 から 10 個の RBF を循環させ、コンピューターに各ケースを試させます。 10 個の RBF すべてがテストされると、プログラムは最高スコアを達成するモデルを選択します。このモデルは、RBF ハイパーパラメータの数の最適な設定を教えてくれます。 最後のコンポーネントはパラメータ ベクトルです。モデルをトレーニングする際、モデルはパラメータ ベクトルを調整します。この側面は、トレーニングが開始されるとモデルがハイパーパラメータを調整しないという点でハイパーパラメータとは異なります。実際には、ハイパーパラメータはモデルを定義するものであり、変更することはできません。パラメータ ベクトルの調整は、トレーニング アルゴリズム (遺伝的アルゴリズム、PSO、ACO など) が特定の入力に対する正しい応答をモデルに教える方法です。遺伝的アルゴリズムは、交差と突然変異を使用してパラメーター ベクトルを調整します。 以下にリストされている出力は、遺伝的アルゴリズムを使用して Iris データセットで RBF ネットワークをトレーニングする進行状況を示しています。ご覧のとおり、最初の 10 回の反復ではスコアは向上しません。これらの各反復は、潜在的なソリューションの生成を表します。スコアは、誤分類された 150 個の虹彩の割合を表し、このスコアを最小限に抑えることを目指します。 反復 #1、スコア = 0.1752302452792032、種の数: 1 反復 #2、スコア = 0.1752302452792032、種の数: 1 反復 #3、スコア = 0.1752302452792032、種の数: 1 反復 #4、スコア = 0.1752302452792032、種の数: 1 反復 #5、スコア = 0.1752302452792032、種の数: 1 反復 #6、スコア = 0.1752302452792032、種の数: 1 反復 #7、スコア = 0.1752302452792032、種の数: 1 反復 #8、スコア = 0.1752302452792032、種の数: 1 反復 #9、スコア = 0.1752302452792032、種の数: 1 反復 #10、スコア = 0.1752302452792032、種の数: 1 ... 反復 #945、スコア = 0.05289116605845716、種の数: 1 反復 #946、スコア = 0.05289116605845716、種の数: 1 反復 #947、スコア = 0.05289116605845716、種の数: 1 反復 #948、スコア = 0.051833695704776035、種の数: 1 反復 #949、スコア = 0.05050776383877834、種の数: 1 反復 #950、スコア = 0.04932340367757065、種の数: 1 最終スコア: 0.04932340367757065 [- 0.55, 0.24, -0.86, -0.91] -> Iris-setosa、理想: Iris-setosa [-0.66, -0.16, -0.86, -0.91] -> Iris-setosa、理想: Iris-setosa [-0.77, 0. 0, -0.89, -0.91] -> Iris-setosa、理想: Iris-setosa ... [0.22, -0.16, 0.42, 0.58] -> Iris-virginica、理想: Iris-virginica [0.05, 0.16, 0.49, 0.83] -> Iris-virginica、理想: Iris-virginica [-0.11, -0.16, 0.38, 0.41] -> Iris-virginica、理想: Iris- バージニア 上記の出力では、種の数も表示される場合があります。現在、種を使用していないため、1 のままです。第5章では種について紹介します。 3.3 遺伝的アルゴリズムのその他の応用 これらのアプリケーションは現在この本には実装されていませんが、将来的には含まれる可能性があります。以下のサブセクションの主な目的は、さまざまな状況での遺伝的アルゴリズムの適用を示すことです。 3.3.1 タグクラウド<br /> タグ クラウドは、ドキュメント内の単語の頻度を視覚化するための便利なツールです。実際には、小さなタグ クラウドは非常に長いドキュメント内の一般的な単語を表すことができますが、タグ クラウド アルゴリズムでは、構造的な単語 (「the」など) が単語数から除外されることがよくあります。図3-4は、人工知能アルゴリズム(第1巻):基本アルゴリズムの英語版に基づいて作成されたタグクラウドを示しています。 図3-4 第1巻のタグクラウド 図 3-4 に示すタグ クラウドは、各単語の頻度を示しています。 「アルゴリズム」が論文 1 で最もよく使われる単語であることが簡単にわかります。 タグ クラウドを作成するには、単語を数える必要があります。図 3-4 に示すタグ クラウドの構築に使用された単語数は次のとおりです。 341 アルゴリズム 239 トレーニング 203 データ 201 出力 198 ランダム 192 アルゴリズム 169番 163 入力 ... 単語数は、各単語が他の単語と比較した頻度を示します。タグ クラウド内の単語は、単語間の空白が最小限になるように織り交ぜられています。この例では、短い単語が「algorithm」の「h」と「m」の下のスペースを埋めます。 タグ クラウドを作成する最初のステップは、いくつかの単語を選択し、そのサイズを決定することです。上記の単語数はこのステップを示しています。おそらく、ドキュメント内で最もよく使用される約 100 個の単語をタグ クラウドに含めることになります。タグ クラウド内の正確な単語数は、表示の美しさを考慮して調整されます。単語がテキスト内に出現する回数によって単語のサイズが決まります。 ギャップを解消することは遺伝的アルゴリズムの重要な応用です。 x 座標と y 座標、および方向インジケータが各単語を表します。 x 座標と y 座標は、ディスプレイ上の各単語の位置を示し、方向インジケータは、単語が水平か垂直かを示します。これら 3 つのデータ項目は、タグ クラウド内の単語数の 3 倍の長さのベクトルを生成します。 100 語を表示する場合、ベクトルの長さは 300 要素になります。ゲノムはギャップと重複したテキストに対してペナルティを受けます。タグ クラウドではテキストが重複してはいけません。したがって、次のようなスコアリング関数を作成する必要があります。 [空白ピクセル数] + ([重なりピクセル数] × 100) 遺伝的アルゴリズムは、このスコアリング関数を最小化するように努める必要があります。テキストが重なる場合は、係数を 100 増やす必要があります。 3.3.2 モザイクアート<br /> アート生成は遺伝的アルゴリズムのもう一つの非常に一般的な例です。コンピュータ アートのスコアリング関数を書くのは非常に簡単です。ソース画像を遺伝的アルゴリズムによって作成された画像と比較する必要があります。また、遺伝的アルゴリズムが画像を生成し、シミュレートされた創造性を表示できるように、一連のツールを遺伝的アルゴリズムに提供する必要があります。 人間の画家もほぼ同じように作業します。もちろん、画像を作成する最も簡単な方法はデジタルカメラで写真を撮ることですが、画家は独自のツール(ブラシと絵の具)を使用してアートを作成します。遺伝的アルゴリズムの場合、ツールはプログラミング言語のグラフィカル コマンドであり、スコアリング関数は元の画像と遺伝的アルゴリズムによって生成された画像を単純に比較します。たとえば、遺伝的アルゴリズムを制限して、いくつかの色だけを使用して円を描くことができます。プログラムで許可されている要素のみを使用して、遺伝的アルゴリズムが進化し、元の写真の可能な限り最高のレンダリングを生成します。このようにして、シミュレーションの創造性が実証されます。 遺伝的アルゴリズムを使用して作成されたコンピュータ アートの例としては、小さな画像の集合で構成された大きな画像であるモザイクがあります。メイン画像には画像のグリッドが含まれており、各グリッド セルに小さな画像が配置されます。図3-5はモザイクを示しています。
図3-5 オカメインコのモザイク 図 3-5 は、動物の画像から生成されたオカメインコのモザイクを示しています。オカメインコの画像は 2,048 x 2,048 ピクセルの大きさで、この動物の 32 x 32 ピクセルの小さな画像のグリッドでモザイクが構成されます。これらの小さな動物画像のグリッドを大きな画像に重ねると、64×64 のグリッドが形成されます。 (図 3 ~ 5 は、画像の一部のみを表示するためにトリミングされています。) 小さな動物の画像のセットが選択され、64×64 のグリッドに配置され、グリッド全体がオカメインコの外観を最もよく表せるようにしました。 各ゲノムは固定長配列であり、長さは 64×64、つまり 4,096 バイトです。スコアリング関数を使用して、生成されたモザイク画像と元の画像の違いを比較します。スコアが最小値まで下がると、オカメインコによく似たモザイクが完成します。 3.4 章のまとめ 遺伝的アルゴリズムでは、ソリューションを固定長の配列で表す必要があります。この要件は制限的であるように思われるかもしれませんが、多くのソリューションをこの方法で表現できます。この章では、巡回セールスマン問題とアイリス データセットについても説明しました。さらに、遺伝的アルゴリズムをタグクラウドやモザイクアートにどのように適用できるかについても説明しました。 固定長配列を超えて、第 4 章では実際のプログラムを進化させる方法を示します。実際、遺伝的プログラミングでは、次世代のためにより優れたプログラムを作成するために、コンピューター プログラムをツリーのような構造として表現できます。 |
<<: 仕事でアルゴリズムが使われることはほとんどないので、なぜアルゴリズムを学ぶ必要があるのでしょうか?
>>: 2021 年に注目すべき 27 の建設技術トレンド (パート 2)
本日、Windows 11 システムは Patch Tuesday でリリースされた最初の累積的な更...
[[442909]] [51CTO.com クイック翻訳]テスラは2019年4月に「Autonomy...
世界の自動車人工知能市場規模は、2022年の23億米ドルから2027年には70億米ドルに成長すると予...
中国語と英語のバイリンガル音声対話の最初のオープンソース モデルが登場しました。最近、arXivに音...
[[373822]] 2020年が終わりを迎えました。今年、人工知能(AI)分野は浮き沈みに富み、常...
わずか 1 年で、AIGC がもたらした業界を変革するアプリケーションは、徐々に人々の生活の隅々に浸...
生後 7 か月までに、ほとんどの子供は、物体は見えなくても存在するということを学びます。おもちゃを毛...
機械学習はデータから有用な洞察を引き出すことができます。目標は、Spark MLlib を使用して適...
OpenAI騒動の根本的な原因が明らかになったようです!海外メディアのニューヨーカー誌は、騒動の全容...
ここ数か月、私はたくさんのロボットに取り組んできました。このプロセスで私が学んだ教訓をいくつか紹介し...
[[276754]]業界のすべての実務者が合意に達することはまれですが、AI業界は例外です。ほぼすべ...