機械学習とニューラルネットワーク - ページ 20

 

メガR4。ニューラルネット



メガR4。ニューラルネット

このビデオでは、表現、入力と出力の混乱、シグモイド関数とパフォーマンス関数、重みとバイアス、バックプロパゲーション、シグモイド関数とパフォーマンス関数の変更、しきい値の重み、視覚化、ニューラル ネットワークの可能性など、ニューラル ネットワークのさまざまな側面について説明します。インストラクターは、クイズに必要なさまざまな式と、デルタを再帰的に計算および調整する方法について説明します。彼はまた、単純な問題を解決するために必要なニューラル ネットワークの種類についても説明し、メリーランド大学でのゲーム プレイ コンテストでのニューラル ネットワークの最近の実世界への適用について言及しています。最後に、彼はニューラル ネットワークが研究の限界と複雑さのために支持されなくなった一方で、クイズにはまだ役立つと述べています。

  • 00:00:00 このセクションでは、Patrick が 603 の問題のニューラル ネットワークを描画する新しい方法を紹介します。彼は、同じニューラル ネットワークの 2 つの異なる表現を示し、右側のものが望ましい理由を説明します。彼はまた、入力と出力の混乱や暗黙の重みによる乗算など、ニューラル ネットワークを操作するときに学生がよく遭遇するいくつかの問題についても説明します。 Patrick は、古いクイズに取り組んでいる学生向けの変換ガイドを提供し、クイズに必要な公式に取り組んでいます。最後に、シグモイド関数が別の関数に変更される可能性について言及し、その場合はプラスに変更するよう学生にアドバイスしています。

  • 00:05:00 このセクションでは、インストラクターは、1 ÷ 1 プラス e からマイナス x であるシグモイド関数と、シグモイドの微分がそれ自体である重要な特性について説明します。ニューラルネットに結果がどれほど間違っているかを伝えるパフォーマンス関数についても説明します。彼らは、好みの関数を 1/2 D に選択しました。これは、望ましい出力から実際の出力の 2 乗を引いたものです。この理由は、パフォーマンスの導関数が負であり、計算が容易になるためです。次に、インストラクターは、シグモイド関数を他の関数に変更し、バックプロパゲーション関数、特に新しい重みの計算に何が起こるかを分析することについて話します。これには、目的の結果に向かって重みを段階的に変更することが含まれます。

  • 00:10:00 このセクションでは、スピーカーはニューラル ネットワークで使用される重みとバイアスについて説明します。重みは、「w1I」や「w2B」などの名前で表されます。ここで、「I」と「B」はネットワーク内のノードです。バイアス オフセットは常に -1 に付加され、山登りのステップのサイズを決定するアルファの値がクイズで出題されます。ノードへの入力は「I」で表され、特定の重みの変化によるニューラル ネットの出力の変化であるデルタが乗算されます。デルタは偏導関数を使用して計算され、重みがネットのパフォーマンスにどの程度寄与するかを判断します。

  • 00:15:00 このセクションでは、スピーカーは導関数とチェーン ルールを使用してニューラル ネットの最終レベルで最終的な重みを取得するプロセスについて説明します。シグモイド関数の導関数が使用され、新しい重みのデルタを計算するために、前のレイヤーの重みも考慮する必要があります。スピーカーは、特定のノードのすべての子を合計することを含む再帰的なソリューションを提案し、それが出力に影響を与えます。このプロセスは、最終的な重みのデルタが得られるまで再帰的に実行されます。

  • 00:20:00 このセクションでは、インストラクターが、シグモイド関数とパフォーマンス関数を変更すると、ニューラル ネットワークで使用される方程式にどのように影響するかについて説明します。彼は、シグモイド関数が変更された場合、変化するのはデルタ F 方程式だけであり、シグモイド関数の新しい導関数に置き換えられると説明しています。同様に、性能関数を交換する場合は、Delta F 式のみを調整する必要があります。次に、インストラクターは、ニューラル ネットワークのしきい値の重みと通常の重みの違いと、それらがネットワークの全体的な機能にどのように影響するかを説明します。

  • 00:25:00 このセクションでは、スピーカーは、ニューラル ネットワークを視覚化する方法と、問題を効果的に解決するために意味のある表現を持つことがいかに重要であるかについて話します。彼は、加算器ノードがどのように機能するか、およびその導関数は 1 つにすぎないことを説明しています。彼はデルタ F とデルタ a の公式を示し、パート B のプロセスを説明します。パート B では、ニューラル ネットワークの出力を計算し、1 ステップの逆伝播を実行して新しい重みを見つけます。彼は生徒たちに疑問を明確にするために質問をするように頼みます。

  • 00:30:00 このセクションのビデオでは、ニューラル ネットワークの新しい重みと、バックプロパゲーションの 1 ステップ後の出力について説明します。新しい重みは、古い重み、学習率定数、およびデルタ値を使用して計算されました。出力は最終的に 3 であると判断されました。その後、ビデオは、与えられたデータを学習するようにネットをトレーニングするとどうなるかという疑問を提起し、ニューラル ネットがネット内の各ノードのグラフにどのように線を引くことができるかを説明します。ただし、このネットが何を描くかを予測するのは少し難しいことに注意してください。

  • 00:35:00 トランスクリプトのこのセクションでは、スピーカーはニューラル ネットワークについて説明しています。ニューラル ネットワークは、毎回加算され、しきい値を取ることはなく、デジタルではなくアナログになるため、煮詰めると 1 つのノードになります。ニューラル ネットワークの簡略化された形式には、各円がシグモイドを持つ円で表されるノードが含まれます。 ABCDEF を 1 から 6 にそれぞれ 1 回だけ使用して一致させる必要があるという問題があります。話者は、各シグモイド ノードが画像に 1 本の線を描画できることを説明します。これは、両方の入力を受信した場合は斜めになり、1 つの入力を受信した場合は水平/垂直になります。セカンダリ レベル ノードは、最初の 2 つで and/or などの論理ブール演算を実行できます。次にスピーカーは、問題 6 である最も簡単な問題を特定し、問題への各ネットの 1 対 1 のマッピングがあり、6 つの問題すべてをまとめて解決できると結論付けます。

  • 00:40:00 このセクションでは、スピーカーは、1 つのノードで高くなければならない 2 つの入力を区別するのが難しいため、X またはニューラル ネットワークを作成することがいかに難しいかについて説明します。ただし、多くの可能性があり、スピーカーは、ノード 3 とノード 4 を使用して値を指定し、ノード 5 を使用して XOR になるしきい値の組み合わせを提供することを提案しています。 Bのように2本の横線をペアにすることは不可能ですが、Dさんは横線1本と縦線1本を引かなければならないので、Bを使って横線2本を作る必要があると話者は説明します。

  • 00:45:00 このセクションでは、スピーカーはニューラル ネットワークの描画演習の目的を説明します。簡単な問題を描くことで、それらを解決するために必要なニューラル ネットワークの種類がわかります。これにより、特定の問題に対して単純すぎる、または複雑すぎるニューラル ネットワークの設計を避けることができます。講演者はまた、メリーランド大学で行われたゲーム競技大会でのニューラル ネットワークの最近の実世界への適用例も示しています。

  • 00:50:00 ビデオのこのセクションでは、スピーカーはさまざまなタスクとルールを学習する際のニューラル ネットワークの可能性について説明します。彼は、一連のランダムなデータから何かを学習するようにニューラル ネットワークを訓練した実験について説明しています。実験の結果は不明でしたが、研究の他の参加者は、実験的テストを通じてルールの基本的な特性を見つけようとしました。講演者は続けて、ニューラル ネットワークは認知科学や人工知能を含む多くの研究分野で使用されてきましたが、その制限と複雑さのために支持されなくなったと説明しています。それにもかかわらず、講演者は、クイズの目的で単純なネットを作成していると述べていますが、今日の研究で使用されている実際のニューラル ネットワークは、クイズには複雑すぎることを明確にしています。
Mega-R4. Neural Nets
Mega-R4. Neural Nets
  • 2014.01.10
  • www.youtube.com
MIT 6.034 Artificial Intelligence, Fall 2010View the complete course: http://ocw.mit.edu/6-034F10Instructor: Mark SeifterWe begin by discussing neural net fo...
 

メガR5。サポート ベクター マシン



メガR5。サポート ベクター マシン

このビデオでは、サポート ベクター マシン (SVM) について説明しています。SVM は、他のデータ ポイントとは異なるサポート ベクターを見つけることによって、データの分割線または決定境界を決定します。また、カーネルがベクトルを直接操作せずに内積を計算できるようにするカーネル関数の使用も含まれます。教授は、最も広い道路に最適な W を提供するアルファを見つけるという目標と、W が SVM の決定境界である方法を明確にします。学生は SVM の背後にある直感について質問し、Alpha に基づく最適化によって、より優れたデータ分類への最も広い道が開かれます。 SVM カーネルは、プロセスの最適化にも役立ち、より効率的になります。

  • 00:00:00 このセクションでは、講演者はサポート ベクター マシン (SVM) を紹介し、コースで学ぶのが最も難しいものの 1 つであると述べています。しかし、膨大で複雑な一連の方程式を扱わなくても問題を解決できる近道がいくつかあると彼は説明します。当面の問題では、サポート ベクターを周回し、通りの端を描き、中央に点線を示し、W と B の両方を示す必要があります。スピーカーは、SVM の重要な方程式と、2 つの係数を使用して点線を見つける方法を説明します。ここで、W1 と W2 は 2 つの係数であり、X1 と X2 はベクトル X の 2 つのコンポーネントです。

  • 00:05:00 このセクションでは、デカルト座標の直線の方程式と、それがサポート ベクター マシンの方程式 W dot X plus B = 0 にどのように関係するかについて説明します。このビデオでは、境界を作成するための各ポイントの重要性を決定するためにアルファが使用されること、および正のアルファが負のアルファに等しいことを説明しています。このビデオでは、W と B を解くときに使用する方程式も提供し、解を決定する際にサポート ベクターが重要であることに言及しています。プレゼンターは、サポート ベクターは境界線上のベクターであり、目標はそれらを一周することであることを明確にします。

  • 00:10:00 このセクションでは、スピーカーはサポート ベクターとは何かという問題に取り組み、多数の次元が存在するより複雑な問題では、2 次元でグラフ化できない場合にデータ ポイントを表すためにベクターが使用されることを明確にします。 -次元平面。講演者は、サポート ベクターは超平面を結ぶ点であり、正のデータ点と負のデータ点の間に可能な限り広いスペースを確保しようとすることによって見つけられると説明しています。さらに、スピーカーは、3 番目のサポート ベクターが存在しない場合があることに注意し、平面上の点のペアの例を使用してその点を説明します。

  • 00:15:00 このセクションでは、スピーカーはサポート ベクター マシンで W と B を見つける方法を説明します。点を方程式に代入する古い方法を使用する代わりに、話者は方程式を y = mx + b の形式に変換するという安価な戦略を導入します。 y = x - 1 と設定することにより、スピーカーはこれを使用して新しい方程式 y = -w1/w2 - b/w2 を見つける方法を示します。この形式を使用して、話し手は無限に多くの可能な方程式があり、w1/w2 は -1 のスカラー倍数であり、B/w2 は 1 のスカラー倍数であることを示します。

  • 00:20:00 このセクションでは、スピーカーは、サポート ベクター マシンの W1、W2、および B を計算するために、K の値を決定する方法について説明します。 W の大きさは、2 乗した成分の合計の平方根を使用して計算できます。これは、4 の 2 乗根に等しくなります。W1 と W2 の比率はマイナス 1 に等しいため、2 乗すると、W1 の 2 乗は W2 の 2 乗に等しくなります。したがって、この式を使用すると、W1 は負の 1/4 と計算され、W1 は負であるため、W2 と B は正の 1/4 に等しくなります。話者はまた、アルファ プラスとアルファ マイナスの値が方程式に基づいて等しいことを示唆しています。

  • 00:25:00 このセクションでは、スピーカーは引き続きサポート ベクター マシンの例に取り組みます。話者は、例 2 では余分なマイナス記号が追加されていることに注意します。彼らは、この新しい負の符号を考慮して、サポート ベクターを決定する方法を説明し続けます。距離を決定するための計算が示され、W の大きさは 3 の 2 乗根であることがわかります。話者は、この例では新しい点が追加されているため、アルファの計算に時間がかかることに注意しますが、最終的な答えは得られます。 .

  • 00:30:00 このセクションでは、1 次元ベクトルでサポート ベクター マシンを使用することに焦点を当てています。これにより、データの分類に線形ベース ラインが不適切になります。この問題を解決するために、カーネル関数を使用してデータを新しい次元に取り込みます。この関数は通常 Phi と呼ばれ、ベクトル X に適用されると、この新しい次元にもたらされます。この新しい次元では、直線を引いてデータを分類できます。 SVM の発明者は、カーネルを使用して Phi を明示的に計算しなくても、新しい次元の 2 つのベクトル間の内積を計算できるため、たとえそれがひどいモンスターであっても、関数 Phi を使用する必要がないことに気付きました。

  • 00:35:00 このセクションでは、スピーカーは、カーネル関数を使用して、通常の空間で 2 つのベクトルのドット積を見つける方法を説明します。これにより、ベクトル自体を直接使用する必要がなくなります。ベクトル X と Z をカーネルに入れることにより、結果の関数は、2 つのベクトルの内積を置き換える Z の Phi でドット化された X の Phi を返します。スピーカーはカーネル関数の例を示し、聴衆に対応するファイ関数を見つけてクイズを解決するように要求します。講演者はまた、SVM のアルファの計算は複雑になる可能性がありますが、カーネル関数を使用すると、ベクトルを直接操作する必要がなくなる便利なショートカットになることにも注意してください。

  • 00:40:00 このセクションでは、コサイン値とサイン値を使用して新しい次元でポイントをグラフ化する方法について話します。プラスとマイナス、およびそれぞれのコサイン値とサイン値が表示されます。第 2 象限に 3 つのポイントがあり、第 3 象限に 3 つのポイントがあります。次に、スピーカーは、2 つのネガの違いと、垂直二等分線上の負の点と正の点であることがわかっているサポート ベクターの位置を特定する方法について説明します。 2 つの負の点は同じ線上にあり、二等分線の反対側ではなく円で囲まれています。

  • 00:45:00 このセクションでは、サポート ベクターの背後にある考え方と SVM での使用法について教授が説明します。彼は、サポート ベクターは他のデータ ポイントと同じではなく、SVM によって作成される分割線または境界はこれらのベクターによって決定されることを明確にしています。テスト データでは、点線が SVM の決定境界です。このアルゴリズムは、最も幅の広い道路に最適な W を与えるアルファの組み合わせを数学的にチェックすることで、アルファを最適化します。学生は SVM の背後にある直感を問いかけ、教授は W が決定境界であり、アルファに基づく最適化がデータをより良い方法で分類するための最も広い道を作り出すと説明します。 SVM Kerne は、最適化プロセスの最適化にも役立ち、プロセスをより簡単かつ効率的にします。
Mega-R5. Support Vector Machines
Mega-R5. Support Vector Machines
  • 2014.01.10
  • www.youtube.com
MIT 6.034 Artificial Intelligence, Fall 2010View the complete course: http://ocw.mit.edu/6-034F10Instructor: Mark SeifterWe start by discussing what a suppor...
 

メガR6。ブースティング



メガR6。ブースティング

ビデオ「Mega-R6.Boosting」では、講演者が機械学習におけるブースティングの概念を説明し、エラーを最小限に抑えるために正しい分類器を選択するプロセスを実演します。彼らは、特定の性質に基づいて吸血鬼を識別する例を示し、最も効果的な分類子を選択する方法について説明します。選択した分類子を使用して、データ ポイントに適用される最終的な分類子を作成し、正しく分類された数を決定します。スピーカーはまた、いつプロセスを停止するかを選択することが重要であることを強調し、完全な正確さを達成することは常に実現可能ではないことを認めています.

  • 00:00:00 このセクションでは、講演者は一連の異なる分類子を含む機械学習におけるブースティングの概念について説明します。例として使用されている問題には、悪、エモ、輝き、ロマンチックな興味の数などのさまざまな性質に基づいて吸血鬼を識別することが含まれます。ブースティングの鍵は、データが 50/50 に分割されていない限り、どのような分類器でも、それを何らかの方法で使用して優れた分類器を作成できることです。さらに、スピーカーの多くは、この特定の問題では無視される反対のバージョンを持っているため、リストされているものよりも実際には多くの分類子があることに注意してください。

  • 00:05:00 このセクションでは、スピーカーはコインを投げるのと同じくらい良いので、ブースティングの 50/50 分割がいかに役に立たないかを説明します。ただし、場合によっては、50/50 よりも悪い分類器でも、50/50 分類器よりも優れていることがあります。ブースティングの後のラウンドでは、各データ ポイントの重みを変更する必要があり、最高のパフォーマンスを発揮する分類器は、最も適切な重みを取得するものになります。通常、重みの半分未満の適切な分類器は問題ありませんが、話者は、逆関数を使用して半分以上の重みを適切にすることをお勧めします。

  • 00:10:00 このセクションでは、スピーカーは各分類子を調べて、どのデータ ポイントが誤分類されているかを判断します。すべての邪悪なものは吸血鬼であり、すべての非邪悪なものは吸血鬼ではないという仮定で、悪がノーに等しい場合、彼らは天使、エドワード・カレン、音無沙耶、レスタト・デ・リオンコートを間違っていると判断します。同様のロジックがエモ キャラクターと変身キャラクターに適用されます。ただし、sparkly が yes の場合は、1、2、4、5、6、7、8 と間違え、ロマンチックな関心の数が 2 より大きい場合は、Sercy と Edward Cullen を間違えます。ロマンチックな関心の数が 4 を超える場合、そのカテゴリに分類されるキャラクターはいないため、誤分類されることはありません。

  • 00:15:00 ビデオのこのセクションでは、スピーカーは吸血鬼の分類と、どの分類子が間違っている可能性が高いかについて説明します。スピーカーは、必然的に不正確な否定的な分類子につながる特定の肯定的な分類子があることに注意します。次にスピーカーは、いくつかの分類子をリストし、最も夢見ている中で、個人はそのうちの 6 つしか使用しないだろうと主張します。講演者は視聴者に、どの分類子が役立つと思うかについて意見を求め、使用する価値があると思われる分類子を丸で囲みます。有用と考えられる分類器は、分類器 E や F など、間違いが少ないものです。

  • 00:20:00 このセクションでは、スピーカーは、Mega-R6 でブーストするための正しい 6 つのデータ ポイントを選択するプロセスについて説明します。重要なポイントの 1 つは、選択できるさまざまなデータ ポイントがありますが、そのうちのいくつかは他のものよりも厳密に優れているということです。たとえば、データ ポイント F は常に E よりも悪いため、決して選択しないでください。講演者はまた、6 つのデータ ポイントを選択する際には、同じ不正解の厳密なサブセットを持たないデータ ポイントを選択することが重要であると述べています。 6 つのデータ ポイントを選択するプロセスでは、エラーを最小限に抑えるために、各データ ポイントの重みを慎重に考慮する必要があります。

  • 00:25:00 ビデオのこのセクションでは、プレゼンターがブースティングのプロセスと、タスクに最適な分類子を選択する方法について説明します。彼は、役に立たない分類器を削除する方法と、エラーを最小限に抑えるものを選択する方法を説明しています。次にプレゼンターは、ブースティング プロセスのデモンストレーションに移ります。まず、10 個のデータ ポイントすべてに均等に重みを付け、分類子 E を最適なものとして選択します。次に、エラーが 5 分の 1 で計算され、そこからプロセスが続行されます。

  • 00:30:00 ビデオのこのセクションでは、プレゼンターが、分類子が行うすべての決定を正しく行う方法を説明します。このプロセスでは、各決定の重みを、正しかった場合は 1/2、間違っていた場合は 1/2 に変更します。発表者は、このプロセスを自動化する方法を概説します。これには、重みを加算して最適な決定を選択しやすくする方法で重みを書き直すことが含まれます。この例では、誤差が最小の決定が選択されます。

  • 00:35:00 このセクションでは、講演者は Mega-R6 ブースティング ゲームで最適な分類子を決定するプロセスについて説明します。トランスクリプトには、円内外の数値の合計を含む計算と、円内の数値を変更して最適な分類子を決定しやすくするプロセスが含まれています。講演者は、分類子を決定する際には、以前のラウンドを無視し、現在の重みのみを考慮することが重要であると述べています。またスピーカーは、分類子を 2 回続けて使用することはできないことを説明し、この設計機能の理由について説明します。最良の分類器は、誤答の数が最も少ない A であると判断されます。

  • 00:40:00 トランスクリプトのこのセクションでは、スピーカーはブースティング法を使用して最終的な分類子を計算する方法について説明します。最終的な分類子は、それを作成するために使用された加重分類子の組み合わせです。次に、スピーカーは最終的な分類子を 10 個のデータ ポイントに適用して、正しく分類された数を決定し、単純な投票を使用して出力を決定します。 1 つのデータ ポイントである Twilight の Edward Cullen は正しくありません。これは、分類子の 3 人中 2 人が彼を吸血鬼として分類しなかったためです。

  • 00:45:00 ビデオのこのセクションでは、スピーカーはさまざまなキャラクターを、その特徴と恋愛対象に基づいて、悪、エモ、吸血鬼のいずれかに分類し、それらを分類する際のブースティング アルゴリズムの精度について説明します。議論は、複数の分類子を使用して分類プロセスを高速化することについての質問につながります。話者は、これはある程度正しいと説明しますが、より多くの分類子を使用する必要があります。スピーカーはまた、すべてを正しくするための収束プロセスは必ずしも容易ではなく、一定数のラウンド後に停止することを選択する必要がある場合があることを強調しています.
Mega-R6. Boosting
Mega-R6. Boosting
  • 2014.01.10
  • www.youtube.com
MIT 6.034 Artificial Intelligence, Fall 2010View the complete course: http://ocw.mit.edu/6-034F10Instructor: Mark SeifterThis mega-recitation covers the boos...
 

メガR7。ニアミス、アーチ学習



メガR7。ニアミス、アーチ学習

動画では、ヒヤリハット学習の概念を紹介し、光源の種類とその特徴を学習します。 Arch Learning アプローチでは、require リンク、forbid リンク、climb-tree、extend set、closed interval、drop link などの 6 つのヒューリスティックを使用してモデルを改良します。このビデオでは、セットの拡張、ツリーの登り、閉区間、リンクのドロップなど、機械学習で使用されるさまざまな手法について説明します。講演者はまた、アーチ学習モデルの脆弱性と順序付けに対する脆弱性に関連する問題についても話し、矛盾した情報に対する一貫性のない反応につながります。このビデオでは、Mega-R7 の一般化の概念と、それが以前のモデルとどのように異なるかについても説明しています。さらに、情報のサブセットを表現する能力の観点から、アイルランドの学習と格子学習の間のトレードオフについて説明し、実装の詳細が異なる複数のモデルを使用してシステムを教えます。

  • 00:00:00 このセクションでは、ヒヤリハット学習ツリーの概念を紹介します。これには、さまざまな種類の光源とその特性について学習することが含まれます。最初のモデルは、電気を動力とする平らなベースとシェードを備えた白熱電球です。アーチ学習アプローチでは、require リンク、forbid リンク、climb-tree、extend set、closed interval、drop リンクを含む 6 つのヒューリスティックを使用します。要求リンクは以前は無関係だった機能を要件にし、禁止リンクは機能を禁止します。これらのヒューリスティックは、特定の機能を必要または不要にすることでモデルを改良し、ニアミス シナリオを特定するのに役立ちます。

  • 00:05:00 このセクションでは、スピーカーは機械学習で使用されるさまざまな手法について説明します。これには、セットの拡張、ツリーの上昇、クローズド インターバル、リンクのドロップが含まれます。セットの拡張手法では、正の例のセットを作成しますが、スペースを節約するために特定の要素を禁止します。クライミング ツリー手法ではツリーを上に移動してより一般化されたモデルを作成しますが、閉区間は区間全体をカバーして許容できるようにします。ドロップ リンク手法を使用すると、すべての要素が受け入れられる場合にリンクをドロップすることで、システムを節約できます。次にスピーカーは、各手法の使用法を説明し、モデルが新しい例をより受け入れやすくし、クイズの時間を短縮するために、機械学習における知識の重要性を強調します。

  • 00:10:00 このセクションのビデオでは、ジェネラライザーの考え方と、ジェネラライザーをポジティブな例に拡張したり、狭い間隔で大きくしたりする方法について説明します。ただし、否定的な例がある場合、システムが複雑になる可能性があり、実装を調整する必要がある場合があります。次にビデオでは、ランプの例と、正の例がある場合にジェネラライザー ヒューリスティックを使用してモデルを適応させて間隔を一般化する方法を示します。否定的な例がある場合、実装では、システムを効果的に機能させるためにドロップリンク アプローチを使用する必要がある場合があります。

  • 00:15:00 ビデオのこのセクションでは、スピーカーは、1960 年代に開発された機械学習モデルの一種である Arch Learning モデルに関連するいくつかの問題について説明します。それらは、システムがどのように壊れやすく、特に順序付けに対して脆弱であるかを説明しています。つまり、データが提示される順序は、システムの学習能力に大きな影響を与える可能性があります。さらに、彼らは、システムがどのように一貫性を欠き、矛盾した情報にうまく反応しないかを説明しています。講演者は、格子学習と呼ばれる別のタイプの学習についても説明します。これは、これまでに見たすべての例を保存し、それらを新しい例と比較対照することで、パターンを識別し、トピックの理解を深めることができます。

  • 00:20:00 このセクションのビデオでは、エレガントさとシンプルさを追求するために意図的に物事を記憶しないシステムであるアーチ学習の概念について説明します。このセクションでは、このアイデアを、以前に遊んだブロックについて話すことができない赤ちゃんと比較します。ただし、人間は優れた教師であり、機械が学習できる適切な例を提供します。このビデオでは、範囲をより倹約的でエレガントかつシンプルにするのではなく、木を登ることによってヒットを一般化する方法についても説明しています。最後に、蛍光灯の例について説明します。一般化に使用されるヒューリスティックは、平坦なベースからベース サポート自体までツリーを登ることです。

  • 00:25:00 このセクションでは、スピーカーは Mega-R7 の新しいモデルと、それが以前のものとどのように異なるかについて説明します。ニアミスとは、システムが以前に見たものと類似しているがまったく同じではない入力に遭遇した場合です。スピーカーは、これらのヒヤリハットはモデルに変更を加える必要はなく、そのままにしておいてよいと説明します。さらに、スピーカーは、蛍光などの否定的な例がヒヤリハットと見なされるかどうかについての質問に対処し、システムは記憶がなく、蛍光が肯定的な例であったことを知らないため、ニアミスとは見なされないと答えます。 .

  • 00:30:00 このセクションでは、スピーカーは、情報のサブセットを表現する能力に関して、アイルランド学習とラティス学習のトレードオフについて説明します。アイルランドの学習は無記憶ですが、肯定的な例を見ずにサブセットを許容できると表現することはできません。これにより、表現力が失われる可能性があります。ただし、この問題は格子学習で修正されていますが、独自の問題があります。講演者はまた、さまざまな電球や電源を使用しながらベースサポートを持つという要件を満たす複数のモデルを提示するなど、システムを教える方法についても強調しています。どちらかを選択すると結果が異なる可能性があるため、実装の詳細を尋ねて明確にする必要があります。
Mega-R7. Near Misses, Arch Learning
Mega-R7. Near Misses, Arch Learning
  • 2014.01.10
  • www.youtube.com
MIT 6.034 Artificial Intelligence, Fall 2010View the complete course: http://ocw.mit.edu/6-034F10Instructor: Mark SeifterThis mega-recitation covers a questi...
 

AlphaGo - 映画 |受賞歴のある完全なドキュメンタリー



AlphaGo - 映画 |受賞歴のある完全なドキュメンタリー

囲碁で人間のプレイヤーに勝つように設計された AlphaGo コンピューター プログラムの開発に関するドキュメンタリー。この映画は、プログラムが 5 ゲームの試合で世界チャンピオンの人間のプレーヤーに勝利する様子を追っています。一部の視聴者は、AlphaGo の勝利は、私たちが知っている人類の終わりを告げるかもしれないと感じています.

  • 00:00:00 このビデオは、囲碁の世界チャンピオンである人間のプレーヤーに勝ったコンピューター プログラム、AlphaGo に関するものです。このビデオは、AlphaGo の勝利の重要性を説明し、コンピューターが人間のプレーヤーと対戦している映像を示しています。 AlphaGo の背後にある会社である DeepMind は、世界最強の囲碁プレイヤーである Demyster Harbis をロンドンのオフィスに招待して、プロジェクトの進行状況を確認したいと考えています。参加することに興味があるなら、彼らはとても感謝しています!

  • 00:05:00 DeepMind が開発したコンピューター プログラム、AlphaGo がプロの囲碁棋士イ セドルを 5 試合で破る。このドキュメンタリーは、プログラムの開発とトレーニングに対するチームの取り組みと、試合そのものを追っています。

  • 00:10:00 Google が開発したコンピューター プログラム、AlphaGo が、囲碁のヨーロッパ チャンピオンである李世ドルを 5 試合で破る。このドキュメンタリーは、AlphaGo の開発と試合の準備を追っています。当初は懐疑的でしたが、大衆は AlphaGo のパフォーマンスに大いに感銘を受けており、人工知能の分野における人間の支配の終わりの兆候としてそれを告げるものさえあります.

  • 00:15:00 囲碁で人間のチャンピオンを打ち負かすように設計されたコンピューター プログラムである AlphaGo は、先週行われた試合で、人間のプレーヤーであるイ セドルに公然と敗北しました。このビデオでは、損失の重大性と、AlphaGo チームがシステムを改善するための継続的な取り組みについて説明しています。

  • 00:20:00 「世界最高の囲碁棋士」と言われるコンピュータ プログラムの AlphaGo が、プロの人間の棋士と 5 試合で対戦します。 Fanway はチームのアドバイザーであり、チームの戦略を改善するのに役立ちます。

  • 00:25:00 AlphaGo は明日、韓国のプロ囲碁棋士、李世ドルと歴史的な試合で対決する予定です。ドキュメンタリーは、チームが試合の準備をし、彼らの期待について話し合う様子を追っています。

  • 00:30:00 ボード ゲームで人間のチャンピオンを倒したコンピューター プログラム、AlphaGo は、受賞歴のある完全なドキュメンタリーの主題です。このドキュメンタリーは、プログラムの開発と、人間の対戦相手との対戦の成功を追っています。

  • 00:35:00 Google が開発したコンピューター プログラム、AlphaGo が 5 試合で人間の世界チャンピオンを破る。プログラムの成功は、その経験から学ぶ能力と同様に、多くの人にとって驚きです。

  • 00:40:00 DeepMind によって開発されたコンピューター プログラムである AlphaGo が、プロの囲碁棋士を 5 試合で打ち負かしました。コンピューター プログラムは人間によって開発され、人工知能、研究のブレークスルーと見なされます。

  • 00:45:00 囲碁のゲームで人間のプロのプレーヤーを倒すように設計されたコンピューター プログラムである AlphaGo は、Google DeepMind Challenge のゲーム 2 でのパフォーマンスでオブザーバーを驚かせました。 AI のポリシー ネットワーク、バリュー ネット、およびツリー サーチはすべて、目の前のゲーム状況に最適な動きを予測するのに非常に効果的であり、AlphaGo の勝利につながりました。

  • 00:50:00 Google が開発したコンピューター プログラムである AlphaGo が、世界的に有名な人間のプレーヤーとのチャンピオンシップ マッチで勝利しました。このドキュメンタリーは、試合と AlphaGo の勝利の重要性を検証します。

  • 00:55:00 AlphaGo は世界チャンピオンの人間のプレーヤーに対して 3 試合中 2 試合で勝利しましたが、観客の悲しみと喪失感は明白です。 AlphaGo は単なるコンピューター プログラムですが、コメンテーターはこれを意識のある存在であるかのように言及し、その力が増大することの意味を懸念しています。
AlphaGo - The Movie | Full award-winning documentary
AlphaGo - The Movie | Full award-winning documentary
  • 2020.03.13
  • www.youtube.com
With more board configurations than there are atoms in the universe, the ancient Chinese game of Go has long been considered a grand challenge for artificial...
 

Deepmind AlphaZero - 人間の知識なしでゲームをマスターする



Deepmind AlphaZero - 人間の知識なしでゲームをマスターする

このビデオでは、DeepMind の深層強化学習アーキテクチャである AlphaZero の開発について説明します。AlphaZero は、統合されたポリシーと値のネットワークを利用して、事前の人間のデータがなくても巨大な状態空間を持つゲームで成功します。 AlphaZero のアルゴリズムでは、ニューラル ネットワークをトレーニングして、モンテカルロ ツリー検索全体によって選択されたアクションを予測し、知識を繰り返し抽出して、時間をかけてより強力なプレーヤーを生成します。このアルゴリズムは印象的な学習曲線を示し、わずか数時間のトレーニングで以前のバージョンを上回り、以前の検索エンジンよりも少ない位置を評価するにもかかわらず、驚くべきスケーラビリティを示しました。このビデオでは、人間と機械の最良のアプローチを組み合わせ、汎用強化学習の可能性を示す AlphaZero の能力についても説明しています。

  • 00:00:00 ビデオのこのセクションでは、David が AlphaGo について説明しています。AlphaGo は、DeepMind の深層強化学習アーキテクチャのオリジナル バージョンであり、人間のプロ プレーヤーと世界チャンピオンを打ち負かすことができました。 AlphaGo は 2 つの畳み込みニューラル ネットワークを利用します。確率の分布に基づいてプレイする動きを推奨するポリシー ネットワークと、ゲームの勝者を予測するバリュー ネットワークです。ネットワークは、人間のデータセットでの教師あり学習と強化学習、およびそれ自体に対して行われるゲームを通じてトレーニングされます。囲碁での AlphaGo の成功は、機械学習と人工知能ベースのアプローチが巨大な状態空間を持つゲームで成功する可能性を示しています。

  • 00:05:00 このセクションでは、講演者は AlphaGo のトレーニング パイプラインと、AlphaGo がポリシー ネットワークとバリュー ネットワークをどのように使用して、囲碁ゲームの広大な検索領域を考慮して検索をより扱いやすくするかについて説明します。ポリシー ネットワークは検索ツリーの幅を狭くする動きを提案しますが、バリュー ネットワークは任意の位置からゲームの勝者を予測して検索の深さを減らします。これにより、アルゴリズムはモンテカルロ ツリー検索を使用してツリーの重要な部分を効率的に検索できます。モンテカルロ ツリー検索は、最も関連性の高い部分のみを考慮して、大きな検索ツリーを選択的に効果的に拡張します。これにより、AlphaGo Master が開発されました。AlphaGo Master は、より深いネットワークとより多くの強化学習の反復でトレーニングされ、世界のトップランクの人間のプレーヤーに対して 60 対 0 で勝利しました。

  • 00:10:00 このセクションでは、スピーカーは AlphaGo Zero の開発について説明します。これは、完全にランダムなゲームから開始し、ゲームのルールのみを使用する代わりに、事前の人間のデータなしで囲碁のゲームをプレイする方法を学習します。 AlphaGo Zero は、手作りの機能を使用せず、ポリシー ネットワークとバリュー ネットワークを統合し、ランダム化されたモンテカルロ ロールアウトを使用せずに単純な検索を使用し、複雑さを軽減するための単純なアプローチを備えているという点で、元の AlphaGo とは異なります。任意のドメイン。 AlphaGo Zero のアルゴリズムには、各位置に対して現在のニューラル ネットワークを使用してモンテカルロ ツリー検索を実行し、提案された動きを実行してから、完成したゲームで到達した位置から新しいニューラル ネットワークをトレーニングすることが含まれます。

  • 00:15:00 このセクションでは、スピーカーは AlphaGo Zero アルゴリズムのプロセスを説明します。これには、すべての知識を抽出するためにモンテカルロ木探索 (MCTS) 全体によって選択されたアクションを直接予測するようにニューラル ネットワークをトレーニングすることが含まれます。ゲームの勝者を予測するために、新しい値ネットワークをトレーニングします。この手順を繰り返すことで、毎回より強いプレーヤーを生成し、より高品質のデータを生成することで、より強いプレーにつながります。 AlphaGo Zero は、その検索をポリシー評価に組み込むことで、検索ベースのポリシー改善を使用します。これにより、ニューラル ネットワークの高品質の結果と正確なトレーニング信号が可能になります。学習曲線は、AlphaGo Zero がわずか 72 時間で以前のバージョンを上回り、21 日後には人間のプレイヤーを 60 人上回ったことを示しています。

  • 00:20:00 このセクションでは、スピーカーは開発されたさまざまなバージョンの AlphaGo について説明します。最初のバージョンでは、ヨーロッパ チャンピオンを 0 まで 5 ゲーム差で破り、AlphaGo Zero はランダムな重みから完全にトレーニングされ、約 5,000 Elo であり、AlphaGo の最強バージョンです。新しいバージョンの AlphaZero は、チェス、将棋、囲碁の 3 つの異なるゲームに同じアルゴリズムを適用します。特にチェスのゲームは、人工知能の歴史の中で最も研究されている分野であるコンピューター チェスと同様に、AI で高度に研究された分野であり、現在人間よりも間違いなく優れている高度に専門化されたシステムで最高潮に達しています。

  • 00:25:00 このセクションでは、スピーカーは将棋のゲームの複雑さについて説明します。将棋は計算が難しく、チェスよりも大きくて興味深いアクション スペースがあります。彼は、将棋用の最強のコンピューター プログラムが人間の世界チャンピオン レベルに達したのはごく最近のことであり、DeepMind が追求する興味深いケース スタディであると説明しています。チェスと将棋の両方に対応する最先端のエンジンは、アルファ ベータ検索に基づいており、人間のグランドマスターによって長年にわたって調整されてきた手作りの評価関数によって強化されています。検索拡張機能。次にスピーカーは、トップ チェス プログラム Stockfish のコンポーネントを、文字通り同じコンポーネントをまったく持たない AlphaZero と比較し、セルフプレイ、強化学習、モンテカルロ探索に基づく原則的なアイデアに置き換えます。話者は、チェスは囲碁とは異なり、並進不変性が完全であり、対称性がなく、複合アクションによるより興味深いアクション スペースがあり、引き分けが含まれていることに注意します。

  • 00:30:00 このセクションでは、スピーカーはチェス、将棋、囲碁の 3 つのゲームの学習曲線について説明します。 AlphaZero は、すべてのゲームで同じネットワーク アーキテクチャと設定を使用してゼロからわずか 4 時間のトレーニングを行うだけで、チェスのゲームで世界チャンピオンの Stockfish を上回りました。 AlphaZero は、AlphaGo Zero の以前のバージョンと現在の世界チャンピオンの将棋を、わずか数十万歩、または 8 時間のトレーニングで簡単に打ち負かしました。 AlphaZero のモンテカルロ ツリー検索のスケーラビリティは、1 秒あたり約 7000 万の位置を評価する Stockfish を含む以前のプログラムで使用されたアルファ/ベータ検索エンジンと比較されましたが、AlphaZero は 1 秒あたり約 80,000 の位置しか評価しません。スピーカーは、ニューラル ネットワークのような深層関数近似器と組み合わせると、数桁少ない位置を評価するにもかかわらず、MCTS が非常に効果的である理由は、検索に存在する近似誤差を相殺するのに役立ち、それによってパフォーマンスが向上し、スケーラビリティ。最後に、AlphaZero は、チェスのゲームで最も一般的な 12 の人間のオープニングを選ぶことで、人間のチェスの知識を発見しました。

  • 00:35:00 このセクションでは、スピーカーは、AlphaZero の特定のチェス オープニングの使用と、セルフプレイ中にどのようにプレイしたかについて説明します。 AlphaZero はこれらのバリエーションをプレイするのにかなりの時間を費やしましたが、最終的には別のオープニングを好むようになり、より頻繁にプレイされたものを却下しました。講演者はまた、AlphaZero の方法を使用して、他のドメインに移行できる汎用深層強化学習の進歩についても言及しています。アルゴリズムが専門化されればされるほど、他のドメインに適応できなくなります。人間と機械を一緒に使用することは興味深い見通しですが、講演者は、AlphaZero が以前のチェス プログラムよりも人間的な方法でプレーすることを強調し、両方の長所を組み合わせる能力を示しています。

  • 00:40:00 このセクションでは、スピーカーはゲームのルールを人間の知識として AlphaGo Zero に埋め込んだだけですが、これにはアクションの基本的なエンコードとデコードが含まれていると説明しています。たとえば、チェスでは、空間表現を使用して、拾う駒と、それを置くために使用された平面をエンコードしました。アクションスペースから不正な動きを排除します。話者はさらに、ゲームごとに 1 回しか実行しなかったため、実験にエラーバーを含めなかったと説明しています。ただし、彼らは複数の実験を実行しており、結果は非常に再現性があります。
Deepmind AlphaZero - Mastering Games Without Human Knowledge
Deepmind AlphaZero - Mastering Games Without Human Knowledge
  • 2018.01.29
  • www.youtube.com
2017 NIPS Keynote by DeepMind's David Silver. Dr. David Silver leads the reinforcement learning research group at DeepMind and is lead researcher on AlphaGo....
 

AlphaGo - AI が史上最も難しいボードゲームをマスターした方法



AlphaGo - AI が史上最も難しいボードゲームをマスターした方法

このビデオでは、AlphaGo Zero の技術的な詳細を探っています。AlphaGo Zero は、人間のデータセットを使用せずにセルフプレイで完全にトレーニングされた AI システムです。このシステムは、残差ネットワーク アーキテクチャと 2 つの研究アプローチを使用して、価値と強い動きを予測しました。このビデオでは、ゲームの結果を予測する機能や、囲碁のよく知られている手から離れたシステムの発見と移動など、行われた改善点が強調されています。ただし、システムの実世界への適用は、完全なシミュレーターの必要性によって制限されており、このアプローチを他の分野に適用することは困難です。

  • 00:00:00 このセクションでは、以前のバージョンに対する AlphaGo Zero の改善点の技術的な詳細について説明します。最初の大きな変更点は、AlphaGo Zero が完全にセルフプレイでトレーニングし、プロの囲碁プレイヤーのデータセットを使用しないことです。また、これまでゲームで手作りされていた機能は一切使用せず、代わりにボードの状態を観察することで完全に学習します。ネットワーク アーキテクチャは完全に残余のアーキテクチャに変更され、個別のポリシー ネットワークと評価ネットワークを持つ代わりに、両方を実行する単一の大規模ネットワークに結合されました。モンテカルロのロールアウトは、単一のネットワークを使用して価値予測を行い、強力な動きを生み出す、より単純な 2 つの調査アプローチに置き換えられました。全体として、これにより、19 x 19 x 16 の 2 進数のボード表現、残差ネットワーク、および特徴ベクトルから生成される値表現とポリシー ベクトルが得られました。

  • 00:05:00 このセクションでは、ネットワーク アーキテクチャを使用して、AlphaGo がどのように良い手をプレイするようにトレーニングされたかを説明します。これにより、良い手が出る確率が高くなり、悪い手が出る確率が低くなります。 AlphaGo の最初のバージョンは、プロの囲碁の動きのデータセットに対する教師あり学習を使用してトレーニングされた後、セルフプレイを使用してステージを微調整しました。しかし、新しいバージョンの AlphaGo Zero は、データセットを一切使用せず、モンテカルロ木探索を使用して完全にセルフプレイで学習し、自重トレーニング プロセスを安定させます。検索ツリーを展開し、モンテカルロ木検索を使用することで、システムはどの動きが強く、どの動きが弱いかを推定できます。最後に、このビデオは、このプロセスが完全なシミュレーターを備えた囲碁のようなゲームに固有のものであることを強調しており、このアプローチの現実世界への適用を困難にしています.

  • 00:10:00 このセクションでは、スピーカーは、AlphaGo のネットワーク アーキテクチャで行われた改善を示すさまざまなグラフについて説明します。 1 つのグラフは、現在のボードの位置に基づいてゲームの結果を予測する AlphaGo Zero ネットワークの能力を示しており、以前のバージョンよりも大幅に改善されています。講演者はまた、通常の畳み込みアーキテクチャから残差ネットワークへの移行によって大幅な改善がもたらされたことにも言及しています。さらに、AlphaGo Zero がどのように囲碁のよく知られている動きを発見し、次に進んだかをグラフで示しています。全体として、講演者は Google DeepMind チームの結果に感銘を受けており、視聴者にコメント セクションで質問するよう促しています。
AlphaGo - How AI mastered the hardest boardgame in history
AlphaGo - How AI mastered the hardest boardgame in history
  • 2017.11.13
  • www.youtube.com
In this episode I dive into the technical details of the AlphaGo Zero paper by Google DeepMind.This AI system uses Reinforcement Learning to beat the world's...
 

ゼロからの AlphaZero – 機械学習チュートリアル



ゼロからの AlphaZero – 機械学習チュートリアル

00:00:00 - 01:00:00 ビデオ「AlphaZero from Scratch – Machine Learning Tutorial」では、Python と PyTorch を使用して AlphaZero アルゴリズムを構築およびトレーニングし、超人的なレベルで複雑なボード ゲームをプレイする方法を、Tic の例とともにユーザーに説明しています。 -tac-toe と Connect 4. アルゴリズムの重要なコンポーネントの 1 つはモンテカルロ ツリー検索です。これには、最も有望なアクションの選択、ツリーの拡張、およびゲームのシミュレーションが含まれ、結果はトレーニング用に逆伝播されます。このチュートリアルでは、モンテカルロ リサーチ アルゴリズム中のノードの拡張、セルフプレイのプロセス、ポリシーと MCTS 分布の差、および価値と最終的な報酬の差を最小化する損失関数を使用してモデルをトレーニングする方法を示します。ビデオは、Tic-tac-toe ゲームを作成し、while ループでテストして終了します。

01:00:00 - 02:00:00 AlphaZero をゼロから構築するチュートリアルのこのセクションでは、講師が Tic-tac-toe ゲームのモンテカルロ木探索 (MCTS) アルゴリズムの実装を実演します。このアルゴリズムは、MCTS の新しいクラスを通じて実装されます。このクラスには、選択、展開、シミュレーション、および逆伝播フェーズの反復反復のループを定義する検索メソッドが含まれています。このビデオでは、AlphaZero ニューラル ネットワークのアーキテクチャの実装についても説明します。これには、ポリシー用と値用の 2 つのヘッドが含まれ、スキップ接続を使用した残差ネットワークが使用されます。ポリシー ヘッドはソフトマックス関数を使用して最も有望なアクションを示し、バリュー ヘッドは現在の状態がどの程度良好であるかを推定します。講演者は、ResNet クラスの開始ブロックとバックボーンの実装についても説明し、AlphaZero モデルを使用して Tic-Tac-Toe で特定の状態のポリシーと値を取得する方法について説明します。

02:00:00 - 03:00:00 「AlphaZero from Scratch」チュートリアルでは、機械学習による AlphaZero アルゴリズムの構築について説明しています。プレゼンターは、MCTS アルゴリズムの更新、セルフプレイ、トレーニング方法から、確率分布への温度の追加、モデルの重み減衰と GPU サポート、ルート ノードへのノイズの追加などの改善まで、幅広いトピックをカバーしています。このチュートリアルでは、ノードの状態をエンコードする方法、ポリシーと値の出力を取得する方法、ソフトマックス、有効な動き、ディリクレ ランダム ノイズを使用してポリシーを微調整して探索を追加する方法を示すことで、これらの機能の実装を順を追って説明します。有望な行動は見逃されません。

03:00:00 - 04:05:00 機械学習を使用してゼロから AlphaZero を作成するこの YouTube チュートリアルでは、インストラクターはさまざまなトピックについて説明しますより複雑なゲーム、Connect Four ゲームを作成するためのソース コードの更新、並列化による AlphaZero 実装の効率の向上、セルフプレイ ゲーム用の Python での 2 つの新しいクラスの作成、状態のエンコードによる効率の向上、モンテカルロ ツリー検索アルゴリズムの実装AlphaZero の場合、並列化された fs0 を使用して Connect Four のモデルをトレーニングします。このチュートリアルでは、効率的かつ効果的な AlphaZero 実装の作成に焦点を当てた、各トピックに関する段階的なガイダンスを提供します。プレゼンターは、Kegel 環境パッケージを使用して Connect Four 環境を作成する方法を示し、トレーニング済みの AlphaZero モデルに基づく MCTS 検索アルゴリズムを使用する 2 つのエージェントでゲームを実行および視覚化します。また、プレゼンターはコードに小さな修正を加え、トレーニング済みのモデルに基づく予測に MCTS アルゴリズムを使用して、プレイヤー 1 をエージェントとして定義します。チュートリアルは、プレゼンターが、各チェックポイントの jupyter ノートブックを含む GitHub リポジトリと、Tic-tac-toe と Connect Four の最後のモデルを含む weights フォルダーを提供することで終了し、Mu Zero に関するフォローアップ ビデオがあれば作成することに関心を示しています。それへの関心。


パート1

  • 00:00:00 このセクションでは、チュートリアルで AlphaZero の概念を紹介します。これは、機械学習技術を使用して複雑なボード ゲームを超人的なレベルでプレイする方法を学習する AI アルゴリズムです。このアルゴリズムは当初 DeepMind によって開発され、Go などのゲームで印象的な結果を達成し、数学で新しいアルゴリズムを発明することさえできます。このチュートリアルでは、Python と PyTorch を使用してゼロから AlphaZero を構築し、Tic-tac-toe や Connect 4 などのゲームでそれをトレーニングして評価する方法をユーザーに説明します。アルゴリズムにはセルフプレイとトレーニングの 2 つのコンポーネントがあり、ニューラル ネットワークを使用して入力状態に基づいてポリシーと値を生成します。このサイクルを繰り返すことで、アルゴリズムは自分自身を最適化し、人間よりも上手にゲームをプレイできるようになります。

  • 00:05:00 このセクションでは、動画でモンテカルロ木探索、セルフプレイに使用される探索アルゴリズム、および一般的なアルゴリズムについて説明します。状態 (この場合はブロックの位置) を取り込み、将来にツリーを構築することで最も有望なアクションを見つけます。各ノードには、状態と、その方向でプレイしたときに達成された勝利の合計数、および合計訪問数が保存されます。各ノードの子の勝率は、最も有望なアクションを決定するために使用され、この情報は三目並べのような実際のゲームで使用できます。ノードのデータは、さらに展開できるリーフ ノードに到達するまで、選択フェーズでツリーをたどって生成されます。

  • 00:10:00 このセクションでは、スピーカーは、ゲームをプレイするためのモンテカルロ木探索 (MCTS) に含まれるさまざまなフェーズについて説明します。選択フェーズでは、より高い UCB 式を持ち、アクセス回数が比較的少ない子ノードを選択します。拡張フェーズでは、新しいノードを作成してツリーに追加します。シミュレーション フェーズでは、ターミナル ノードに到達するまでランダムにゲームをプレイします。バックプロパゲーション フェーズでは、シミュレーション フェーズで得られた結果がツリーを逆伝播し、各ノードの獲得回数と訪問回数が更新されます。

  • 00:15:00 ビデオのこのセクションでは、アルゴリズムがツリーをたどって次のノードを選択する選択フェーズから始めて、インストラクターがモンテカルロ ツリー検索 (MCTS) プロセスの例を説明します。次に、新しいノードが作成される拡張フェーズに進み、その後、ターミナル ノードに到達するためにランダムなアクションが実行されるシミュレーション フェーズに進みます。次に、アルゴリズムは、ゲームに勝ったか、負けたか、またはルールに違反したかどうかをチェックします。ゲームに勝ったため、逆伝播が実行され、MCTS プロセス中に通過したノードの勝利数と訪問数が更新されます。このプロセスは、新しい選択フェーズと拡張フェーズで繰り返され、新しいノードが作成され、シミュレーション フェーズがもう一度実行されます。

  • 00:20:00 このセクションでは、チュートリアルは、AlphaZero を使用して MCTS アルゴリズムでシミュレーションと逆伝播のプロセスを実行します。このチュートリアルで示されている例は、シミュレーション段階での損失を示しています。逆伝播すると、訪問回数だけが増加し、シミュレーション中に AI がゲームに負けたため、合計勝利数は変わりません。その後、チュートリアルは、AlphaZero を使用した MCTS の選択および拡張プロセスの説明に移ります。このチュートリアルでは、各子の UCB スコアを計算する方法と、スコアが最も高い子を選択する方法を示します。このプロセスは、展開が行われるリーフ ノードに到達するまで、各ノードの UCB 式を計算する AI で繰り返されます。

  • 00:25:00 チュートリアルのこのセクションでは、一般的な AlphaZero アルゴリズムに適応させたときに、モンテカルロ研究手法がどのように変化するかに焦点を当てています。アルゴリズムに加えられた 2 つの重要な変更があります。最初に、モデルから取得されたポリシーは、ポリシー情報で UCB 式を更新することにより、選択フェーズに組み込まれます。次に、シミュレーション フェーズが省略され、ニューラル ネットワークから取得された値が、選択フェーズのポリシーと共に逆伝播に使用されます。これらの変更により、ゲームのプレイ方法を理解するモデルがあれば、モンテカルロの研究手法が大幅に改善されます。

  • 00:30:00 ビデオ「AlphaZero from Scratch – 機械学習チュートリアル」のこのセクションでは、プレゼンターが小さな変更を加えて、拡張フェーズ中にオイルの可能な方向を拡張し、新しいノードを 1 つだけ作成するのではなく、すべての可能なノードを作成できるようにします。ノード。次に、ホワイトボード上で繰り返し作業を行い、多色の研究がどのように適応されているかを示します。拡張段階では、ニューラル ネットワークを呼び出してポリシーと値を取得し、勝利数、訪問回数、およびポリシー情報をノードに追加することによって、新しいノードが作成されます。次に、逆伝播ステップで、値が逆伝播されます。プレゼンターは、UCB の公式に言及し、訪問回数がゼロのノードの勝率は計算できないことに注意します。これは、ゼロによる除算エラーを回避するために対処する必要があります。

  • 00:35:00 チュートリアルのこのセクションでは、スピーカーはモンテカルロ リサーチ アルゴリズム中にノードを展開するプロセスを説明します。このアルゴリズムは、ゲームの特定の状態に最適な動きを決定するために使用されます。スピーカーは、ノードがどのように展開されるか、および各子ノードのポリシーと値がどのように計算されるかの例を順を追って説明します。新しい子ノードの値をルート ノードに逆伝播するプロセスについても説明します。次に、チュートリアルはセルフプレイのプロセスを説明します。このプロセスでは、ゲームはアルゴリズムによってそれ自体に対してプレイされます。空白の状態から始まり、モンテカルロ調査を使用して、ルートノード。

  • 00:40:00 このセクションでは、Monte Carlo Tree Search (MCTS) を使用してモデルをトレーニングする方法を説明します。目標は、MCTS 分布や各状態の報酬など、プレイ中に得られたすべての情報を保存することです。報酬は、その状態のプレーヤーのゲームの最終結果によって異なります。データを収集したら、それを使用して、ポリシーと MCTS 分布と値 V と最終的な報酬 Z の差を最小化する損失関数を使用してモデルをトレーニングします。バックプロパゲーションを使用して、モデルのシータ。全体として、このプロセスは、モデルがゲームのプレイ方法をよりよく理解し、最適化するのに役立ちます。

  • 00:45:00 このセクションでは、機械学習を使用してゼロから AlphaZero を構築するためのビデオ チュートリアルが、Jupyter ノートブックを作成し、行と列のカウント、およびアクション サイズを使用して三目並べの簡単なゲームを構築することから始まります.次に、チュートリアルでは、初期状態、アクションが実行された後の次の状態、および正当な動きを取得するためのメソッドを記述します。アクション入力は、NumPy 配列で使用される行と列の形式にエンコードされます。コードは、さまざまな環境やボード ゲームを解決できるように柔軟に記述されており、Connect Four に拡張する予定です。

  • 00:50:00 このセクションでは、YouTuber が、移動後にプレーヤーが勝ったかどうかを確認するメソッドを作成しています。まず、手番の行と列を取得してから、手番を行ったプレイヤーを特定します。次に、np.sum メソッドと np.diac メソッドを使用して、三目並べ (行 3 つ、列 3 つ、対角線 2 つ) のゲームに勝つためのすべての可能な方法をチェックします。さらに、有効な動きの合計を計算し、それがゼロかどうかをチェックすることで引き分けをチェックします。最後に、get value と呼ばれる新しいメソッドを作成し、ゲームが終了した場合は値と true を返すメソッドを終了します。

  • 00:55:00 このセクションでは、作者は三目並べゲームと対戦相手を変更するメソッドを記述します。ゲームを実行してテストし、while ループを使用します。ループでは、状態と有効な動きが出力され、ユーザーは動きを入力するように求められます。ゲームは、アクションが有効かどうか、およびゲームが終了したかどうかを確認します。ゲームが続く場合、プレーヤーはひっくり返されます。値が 1 に等しい場合、プレイヤーが勝ち、引き分けがあった場合は出力されます。

パート2

  • 01:00:00 機械学習を使用してゼロから AlphaZero を構築するチュートリアルのこのセクションでは、インストラクターはデモンストレーション目的で使用するゲームとして三目並べを選択することから始めます。マルチカラー リサーチ (MCTS) 用の新しいクラスが作成され、ゲームとハイパーパラメーターを引数として初期化されます。このクラス内で、選択、展開、シミュレーション、および逆伝播フェーズを繰り返すためのループを使用して検索メソッドが定義され、最終的にルート ノードの子の訪問カウント分布が返されます。次に、ゲームの状態、親、実行されるアクション、子、訪問回数などの属性を使用して、ノードのクラスが定義されます。ルート ノードは、ゲーム、ハイパーパラメータ、初期状態、および親と実行されるアクション プレースホルダーの None で定義されます。

  • 01:05:00 このセクションでは、AlphaZero アルゴリズムでゲームプレイ中にツリー内のノードを選択するプロセスをビデオで説明します。ノードが完全に展開されているかどうかを判断する方法は、展開可能な移動の数に関する情報と、ノードが終了していないかどうかを使用して定義されます。選択段階では、ノードが完全に展開されている間、アルゴリズムは下向きに選択します。選択のために、アルゴリズムはノードのすべての子をループし、各子の UCB スコアを計算してから、UCB スコアが最も高い子を選択します。 UCB スコアは、Q 値、探査または開発用の定数 C、および対数関数を使用して計算されます。 Q 値は、子供の訪問合計を訪問回数で割ったものとして定義され、Q 値が 0 から 1 の範囲になるように調整されます。

  • 01:10:00 このセクションでは、ビデオ チュートリアルで AlphaZero の選択プロセスについて説明します。コードは、非常に負の値または低い値を持つ子を選択します。これを選択すると、対戦相手が悪い状況に置かれるためです。次に、子の Q 値を反転して、親の Q 値をほぼ 1 にします。このようにして、ツリーは、子が悪い位置にあるように処理されます。このビデオでは、これらの変更をコードに実装する手順を説明し、最終的に選択されたノードがターミナル ノードかどうかを確認することの重要性を説明しています。さらに、get value 属性でゲームのパースペクティブを説明する新しいメソッドが追加されました。
     
  • 01:15:00 機械学習を使用してゼロから AlphaZero を構築するチュートリアルのこのセクションでは、ノードがターミナルであるかどうかを確認し、逆伝播し、拡張とシミュレーションを実行する方法をインストラクターが説明します。定義されたものから 1 つの拡張可能な Move をサンプリングすることにより、子の新しい状態が作成され、select メソッド内で後で参照できるように新しいノードが子のリストに追加されます。インストラクターはまた、プレーヤーを明示的に定義するのではなく、状態を反転してプレーヤーを変更するというアイデアについても説明します。これにより、1 プレーヤー ゲームのロジックが単純になり、コードが有効であることを確認できます。

  • 01:20:00 このセクションでは、スピーカーが三目並べゲームの子ノードを作成し、視点変更方法を説明しています。彼らはプレーヤーを対戦相手の-1に設定し、乗算を使用して視点を反転させます。子ノードを作成した後、それを子リストに追加して返します。次に、スピーカーはシミュレーション プロセスの説明に移ります。ここでは、ターミナル ノードに到達して値が取得されるまで、ロールアウトを使用してランダムなアクションを実行します。取得した値を使用して、ノードのプレーヤーが勝ったノードをより有望であると逆伝播します。

  • 01:25:00 ビデオのこのセクションでは、司会者が AlphaZero ゲームプレイ プログラムのモンテカルロ木探索 (MCTS) アルゴリズムの構築を続けています。現在の生の状態を使用してアクションを選択し、次の状態を取得して、その状態が終了かどうかを確認する方法を示しています。プレゼンターは、if ステートメントを記述して、プレイヤー 1 またはプレイヤー 2 がゲームに勝ったときに正の値を受け取るかどうかを区別し、逆伝播メソッドを記述して、各ノードの値と訪問回数を更新します。最後に、プレゼンターは、最も有望なアクションの確率を計算する変数 action_props を作成します。

  • 01:30:00 このセクションのビデオ チュートリアルでは、ゲーム Tic-tac-toe 用にスタンドアロンのモンテカルロ木探索 (MCTS) アルゴリズムを実装する方法を示します。このチュートリアルでは、すべての子をループして、各子のアクション プロパティを記述する方法を示します。各子の訪問回数は、それらを確率に変換するために使用されます。次に、確率の合計を 1 で割り、確率に変換します。その後、MCTS オブジェクトが作成され、2 の平方根が UCB 式の C 値に使用されます。スクリプトはゲームに対してテストされ、アルゴリズムは中立状態でテストされます。次に、MCTS ツリーを best child 関数と共に使用して、最も多くアクセスされた子を返します。

  • 01:35:00 このセクションでは、AlphaZero アルゴリズムのニューラル ネットワークのアーキテクチャについて説明します。ニューラル ネットワークへの入力として与えられる状態は、プレイヤーの正の平面、プレイヤーの負の平面、空のフィールドの 3 つの異なる平面にエンコードされたボードの位置です。このエンコーディングにより、パターンを認識し、ゲームのプレイ方法を理解することができます。使用されるニューラル ネットワーク アーキテクチャは、初期 X 値を格納し、畳み込みブロックからの出力と初期 X 値の合計として出力を与えるスキップ接続を備えた残差ネットワークです。このモデルは、ポリシー ヘッドとバリュー ヘッドの 2 つの部分に分割されます。三目並べの場合、ポリシー ヘッドには 9 つのニューロンがあり、潜在的なアクションごとに 1 つです。

  • 01:40:00 このセクションでは、スピーカーが AlphaZero ニューラル ネットワークのアーキテクチャをゼロから説明します。ネットワークには 2 つの「頭」があり、1 つはポリシー用、もう 1 つは値用です。ポリシー ヘッドには 9 つのニューロンがあり、その出力にソフトマックス関数を適用して、特定のアクションがどれだけ有望かを示す確率分布に変換します。バリュー ヘッドにはニューロンが 1 つしかなく、10h 活性化関数を使用してすべての潜在的な値を負の 1 から正の 1 の範囲に押しつぶし、現在の状態がどの程度良好かを推定します。このコードは、PyTorch 深層学習フレームワークを使用して Jupyter ノートブック内に構築されています。このモデルには開始ブロックと畳み込み残差ブロックのバックボーンが含まれ、各ブロックには畳み込み層が含まれ、その後にバッチ正規化と ReLU 活性化関数の 2 つの層が続きます。

  • 01:45:00 このセクションでは、スピーカーは AlphaZero モデルの開始ブロックの作成について説明します。これには、conf 2D ブロック、バッチ ノルム ブロック、および値ブロックの作成が含まれます。また、残りのブロックの配列を使用してモデルのバックボーンを設定し、残りのブロックのクラスを作成します。残りのブロックは、スキップされた接続を使用して入力を更新するために使用される conf ブロック、バッチ ノルム ブロック、および別の conf ブロックで構成されます。 forward メソッドは、conf ブロックを介して入力をフィードし、結果の出力を残差に追加するように定義されています。

  • 01:50:00 このセクションでは、スピーカーは、AlphaZero アルゴリズムの残差ネットワーク (ResNet) をゼロから作成するためのコードについて説明します。これらは、指定された数の非表示レイヤーの残りのブロックをループすることにより、ResNet のバックボーンを作成する方法を示しています。次に、nn.sequential を使用し、シーケンス内のレイヤーを定義して、ポリシー ヘッドと値ヘッドを作成します。最後に、スピーカーは、入力を開始ブロックに渡し、残りのブロックをループし、最後に合計を返すことによって、ResNet クラスの forward メソッドを定義する方法を示します。

  • 01:55:00 このセクションでは、AlphaZero モデルを使用して、Tic-Tac-Toe で特定の状態のポリシーと値を取得する方法についてスピーカーが説明します。彼は、テンソル状態をモデルに渡すことによってポリシーと値を取得するコードを記述し、ポリシーをフラットにして値項目を取得します。彼はまた、状態を正しい形式でエンコードし、テンソルにバッチ次元を追加することの重要性についても説明しています。

パート3

  • 02:00:00 このセクションでは、スピーカーは、ドット項目法を使用してポリシー テンソルを float に変換する方法を示してから、softmax 関数を適用して、最も高い確率でアクションを選択します。次にスピーカーは、Matplotlib を使用してポリシーの配布を視覚化し、どこでプレイするかを示します。次に、スピーカーは、再現性を確保するために Torch のシードを設定し、葉ノードの状態に基づいて値とポリシーを予測するための ResNet モデル入力を与えることで、MCTS アルゴリズムを更新します。シミュレーション部分は削除され、モデルから取得された値が逆伝播に使用されます。

  • 02:05:00 ビデオのこのセクションでは、プレゼンターが三目並べゲームのノード状態をエンコードし、モデルへの入力として与えるために torch.tensor を使用してそれをテンソルに変換する方法を示します。ロジットで構成されるポリシーは、torch.softmax を使用して尤度の分布に変換する必要があります。また、プレゼンターは、ポリシーと有効な移動を使用して不正な移動をマスクする方法と、ポリシーがパーセンテージを表すようにポリシーを再スケーリングする方法についても説明します。値は、value.item() を呼び出すことによって値ヘッドから抽出されます。さらに、プレゼンターは、ノードがリーフ ノードである場合に、拡張のためのポリシーとバックプロパゲーションのための値を使用する方法を示します。

  • 02:10:00 機械学習を使用してゼロから AlphaZero を構築するビデオ チュートリアルのこのセクションでは、講演者は展開および UCB フォーミュラ メソッドを更新する方法を説明します。 expand メソッドが更新され、考えられるすべての方向に即座に展開し、ノード オブジェクト内に確率を格納して、後で選択中に UCB 式で使用できるようになりました。新しい UCB 式は、標準的なマルチカラー調査とは異なる式を使用し、スピーカーは math.log を削除して子供の訪問回数に 1 を追加する方法を示します。これらの更新により、以前にアクセスされたことのない子で UCB メソッドを使用できるようになります。

  • 02:15:00 このセクションでは、インストラクターは動きを選択するための子供の権利ポリシーを使用して MCTS を更新し、ゲームを実行してテストします。次に、モデル、オプティマイザー、ゲーム、およびその他の引数を受け取る AlphaZero クラスを定義することにより、メインの AlphaZero アルゴリズムの構築に進みます。また、セルフプレイとトレーニングの方法を定義し、プレイ、データの収集、モデルのトレーニング、および再テストの複数のサイクルを反復するループを作成します。また、インストラクターは、トレーニング データを格納するためのメモリ クラスを作成し、トレーニング サイクルの各セルフプレイ ゲームをループします。

  • 02:20:00 ビデオ チュートリアルのこのセクションでは、プレゼンターが AlphaZero のセルフプレイとトレーニング ループのコードを説明します。セルフプレイ メソッドから取得した新しいデータをメモリ リストに拡張する方法と、モデルのモードを評価モードに変更して、プレイ中のバッチ ノブを回避する方法について説明します。トレーニング ループは、train メソッドを呼び出してモデルの重みを保存する方法についても詳しく説明されています。最後に、新しいメモリを定義し、初期状態を作成し、ゲームプレイをループしながら端末の状態をチェックし、Tuple 形式でメモリにデータを返すことを含む、セルフプレイ方法について説明します。

  • 02:25:00 このセクションのビデオ チュートリアルでは、ニュートラル ステート、アクション プロップ、プレイヤー情報をメモリに保存して、後でトレーニング データを収集するために使用する方法について説明します。このチュートリアルでは、NumPy の random.choice 関数を使用してアクション プロップからアクションをサンプリングし、このアクションに基づいて再生する方法を示します。このビデオでは、状態が終了しているかどうかを確認する方法と、終了している場合は、プレーヤーがプレイした各インスタンスの最終結果を返す方法についても説明しています。最後に、このチュートリアルでは、ニュートラル ステート、アクションの小道具、および結果をメモリ変数に追加する方法と、後でトレーニングのためにこのデータを取得する方法を示します。

  • 02:30:00 「AlphaZero from Scratch」チュートリアルのこのセクションでは、コードを更新して、さまざまなゲームで対戦相手が認識する値に負の値を変更することで、より一般的なものにしています。ループの視覚化は、tqdm パッケージと進行パスを使用することで改善されます。 AlphaZero の実装は、resnet モデル、Adam オプティマイザー、および特定の引数を使用してクラスのインスタンスを作成することによってテストされます。 Tic-Tac-Toe ゲームは、4 つの残りのブロックと 64 の非表示次元を持つ例として使用されます。探索定数、検索回数、反復、セルフプレイ ゲーム、およびエポックが設定され、モデルは将来の使用のために保存されます。 .

  • 02:35:00 チュートリアルのこのセクションでは、トレーニング データをシャッフルし、すべてのメモリをバッチでループしてトレーニング用のさまざまなサンプルのバッチをサンプリングすることにより、トレーニング メソッドを AlphaZero 実装内に実装します。 zip メソッドを呼び出してタプルのリストを MP 配列のリストに転置することにより、状態、MCTS プロップ、および最終的な報酬がサンプルから取得されます。次に、これらは NP 配列に変更され、モデルの出力との比較を改善するために、各値が独自のサブ配列に含まれるように値のターゲットが再形成されます。

  • 02:40:00 チュートリアルのこのセクションでは、ビデオ作成者が torch.float32 を使用して状態、ポリシー ターゲット、および値ターゲットをテンソルに変換する方法について説明します。状態を予測できるようにします。彼らは、逆伝播による全体的な損失を最小限に抑えるために、両方の損失の合計を計算するために使用するポリシーの損失と価値の損失を定義します。次に、トレーニング プロセスの反復を示すプログレス バーを使用して、デフォルトのバッチ サイズ 64 を使用したトレーニング プロセスを示します。モデルを 3 回反復してトレーニングした後、静的モデルをロードして、ニューラル ネットワークがゲームについて学習した内容をテストします。

  • 02:45:00 ビデオ チュートリアルのこのセクションでは、プレゼンターがニューラル ネットワーク モデルを使用してゲームをプレイし、どこで動くかを予測する能力をテストする方法を示します。 MCTS 検索でシミュレーションを実行することにより、モデルは、プレイする場所の分布と、特定の状態の値予測を提供できます。また、プレゼンターはアルゴリズムに GPU サポートを追加して、トレーニングとテスト中にアルゴリズムを高速化します。プレゼンターは、利用可能な場合に Nvidia GPU を使用するために、デバイスを宣言し、引数としてモデルに渡す方法を示します。さらに、速度を最適化するためのセルフプレイおよびトレーニング中に、モデルがデバイスに移動されます。

  • 02:50:00 このセクションでは、スピーカーは、パフォーマンスを向上させるために AlphaZero に追加できるいくつかの調整について説明します。まず、重み減衰と GPU サポートをモデルに追加します。次に、温度の概念を導入します。これにより、アクションをサンプリングする際の確率のより柔軟な分布が可能になります。気温が高いほど探査が進み、気温が低いほど開発が進みます。最後に、スピーカーは、モンテカルロ研究中にルート ノードに与えられた初期ポリシーにノイズを追加することを提案します。これらの微調整により、AlphaZero アルゴリズムの結果が大幅に向上します。

  • 02:55:00 機械学習によってゼロから AlphaZero を構築するチュートリアルのこのセクションでは、ルート ノードにノイズを追加してランダム性を組み込み、より多くの探索を行いながら、有望なアクションを見逃さないようにすることに焦点を当てています。これは、最初に save.model を呼び出してポリシーと値を取得し、 torch.tensor と状態のモデルのデバイスを使用することによって達成されます。次に、softmax を使用してポリシーを微調整し、有効な移動を乗算して、不正な移動をマスクします。ディリクレ ランダム ノイズは、古いポリシーに 1 より小さい係数を乗算し、この係数にランダム ノイズを乗算した別の係数を加算することによって、ポリシーに追加されます。このようにして、特にモデルがゲームについてあまり知らない最初の段階で、より多くの探索を可能にするためにポリシーが変更されます。

パート 4

  • 03:00:00 このセクションのビデオ チュートリアルでは、ノイズ ファクターを使用してポリシーに調査を追加することに焦点を当てています。ポリシーを変更することで、ボットは探索を増やすことで、あまり選択されていないアクションに優先順位を付けることができます。このビデオでは、ポリシーの方程式を調整し、アルファ値を NP ドット ランダム ドット ディリクレ関数への入力として使用する方法を概説しています。環境によって変わります。ルート ノードの拡張ポリシーも概説されており、拡張時にノードが逆伝播される (訪問回数が 1 に設定される) ため、モンテカルロ研究の開始時に事前確率が子の選択と一致するようになります。

  • 03:05:00 チュートリアルのこのセクションでは、講師は Connect Four のようなより複雑なゲームでモデルをトレーニングするための CPU と GPU のサポートを追加します。 torch.device() を使用してデバイスを定義し、torch.cuda.is_available() をチェックして、CPU または CUDA デバイスのどちらを使用するかを決定します。また、デバイスをテンソル状態スタックと静的ファイルの読み込みに追加します。インストラクターは Tic-Tac-Toe でモデルをトレーニングおよびテストし、モデルが違法な動きを認識することを学習したことを示します。次に、行数、列数、およびアクション サイズを使用して Connect Four のゲームを定義します。

  • 03:10:00 このセクションのビデオ チュートリアルでは、ソース コードを更新して Connect Four ゲームを作成する手順を説明します。ゲームは、空の配列と、勝つために必要な石の数を表す 4 の行変数に保存されたドットで初期化されます。 get next state メソッドが更新され、特定の列を見て、その列の最も深い空のフィールドを見つけて石を配置することで、行を取得します。有効な動きを取得するメソッドが更新され、利用可能な動きの一番上の行がチェックされます。勝利メソッドのチェックは、Tic Tac Toe ゲームからコピーされ、両方の対角線をチェックするように調整されています。次の状態を取得するメソッドは、列の変数の代わりにアクション変数を使用するように更新されています。更新されたコードは、動作することを確認するためにテストされます。

  • 03:15:00 このセクションでは、スピーカーは Tic-tac-toe を Connect Four ゲームに置き換え、検証のために検索数を 20 に設定します。モデルのサイズも、残りのブロックの数が 9 に、非表示の薄暗い部分が 128 に変更され、モデルの学習が向上します。その後、トレーニングの効率が向上し、複雑な環境での所要時間が短縮されます。その後、モデルは 1 回の反復でトレーニングされます。これには数時間かかります。次に、評価セットを使用して、モデルが何かを学習したかどうかをテストします。

  • 03:20:00 チュートリアルのこのセクションでは、並列化によって AlphaZero 実装の効率を高めることに焦点を当てています。計画は、状態をバッチ処理してポリシーと値の並列予測を取得することにより、可能な限り多くの実装を並列化することです。これにより、モデルの呼び出し回数が大幅に減り、GPU の能力をフルに活用して高速化できます。チュートリアルでは、Ray などのパッケージを使用せずに Python を使用して並列化バージョンを実装する方法について説明し、元のクラスをコピーして「AlphaZeroParallel」および「MCTSParallel」という新しいクラスを作成します。

  • 03:25:00 このセクションでは、スピーカーは Python での 2 つの新しいクラスの作成について説明します: セルフプレイ ゲームに関する情報を格納する「SPG」と、新しい `SPG` クラス。 `SPG` クラスは、ゲームの初期状態、空のメモリ リスト、および `None` に設定された `root` および `note` 変数を格納します。また、「ParallelMCD」クラスは「set_play」メソッドを更新して、「game」と並列ゲームの数を入力として使用して「SPG」インスタンスのリストを作成します。その後、`while` ループは、すべてのセルフプレイ ゲームが終了するまで `set_play` メソッドを実行します。これにより、効率的な並列化が可能になります。

  • 03:30:00 このセクションでは、スピーカーはすべての状態のリストを取得し、それらを数値配列に変換して効率を高める方法を説明します。また、1 つの関数呼び出しを使用してすべての状態のパースペクティブを変更し、負の値に設定されたプレーヤーの値に負の値を乗算する方法も示します。次に、スピーカーは、ニュートラル ステートをモンテカルロ リサーチに渡し、モンテカルロ リサーチの検索方法を更新し、すべてのバッチ ステートを使用してビデオのポリシーを取得する方法を示します。最後に、コード化された状態の順序を交換して、コード化された状態の取得メソッドを呼び出すときに、1 つだけでなく複数の状態を処理する方法と、このプロセスを三目並べのゲームにコピーする方法について説明します。

  • 03:35:00 これを numpy 配列にループし、代わりに numpy のベクトル化を使用します。次に、numpy 配列内のすべての状態にモデルを適用できます。各状態をループする必要はなく、時間を大幅に節約できます。その後、出力を元の形式に再形成し、残りの MCTS 検索を通常どおり続行できます。最後に、各セルフプレイ ゲームの統計を更新し、選択したアクションのルート ノードを返します。これで、AlphaZero アルゴリズムを使用したポリシーと値のネットワークを使用した MCTS 検索の実装が完了します。

  • 03:40:00 ビデオのこのセクションでは、インストラクターがコードにいくつかの変更を加えて、SPG クラスの代わりにすべての拡張可能なノードを保存しています。次に、それらを保存するリストを作成し、各セーフ プレイ ゲームのマッピング インデックスを取得することによって、どのセーフ プレイ ゲームが拡張可能かどうかを調べることに焦点が移ります。インストラクターは、拡張可能なゲームがあるかどうかを確認し、ある場合は、ポリシーと値を後で取得できるように、状態を積み重ねてエンコードします。

  • 03:45:00 チュートリアルのこのセクションでは、講師が AlphaZero のモンテカルロ木探索アルゴリズムのコード実装について説明します。これらは、展開可能な状態を使用する方法を示しており、スクイーズ解除、スクイーズ、またはノイズの追加を行う必要はなく、ポリシーを取得するためのインデックスを作成し、セルフプレイ ゲーム インデックスにポリシーを割り当てるためのマッピング インデックスを作成します。ノードは SPG ポリシーを使用して展開され、SPG ドット値を使用して逆伝播され、OSF Planet メソッドを使用する代わりにアクション プロップが取得されます。インストラクターは並列化コードをコピーし、AlphaZero のモンテカルロ木探索アルゴリズムの実装の一環として、OSF Planet メソッドの代わりにアクション プロップを操作するように変更を加えます。

  • 03:50:00 このセクションのビデオ チュートリアルでは、MCTS 検索の並列実装のコードの更新に焦点を当てています。インストラクターは、自分でプレイするゲームがターミナルの場合はリストから削除し、「SPG クラス」の代わりに「spg.state」を呼び出して状態を更新することの重要性を強調しています。コードも変更され、一般的な地域メモリにメモリを追加し、すべてのセルフプレイ ゲームのループが完了した後にプレーヤーを裏返します。目標は、効率的に機能するスムーズなループを作成し、適切なタイミングでセルフプレイ ゲームのリストからサークルを削除することです。

  • 03:55:00 このセクションでは、スピーカーは、並列化された fs0 実装を使用した Connect Four のモデルのトレーニングについて説明します。モデルは 8 回反復してトレーニングされ、Connect Four ボードを使用して結果を評価します。講演者は、実際に使用されている他の検索アルゴリズムと比較すると、検索の数はかなり少ないものの、結果は満足できるものであると述べています。彼らはモデルと対戦し、いくつかの動きをし、モデルはそれに応じて反応します。全体として、トレーニングには数時間かかりましたが、最終モデルはゲームのプレイ方法をよく理解しています。
  • 04:00:00 チュートリアルのこのセクションでは、プレゼンターが Kegel 環境パッケージを使用して Connect Four 環境を作成し、2 つのエージェントでゲームをプレイする方法を示します。エージェントは、MCTS 検索アルゴリズムを使用して、トレーニング済みの AlphaZero モデルに基づいて予測を行います。プレゼンターはまた、温度アクション props を fs03 に組み込み、通常のオプティマイザーの代わりに save.optimizer を使用するなど、コードにいくつかの小さな修正を加えます。さらに、プレゼンターは温度を 0 に設定して常にポリシーのアーク Max を取得し、リフレクト イプシロンを 1 に設定してゲームにランダム性を追加します。最後に、プレゼンターはプレーヤー 1 を、MCTS アルゴリズムを使用してトレーニング済みモデルに基づいて予測を行う計算エージェントとして定義します。

  • 04:05:00 「AlphaZero from Scratch - Machine Learning Tutorial」のこのセクションでは、スピーカーはプレーヤー 1 とプレーヤー 2 のコードを記述することでゲームと引数をモデル化します。これにより、さまざまなプレーヤーを試す柔軟性が向上します。次に、セルを実行し、モデルが互いに対戦している様子を視覚化します。その結果、モデルはすべての攻撃を防御できるため、引き分けになりました。また、ゲームと引数を変更し、パスを更新することで Tic-tac-toe のコードを変更する方法も示しました。これにより、モデルが互いに対戦して再び引き分けになりました。チュートリアルが完了し、講演者は各チェックポイントの jupyter ノートブックを含む GitHub リポジトリと、Tic-tac-toe と Connect Four の最後のモデルを含む weights フォルダーを提供しました。講演者は、Mu Zero に興味があれば、フォローアップ ビデオを作成することに関心があることも表明しました。
AlphaZero from Scratch – Machine Learning Tutorial
AlphaZero from Scratch – Machine Learning Tutorial
  • 2023.02.28
  • www.youtube.com
In this machine learning course, you will learn how to build AlphaZero from scratch. AlphaZero is a game-playing algorithm that uses artificial intelligence ...
 

ChatGPT で Google がパニック [AI 戦争が始まった]



ChatGPT で Google がパニック [AI 戦争が始まった]

このビデオでは、チャットボットがより強力になる可能性に向けて Google がどのように準備しているか、およびこれが Google のビジネス モデルにどのような影響を与えるかについて説明しています。 Microsoft は、ユーザーがより人間らしい方法で Bing と通信できるようにするチャットボットに取り組んでいると報告されており、この機能は現在画像が存在しない検索に役立ちます。 Microsoft は、オープン AI と緊密に連携しているため、この機能が明示的または不適切なビジュアルを生成しないと述べています。そのため、Bing はチャット GPT と Dali 2 機能を統合して大幅な見直しを行っているようです。

  • 00:00:00 Google は 1998 年に別の家の隣に家を借りていました。卓球台は別の家にありました。

  • 00:05:00 このビデオでは、Google がチャットボットがより強力になる可能性と、これが Google のビジネス モデルにどのように損害を与える可能性があるかについてどのように懸念しているかについて説明しています。伝えられるところによれば、Google はこれに対抗するための計画に取り組んでおり、共同創設者である Larry Page と Sergey Brin は、この問題について話し合うための会議に招待されています。

  • 00:10:00 このビデオでは、Google が Microsoft と競合しているように見えます。Microsoft はオープン AI にさらに 100 億ドルを投資しています。しかし、これはオープン AI 運動の最善の利益にはならない可能性があります。AI が実際に開始する機会を得る前に、AI であることの死につながる可能性があるからです。また、Google は 20 の AI プロジェクトに取り組んでいると報告されており、そのうちのいくつかはチャット GPT に似ており、Microsoft は同社に 3 億ドルを投資しています。これがどのように展開するかは不明ですが、Google は安全性の問題を後回しにし、AI 製品を解き放つことを余儀なくされるようです.

  • 00:15:00 ビデオは、Microsoft がユーザーがより人間的な方法で Bing と通信できるようにするチャットボットに取り組んでいるという噂について語っています。また、この機能は、画像が現在存在しない検索に役立つことにも言及しています。最後に、ビデオでは、この統合により、ユーザーがテキストを入力して画像を生成できるようになる方法について説明しています。これは、現在画像が存在しない検索に特に役立ちます。 Microsoft は、オープン AI と緊密に連携しているため、この機能が明示的または不適切なビジュアルを生成しないと述べています。そのため、Bing はチャット GPT と Dali 2 機能を統合して大幅な見直しを行っているようです。発売されたら、みんなの注目を集めること間違いなしです。
Google Panics Over ChatGPT [The AI Wars Have Begun]
Google Panics Over ChatGPT [The AI Wars Have Begun]
  • 2023.02.06
  • www.youtube.com
Google's newly announced BARD AI system is mentioned at 12:25In this episode we see why Google has called a code red because of ChatGPT but why? Why is ChatG...
 

カンファレンス JENSEN HUANG (NVIDIA) と ILYA SUTSKEVER (OPEN AI). AI TODAY AND VISION OF THE FUTURE



カンファレンス JENSEN HUANG (NVIDIA) と ILYA SUTSKEVER (OPEN AI). AI TODAY AND VISION OF THE FUTURE

NVIDIA の CEO である Jensen Huang と OpenAI の共同創設者である Ilya Sutskever が、カンファレンスで人工知能 (AI) の起源と進歩について話し合います。 Sutskever は、深層学習がどのように明らかになったか、圧縮による教師なし学習が感情に対応するニューロンの発見にどのようにつながったか、ニューラル ネットワークの事前トレーニングがどのように人間と AI のコラボレーションによる指示と改良につながったかを説明しています。また、GPT-4 とマルチモダリティ学習の進歩と限界、および合成データ生成の役割と AI システムの信頼性向上についても説明します。 20 年前と同じコンセプトであるにもかかわらず、2 人とも AI 研究の進歩に驚嘆しています。

  • 00:00:00 このセクションでは、NVIDIA の CEO である Jensen Huang が、OpenAI の共同創設者である Ilia Sutskever の人工知能分野での業績を称賛しています。彼は Ilia に、深層学習に関する彼の直感と、それが機能することをどのように知ったかについて尋ねます。イリアは、意識とその影響についての好奇心から人工知能に興味を持っていたと説明し、AI の進歩はそれを本当に助けてくれるように思えました。彼は、2002 年から 2003 年にかけて、コンピューターは何も学習できず、理論上可能かどうかさえ明らかではなかったが、ニューラル ネットワークで研究していた Jeff Hinton を見つけたことで、Ilia に希望が与えられたと付け加えた。

  • 00:05:00 このセクションでは、Sutskever が AlexNet の起源と、教師あり学習を使用して深くて大規模なニューラル ネットワークを構築するというアイデアがどのように彼に明らかになったかについて説明します。当時、機械学習の分野ではニューラル ネットワークは検討されておらず、理論的には洗練されていたものの、適切な解決策を示すことができなかった他の方法を使用していたと彼は説明しています。 Sutskever は、大規模なニューラル ネットワークをトレーニングできることを証明した、別の大学院生による画期的な最適化手法についても言及しています。その後、大規模な畳み込みニューラル ネットワークが ImageNet データ セットでトレーニングされた場合、成功するに違いないことが明らかになりました。 Sutskever はまた、ラボでの GPU の登場と、Alex Krizhevsky がどのようにして高速な畳み込みカーネルをプログラムし、ニューラル ネットワーク データ セットをトレーニングすることができ、コンピューター ビジョンの記録を大幅に更新したかについても語っています。このブレークスルーの重要性は、データ セットが明らかに難しく、従来の手法では手の届かないものだったことです。
     
  • 00:10:00 このセクションでは、Jensen Huang と Ilya Sutskever が OpenAI の黎明期と、インテリジェンスへのアプローチ方法に関する彼らの最初のアイデアについて説明します。 2015 年から 2016 年にかけて、この分野はまだ初期段階にあり、研究者ははるかに少なく、理解も進んでいませんでした。 OpenAI の最初の大きなアイデアは、圧縮による教師なし学習の概念でした。これは、当時の機械学習では未解決の問題でした。 Sutskever は、データの本当に適切な圧縮が教師なし学習につながり、その中に存在するすべての隠された秘密を抽出できると信じていました。これは、感情に対応する LSTM 内のニューロンを発見したセンチメント ニューロンを含む、OpenAI でのいくつかの作業につながりました。

  • 00:15:00 このセクションでは、Ilya Sutskever が、教師なし学習の概念と、表現を学習する価値のある目標としてシーケンス内の次のトークンを予測することの重要性について説明します。彼は、教師あり学習の難しい部分は、データを取得する場所ではなく、次のトークンを予測するためにニューラル ネットワークをトレーニングする理由にあると述べています。パフォーマンス向上のためのスケーリングも彼らの仕事の重要な要素であり、強化学習は、特に強化学習エージェントをトレーニングしてリアルタイム戦略ゲーム DotA 2 をプレイし、最高のプレーヤーと競うために重点的に取り組んだもう 1 つの重要な領域でした。世界中。

  • 00:20:00 このセクションでは、Ilya Sutskever が、大規模なニューラル ネットワークを事前トレーニングして、インターネットからのさまざまなテキストの次の単語を予測するプロセスについて説明しています。これにより、圧縮された抽象的で使用可能な世界表現の学習につながります。ただし、事前トレーニングでは、ニューラル ネットワークに期待される望ましい動作は指定されません。ここで、人間と AI のコラボレーションによる微調整と強化学習の第 2 段階が登場します。私たちはニューラル ネットワークと通信し、何をすべきか、何をすべきでないかを指示します。

  • 00:25:00 このセクションでは、GPT-4 などの AI テクノロジの進歩について講演者が説明します。GPT-4 は、打ち上げからわずか数か月で人類の歴史の中で最も急速に成長しているアプリケーションになりました。 GPT-4 は Chat GPT を改良したもので、テキスト内の次の単語を予測する精度が向上し、テキストの理解が向上します。忠実度を絶えず研究し、革新することで、AI はより信頼性が高く、正確に意図した指示に従うようになりました。さらに、AI がユーザーの意図を理解するまで、あいまいさを改善することができます。さらに、SAT スコア、GRE スコア、司法試験などの多くの分野で GPT-4 のパフォーマンスが向上したことは注目に値します。

  • 00:30:00 このセクションでは、スピーカーはニューラル ネットワーク、特に GPT4 の推論機能の現在の制限と改善の可能性について説明します。ニューラル ネットワークはある程度の推論スキルを示しますが、信頼性は依然としてその有用性における大きな障害です。講演者は、ニューラル ネットワークに大声で考えるように依頼し、野心的な研究計画を導入することで、信頼性と精度が向上する可能性があることを示唆しています。現在、GPT4 には検索機能が組み込まれていませんが、次の単語の予測に優れており、画像を使用できます。

  • 00:35:00 このセクションでは、Jensen Huang と Ilya Sutskever がマルチモダリティ学習とその重要性について説明します。彼らは、人間は視覚的な動物であるため、テキストと画像の両方から学習するマルチモダリティ学習は、ニューラル ネットワークが世界をよりよく理解するのに役立つと説明しています。また、マルチモダリティ学習により、追加の情報源を提供することで、ニューラル ネットワークが世界についてより多くのことを学習できるようになります。彼らは、色などを理解するために見ることが重要である一方で、テキストのみのニューラル ネットワークでも、何兆もの単語にさらされることで、テキストだけから学ぶのが難しい情報を学習できると主張しています。

  • 00:40:00 このセクションでは、Sutskever と Huang が、ビジュアルやオーディオなど、AI 学習におけるさまざまなデータ ソースの重要性について説明します。彼らは、マルチモダリティの考え方と、さまざまなデータ ソースを組み合わせることで、世界について学び、視覚的にコミュニケーションをとる方法について触れています。 Sutskever はまた、世界が最終的にトレーニング用のトークンを使い果たすことを示唆する論文と、独自のデータを生成する AI がその問題の可能な解決策になる可能性があることを示唆する論文についても言及しています。

  • 00:45:00 このセクションでは、スピーカーは AI トレーニングと独学における合成データ生成の役割について説明します。既存のデータの可用性を過小評価してはいけませんが、AI が学習と問題解決のために独自のデータを生成する可能性は、将来の可能性です。近い将来、AI システムの信頼性を向上させ、重要な意思決定を信頼できるようにすることに重点が置かれます。 GPT-4 などの AI モデルが数学の問題を確実に解決し、クリエイティブなコンテンツを作成できる可能性は非常に魅力的ですが、ユーザーの意図を理解して対応する際の精度と明確さを向上させるためには、まだやるべきことがあります。

  • 00:50:00 このセクションでは、Jensen Huang と Ilya Sutskever が、今日の AI におけるニューラル ネットワークの驚くべき成功について説明します。 20 年前と同じニューラル ネットワークの概念であるにもかかわらず、同じ基本的なトレーニング アルゴリズムを使用してさまざまな方法で大規模なデータ セットをトレーニングするため、より深刻で強力なものになっています。 Open AI での Alexnet と GPT に関する Sutskever の重要な業績は注目に値するものであり、Huang は問題を分析し、大規模な言語モデルの最先端を説明する彼の能力を高く評価しています。 2 人は追いつき、AI 分野の進歩に驚嘆します。
CONFERENCE JENSEN HUANG (NVIDIA) and ILYA SUTSKEVER (OPEN AI).AI TODAY AND VISION OF THE FUTURE
CONFERENCE JENSEN HUANG (NVIDIA) and ILYA SUTSKEVER (OPEN AI).AI TODAY AND VISION OF THE FUTURE
  • 2023.03.23
  • www.youtube.com
#chatgpt,#ai#chatbot,#openai,#nvidia,#artificialintelligence,@ilyasutskever