こんにちは、このAI実装パート1の最初の部分を歓迎します。
そして、私が既にこのインデントの構造にディメンションを追加したのは、Part
1を構成するこれらの3つのセクションで、このAIをどのように構築するのかを明確に示しています。
まず、脳を作ります。
ニューラルネットワーク以外は何もありません。次に、アクションをどのように演じるかを定義するボディを作るつもりです。
そして、脳と身体がいったん完成すると、この最初の部分の最後のセクションにあるAIを作るためにそれらを組み立てます。
だから、すでにこの実装の構造の良いビジョンを持つことができます。
最初に脳を作り、身体を作り、2つを組み立ててAIを作ります。
そして、これが私たちが脳の作り方に関する最初のセクションから始めるつもりです。
そしてこれはチュートリアルのために私たちを連れて行くつもりです。
あなたは、脳を作ることはケーキを作ったようなものではないと想像することができます。
したがって、これには複数のチュートリアルが必要です。
そしてもちろん、いつものように、私たちはいくつかの機能を必要とし、いくつかの種類の命令で編成されるいくつかの機能の構造を持つために、クラスを使ってその脳を表現しようとしています。
もちろん、私たちはクラスを必要とします。そのクラスを作ったのはバークレーです。
さて、このクラスのいくつかのオブジェクトを作成するだけで、必要な数の脳を作成することができます。
だから、Pythonのクラスや一般的なオブジェクト指向のプログラミング言語は、あなたが作成したいもののモデルを作ってから、あなたが望む数のオブジェクトを作成することができ、あなたのすべての機能クラス内で定義する
そして、私たちの脳にとって、その機能はもちろんあります。
まず最初に、ニューラルネットワークのアーキテクチャーのうち、私はCNNであり、入力ニューロンから出力ニューロンへの信号を通過させるような2つの異なる機能を思い出させます。もちろん、フォードの機能になります。
それでは、脳を作り始めましょう。
これはかなりエキサイティングなことになるだろう。
私の好きな部分の一つです。
だから、それにまっすぐ入るよ。
そこで、クラスを導入することから始め、このクラスをコールします。
まあ、私はそれを脳と呼ぶことをためらったが、より直接的にしてみよう。実際に脳はCNNネットワークなので、CNNと呼ぶことにしよう。
畳み込みニューラルネットワーク。
あなたが望むなら脳を呼び出すことができますが、少なくとも今私たちが何を構築しているか知っています。
そしてCNN自走車のネットワークはMudgalの終わりから継承するつもりです。
モジュールの終わりはここに置いたもので、このモジュールとモジュールのすべてのツールを使用できるようにしたいので、このテクニックを継承であるオブジェクト指向プログラミングで使いたいと思っています。親クラスのすべてのツールを使用してください。この非常にクラスはそのモジュール上にあります。
そこに行く。
これで、そのモジュールの最後にすべてのツールとオブジェクトを使用できます。
さて、私たちが継承したので、私たちはクラスに入って最初の機能を果たします。
おそらく最初の関数は、将来の脳オブジェクトのすべての変数を定義する終了関数です。
あなたは未来と創造される物を知っています。
さて、これをやりましょう。
それから、2つのデフはスコアに再び強調されます。
そして今、いくつかの変数を設定する必要があります。
だからまず第一に私は自分自身になるだろう、それはもちろん、オブジェクトを参照することです。
今私はあなたがこれにかなり慣れていると思うので、Dumah環境でのアクションの数になる別の変数を追加します。
だから私たちはその数の行動を呼ぶつもりです。
アクションの数
実際、この変数は関数に必須ではありません。
他の環境で構築しようとしているアイデアをテストしたいのであれば、それだけです。
これは非常に実用的なものになるでしょう。私たちが運命とVarmanラッパーから恐ろしい数のアクションを2つの離散したものにインポートするからです。
このような数のアクションがDumor環境でのアクションの数を直接取得するため、他の環境でこれを試して他のゲームをうまくプレイすることを望むなら、何もする必要はありません。
一緒に遊ぶよ。
これは、この関数の2つの引数のためです。
だから今私たちは中に入って、今私たちがしなければならないことを覚えています。
最初に行うべきことは、スーパーファンクションを使って継承をアクティブにすることです。
それはまさに自家用車に似ています。
私たちはスーパーファンクションをとり、ニューラルネットワークを定義するクラスを入力することから始めます。それはCNNです。
次に、オブジェクトを参照するためにselfを入力する必要があります。
しかし、ここでDOTで追加する必要があるわけではないことを覚えておいてください。
それを行うことで、私たちは継承を活性化します。
そして今、我々は最後とモジュールからすべてのツールを使用することができます。
さて、今私はそれがニューラルネットワークのアーキテクチャを構築する時間だと思う。
あなたが覚えているように、AIが目を持ち、目の目がこの畳み込みニューラルネットワークの畳み込み層になるため、CNN畳み込みニューラルネットワークを構築することになります。
そして、ai
AIが畳み込みレイヤーで画像を視覚化した後、信号を古典的な視覚ニューラルネットワークに渡します。
これは、完全に接続されたレイヤーでこれまでに持っていたものです。
そしてそれが、私たちが演奏できるそれぞれの可能な行動のキューブ値を予測しようとするところです。
ですから、アーキテクチャを覚えておいてから、いくつかの畳み込みレイヤーと完全に連結されたレイヤーを作成します。これがAIの脳になります。
それで、私たちが作っていることを一歩踏み出すことができるようにするために、我々は何をしようとしているのか。
さて、作成したい変数でこのアーキテクチャを作成しましょう。
実際にこのアーキテクチャについて言えば、3つの畳み込みレイヤーを持つCNNを構築しようとしています。
その隠しレイヤーの後に、3つの畳み込み接続と2つの完全接続が必要になることを意味します。
私たちが定義しようとしている接続のことは、CNNクラスの変数となりますので、今は5つの変数を定義します。
畳み込み接続と2つの政治的接続の3つ。
だからこれをやりましょう。
畳み込み接続から始めます。
だから私は彼らに自己教えた畳み込みと呼ぶつもりです。
1つはそれをコピーし、低いものに基づいてコピーします。
そして、私たちは自己信念を持ち、自己信念を持ちます。この最初の結論への畳み込み接続です。ここでは、最初の畳み込みレイヤーを得るために入力イメージにいくつかの畳み込みを適用し、次にここへの2番目の寄与が最初の畳み込みレイヤーを入力として使用し、もう一度畳み込みを適用すると、そこに2番目の畳み込みが作成され、次にこの畳み込みによって、それぞれが特定の1つの特徴を検出するいくつかの新しい画像が得られます。
そこで、これらの新しい画像を畳み込みで取得し、この畳み込みをここに適用して、これらの新しい画像をこの第1の畳み込みレイヤから第2の畳み込みレイヤの新しい画像に接続します。
そして、これらの新しい画像は、そこの最初の畳み込みの画像におけるいくつかの特徴を再び検出する。
だから、それだけで、将来の検出を強化し、そこに第2の畳み込みの出現を強化することです。
私たちはここで3番目の畳み込みを適用して、それぞれに対応させました。
入力画像の中でより多くの特徴を検出するいくつかの画像。
そして、このようにすればするほど、画像の異なるレイヤーにいくつかの畳み込みを適用するほどです。
さて、我々はいくつかの機能を検出することができるほど、機能を検出することによって、モンスターがどこでどこを撃って敵を殺すか、そしてどこに行かなければならないのかを目で理解することができます。
また、壁に障害物を検出します。
文字通り、どこに行かなければならないのですか。それは、これらのすべての畳み込みレイヤーが元のイメージで検出するもののおかげです。
さて、それはCNNの畳み込み部分のためです。
しかし、畳み込みレイヤの後で、適用された一連の畳み込みによって得られたすべてのピクセルを平坦化し、ピクセルのすべての配列を平坦化することによって、古典的な人工ニューラルネットワークの入力となるこの巨大なベクトルを取得する必要があります。
それで、私たちは完全につながった手紙を得ることができます。
そして今、私たちがしなければならないことは、2つの新しい変数を作成することです。なぜなら、この古典的な人工ニューラルネットワークの中に、次に来るものを1つ持っているからです。したがって、この巨大なFlatenベクトルから、そこにこの1つとそことの間の第2の完全な接続と、キー値である出力ニューロンからなる出力層とを含む。
では、これらの2つの最初の接続を作成してから、これらの接続をすべて定義します。
だから、私たちはそれを自分自身と呼ぶつもりのコードでサウンドトラックを頼んでください。
さて今、私たちは貴重品をすべて持っており、私たちが何をしなければならないかを知ることはもちろんエンジンモジュールのクラスで定義されています。
つまり、基本的にはニューラルネットワークのアーキテクチャを作成することになり、明日の明日はそれが次のようになります。
それまではI.