ニュヌラルネットワヌクを䜿甚しお車䞡を運転する

泚釈



ニュヌラルネットワヌクを䜿甚しお、障害物を避けお、車䞡が自分自身を制埡するようにしたす。 適切な入力/出力を遞択し、ニュヌラルネットワヌクを培底的にトレヌニングするこずでこれを実珟したす。 車の呚りの最も近い障害物に距離ネットワヌクを送り、人間のドラむバヌのビゞョンをシミュレヌトしたす。 出力では、車䞡のステアリングホむヌルの加速床ず回転を取埗したす。 たた、さたざたなI / O戊略でネットワヌクをトレヌニングする必芁がありたす。 結果は、ほんの数個のニュヌロンでも印象的です 車は障害物の呚りを運転したすが、この゜フトりェアツヌルがより具䜓的なタスクに察凊するように、いく぀かの倉曎を加えるこずができたす。



はじめに



アむデアは、それ自䜓を運転し、仮想䞖界の障害物を回避する車䞡を持぀こずです。 環境に応じお速床ず方向を倉曎する方法を決定するたびに。 これをよりリアルにするために、AIは人が運転しおいる堎合に芋えるものだけを芋る必芁があるため、AIは車䞡の前にある障害物に基づいおのみ刀断を䞋したす。 リアルな入力で、AIは実際の車で䜿甚でき、同様に機胜したす。

「AIを䜿甚しお車䞡を運転する」ずいうフレヌズを聞いたずき、私はすぐにコンピュヌタヌゲヌムに぀いお考えたす。 レヌスゲヌムの倚くは、この手法を䜿甚しお車䞡を制埡できたすが、仮想䞖界たたは珟実䞖界での茞送制埡の手段を探しおいる他のアプリケヌションも数倚くありたす。

それでは、これをどのように行うのでしょうか AIを実装するには倚くの方法がありたすが、車䞡を運転するために「脳」が必芁な堎合は、ニュヌラルネットワヌクで十分です。 ニュヌラルネットワヌクは脳のように機胜したす。 それらはおそらく正しい遞択でしょう。 ニュヌラルネットワヌクの入力ず出力を決定する必芁がありたす。





ニュヌラルネットワヌク



脳の構造を調べるず、ニュヌラルネットワヌクが珟れたした。 私たちの脳は、互いに電気信号を送る10 11個のニュヌロン现胞で構成されおいたす。 各ニュヌロンは、「結果を生成する」1぀たたは2぀の軞玢ず、入力電気信号を受け取る倚数の暹状突起で構成されたす。 ニュヌロンには、特定の入力信号匷床が必芁です。これは、アクティブ化するためにすべおの暹状突起から加算されたす。 掻性化されるず、ニュヌロンはその軞玢を介しお他のニュヌロンに電気信号を送信したす。 接続軞玢ず暹状突起が頻繁に䜿甚される堎合、それらは匷化されたす。

この原則は、小芏暡なニュヌラルネットワヌクに適甚されたす。 珟代のコンピュヌタヌには200億個のニュヌロンを䜜成する蚈算胜力はありたせんが、耇数のニュヌロンがある堎合でも、ニュヌラルネットワヌクは劥圓な答えを䞎えるこずができたす。

図1に瀺すように、ニュヌロンはレむダヌに線成されたす 。 入力局には入力があり、次の局の各ニュヌロンずの接続の匷床に応じお、入力信号は次のレベルに䟛絊されたす。 ゞョむントの匷床は重量ず呌ばれたす。 各局の各ニュヌロンの倀は、接続の重みず前の局のニュヌロンの倀に䟝存したす。



図1

ドラむバヌは「関数」ず比范できたす。 倚くの入力がありたすドラむバヌが芋るもの。 このデヌタは機胜ずしお脳によっお凊理され、ドラむバヌの反応は機胜から抜け出す方法です。

関数fx= yは、x1次元の倀をy1次元に倉換したす。

ドラむバヌの脳には逆䌝播ニュヌラルネットワヌクを䜿甚したす。そのようなニュヌラルネットワヌクは、いく぀かの次元を持぀可胜性のある定矩ず倀の領域を持぀関数を近䌌できるためです Fx1、x2、...、xn= y1、y2、... 、yn

いく぀かの入力ず出力を凊理する必芁があるため、これがたさに必芁なものです。

ニュヌラルネットワヌクが少数のニュヌロンのみで構成されおいる堎合、蚱容可胜な結果を​​埗るために必芁な重みを蚈算できたす。 しかし、ニュヌロンの数が増えるず、蚈算の耇雑さが増したす。 バックプロパゲヌションネットワヌクは、必芁な重みを確立するようにトレヌニングできたす。 目的の結果ずそれに察応する入力を提䟛するだけです。

トレヌニング埌、ニュヌラルネットワヌクは応答しお既知の結果を適甚するずきに必芁な結果を生成し、トレヌニングず䞀臎しない入力に察しお正しい答えを「掚枬」したす。

実際の蚈算はこの蚘事の範囲倖です。 埌方䌝搬ネットワヌクがどのように機胜するかを説明する優れた本がたくさんありたす。

この堎合に䜿甚されるニュヌラルネットワヌクには4぀の局がありたす 図2 。 3〜6局のさたざたな組み合わせを詊したした。 すべおが3぀のレむダヌで完党に機胜したしたが、22の入力/出力のセットでネットワヌクをトレヌニングしたずき、関数の近䌌は十分に正確ではありたせんでした。 5局ず6局は完璧に機胜したしたが、孊習に倚くの時間がかかりPIIで20から30分、プログラムを開始したずきに蚈算に倚くのプロセッサ時間がかかりたした。

このネットワヌクでは、入力局に3぀のニュヌロン、結果の局に2぀のニュヌロンがありたす。 理由は埌で説明したす。 それらの間には、それぞれ8぀のニュヌロンからなる2぀の局がありたす。 繰り返したすが、ニュヌロンの数を増やしたり枛らしたりしおレむダヌをテストし、8で解決したした。この数では蚱容できる結果が埗られるからです。

ニュヌロンの数を遞択するずきは、システムに远加された各レむダヌず各ニュヌロンが重みの蚈算に必芁な時間を増やすこずに泚意しおください。



図2

ニュヌロンの远加

i個のニュヌロンを持぀入力レむダヌIず、 o個のニュヌロンを持぀結果レむダヌOがありたす。 äž­é–“å±€Mにニュヌロンを1぀远加したす。 远加するニュヌロン間の接続の数はi + oです。

レむダヌの远加

i個のニュヌロンを持぀入力レむダヌIず、 o個のニュヌロンを持぀結果レむダヌOがありたす。 それぞれにm個のニュヌロンを持぀M局を远加したす。 远加するニュヌロン間の接続の数はm *i + oです。

「脳」がどのように機胜するかを調べたので、ニュヌラルネットワヌクの入力ず出力を決定する方法を理解する必芁がありたす。 ニュヌラルネットワヌクは、仮想䞖界からの情報を提䟛し、ネットワヌクレスポンスを車䞡コントロヌラヌに送信しない堎合、それ自䜓は䜕もしたせん。

ログむン



運転にはどのような情報が重芁ですか たず、私たちずの関係で障害物の䜍眮を知る必芁がありたす。 この䜍眮は右偎、巊偎、たたは前方ですか 道路の䞡偎に建物があり、前方に䜕もない堎合は、スピヌドアップしたす。 しかし、車が目の前で止たったら、ブレヌキをかけたす。 次に、自分の䜍眮からオブゞェクトたでの距離を知る必芁がありたす。 オブゞェクトが遠い堎合は、オブゞェクトが近づくたで動き続けたす。その堎合、枛速たたは停止したす。

これはたさに、ニュヌラルネットワヌクに䜿甚する情報です。 簡単にするために、巊、前、右の3぀の盞察的な方向を玹介したす。 障害物から車䞡たでの距離だけでなく。



図3

AIドラむバヌの芖野を定矩し、圌が芋るオブゞェクトのリストを䜜成したす。 簡単にするために、この䟋では円を䜿甚したすが、6぀の亀差する平面で切り取られた実際の円錐を䜿甚するこずもできたす。 次に、この円の各オブゞェクトに぀いお、それが巊の芖野にあるか、右にあるか、䞭倮にあるかを確認したす。

配列がニュヌラルネットワヌクの入り口に提䟛されたす float Vision [3] 。 車䞡の巊偎、䞭倮、右偎の最も近い障害物たでの距離は、それぞれVision [0] 、 Vision [1] 、 Vision [2]に保存されたす。 図3は、この配列の倖芳を瀺しおいたす。 巊偎の障害物は最倧距離の80、右偎の障害物は40で、䞭倮に障害物はありたせん。

これを蚈算するには、各オブゞェクトの䜍眮x、y、車の䜍眮x、y、および車䞡の角床が必芁です。 たた、 r 円の半埄ずd right 、 d left-車ずラむンL rightおよびL leftの間のベクトルも必芁です。 これらの線は、車の移動方向に平行です。 䞡方のベクトルは線に垂盎です。

これは3Dの䞖界ですが、すべおの数孊は2次元です。車は飛行しないため、3次元で移動できないためです。 すべおの方皋匏にはxずyのみが含たれ、 zは含たれたせん。

たず、ラむンL rightずL leftの方皋匏を蚈算したす。これは、障害物が車䞡の右、巊、たたは䞭倮にあるかどうかを刀断するのに圹立ちたす。

図4は、すべおの蚈算の図です。



図4



どこで



次に、線䞊の点の座暙を蚈算したす



ここで、V xずVは車䞡の䜍眮です。

これで最終的にc rを蚈算できたす



同様に、ベクトルd leftを䜿甚しお、線L leftの方皋匏を芋぀けたす。

次に、円の䞭心を蚈算する必芁がありたす。 円の䞭のすべおがAIによっお衚瀺されたす。 車䞡Vx、yの䜍眮から距離rにある円Cx、yの䞭心。





ここで、 V x 、 V yは車䞡の䜍眮、 C x 、 C yは円の䞭心です。

次に、䞖界の各オブゞェクトが円内にあるかどうかを確認したすオブゞェクトがクアッドツリヌたたはオクツリヌで構成されおいる堎合、このプロセスはリンクリストよりもはるかに高速です。

もし 、オブゞェクトは円の䞭にありたす。ここで、 O x 、 O yは障害物の座暙です。

円内の各オブゞェクトに぀いお、それが車䞡の右、巊、たたは䞭倮にあるかどうかを確認する必芁がありたす。

もし 、オブゞェクトは円の右偎にありたす

そうでなければ その埌、巊偎に

それ以倖の堎合は䞭倮にありたす。

オブゞェクトから車たでの距離を蚈算したす



次に、配列の察応する郚分に距離を保存したす Vision [0] 、 Vision [1]たたはVision [2] 。ただし、以前に保存した距離が蚈算した距離よりも倧きい堎合に限りたす。 最初に、Vision配列を2r倀で初期化する必芁がありたす。

各オブゞェクトをチェックした埌、車の右偎、䞭倮、および巊偎に最も近いオブゞェクトたでの距離を持぀ビゞョンの配列がありたす。 この芖野にオブゞェクトが芋぀からなかった堎合、配列芁玠にはデフォルト倀が蚭定されたす。 、぀たり、「芖界内に単䞀のオブゞェクトはありたせん。」

ニュヌラルネットワヌクはシグモむド関数を䜿甚するため、入力は0.0から1.0の間でなければなりたせん。 0.0はオブゞェクトが車䞡に觊れおいるこずを意味し、 1.0は芖界内にオブゞェクトがないこずを意味したす。 AIドラむバヌが芋るこずができる最倧距離を蚭定するので、すべおの距離を0.0から1.0の範囲に簡単に移動できたす。





出口



出口で、車の速床ず方向を倉曎するための指瀺を受け取る必芁がありたす。 加速、ブレヌキング、およびステアリング角床がありたす。 したがっお、2぀の出口が必芁です。 1぀は加速/枛速倀ブレヌキは単なる負の加速で、もう1぀は方向の倉化を瀺したす。

入力ず同じ理由で、結果は0.0〜1.0です。 加速の堎合、 0.0は「フルブレヌキ」を意味したす。 1,0- 「フルスロットル」および0.5-ブレヌキたたは加速なし。 ステアリングの堎合、 0.0は「完党に巊」、 1.0は「完党に右」、 0.5は方向なしを意味したす。 そのため、結果を䜿甚可胜な倀に倉換する必芁がありたす。





「負の加速」ずは、車䞡が前進しおいる堎合にブレヌキをかけるこずを意味したすが、車䞡が停止しおいる堎合は反察方向に動くこずも意味したす。 さらに、「正の加速」ずは、車䞡が反察方向に走行しおいる堎合にブレヌキをかけるこずを意味したす。



トレヌニング



前述したように、最初にニュヌラルネットワヌクをトレヌニングする必芁がありたす。 入力ずそれに察応する出力のセットを䜜成する必芁がありたす。

ニュヌラルネットワヌクをトレヌニングするために適切なI / Oを遞択するこずは、おそらく最も難しい䜜業です。 倧量のデヌタを䜿甚しおネットワヌクをトレヌニングし、環境内で車がどのように動䜜するかを芳察し、必芁に応じおレコヌドを倉曎する必芁がありたした。 ネットワヌクのトレヌニング方法によっおは、車䞡が状況によっお「ぐら぀き」、動かなくなるこずがありたす。

車䞡に察する障害物のさたざたな䜍眮ず、垌望するAI応答の衚 è¡š1 を䜜成したす。

è¡š1

入力ニュヌロン

障害物たでの盞察距離
出力ニュヌロン
巊偎に 䞭倮に 右ぞ 加速 方向
障害物なし 障害物なし 障害物なし フルスロットル ストレヌト
途侭 障害物なし 障害物なし わずかな加速 少し右
障害物なし 障害物なし 途侭 わずかな加速 巊ぞ
障害物なし 途侭 障害物なし 制動 巊ぞ
途侭 障害物なし 途侭 加速 ストレヌト
オブゞェクトタッチ オブゞェクトタッチ オブゞェクトタッチ 戻りストロヌク 巊ぞ
途侭 途侭 途侭 倉化なし 巊ぞ
オブゞェクトタッチ 障害物なし 障害物なし 制動 完党な暩利
障害物なし 障害物なし オブゞェクトタッチ 制動 巊いっぱい
障害物なし オブゞェクトタッチ 障害物なし 戻りストロヌク 巊ぞ
オブゞェクトタッチ 障害物なし オブゞェクトタッチ フルスロットル ストレヌト
オブゞェクトタッチ オブゞェクトタッチ 障害物なし 戻りストロヌク 完党な暩利
障害物なし オブゞェクトタッチ オブゞェクトタッチ 戻りストロヌク 巊いっぱい
オブゞェクトを閉じる オブゞェクトを閉じる オブゞェクトは非垞に近い 倉化なし 巊ぞ
オブゞェクトは非垞に近い オブゞェクトを閉じる オブゞェクトを閉じる 倉化なし 右ぞ
オブゞェクトタッチ オブゞェクトは非垞に近い オブゞェクトは非垞に近い 制動 完党な暩利
オブゞェクトは非垞に近い オブゞェクトは非垞に近い オブゞェクトタッチ 制動 巊いっぱい
オブゞェクトタッチ オブゞェクトを閉じる 遠いオブゞェクト 倉化なし 右ぞ
遠い物䜓 オブゞェクトを閉じる オブゞェクトタッチ 倉化なし 巊ぞ
オブゞェクトは非垞に近い オブゞェクトを閉じる 被写䜓は䞭途半端より近い 倉化なし 完党な暩利
被写䜓は䞭途半端より近い オブゞェクトを閉じる オブゞェクトは非垞に近い 制動 巊いっぱい


これで、これを衚2の数倀に倉換できたす。

è¡š2

入力ニュヌロン 出力ニュヌロン
巊偎に 䞭倮に 右ぞ 加速 方向
1,0 1,0 1,0 1,0 0.5
0.5 1,0 1,0 0.6 0.7
1,0 1,0 0.5 0.6 0.3
1,0 0.5 1,0 0.3 0.4
0.5 1,0 0.5 0.7 0.5
0,0 0,0 0,0 0.2 0.2
0.5 0.5 0.5 0.5 0.4
0,0 1,0 1,0 0.4 0.9
1,0 1,0 0,0 0.4 0.1
1,0 0,0 1,0 0.2 0.2
0,0 1,0 0,0 1,0 0.5
0,0 0,0 1,0 0.3 0.8
1,0 0,0 0,0 0.3 0.2
0.3 0.4 0.1 0.5 0.3
0.1 0.4 0.3 0.5 0.7
0,0 0.1 0.2 0.3 0.9
0.2 0.1 0,0 0.3 0.1
0,0 0.3 0.6 0.5 0.8
0.6 0.3 0,0 0.5 0.2
0.2 0.3 0.4 0.5 0.9
0.4 0.3 0.2 0.4 0.1




ログむン

0.0車䞡にほずんど接觊しおいるオブゞェクト。

1.0車䞡から最倧距離にあるか、芖野内にないオブゞェクト

出力

加速

0.0最倧の負の加速床ブレヌキたたはその逆

1.0最倧の正の加速床

方向

0.0巊いっぱい

0.5ストレヌト

1.0完党な暩利

結論/改善する方法



バックプロパゲヌションニュヌラルネットワヌクの䜿甚は、この目的には適しおいたすが、テスト䞭に特定されたいく぀かの問題がありたす。 いく぀かの倉曎は、プログラムの信頌性を高め、他の状況に適応させるこずができたす。 ここで、あなたが解決に぀いお考えるかもしれないいく぀かの問題に぀いお説明したす。



図5

車䞡はしばらくの間「行き詰たり」たす。これは、巊に進むか右に進むかを決めるのをためらうからです。 これは予想されるこずでした時には人々は同じ問題を抱えおいたす。 ニュヌラルネットワヌクの重みを調敎しようずしお、これを修正するのはそれほど簡単ではありたせん。 ただし、次のようなコヌド行を远加できたす。

「車䞡が5秒間動かない堎合コントロヌルを取り、右に90床回転したす」

このようにしお、私たちは䜕をすべきかを知らずに車が止たらないこずを保蚌できたす。

図5に瀺すように、車䞡には2぀の家の間に小さな隙間はありたせん。 芖芚の粟床が高くないため巊、䞭倮、右、互いに近い2぀の建物は人工知胜の壁のように芋えたす。 AIをより明確に衚瀺するには、ニュヌラルネットワヌクの入り口で5レベルたたは7レベルの粟床が必芁です。 「右、䞭倮、巊」の代わりに、「右端、右端近く、䞭倮、巊端近く、巊端」を䜿甚できたす。 ニュヌラルネットワヌクの適切なトレヌニングにより、人工知胜はギャップを認識し、ギャップを通過できるこずを理解したす。

2Dの䞖界で機胜したすが、車䞡が掞窟を飛ぶこずができるずしたらどうでしょうか この手法にいく぀かの倉曎を加えるこずで、乗車せずにAIを飛行させるこずができたす。 最埌の問題ずの類掚により、芖線の粟床が向䞊したす。 ただし、「暩利」ず「ラむオン」を远加する代わりに、 è¡š3に瀺すように行うこずができたす。

è¡š3

巊䞊 侊 右䞊
巊偎に センタヌ 右ぞ
å·Šäž‹ 階例 右䞋


ニュヌラルネットワヌクで䞖界を3Dで衚瀺できるようになったので、制埡ず車䞡の䞖界に察する反応を倉曎するだけです。

車䞡は特定の目的なしに「さたよう」だけです。 障害物を避けるこず以倖は䜕もしたせん。 行きたい堎所に応じお、必芁に応じお脳を「調敎」できたす。 倚くの異なるニュヌラルネットワヌクを䜿甚し、特定の状況で適切なニュヌラルネットワヌクを䜿甚できたす。 たずえば、目の前の車を远いかけるこずができたす。 別の車䞡に远埓するように蚓緎された別のニュヌラルネットワヌクを接続し、入力ずしお2番目の車䞡の䜍眮を受け取るだけです。

先ほど芋たように、この方法はさたざたな分野で改善および適甚できたす。 有甚な目的で䜿甚されおいなくおも、人工知胜システムが環境内でどのように動䜜するかを芳察するこずは興味深いこずです。 十分に長い時間芳察するず、困難な状況では、ニュヌラルネットワヌクの性質による解のわずかな違いにより、車䞡が垞に同じ経路をたどるこずはないこずがわかりたす。 車は時々建物の巊に、時には同じ建物の右に運転したす。



文孊



  1. Joey Rogers、オブゞェクト指向ニュヌラルネットワヌク、C ++、アカデミックプレス、カリフォルニア州サンディ゚ゎ、1997
  2. MT Hagan、HB DemuthおよびMH Beale、Neural Network Design、PWS Publishing、マサチュヌセッツ州ボストン、1995



All Articles