C#-ニューラルネットワークに基づく「インテリジェント」な生活のモデリング

この記事は、シミュレートされたオブジェクトの個々の心の基礎として使用される場合のニューラルネットワークの機能の研究に専念します。



目的:ニューラルネットワーク(または現在の実装)が「周囲の」世界を認識し、独立して学習し、自身の経験に基づいて比較的合理的と見なせる決定を下すことができるかどうか示します。



画像



タスク





1.情報モデル



情報モデルを説明するには、合理的な存在の「主な」特性として、私たちが見たいオブジェクトの主な特性を理解する必要があります。





周囲の世界の下では、ユークリッドメトリックの平面内の空間を取り、有限数のシミュレートされたオブジェクトを使用します。



空間における知覚のメカニズムは異なる場合があります。このモデルでは、周囲の世界に関する情報を提供できるオブジェクトである4つのセンサーを受け入れます。 周囲の世界に関する情報は、最も近い他の物体までの距離に比例する特定の値を意味するでしょう。 4つのセンサーがオブジェクトの「中心」に対してシフトされるため、彼は(理論上)最も近いオブジェクトがどこにあるかを把握します。



モデルの相互作用メカニズムは次のとおりです。4つの「ムーバー」。それぞれがオブジェクトが1つの方向または別の方向に移動する速度を表します。 4つの「ムーバー」により、飛行機内を自由に移動できます。 この場合の相互作用は、空間を移動する能力になります。



画像



メモリの存在は 、次のように実装できます。オブジェクトは、センサーからのデータと推進デバイスの現在の「加速度」に関する情報を格納します。したがって、同様の情報の配列を持ち、オブジェクトに何が起こったのかについての完全な情報をコンパイルできます。



画像



メンタルシステムとは、何らかの構成のニューラルネットワークを意味します。

決定を下す能力は、 ニューラルネットワークのアーキテクチャによって決定され、経験と知覚情報はメモリセンサーによって提供されます



画像



決定意味なすようするために、オブジェクトに対する「願望」を取ります。

1.別のオブジェクトを「食べる」(この場合、オブジェクトは十分な距離に近づき、「十分に強い」場合、別のオブジェクトに「食べられる」)。

2.「食べないでください」、私たちの場合、他の物を自分に近づけさせないようにしてください。

最も近いオブジェクトの「強度」について決定するために、「最も近いオブジェクトはより強い」という情報の別の1チャネルを取得します。



したがって、オブジェクトの記述されたモデルはすべての要件を満たします。



2.モデルの実装



モデルを実装するには、C#プログラミング言語が使用されます。 ニューラルネットワークの実装として、 Encog Machine Learning Frameworkが使用されます。 使いやすさは言うまでもなく、非常に柔軟で高速です。



モデルコードは非常に単純で、これが唯一の可能な実装ではありません。このモデルは、誰でも補足および変更できます。



このモデルの実装でのオブジェクトの機能は、DoLive()関数を中心に構築されます。この機能では、オブジェクトの次の重要な段階が順番に行われます。



RefreshSense-センサーデータの更新(周囲を見回した);



移動 -ステップを取りました(空間内で移動)。



SaveToMemory-メモリを更新し、現在の状況を記憶しました。



トレーニング-「トレーニング済み」、分析済みのメモリ。



計算 -経験と最寄り施設に関する情報に基づいて発動機の位置を決定しました。



出力 -決定に基づいて推進器のパラメーターを設定します。



画像



したがって、すべてのオブジェクトの各ライフサイクルは、その存在を通して進行します。



3.モデル検証



シミュレーション結果を表示するには、各段階でのモデルの現在の状態に関する情報を何らかの方法で抽出する必要があります。 動的モデルで最も効果的なのは、ビデオの使用です。 ビデオファイルへの出力を実装するには、 AForge.Video.FFMPEGライブラリを使用します。



例1.最も近いオブジェクトの強度に関する情報なし(死を避けたいという欲求はありません):







例2.思考の高い「慣性」(彼の周りの世界について考え、経験を分析することを止めることはあまりありません):







例3.最終的な実装オプション







例4. 「複製」および「ハンティング」の機能を使用する





例5.拡張モデル、「成功」遺伝子の「遺伝的」継承、継承中の遺伝子突然変異、遺伝的多様性の増加(16種類のニューロン活性化、層の数と構成の違い)





例6.知覚の可能性を広げて、オブジェクトは最も近いオブジェクトだけでなく、他のオブジェクトも知覚します。





例7. 「親」からのメモリの部分的な継承。





4.結論



オブジェクトには最小限の情報が与えられ、ムーバーの移動または制御に関するルールはなく、環境、オブジェクト、およびそれらの状態に関するフィードバックに関する情報のみが与えられました。 この情報は、オブジェクトが「 学習 」し、「弱い」と「強い」から「逃げる」ことを個別に見つけて「食べる」ために十分でした。



一般に、ニューラルネットワークを使用して、合理的に合理的なアクションをモデル化できます。



モデリングでのニューラルネットワークの使用は、たとえばゲームオブジェクトの管理に価値を適用することができます。「 可能性 」を記述するだけで十分であり、オブジェクトは自分の利益のために利用可能な機会を使用して自分の人生を「生きます」。 記事に示されている原理は、ロボット工学の用途を見つけることができます。プログラムはセンサーシステム、制御システムにアクセスし、目標を設定するだけで十分です。メモリとニューラルネットワークのおかげで、デバイスは独自に学習 」して利用可能なシステムを管理し、目標を達成できます。



すべての資料、 ソースコードは無料で、誰でも利用できます。



この記事が、ニューラルネットワークの使用方法を学びたい人に役立つことを願っています。



ps同じトピックに関する別の興味深い記事は、かなり複雑なニューラルネットワークがそれが持っているものの使い方を学ぶことができるという考えの証拠です。



All Articles