機械学習に携わるほとんどの人にとって、ニューラル ネットワークの設計は芸術作品の作成に似ています。ニューラル ネットワークは通常、共通のアーキテクチャから始まり、レイヤー、アクティベーション関数、正規化子、最適化パラメータの適切な組み合わせが見つかるまで、パラメータを継続的に調整して最適化する必要があります。 VGG、Inception、ResNet、DenseNet などのよく知られたニューラル ネットワーク アーキテクチャのガイダンスに従って、ネットワークが期待する速度と精度に達するまで、ネットワーク変数を繰り返し操作する必要があります。ネットワーク処理能力が向上し続けると、ネットワーク最適化プロセスを自動化することがますます可能になります。 ランダムフォレストや SVM などの浅いモデルでは、ハイパーパラメータの最適化のプロセスを自動化できました。 sk-learn などのよく使用されるツールキットには、ハイパーパラメータ空間を検索する方法が用意されています。最も単純で基本的な形式では、「ハイパーパラメータ」とは、すべての可能なパラメータの中から検索されるパラメータ、またはパラメータ分布から任意にサンプリングして取得されるパラメータです。 (詳細については、このリンクをクリックしてください。) どちらの方法にも 2 つの問題があります。1 つ目は、間違ったパラメータ領域を検索するときにリソースを浪費することです。2 つ目は、多数の動的機能パラメータ セットを処理するのに非効率的であることです。したがって、プロセッサ アーキテクチャを変更することは非常に困難になります。現在では、ベイズ最適化法など、一見効率的と思われる方法が数多く存在します。しかし、ベイズ最適化は最初の問題を解決できますが、2 番目の問題は解決できません。さらに、ベイズ最適化設定でモデルを探索することは困難です。 攻撃パターンを自動的に識別するというアイデアは新しいものではなく、最近の処理能力の向上により、これまで以上に簡単に実行できるようになりました。 問題設定ハイパーパラメータの最適化を考える方法の 1 つは、「メタ学習問題」として考えることです。 ネットワークのパフォーマンスが良好かどうかを判断するために使用できるアルゴリズムを作成できますか? 注: この問題を「メタ学習」と表現するのは少し混乱を招くかもしれませんが、以下では「メタ学習」という用語を使い続けます。ただし、これを「学習」に関連するいくつかの方法と混同してはなりません。 私たちの目標は、ネットワーク内の隠し層 (緑) の数と各隠し層のパラメータを定義することです。 具体的には、モデル アーキテクチャとモデルのパラメーター空間を調査して、特定のデータセットでのパフォーマンスを最適化します。問題は複雑であり、その見返りはわずかです。スパース報酬と言われる理由は、ネットワークを十分にトレーニングして評価する必要があり、トレーニングと評価が完了した後は報酬としていくつかのスコアしか得られないからです。これらのスコアはシステム全体のパフォーマンスを反映しており、このタイプの報酬は微分可能な関数ではありません。そういえば、何か思い出しますか?はい、これは典型的な「強化学習」の状況です。 Wikipedia では「強化学習」を次のように定義しています。 「強化学習」(RL)は、心理学の行動主義理論にヒントを得た重要な機械学習手法です。具体的には、「強化学習」とは、生物(エージェント)が環境(環境)の刺激を受けて、累積報酬を最大化する方法を学ぶことです。 「強化学習」と標準的な教師あり学習の違いは、正しい入力または出力のペアを表示する必要がなく、動作を最適化するために正確な調整も必要ないことです。さらに、「オンラインパフォーマンス」は「強化学習」の焦点でもあり、未知の領域の探索と既存の知識の発展のバランスを見つけることです。 上記のシナリオのエージェントはモデルであり、環境はトレーニングと評価に使用するデータセットです。インタープリターは、各動作を分析し、生物の状態 (この場合はネットワーク パラメーター) を設定するプロセスです。 通常、「強化学習」の問題は、マルコフ決定プロセスとして定式化されます。目標は、生物への総収益を最適化することです。各ステップで、モデル出力を最適化するか、新しい動作を探索するかを決定する必要があります。環境からの刺激を受けて、生物は受け取ったフィードバックに基づいて調整方針を形成し、継続的に行動を改善します。 注: このトピックはこの記事の範囲を超えています。R.Sutton と A. Barto による「Introduction to Reinforcement Learning」が、おそらくこのテーマに関する最高の入門書です。 進化的アルゴリズム 「強化学習」問題を解決するためのもう 1 つのアプローチは、「進化的アルゴリズム」です。生物の進化にヒントを得た進化型アルゴリズムは、一連のソリューションを作成することでソリューション空間を検索し、各ソリューションを評価し、評価スコアに基づいてソリューションのセットを継続的に調整します。生物進化論で言及される「進化」には、集団内の特定のメンバーの選択と変化が含まれます。したがって、当社のソリューション セットは、全体的な適応性を向上させ、問題に対する実行可能なソリューションを提供するために進化し続けます。 上の図の左側は進化のプロセスを示しています。「進化アルゴリズム」の設計には、「選択」と、従う必要のある「国境を越えた」または「突然変異」戦略という 2 つの部分が含まれます。 「選択」:「選択」では、通常、多様性を実現するために、最良の個体といくつかの任意の個体を選択します。より高度な選択方法は、個体群の下に異なる「サブグループ」または「種」を設定し、その種の多様性を保護するために種内の最良の個体を選択することです。もう一つの一般的なアプローチは「競争的選択」であり、これは競争に参加する個体をランダムに選択し、勝者(優れた遺伝子を持つ個体)を選ぶというものです。 「クロスオーバー」: 「クロスオーバー」は「交配」とも呼ばれ、2 つ以上の親のグループを交配させて子孫を生み出すことを指します。 「クロスオーバー」は、問題がどのように表現されるかによって大きく異なります。一般的なアプローチは、親を項目のリスト (通常は数値) で記述し、親から任意の部分を選択して新しい遺伝子の組み合わせを生成することです。 「突然変異」:「突然変異」または「変異」は、ゲノムを任意に変更するプロセスを指します。これは主要な発展要因であり、人口の多様性を維持するのに役立ちます。 実装「進化的アルゴリズム」の実装では、PyTorch を使用して、単純な分類タスクのために DNN を探索するエージェントを構築します。この実験では、CPU でもトレーニングできるほど小さくて高速な MNIST を使用します。 DNN モデルのセットを構築し、N ステップで進化させます。 私たちが話している「進化」という話題は、実際には「自然選択」の実装です。完全な高レベルの「進化アルゴリズム」は次のとおりです。
補足:建築業界の合併となると、国境を越えた問題は非常に複雑になります。 2 つの親構造をどのように結合しますか?欠陥パターンと環境統合トレーニングはこれにどのような影響を与えるでしょうか? Miikkulainen らによる最近の論文では、CoDeepNEAT と呼ばれるソリューションが提案されています。エボリーノ進化理論に基づいて、アーキテクチャはいくつかの単位モジュールで構成され、各単位モジュールは進化理論の対象となります。このアーキテクチャは、すべてのコンポーネントを組み込んだ理想的な青写真です。このようなシナリオでは、親のコンポーネントを混合することは完全に理にかなっています。なぜなら、それらの構成は完全なマイクロネットワークだからです。記事をより簡潔で分かりやすくするために、このアルゴリズムの実装における国境を越えた問題を避け、単に NEAT (または CoDeepNEAT) のようなソリューションを紹介しました。 (これらの解決策については、次の投稿でさらに詳しく説明する予定です。) 基本的な構成要素最初に定義する必要があるのは、各モデル (それぞれがアーキテクチャを表す) のソリューション スペースです。簡単にするために、n 個のレイヤーを積み重ねます。各レイヤーには、a) 隠れユニットの数、b) アクティベーション タイプ、c) ドロップアウト率という 3 つのパラメーターが含まれます。共通パラメータについては、さまざまなオプティマイザー、学習率、重み減衰、レイヤー数の中から選択します。
上記の操作を完了すると、モデルの空間が定義されます。次に、3 つの基本機能を確立する必要があります。 ランダムにネットワークを選択
まず、サンプル値が事前に定義された範囲の境界内に収まるように、レイヤーの数と各レイヤーのパラメータを任意にサンプリングします。パラメータを初期化するときに、任意のパラメータ ID も生成します。まだ使用可能ではありませんが、すべてのレイヤーを追跡できます。新しいモデルが変更されると、古いレイヤーは微調整され、変更されたレイヤーのみが初期化されます。これにより、ソリューションの速度と安定性が大幅に向上します。 注: 問題の性質に応じて、パラメータの合計数やレイヤーの合計数など、異なる制約が必要になる場合があります。 ネットワークの変異
各ネットワーク要素には突然変異の可能性があり、各突然変異によってパラメータ空間が再サンプリングされ、パラメータが変更されます。 ネットワークを構築する
上記のクラスは、モデルの「ゲノム」をインスタンス化します。 これで、任意のネットワークを構築し、そのアーキテクチャを変更してトレーニングするための基本的な構成要素が揃ったので、次のステップは、*** 個体を選択して変異させる「遺伝的アルゴリズム」を構築することです。各モデルのトレーニングは独立して実行され、他の生物からの情報は必要ありません。これにより、最適化プロセスは利用可能な処理ノードに応じて線形に拡張できるようになります。 GPオプティマイザのコーディング
「進化的アルゴリズム」は非常にシンプルに思えますよね?それは正しい!このアルゴリズムは、特に個体に対して適切なバリアントまたはクロスドメイン関数を定義している場合に、非常に成功する可能性があります。 リポジトリには、ワーカー クラスやスケジューラ クラスなどの追加の使用クラスも含まれており、GP オプティマイザーがモデルのトレーニングと評価を独立して並行して完了できるようになります。 コードを実行する上記の手順に従って実行してください。
次は手術の結果を見てみましょう! 一致サイズが 3 の 50 個のソリューションのスコアリング結果を以下に示します。モデルは 10,000 個のサンプルのみでトレーニングされ、その後評価されました。一見すると、最初の進化段階ではソリューションが最適に近かったのに、7 番目の段階ではソリューションが最高のパフォーマンスに達したため、進化アルゴリズムはあまりうまく機能しなかったようです。下の図では、ボックス プロットを使用して、これらのソリューションの 4 分の 1 を順番に示しています。ほとんどのソリューションはうまく機能しましたが、ソリューションが進化するにつれて、ボックス プロットも縮小することがわかりました。 図のボックスはソリューションの 4 分の 1 を示しており、そのウィスカーはソリューションの残りの 4 分の 3 の分布を示すように伸びています。黒い点は解の平均値を表しており、図から平均値が増加していることがわかります。 この方法のパフォーマンスと動作をさらに理解するために、完全にランダムな集団検索と比較しました。各ステージ間で進化は必要ありません。各ソリューションはランダムな状態にリセットされます。 EA は比較的小規模な集団ではより優れたパフォーマンスを発揮します (93.66% 対 93.22%)。ランダムな集団検索ではいくつかの優れたソリューションが生成されるように見えますが、モデルの分散は大幅に増加します。つまり、最適ではないアーキテクチャを探している間にリソースが浪費されることになります。これを進化グラフと比較すると、進化によって確かにより有用なソリューションが生成され、より優れたパフォーマンスを実現する構造がうまく進化していることがわかります。
この実験の規模は、この方法の利点を強調するには十分ではありません。これらの記事で使用されている実験はより大規模で、より複雑なデータセットを持っています。 私たちは、「適者生存」というテーマを非常によく表す単純な進化アルゴリズムを完成させました。私たちのアルゴリズムは、最終的な勝利のソリューションのみを選択し、それを変異させてより多くの子孫を生成します。次に必要なのは、より高度な方法を使用してソリューション グループを生成および開発することだけです。改善のための提案をいくつか示します。
上記はすべて人工知能研究の分野におけるトピックです。最も人気のある方法の 1 つは、NEAT とその拡張です。 EAT バリアントは、進化的アルゴリズムを使用してネットワークを開発し、同時にネットワークの重みも設定します。典型的な強化学習シナリオでは、エージェントの重みの進化は非常に可能です。ただし、(x,y) 入力ペアが利用可能な場合、勾配降下法のパフォーマンスが向上します。 関連記事 Evolino: ハイブリッドニューロエボリューション / シーケンス学習のための最適線形探索 進化するディープ ニューラル ネットワーク — これは、ネットワーク全体とネットワーク内のブロックを共進化させる非常に興味深いアプローチであり、CNN 向けの Evolino メソッドに非常に似ています。 画像分類器の大規模進化 進化による畳み込み この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式サイトにアクセスして許可を申請してください。 |
<<: データが限られている場合にディープラーニングモデルを最適化する方法
>>: Uber劉延東:Uberがフードデリバリーサービスを開始したとき、世界中のフードデリバリー会社は衝撃を受けた
さまざまなメーカーが続々と参入し、スマートカー市場はますます熱を帯びています。このような背景から、ス...
最近は「顔カード」、つまり「顔を売る」という言葉をよく耳にしますが、あなたの「顔」が身分証明書や電話...
昨年、微博で話題になった動画を覚えている人はどれくらいいるだろうか。『射雁英雄伝』で朱茵娜が演じ...
5月19日、Googleの開発者会議I/O 2021が開幕した。完全オンライン形式を採用し、Goog...
[[406604]]コロナウイルスの流行を受けて、企業はサプライチェーンの複雑性と労働力不足の課題を...
現在、5Gは世界的な注目を集めていますが、人工知能の開発は依然として力強いままです。各分野における技...
オンライン予約プラットフォームは人々の旅行計画の方法に革命をもたらし、モバイルアプリによりユーザーは...
この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...
SDK はゲームを自動的にプレイすることもできますか?この SDK はちょっと「クール」です。 [[...
クロード3号は今も奇跡を起こし続けています。公開からわずか数日後、ますます多くの博士号取得者が、未発...
[[421250]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitA...