IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ザ・ボーイング・カンパニーの特許一覧

特許7541876航空機を制御するためのニューラルネットワークを訓練するためのシステム及び方法
<>
  • 特許-航空機を制御するためのニューラルネットワークを訓練するためのシステム及び方法 図1
  • 特許-航空機を制御するためのニューラルネットワークを訓練するためのシステム及び方法 図2
  • 特許-航空機を制御するためのニューラルネットワークを訓練するためのシステム及び方法 図3
  • 特許-航空機を制御するためのニューラルネットワークを訓練するためのシステム及び方法 図4
  • 特許-航空機を制御するためのニューラルネットワークを訓練するためのシステム及び方法 図5
  • 特許-航空機を制御するためのニューラルネットワークを訓練するためのシステム及び方法 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-21
(45)【発行日】2024-08-29
(54)【発明の名称】航空機を制御するためのニューラルネットワークを訓練するためのシステム及び方法
(51)【国際特許分類】
   G06N 3/092 20230101AFI20240822BHJP
   G05B 13/02 20060101ALI20240822BHJP
   B64C 13/18 20060101ALI20240822BHJP
【FI】
G06N3/092
G05B13/02 M
B64C13/18 C
【請求項の数】 20
【外国語出願】
(21)【出願番号】P 2020145354
(22)【出願日】2020-08-31
(65)【公開番号】P2021057024
(43)【公開日】2021-04-08
【審査請求日】2023-08-28
(31)【優先権主張番号】16/554,838
(32)【優先日】2019-08-29
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】500520743
【氏名又は名称】ザ・ボーイング・カンパニー
【氏名又は名称原語表記】The Boeing Company
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】チェン, ヤン
(72)【発明者】
【氏名】コースラ, ディーパック
(72)【発明者】
【氏名】マーティン, ケヴィン
【審査官】多賀 実
(56)【参考文献】
【文献】特開2018-151876(JP,A)
【文献】特開2019-105891(JP,A)
【文献】国際公開第2018/101035(WO,A1)
【文献】特開平8-076810(JP,A)
【文献】特開2005-059656(JP,A)
【文献】米国特許出願公開第2019/0004518(US,A1)
【文献】Kjell Kersandt et al.,"Self-training by Reinforcement Learning for Full-autonomous Drones of the Future",2018 IEEE/AIAA 37th Digital Avionics Systems Conference (DASC) [online],IEEE,2018年,[検索日 2024.08.02], インターネット:<URL: https://ieeexplore.ieee.org/abstract/document/8569503>,DOI: 10.1109/DASC.2018.8569503
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00- 99/00
G05D 1/00- 1/87
B64C 1/00- 99/00
B64D 1/00- 47/08
(57)【特許請求の範囲】
【請求項1】
航空機を制御するためのニューラルネットワークを訓練する装置であって、
第1のニューラルネットワーク(104、220)を格納するよう構成されたメモリ(132)と、
制御入力生成器(144)であって、
第1の制御入力(103、113)を飛行シミュレータ(146)に供給することであって、前記飛行シミュレータ(146)は、前記第1の制御入力(103、113)に応じて第1の状態データ(105、115)を生成し、候補の第2の制御入力(107)を生成するために前記第1の状態データ(105、115)を入力として前記第1のニューラルネットワーク(104、220)に供給する、第1の制御入力(103、113)を飛行シミュレータ(146)に供給すること、
乱数値に基づいて、前記飛行シミュレータ(146)のための第2の制御入力(103、113)を選択することであって、前記第2の制御入力(103、113)は、前記候補の第2の制御入力(107)とランダムなオフセット制御入力(191)との間から選択され、前記ランダムなオフセット制御入力(191)は、前記第1の制御入力(103、113)に加えられるランダムオフセット(109)に基づいている、第2の制御入力(103、113)を選択すること、及び
前記第2の制御入力(103、113)を前記飛行シミュレータ(146)に供給することであって、前記飛行シミュレータ(146)は、前記第2の制御入力(103、113)に応じて第2の状態データ(105、115)を生成するよう構成される、前記第2の制御入力(103、113)を前記飛行シミュレータ(146)に供給すること
を行うよう構成された、制御入力生成器(144)と、
前記第1の状態データ(105、115)及び前記第2の状態データ(105、115)に少なくとも部分的に基づいて、前記第1のニューラルネットワーク(104、220)の重み(121)を更新するよう構成されたニューラルネットワーク訓練器(140)と
を備える、航空機を制御するためのニューラルネットワークを訓練する装置。
【請求項2】
前記制御入力生成器(144)は、前記第1の制御入力(103、113)の値が中央に来るよう調整された範囲内から値を無作為に選択することにより、前記ランダムなオフセット制御入力(191)を生成するよう構成される、請求項1に記載の装置。
【請求項3】
前記制御入力生成器(144)は、前記第2の状態データ(105、115)により示される高度変化及びピッチに基づいて、報酬値(111)を決定するよう構成され、前記重み(121)は、前記報酬値(111)に少なくとも部分的に基づいて更新される、請求項1又は2に記載の装置。
【請求項4】
前記第1のニューラルネットワーク(104、220)は、複数の制御入力に対応する複数の出力ノード(206)を含み、前記複数の出力ノードの第1の出力ノード(206)が、前記候補の第2の制御入力(107)に対応しており、前記第1のニューラルネットワーク(104、220)が、前記第1の状態データ(105、115)を受信して、前記複数の出力ノード(206)のための出力値として複数の予測される報酬値を生成するよう構成され、前記第1の出力ノード(206)のための第1の予測される報酬値(117、127、219)が、前記複数の予測される報酬値からの最大予測報酬値である、請求項3に記載の装置。
【請求項5】
前記メモリ(132)は、第2のニューラルネットワーク(106、220)を格納するようさらに構成され、
前記ニューラルネットワーク訓練器(140)は、
前記第2の状態データ(105、115)を第2の入力として前記第2のニューラルネットワーク(106、220)に供給することであって、前記第2のニューラルネットワーク(106、220)は、前記複数の制御入力に対応する複数の第2の出力ノード(206)を含み、前記第2のニューラルネットワーク(106、220)は、前記第2の状態データ(105、115)を受信して、前記複数の第2の出力ノード(206)のための第2の出力値として複数の第2の予測される報酬値を生成するよう構成される、前記第2の状態データ(105、115)を第2の入力として前記第2のニューラルネットワーク(106、220)に供給することと、
第2の出力ノード(206)のための第2の予測される報酬値(119、219)が、前記複数の第2の予測される報酬値からの最大予測報酬値であると判定すること
を行うようさらに構成され、
前記第1のニューラルネットワーク(104、220)の前記重み(121)が、前記報酬値(111)、前記第1の予測される報酬値(117、127、219)、及び前記第2の予測される報酬値(119、219)に基づいて更新される、請求項4に記載の装置。
【請求項6】
前記第2のニューラルネットワーク(106、220)は、前記第1のニューラルネットワーク(104、220)の遅延されたコピーである、請求項5に記載の装置。
【請求項7】
航空機を制御するためのニューラルネットワークを訓練する方法であって、
第1の制御入力(103、113)を飛行シミュレータ(146)に供給することであって、前記飛行シミュレータ(146)は前記第1の制御入力(103、113)に応じて第1の状態データ(105、115)を生成し、候補の第2の制御入力(107)を生成するために前記第1の状態データ(105、115)を入力として第1のニューラルネットワーク(104、220)に供給する、第1の制御入力(103、113)を飛行シミュレータ(146)に供給することと、
乱数値に基づいて、前記飛行シミュレータ(146)のための第2の制御入力(103、113)を選択することであって、前記第2の制御入力(103、113)は、前記候補の第2の制御入力(107)とランダムなオフセット制御入力(191)との間から選択され、前記ランダムなオフセット制御入力(191)は、前記第1の制御入力(103、113)に加えられるランダムオフセット(109)に基づいている、第2の制御入力(103、113)を選択することと、
前記第2の制御入力(103、113)を前記飛行シミュレータ(146)に供給することであって、前記飛行シミュレータ(146)は、前記第2の制御入力(103、113)に応じて第2の状態データ(105、115)を生成する、前記第2の制御入力(103、113)を前記飛行シミュレータ(146)に供給することと、
前記第1の状態データ(105、115)及び前記第2の状態データ(105、115)に少なくとも部分的に基づいて、前記第1のニューラルネットワーク(104、220)の重み(121)を更新すること
を含む、航空機を制御するためのニューラルネットワークを訓練する方法。
【請求項8】
前記候補の第2の制御入力(107)は、前記乱数値がランダム化設定値(193)以下であるという判定に応じて、前記第2の制御入力(103、113)として選択される、請求項7に記載の方法。
【請求項9】
前記ランダムなオフセット制御入力(191)は、前記乱数値がランダム化設定値(193)より大きいという判定に応じて、前記第2の制御入力(103、113)として選択される、請求項7又は8に記載の方法。
【請求項10】
前記第1のニューラルネットワーク(104、220)を訓練する繰り返し回数に基づいて、ランダム化設定値(193)を更新することをさらに含み、前記第2の制御入力(103、113)は、前記ランダム化設定値(193)に基づいて選択される、請求項7から9のいずれか一項に記載の方法。
【請求項11】
前記第1の制御入力(103、113)の値が中央に来るよう調整された範囲内から値を無作為に選択することにより、前記ランダムなオフセット制御入力(191)を生成することをさらに含む、請求項7から10のいずれか一項に記載の方法。
【請求項12】
前記第1の状態データ(105、115)は、高度、速度、ピッチ、昇降舵設定、高度変化、速度変化、又はピッチ変化の少なくとも1つを示す、請求項7から11のいずれか一項に記載の方法。
【請求項13】
前記第2の状態データ(105、115)により示される高度変化及びピッチに基づいて報酬値(111)を決定することをさらに含み、前記重み(121)は、前記報酬値(111)に少なくとも部分的に基づいて更新される、請求項7から12のいずれか一項に記載の方法。
【請求項14】
前記第1のニューラルネットワーク(104、220)は、複数の制御入力に対応する複数の出力ノード(206)を含み、第1の出力ノード(206)が、前記候補の第2の制御入力(107)に対応しており、前記第1のニューラルネットワーク(104、220)が、前記第1の状態データ(105、115)を受信して、前記複数の出力ノード(206)のための出力値として、複数の予測される報酬値を生成するよう構成され、前記第1の出力ノード(206)のための第1の予測される報酬値(117、127、219)が、前記複数の予測される報酬値からの最大予測報酬値である、請求項13に記載の方法。
【請求項15】
前記第2の状態データ(105、115)を第2の入力として第2のニューラルネットワーク(106、220)に供給することであって、前記第2のニューラルネットワーク(106、220)は、前記複数の制御入力に対応する複数の第2の出力ノード(206)を含み、前記第2のニューラルネットワーク(106、220)は、前記第2の状態データ(105、115)を受信して、前記複数の第2の出力ノード(206)のための第2の出力値として、複数の第2の予測される報酬値を生成するよう構成される、前記第2の状態データ(105、115)を第2の入力として第2のニューラルネットワーク(106、220)に供給することと、
第2の出力ノード(206)のための第2の予測される報酬値(119、219)が、前記複数の第2の予測される報酬値からの最大予測報酬値であると判定すること
をさらに含み、
前記第1のニューラルネットワーク(104、220)の前記重み(121)が、前記報酬値(111)、前記第1の予測される報酬値(117、127、219)、及び前記第2の予測される報酬値(119、219)に基づいて更新される、請求項14に記載の方法。
【請求項16】
前記第2のニューラルネットワーク(106、220)は、前記第1のニューラルネットワーク(104、220)の遅延されたコピーである、請求項15に記載の方法。
【請求項17】
前記第2のニューラルネットワーク(106、220)の第2の重みの先行する更新以降の、前記第1のニューラルネットワーク(104、220)の訓練の繰り返し回数が閾値より大きいという判定に基づいて、前記第2のニューラルネットワーク(106、220)の前記第2の重みを、前記第1のニューラルネットワーク(104、220)の前記重み(121)に基づいて更新することをさらに含む、請求項15又は16に記載の方法。
【請求項18】
コンピュータ可読記憶デバイスであって、
命令を格納しており、
前記命令は、1つ以上のプロセッサによって実行されると、
第1の制御入力(103、113)を飛行シミュレータ(146)に供給することであって、前記飛行シミュレータ(146)は前記第1の制御入力(103、113)に応じて第1の状態データ(105、115)を生成し、候補の第2の制御入力(107)を生成するために前記第1の状態データ(105、115)を入力として第1のニューラルネットワーク(104、220)に供給する、第1の制御入力(103、113)を飛行シミュレータ(146)に供給することと、
乱数値に基づいて、前記飛行シミュレータ(146)のための第2の制御入力(103、113)を選択することであって、前記第2の制御入力(103、113)は、前記候補の第2の制御入力(107)とランダムなオフセット制御入力(191)との間から選択され、前記ランダムなオフセット制御入力(191)は、前記第1の制御入力(103、113)に加えられるランダムオフセット(109)に基づいている、第2の制御入力(103、113)を選択することと、
前記第2の制御入力(103、113)を前記飛行シミュレータ(146)に供給することであって、前記飛行シミュレータ(146)は、前記第2の制御入力(103、113)に応じて第2の状態データ(105、115)を生成する、前記第2の制御入力(103、113)を前記飛行シミュレータ(146)に供給することと、
前記第1の状態データ(105、115)及び前記第2の状態データ(105、115)に少なくとも部分的に基づいて、前記第1のニューラルネットワーク(104、220)の重み(121)を更新すること
を含む動作を、前記1つ以上のプロセッサに実行させる、コンピュータ可読記憶デバイス。
【請求項19】
前記第1の状態データ(105、115)は、高度、速度、ピッチ、昇降舵設定、高度変化、速度変化、又はピッチ変化の少なくとも1つを示す、請求項18に記載のコンピュータ可読記憶デバイス。
【請求項20】
前記動作は、前記第2の状態データ(105、115)により示される高度変化及びピッチに基づいて、報酬値(111)を決定することをさらに含み、前記重み(121)は、前記報酬値(111)に少なくとも部分的に基づいて更新される、請求項18又は19に記載のコンピュータ可読記憶デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、航空機を制御するためのニューラルネットワークを訓練することに関する。
【背景技術】
【0002】
人工知能と機械学習の進歩により、自動走行する車両は達成可能な目標となっているが、航空機は、引き続きパイロットによって操縦されている。自律的な航空機を訓練するために人間のパイロットからデータを収集することには、時間とコストが掛かりうる。以前のパイロットの経験に基づいた収集された訓練データでは、航空機が遭遇する可能性のある潜在的な新しいシナリオを網羅しないであろう。
【発明の概要】
【0003】
或る特定の実現において、航空機を制御するためのニューラルネットワークを訓練する装置は、メモリと、制御入力生成器と、ニューラルネットワーク訓練器とを含む。メモリは、第1のニューラルネットワークを格納するよう構成される。制御入力生成器は、第1の制御入力を飛行シミュレータに供給するよう構成される。飛行シミュレータが、第1の制御入力に応じて第1の状態データを生成し、候補の第2の制御入力を生成するために第1の状態データを入力として第1のニューラルネットワークに供給するよう構成される。制御入力生成器はまた、乱数値に基づいて、飛行シミュレータのための第2の制御入力を選択するよう構成される。第2の制御入力が、候補第2制御入力と、ランダムなオフセット制御入力と、の間から選択される。ランダムなオフセット制御入力は、第1の制御入力に加えられるランダムオフセットに基づいている。制御入力生成器は、第2の制御入力を飛行シミュレータに提供するようさらに構成される。飛行シミュレータは、第2の制御入力に応じて、第2の状態データを生成するよう構成される。ニューラルネットワーク訓練器は、第1の状態データ及び第2の状態データに少なくとも部分的に基づいて、第1のニューラルネットワークの重みを更新するよう構成される。
【0004】
他の特定の実現において、航空機を制御するためのニューラルネットワークを訓練する方法が、第1の制御入力を飛行シミュレータに供給することを含む。飛行シミュレータは、第1の制御入力に応じて第1の状態データを生成し、候補の第2の制御入力を生成するために第1の状態データを入力として第1のニューラルネットワークに供給する。本方法はまた、乱数値に基づいて、飛行シミュレータのための第2の制御入力を選択することを含む。第2の制御入力が、候補第2制御入力と、ランダムなオフセット制御入力と、の間から選択される。ランダムなオフセット制御入力は、第1の制御入力に加えられるランダムオフセットに基づいている。本方法は、第2の制御入力を飛行シミュレータに供給することを含む。飛行シミュレータは、第2の制御入力に応じて、第2の状態データを生成する。本方法はまた、第1の状態データ及び第2の状態データに少なくとも部分的に基づいて、第1のニューラルネットワークの重みを更新することを含む。
【0005】
別の特定の実現において、コンピュータ可読記憶デバイスが、命令であって、
1つ以上のプロセッサによって実行されると、当該1つ以上のプロセッサに、航空機を制御するためのニューラルネットワークを訓練するための動作を実施又は制御させる命令を格納している。動作は、第1の制御入力を飛行シミュレータに供給することを含む。飛行シミュレータは、第1の制御入力に応じて第1の状態データを生成し、候補の第2の制御入力を生成するために第1の状態データを入力として第1のニューラルネットワークに供給する。動作はまた、乱数値に基づいて、飛行シミュレータのための第2の制御入力を選択することも含む。第2の制御入力が、候補第2制御入力と、ランダムなオフセット制御入力と、の間から選択される。ランダムなオフセット制御入力は、第1の制御入力に加えられるランダムオフセットに基づいている。動作は、第2の制御入力を飛行シミュレータに供給することを含む。飛行シミュレータは、第2の制御入力に応じて、第2の状態データを生成する。動作はまた、第1の状態データ及び第2の状態データに少なくとも部分的に基づいて、第1のニューラルネットワークの重みを更新することを含む。
【0006】
本明細書に記載された特徴、機能、及び利点は、様々な実装形態において単独で実現することが可能であり、又は、更に別の実装形態において組み合わせることも可能である。これらのさらなる詳細は、以下の明細書の記載及び図面を参照して理解されうる。
【図面の簡単な説明】
【0007】
図1】航空機を制御するためのニューラルネットワークを訓練するよう構成されたシステムを示す図である。
図2図1のシステムのニューラルネットワークの一例の図である。
図3】航空機を制御するためのニューラルネットワークを訓練する方法の一例のフローチャートを示す図である。
図4図1のニューラルネットワークを含む、航空機のライフサイクルを示すフローチャートである。
図5】ニューラルネットワークにより制御されるよう構成された航空機の図である。
図6】本開示に係る、コンピュータにより実現される方法及びコンピュータで実行可能なプログラム命令(又はコード)の態様をサポートするよう構成された計算装値を含む計算環境のブロック図である。
【発明を実施するための形態】
【0008】
本明細書に開示される態様は、航空機を制御するためのニューラルネットワークを訓練するためのシステム及び方法を提示している。ニューラルネットワークは、制御入力を飛行シミュレータに供給し、制御入力に応じて、飛行シミュレータにより生成された状態データに基づいて報酬値を決定し、報酬値に基づいてニューラルネットワークの重みを更新することによって訓練される。状態データは、飛行シミュレータにおける或る特定の機種の航空機シミュレーションの状態を示している。ニューラルネットワークは、状態データに応じて、ニューラルネットワークの重みに基づいて制御入力を生成するよう構成される。訓練されたニューラルネットワークは、或る特定の機種の航空機(例えば、実在の航空機)を制御するために利用されうる。飛行シミュレータに基づいてニューラルネットワークを訓練することによって、パイロットのデータと比べて、より少ないリソース(例えば、時間及び資金)が消費される。飛行シミュレータを用いて訓練されたニューラルネットワークはまた、よりロバストである可能性が高い。なぜならば、飛行シミュレータは、パイロットが通常では遭遇しないシナリオを含む様々なシナリオをシミュレートするよう設計可能だからである。
【0009】
図及び以下の明細書の記載は、具体的かつ例示的な実施形態を示している。当業者は、本明細書に明示的に記載又は図示されていなくとも、本明細書に記載の原理を具現化し、かつ、本明細書に続く特許請求の範囲に含まれる様々な構成を考案しうることが認識されよう。更に、本明細書に記載のいかなる例も、本開示の原理の理解を支援するためのものであり、限定を含まないものと見做される。その結果、本開示は、後述する具体的な実施形態又は実施例に限定されないが、特許請求の範囲及びその均等物によって限定される。
【0010】
本明細書では、特定の実現について図面を参照して説明する。本明細書の記載では、共通の特徴が図面全体を通じて、共通の参照番号により指し示される。本明細書では、様々な用語は、特定の実現を説明するためのみに使用されており、限定することは意図されていない。例えば、単数形「1つの(a、an)」及び「その(the)」は、文脈が明らかにそうでないことを示さない限りは、複数形も含むことが意図されている。さらに、本明細書に記載する幾つかの特徴は、幾つかの実現では単数で存在し、他の実現では複数で存在する。本明細書で簡単に参照できるように、このような特徴は一般に「1つ以上の」特徴として導入され、それ以降は、複数の上記特徴に関連する態様が記載されていない限り、単数の特徴が言及される。
【0011】
「備える(comprise、comprises、comprising)」という用語は、「含む(include、includes、including)」と交換可能に使用される。さらに、「ここで(wherein)」という用語は、「その場合に(where)」という用語と交換可能に使用される。本明細書では、「例示的な(exemplary)」は、実施例、実現、及び/又は態様を示し、選好又は好適な実装形態を限定又は指示すると解釈するべきではない。本明細書では、構造、構成要素、動作といった要素を修飾する序数用語(例えば、「第1の」、「第2の」、「第3の」など)は、これ自体が、他の要素に対する上記要素の任意の優先度又は序列を示すものではなく、上記要素を(序数用語の利用を除いて)同じ名称を有する他の要素と区別しているにすぎない。本明細書で使用される「集合(set)」という用語は、1つ以上の要素のグループ化のことを指し、「複数の(plurality)」という用語は、複数の要素のことを指す。
【0012】
本明細書では、「生成する(generating)」、「計算する(calculating)」、「使用する(using)」、「選択する(selecting)」、「アクセスする(accessing)」、及び「決定する(determining)」は、文脈がそうでないことを示さない限り交換可能である。例えば、パラメータ(又は信号)を「生成する」、「計算する」、若しくは「決定する」ことは、パラメータ(又は信号)を能動的に生成、計算、若しくは決定することを指し、又は、例えば他の構成要素又はデバイスによって、既に生成されているパラメータ(又は信号)を使用、選択、若しくはアクセスすることを指しうる。本明細書で使用される「結合(coupled)」は、「通信可能に接続」、「電気的に結合」、又は「物理的に結合」を含むことができ、さらに(又は代替的に)その任意の組み合わせを含むことができる。2つのデバイス(又は構成要素)は、1つ以上の他のデバイス、構成要素、配線、バス、ネットワーク(例えば、有線ネットワーク、無線ネットワーク、又はその組み合わせ)などを介して直接又は間接的に結合(通信可能に接続、電気的に結合、又は物理的に結合)することが可能である。電気的に結合された2つのデバイス(又は構成要素)は、同じデバイス又は異なるデバイスに含めることができ、例示的な非限定的実施例として、電子機器、1つ以上のコネクタ、又は誘導結合を介して接続することが可能である。幾つかの実現において、電気通信などで通信可能に接続された2つのデバイス(又は構成要素)は、1つ又は複数の配線、バス、ネットワークなどを介して直接又は間接的に電気信号(デジタル信号又はアナログ信号)を送受信することが可能である。本明細書では、「直接結合された(directly coupled)」は、構成要素を介在させることなく結合される(例えば、通信可能に接続され、電気的に結合され、又は物理的に結合された)2つのデバイスを記述するために使用される。
【0013】
図1は、航空機を制御するためのニューラルネットワークを訓練するよう構成されたシステム100の一例を示している。システム100は、飛行シミュレータ146を含み、飛行シミュレータ146は、目標ニューラルネットワーク106、主ニューラルネットワーク104、メモリ132、又はこれらの組み合わせに通信可能に接続されている。例えば、飛行シミュレータ146は、目標ニューラルネットワーク106、主ニューラルネットワーク104、メモリ132、又はこれらの組み合わせとデータを交換するよう構成される。システム100は、飛行シミュレータ146、メモリ132、又はその双方に接続された報酬計算機142を含む。システム100は、メモリ132、報酬計算機142、目標ニューラルネットワーク106、主ニューラルネットワーク104、又はこれらの組み合わせに接続されたニューラルネットワーク訓練器140を含む。システム100はまた、メモリ132、主ニューラルネットワーク104、オフセット計算器148、飛行シミュレータ146、又はこれらの組み合わせに接続された制御入力生成器144を含む。
【0014】
或る特定の態様において、ニューラルネットワーク訓練器140は、(DQN:deep Q-Network)技術に基づいて、主ニューラルネットワーク104を訓練するよう構成される。例えば、ニューラルネットワーク訓練器140は、主ニューラルネットワーク104の遅延されたコピーに相当する目標ニューラルネットワーク106を用いて、主ニューラルネットワーク104を訓練する。例えば、ニューラルネットワーク訓練器140は、目標ニューラルネットワーク106の重みの先行する更新の後に、少なくとも1回の閾値回数による更新が主ニューラルネットワーク104の重みに対して行われているという判定に応じて、主ニューラルネットワーク104の重みを複写することによって、目標ニューラルネットワーク106の重みを更新するよう構成される。
【0015】
以下の明細書の記載では、図1のシステム100により実行される様々な機能は、特定の構成要素又はモジュールにより実行されるものとして記載されることに注意されたい。しかしながら、構成要素及びモジュールの上記分別は、例示のためだけに行われる。代替的な態様において、特定の構成要素又はモジュールにより実行されると本明細書に記載された機能が、複数の構成要素又はモジュールの間で分けられる。さらに、代替的な態様において、図1の2つ以上の構成要素又はモジュールが、単一の構成要素又はモジュールに組み込まれうる。図1に図示される各構成要素又はモジュールは、ハードウェア(例えば、フィールドプログラマブルゲートアレイ(FPGA:field-programmable gate array)デバイス、特定用途向け集積回路(ASIC:application-specific integrated circuit)、デジタル信号プロセッサ(DSP:digital signal processor)、コントローラ等)、ソフトウェア(例えば、プロセッサにより実行可能な命令)、又はこれらの任意の組み合わせを用いて実現されうる。
【0016】
或る特定の態様において、ニューラルネットワーク訓練器140は、主ニューラルネットワーク104を訓練するために、強化学習の仕組みを利用するよう構成される。上記強化学習の仕組みは、(報酬計算機142により計算された)報酬値を増大又は最大化しようと試みる。或る特定の実施例において、飛行シミュレータ146が、航空機シミュレーションの状態を表す状態データを生成する。主ニューラルネットワーク104は、状態データに基づいて制御入力を生成する。例えば、主ニューラルネットワーク104は、入力としての状態データを利用して、複数の出力のための複数の予測された主報酬値を生成する。本明細書では、「予測される主報酬値」とは、複数の出力のうちの或る特定の出力が制御入力として飛行シミュレータ146に供給される場合に主ニューラルネットワーク104の予測から結果的に得られる報酬値を指している。複数の出力のそれぞれが、様々な制御入力に相当する。或る特定の実施例において、主ニューラルネットワーク104が航空機の昇降舵設定を制御するために訓練される場合には、複数の出力は、入力として飛行シミュレータ146に供給可能な様々な昇降舵設定値(例えば、昇降舵位置角度)に相当する。本例では、或る特定の昇降舵設定値についての予測される主報酬値は、当該或る特定の昇降舵設定値が制御入力として飛行シミュレータ146に供給された場合に報酬計算機142が生成するだろうと主ニューラルネットワーク104が予測する報酬値を示す。或る特定の実現において、予測される主報酬値117は、可能な制御入力ごとに1つの予測される報酬値を含む報酬値の集合を含むベクトルである。例えば、制御入力が昇降舵設定値に相当するときには、予測される主報酬値117は、許容される昇降舵設定値ごとの予測される報酬値を示すことが可能である。代替的に、予測される主報酬値117は、ベクトルの最大予測報酬値に相当する1つの値を含みうる。
【0017】
予測された主報酬値のベクトル、最大予測報酬値、又は、複数の主報酬値の最大予測主報酬値と関連する制御入力を識別する情報が、制御入力生成器144に供給され、候補の制御入力107が示される。制御入力生成器144は、飛行シミュレータ146に供給される制御入力を選択又は生成する。飛行シミュレータ146は、制御入力生成器144により供給された制御入力に基づいて、新しい状態データを生成する。報酬計算機142が、状態データにより示される航空機シミュレーション状態の変化に基づいて(例えば、以前の状態データと新しい状態データとの比較に基づいて)、報酬値(例えば、現在の報酬値、又は、検出された報酬値)を決定する。
【0018】
ニューラルネットワーク訓練器140は、報酬値に少なくとも部分的に基づいて、主ニューラルネットワーク104を更新する。例えば、ニューラルネットワーク訓練器140は、報酬値に基づいて重み121を決定し、重み121に基づいて、主ニューラルネットワーク104の、重み付けされたノード接続を更新する。このようにして、主ニューラルネットワーク104は、結果的に「良い」報酬値(例えば、正の値の報酬値)が得られる制御入力を生成し、結果的に「悪い」報酬値(例えば、負の値報酬値)が得られる制御入力を生成しないよう訓練される。
【0019】
或る特定の態様において、ニューラルネットワーク訓練器140は、主ニューラルネットワーク104の遅延されたコピーである目標ニューラルネットワーク106に基づいて、主ニューラルネットワーク104を訓練するよう構成される。例えば、ニューラルネットワーク訓練器140は、或る特定のシミュレーション時間ステップ(t+1)について、目標ニューラルネットワーク106により生成された予測される目標報酬値119と、先行するシミュレーション時間ステップ(t)について、主ニューラルネットワーク104により生成された予測される主報酬値127と、に少なくとも部分的に基づいて、主ニューラルネットワーク104を更新する。本明細書では、「予測される目標報酬値」とは、或る特定の制御入力が飛行シミュレータ146に供給される場合に目標ニューラルネットワーク106の予測から結果的に得られる報酬値を指している。主ニューラルネットワーク104のように、目標ニューラルネットワーク106は、飛行シミュレータ146からの状態データ105に基づいて、複数の予測される目標報酬値を生成し、各目標報酬値119は、可能な制御入力に相当する。或る特定の実現において、予測される目標報酬値119は、可能な制御入力ごとに1つの予測される報酬値を含む報酬値の集合を含むベクトルである。例えば、制御入力が昇降舵設定値に相当するときには、予測される標報酬値119は、許容される昇降舵設定値ごとの予測される報酬値を示しうる。代替的に、予測される目標報酬値119は、ベクトルの最大予測報酬値に相当する1つの値を含みうる。
【0020】
ニューラルネットワーク訓練器140は、予測される主報酬値127及び予測される目標報酬値119に基づいて、主ニューラルネットワーク104を更新する。或る特定の態様において、目標ニューラルネットワーク106は、主ニューラルネットワーク104よりも安定している。なぜならば、目標ニューラルネットワーク106が更新される頻度がより低いからである。目標ニューラルネットワーク106(例えば、時間的に遅いニューラルネットワーク)の予測される目標報酬値に基づいて、主ニューラルネットワーク104を更新することで、主ニューラルネットワーク104が不安定なフィードバックループに陥る可能性が低減される。
【0021】
或る特定の態様において、制御入力生成器144は、主ニューラルネットワーク104の出力及びランダムな制御入力に基づいて、候補の制御入力107を無作為に選択するよう構成される。制御入力生成器144は、選択された制御入力を飛行シミュレータ146に供給するよう構成される。主ニューラルネットワーク104により生成された制御入力に加えて、ランダムな制御入力を利用することで、主ニューラルネットワーク104のよりロバストな訓練が可能となる。例えば、主ニューラルネットワーク104の訓練は、主ニューラルネットワーク104によって生成される可能性がより低い制御入力(例えば、ランダムな制御入力)に応じた状態データを含みうる。
【0022】
或る特定の態様において、システム100の1つ以上の構成要素(例えば、主ニューラルネットワーク104、目標ニューラルネットワーク106、ニューラルネットワーク訓練器140、報酬計算機142、制御入力生成器144、飛行シミュレータ146、オフセット計算器148、又はこれらの組み合わせ)が、少なくとも部分的に、1つ以上のプロセッサが1つ以上の命令を実行することで実現されうる。1つ以上の構成要素は、マルチコア構成、マルチプロセッサ構成、分散計算構成、クラウド計算構成、又はこれらの任意の組み合わせなど、1つのプロセッサ又は複数のプロセッサとして実現されうる。幾つかの実現において、システム100の1つ以上の構成要素の1つ以上の部分が、プロセッサによって、専用ハードウェア、ファームウェア、又はこれらの組み合わせを用いて実現される。
【0023】
動作中に、飛行シミュレータ146は、航空機シミュレーションの状態を示す状態データ105を生成する。或る特定の実施例において、飛行シミュレータ146が、或る特定のシミュレーション時間ステップに、状態データ105を生成するよう構成される。例えば、飛行シミュレータ146は、或る特定のシミュレーション時間ステップ(t+1)に対応する状態データ105を生成する。シミュレーション時間ステップは、航空機シミュレーションのための或る特定の時間間隔(例えば、5分)の経過を意味する。或る特定の態様において、飛行シミュレーションはリアルタイムでありうる(例えば、5秒のシミュレートされたフライトが、実際の時刻で5秒ごとに起きる)。代替的に、飛行シミュレーションは、異なるレートで起こりうる(例えば、120分のシミュレートされたフライトは、実際の時間では120秒の間に起こりうる)。さらに、シミュレートされる時間ステップは、等間隔であってよく、又は非等間隔であってよい。例えば、第1の時間間隔は、シミュレートされるフライトの離陸段階の間に利用され、第2の時間間隔は、シミュレートされるフライトの巡航段階の間に利用されうる。
【0024】
状態データ105は、飛行シミュレーションの或る特定のシミュレーション時間ステップ(t+1)の間(例えば、当該シミュレーション時間ステップ(t+1)の開始時、当該シミュレーション時間ステップ(t+1)の最中、又は、当該シミュレーション時間ステップ(t+1)の終了時)の航空機の状態を示す値を含むベクトルである。或る特定の態様において、状態データ105は、或る特定のシミュレーション時間ステップ(t+1)の間の航空機の高度、速度、ピッチ、昇降舵設定、高度変化、速度変化、ピッチ変化、又はこれらの組み合わせを示す。
【0025】
飛行シミュレータ146は、或る特定のシミュレーション時間ステップ(t+1)と関連する状態データ105を、後続のシミュレーション時間ステップと関連する報酬値計算のためにメモリ132に格納する。飛行シミュレータ146は、状態データ105を、報酬計算機142、目標ニューラルネットワーク106、主ニューラルネットワーク104、又はこれらの組み合わせに供給する。代替的に、報酬計算機142、目標ニューラルネットワーク106、主ニューラルネットワーク104、又はこれらの組み合わせが、飛行シミュレータ146又はメモリ132から状態データ105を獲得する。
【0026】
報酬計算機142は、或る特定のシミュレーション時間ステップ(t+1)のための状態データ105を飛行シミュレータ146から受信したことに応じて、メモリ132から先行するシミュレーション時間ステップ(t)のための状態データ115を獲得する。報酬計算機142は、或る特定のシミュレーション時間ステップ(t+1)のための状態データ105と、先行するシミュレーション時間ステップ(t)のための状態データ115との比較に基づいて、或る特定のシミュレーション時間ステップ(t+1)のための報酬値111を決定する。或る特定の態様において、報酬計算機142は、報酬関数に基づいて報酬値111を決定する。報酬関数は、構成設定、デフォルト値、ユーザ入力、又はこれらの組み合わせに基づきうる。或る特定の態様において、報酬計算機142は、以下の報酬関数に基づいて、離陸シミュレーションの間に報酬値111(R)を決定する。即ち、
【0027】
或る特定の実施例において、状態データ115は、航空機シミュレーションの第1の高度及び第1のピッチを示し、状態データ105は、航空機シミュレーションの第2の高度及び第2のピッチを示す。報酬計算機142は、第1の高度と第2の高度との比較に基づいて高度変化を決定する(例えば、高度変化=第2の高度-第1の高度)。報酬計算機142は、第1のピッチと第2のピッチとの比較に基づいてピッチ変化を決定する(例えば、ピッチ変化=第2のピッチ-第1のピッチ)。
【0028】
或る特定の態様において、報酬計算機142は、第2のピッチが第1の閾値ピッチ(例えば12度)より小さくかつピッチ変化が正の値である、又は、第2のピッチが第2の閾値ピッチ(例えば13度)より大きくかつピッチ変化が負の値であるという判定に応じて、ピッチが収束しつつあると判定する。報酬計算機142は、高度変化が第1の閾値高度(例えば、1メートル)よりも大きくかつ第2のピッチが第1の閾値ピッチ(例えば12度)以上である、第2のピッチが第2の閾値ピッチ(例えば13度)以下である、又は、ピッチが収束しつつあるという判定に応じて、報酬値111を正の値(例えば1)に設定する。本例では、正の値は、状態データ105が離陸のための「良い」状態を指していることを示している。なぜならば、航空機は、第1の閾値高度を超えて高度を得ており、ピッチは、収束しつつあり又は既に第1のピッチ閾値と第2のピッチ閾値の間にあるからである。
【0029】
代替的に、報酬計算機142は、高度変化が第2の閾値高度(例えば、-1メートル)より小さいという判定に応じて、報酬値111を負の値(例えば、-1)に設定する。本例では、負の値は、状態データ105が離陸のためには「悪い」状態を指すことを示している。なぜならば、航空機は、第2の閾値高度を超えて高度を失っているからである。
【0030】
或る特定の態様において、報酬計算機142は、高度変化が第2の閾値高度(例えば、-1メートル)以上で、かつ第1の閾値高度(例えば、1メートル)以下であるという判定に応じて、報酬値111をニュートラルな値(例えば、0)に設定する。本例では、ニュートラルな値は、離陸のための「ニュートラルな」状態を示している。なぜならば、航空機は、それほど高度を変更してない(例えば、第1の高度の閾値と第2の高度の閾値の間)からである。代替的に、報酬計算機142は、高度変化が第1の閾値高度(例えば、1メートル)より大きい、第2のピッチが第1のピッチ閾値(例えば、12)より小さく又は第2のピッチ閾値(例えば、13)よりも大きい、及びピッチが収束していないという判定に応じて、報酬値111をニュートラルな値(例えば、0.0)に設定する。本例では、ニュートラルな値は離陸のための「ニュートラル」な状態を示している。なぜならば、航空機は高度を得ているが、ピッチが低すぎ又は高すぎて収束していないからである。
【0031】
高度及びピッチに基づく離陸のための報酬関数は、例示的な非限定的な例として提供されると理解されたい。他の実施例において、報酬計算機142は、飛行の様々な段階(例えば、巡航、着陸、旋回、タキシング、駐機、又はこれらの組み合わせ)と関連する報酬関数に基づいて、報酬値を決定するよう構成される。報酬関数は、様々な航空機状態データ(例えば、ピッチ、ヨーイング、横揺れ、機首方位、高度、燃料消費、温度センサデータ、他の種類のセンサデータ、又はこれらの組み合わせ)に基づきうる。
【0032】
報酬計算機142は、報酬値111をニューラルネットワーク訓練器140に供給する。代替的に、ニューラルネットワーク訓練器140が、報酬値111を報酬計算機142又はメモリ132から獲得する。ニューラルネットワーク訓練器140は、或る特定のシミュレーション時間ステップ(t+1)のための報酬値111を受信したことに応じて、先行するシミュレーション時間ステップ(t)のための予測された主報酬値127、及び、先行するシミュレートされた時間ステップ(t)において飛行シミュレータ146に供給された制御入力113を示すデータを、メモリ132から獲得する。例えば、状態データ105が、先行するシミュレーション時間ステップ(t)の制御入力113に基づいて生成され、主ニューラルネットワーク104は、制御入力113を選択するために利用される先行するシミュレーション時間ステップ(t)の候補の制御入力のために、予測される主報酬値127を以前に生成していたのである。
【0033】
或る特定の態様において、ニューラルネットワーク訓練器140は、制御入力113が、先行するシミュレーション時間ステップ(t)のために主ニューラルネットワーク104により生成された候補の制御入力に相当するという判定に応じて、先行するシミュレーション時間ステップ(t)のための候補の制御入力の予測される主報酬値127に基づいて、重み121を決定する。或る特定の実現において、ニューラルネットワーク訓練器140は、制御入力113が、先行するシミュレーション時間ステップ(t)のために制御入力生成器144により生成されたランダムなオフセット制御入力に相当するという判定に応じて、予測された主報酬値127に基づいて重み121を決定しないようにし、かつ主ニューラルネットワーク104を更新しないようにする。代替的な実現において、ニューラルネットワーク訓練器140は、制御入力113が、先行するシミュレーション時間ステップ(t)のためのランダムなオフセット制御入力に相当するという判定に応じて、先行するシミュレーション時間ステップ(t)のための(候補の制御入力と比較される)ランダムなオフセット制御入力と対応する予測される主報酬値127を獲得する。ニューラルネットワーク訓練器140は、本明細書に記載するように、予測された主報酬値127に基づいて重み121を決定する。
【0034】
目標ニューラルネットワーク106は、或る特定のシミュレーションステップ(t+1)のための状態データ105に基づいて、予測される目標報酬値119を生成する。図2に示す例では、ニューラルネットワーク220が、複数の入力ノード202と、複数の隠れ層ノード204を含む隠れ層と、複数の出力ノード206とを含む。或る特定の態様において、入力ノード202が、第1の複数の重み付けされたノード接続を介して隠れ層に完全に接続されている。或る特定の態様において、隠れ層は、第2の複数の重み付けされたノード接続を介して出力ノード206に完全に接続されている。或る特定の態様において、隠れ層は、第1の数(例えば40)の隠れ層ノード204を含む。隠れ層ノード204の数がより大きいほど、ニューラルネットワーク220は、可変性が高くなりうる。隠れ層ノード204の数が少ないほど、出力ノード206の値を生成する処理時間が速くなりうる。図2は、1つの隠れ層を含むニューラルネットワーク220を示すが、他の実現において、ニューラルネットワーク220は、複数の隠れ層を含む。
【0035】
或る特定の態様において、ニューラルネットワーク220は、図1の目標ニューラルネットワーク106、主ニューラルネットワーク104、又は双方に対応している。或る特定の実施例において、入力ノード202のそれぞれが、或る特定の種類のデータ(例えば、状態データ105の或る特定の値)に関連付けられている。例えば、第1の入力ノード202はピッチに、第2の入力ノード202は高度に、第3の入力ノード202は速度に関連付けられており、第4の入力ノード202は昇降舵設定に関連付けられており、第5の入力ノード202はピッチ変化に関連付けられており、第6の入力ノードは高度変化に関連付けられており、第7の入力ノードは速度変化、又はこれらの組み合わせと関連付けられている。7個の入力ノードが説明のための例として設けられているが、他の例では、入力ノード202が、7個より少ない入力ノード又は7個より多い入力ノードを含むと理解されたい。
【0036】
或る特定の態様において、正規化された値が、1つ以上の入力ノード202に供給される。例えば、正規化されたピッチ値、正規化された高度、及び、正規化された速度が、第1の入力ノード202、第2の入力ノード202、及び第3の入力ノード202にそれぞれ供給される。例えば、有効なピッチ値は、第1のピッチ値(例えば、-60度)から第2のピッチ値(例えば、60度)までである。ピッチ値(例えば、30度)が、(例えば、システム100の飛行シミュレータ146、ニューラルネットワーク220、又は、他の構成要素によって)正規化されて、第1の正規化されたピッチ値(例えば-1)と第2の正規化されたピッチ値(例えば1)との間の範囲の正規化されたピッチ値(例えば、0.5)が生成される。正規化されたピッチ値は、第1の入力ノード202に供給される。
【0037】
ニューラルネットワーク220(例えば、ニューラルネットワークエンジン)は、各隠れ層ノード204の値を、入力ノード202に印加される値の重み付けされた和として決定する。ニューラルネットワーク220は、出力ノード206の出力値を、隠れ層ノード204の値の重み付けされた和として決定する。例えば、ニューラルネットワーク220は、各出力ノード206の出力値(例えば、予測される報酬値)を、隠れ層ノード204の値の重み付けされた和として決定する。
【0038】
出力ノード206のそれぞれは、飛行シミュレータ146のための或る特定の制御入力に対応している。或る特定の実施例において、ニューラルネットワーク220は、航空機シミュレーションの昇降舵設定を制御するための制御入力を生成するよう構成され、昇降舵設定は、第1の昇降舵設定(例えば-1)と第2の昇降舵設定(例えば1)との間の値(例えば、制御入力)の範囲を有する。本例では、出力ノード206のそれぞれは、上記範囲の或る特定の値に対応している。例えば、ニューラルネットワーク220は、第1の出力ノード、第2の出力ノード、第3の出力ノード、第4の出力ノード、及び第5の出力ノードを含み、それれ、第1の制御入力(例えば-1)、第2の制御入力(例えば-0.5)、第3の制御入力(例えば0)、第4の制御入力(例えば0.5)、及び第5の制御入力(例えば1)に対応している。図2では5個の出力ノード206が例示されているが、他の実現において、ニューラルネットワーク220は、5個の出力ノード206よりも少なく又は多い出力ノード206を含む。或る特定の態様において、出力ノード206の数が多いほど(例えば、5個ではなく17個)、より少数の出力ノード206よりもより段階的な変更及びより細かな航空機制御が可能となる。しかしながら、出力ノード206の数が少ないほど、出力ノード206の値を決定する処理時間がより速くなりうる。
【0039】
或る特定の態様において、ニューラルネットワーク220は、予測される報酬値のベクトル、又は、ニューラルネットワーク220により生成された予測される報酬値のうちの最大予測報酬値を有する出力ノード206を識別するデータを出力する。例えば、出力データは、予測される報酬値219、出力ノード206と関連付けられた制御入力、又は、その双方を含む又は識別することが可能である。或る特定の態様において、ニューラルネットワーク220は、制御入力及び対応する予測される報酬値を示す出力データ(例えばベクトル)を出力する。
【0040】
或る特定の実施例において、目標ニューラルネットワーク106(例えば、目標ニューラルネットワークエンジン)は、状態データ105により示されるピッチ(例えば、正規化されたピッチ)、高度(例えば、正規化された高度)、速度(例えば、正規化された速度)、及び昇降舵設定を、第1の入力ノード202、第2の入力ノード202、第3の入力ノード202、及び第4の入力ノード202にそれぞれ印加する。幾つかの実現において、目標ニューラルネットワーク106(例えば、目標ニューラルネットワークエンジン)は、状態データ115により示される第1のピッチと状態データ105により示されるピッチとの比較に基づいて、ピッチ変化を決定し、状態データ115により示される第1の高度と状態データ105により示される高度との比較に基づいて、高度変化を決定し、状態データ115により示される第1の速度と、状態データ105の状態により示される速度との変化に基づいて、速度変化を決定し、又は、これらの組み合わせの比較に基づいて該当する変化を決定する。このような実現において、目標ニューラルネットワーク106(例えば、目標ニューラルネットワークエンジン)は、ピッチ変化、高度変化、及び速度変化をそれぞれ、第5の入力ノード202、第6の入力ノード202、及び第7の入力ノード202にそれぞれ印加する。目標ニューラルネットワーク106は、出力ノード206の出力値(例えば、予測される報酬値)を生成する。或る特定の態様において、予測される報酬値219(例えば、予測された報酬値のうちの最大予測報酬値)は、或る特定のシミュレーション時間ステップ(t+1)のための予測される目標報酬値119に相当する。
【0041】
図1に戻ると、目標ニューラルネットワーク106は、或る特定のシミュレーション時間ステップ(t+1)のための予測される目標報酬値119を、ニューラルネットワーク訓練器140に供給し、又は、ニューラルネットワーク訓練器140が、予測される目標報酬値119を、目標ニューラルネットワーク106又はメモリ132から獲得する。ニューラルネットワーク訓練器140は、或る特定のシミュレーション時間ステップ(t+1)のための予測される目標報酬値119、先行するシミュレーション時間ステップ(t)のための予測される主報酬値127、或る特定のシミュレーション時間ステップ(t+1)のための報酬値111、又はこれらの組み合わせに基づいて、重み121を決定する。或る特定の態様において、重み121が、以下の損失(又は費用)関数を低減する(例えば、最小化する)ために決定される。即ち、
但し、
は、主ニューラルネットワーク104を訓練するため(例えば、主ニューラルネットワーク104のための(例えば、重み
により表される)重み121を決定するため)の損失関数に相当する。
は、或る特定のシミュレーション時間ステップ(t+1)のための報酬値111に対応する。
は、入力S(例えば、状態データ)の集合がある場合の、重みがθのニューラルネットワーク(主ニューラルネットワーク104又は目標ニューラルネットワーク106)であって、当該ニューラルネットワークの出力値はa(例えば、制御入力又はアクション)で示される、ニューラルネットワークの関数を表す。
は、最大値を有する出力aのための、或る特定のシミュレーション時間ステップ(t+1)について目標ニューラルネットワーク106により生成された(例えば、重み
で表された)予測される目標報酬値119に相当する。
は、先行するシミュレーション時間ステップ(t)のための、主ニューラルネットワーク104により生成された予測される主報酬値127に対応する。
は、割引値(例えば0.99)に対応する。或る特定の態様において、割引値は、構成設定、デフォルト値、ユーザ入力、又はこれらの組み合わせに基づく。或る特定の態様において、損失関数は、或る特定のシミュレーション時間ステップ(t+1)のための予測される目標報酬値119と、先行するシミュレーション時間ステップ(t)のための予測される主報酬値127との間の自乗差の期待値に相当する。
【0042】
或る特定の態様において、損失(又は費用)関数を低減(例えば最小化)することで、結果的に、主ニューラルネットワーク104が以下の数式で示すように更新される。即ち、
但し、
は、主ニューラルネットワーク104に対応し、
は、重み121を加えた後の主ニューラルネットワーク104の更新されたバージョンに対応し、
は学習率に対応し、
は、先行するシミュレーション時間ステップ(t)のための予測される主報酬値127に対応する。或る特定の態様において、学習率は、構成設定、デフォルト値、ユーザ入力、又はこれらの組み合わせに基づいている。或る特定の態様において、ニューラルネットワーク訓練器140は、以下の数式に基づいて、
を決定する。即ち、
但し、
は、或る特定のシミュレーション時間ステップ(t+1)のための報酬値111に対応し、
は、或る特定のシミュレーション時間ステップ(t+1)のための予測される目標報酬値119に対応し、
は、割引値(例えば0.99)に相当する。ニューラルネットワーク訓練器140は、重み121に基づいて、主ニューラルネットワーク104を更新する。例えば、主ニューラルネットワーク104が、図2のニューラルネットワーク220に対応するときには、ニューラルネットワーク訓練器140は、入力ノード202と隠れ層ノード204との間の第1の複数の重み付けされた接続の重み、隠れ層ノード204と出力ノード206との間の第2の複数の重み付けされた接続の重み、又は、これらの組み合わせの複数の重み付けされた接続の重みを更新する。
【0043】
或る特定の態様において、シミュレーション時間ステップは、アクションサイクルに対応している。或る特定のシミュレーション時間ステップ(t+1)と関連するアクションサイクルデータは、状態データ115、状態データ105、報酬値111、制御入力113、先行するシミュレーション時間ステップ(t)と関連する候補の制御入力、予測される目標報酬値119、予測される主報酬値127、重み121、又はこれらの組み合わせを含む。
【0044】
ニューラルネットワーク訓練器140は、学習サイクルの間、主ニューラルネットワーク104を更新する。或る特定の態様において、ニューラルネットワーク訓練器140は、1つのアクションサイクルのアクションサイクルデータに基づいて、主ニューラルネットワーク104を更新する。例えば、ニューラルネットワーク訓練器140は、先行するシミュレーション時間ステップ(t)の第1のアクションサイクルデータに基づいて、第1の時間に、主ニューラルネットワーク104を更新し、或る特定のシミュレーション時間ステップ(t+1)の第2のアクションサイクルデータに基づいて、第2の時間に、主ニューラルネットワーク104を更新する。代替的な態様において、ニューラルネットワーク訓練器140は、複数のアクションサイクルと関連するアクションサイクルデータに基づいて、或る特定の時間に、主ニューラルネットワーク104を更新する。或る特定の実施例において、メモリ132が、アクションサイクルの閾値番号(例えば、12000)と関連付けられたアクションサイクルデータを格納する先入れ先出(FIFO:first-in first-out)メモリバッファを含む。或る特定の態様において、アクションサイクルの閾値番号は、リプレイメモリの大きさに対応している。ニューラルネットワーク訓練器140は、アクションサイクルのバッチサイズ(例えば128)と関連付けられたアクションサイクルデータを、ミニバッチとしてメモリ132から獲得する。或る特定の態様において、ミニバッチは、ランダムな集合のアクションサイクルのアクションサイクルデータを含む。例えば、ミニバッチは、12000番の直近のアクションサイクルからの、128個のランダムアクションサイクルのアクションサイクルデータを含む。ニューラルネットワーク訓練器140は、ミニバッチに基づいて、或る特定の時間に、主ニューラルネットワーク104を更新する。或る特定の実施例において、ミニバッチは、或る特定のシミュレーション時間ステップ(t+1)と関連する第1のアクションサイクルデータ、及び、第2のシミュレーション時間ステップと関連する第2のアクションサイクルデータを含む。ニューラルネットワーク訓練器140は、第1のアクションサイクルデータに基づいて重み121を決定し、第2のアクションサイクルデータに基づいて、第2の重みを決定する。ニューラルネットワーク訓練器140は、重み121、第2の重み、又はこれらの組み合わせに基づいて、主ニューラルネットワーク104を更新する。
【0045】
主ニューラルネットワーク104(例えば、主ニューラルネットワークエンジン)は、状態データ105のための予測される主報酬値を生成する。主ニューラルネットワーク104の重み(例えば重み121)が目標ニューラルネットワーク106の重みと異なるときには、主ニューラルネットワーク104により生成される、状態データ105のための予測される主報酬値は、目標ニューラルネットワーク106により生成される、状態データ105のための予測される目標報酬値とは異なりうる。
【0046】
主ニューラルネットワーク104(例えば、主ニューラルネットワークエンジン)は、予測される主報酬値117(又は、予測される主報酬値のうちの少なくとも1つの予測される最大主報酬値)を示す出力を生成する。図1では、予測される主報酬値117は、制御入力生成器144への、或る特定のシミュレーション時間ステップ(t+1)のための候補の制御入力107を示し又は当該候補の制御入力107に対応する。主ニューラルネットワーク104は、或る特定のシミュレーション時間ステップ(t+1)のための、候補の制御入力107と関連する予測される主報酬値117を、メモリ132に格納する。或る特定の態様において、主ニューラルネットワーク104は、予測される主報酬値117、及び、対応する制御入力をメモリ132に格納する。
【0047】
制御入力生成器144は、或る特定のシミュレーションステップ(t+1)のための候補の制御入力107を受信したことに応じて、先行するシミュレーションステップ(t)のための制御入力113を、メモリ132から獲得する。オフセット計算器148(例えば、乱数生成器)が、第1のオフセット(例えば、-0.5)と第2のオフセット(例えば、0.5)との間のランダムオフセット109を生成する。制御入力生成器144は、ランダムオフセット109及び先行するシミュレーション時間ステップ(t)のための制御入力113に基づいて、或る特定のシミュレーション時間ステップ(t+1)のためのランダムオフセット制御入力191を生成する(例えば、ランダムオフセット制御入力191=制御入力113+ランダムオフセット109)。このように、制御入力生成器144は、制御入力113の値が中央に来るよう調整された範囲(例えば、-0.5~+0.5)内から値を無作為に選択することによって、ランダムオフセット制御入力191を生成する。或る特定の態様において、ランダムオフセット制御入力191は、第1の昇降舵設定(例えば、-1)と第2の昇降舵設定(例えば、1)との間である。
【0048】
或る特定の態様において、制御入力生成器144は、制御入力113が主ニューラルネットワーク104の第1の出力ノード(例えば、第8の出力ノード)に対応すると判定する。制御入力生成器144は、第1の出力ノード(例えば、第8の出力ノード)及びランダムオフセット109(例えば2)に基づいて、第2の出力ノード(例えば、第10の出力ノード)を識別する。例えば、第2の出力ノードの第2の識別子は、第1の出力ノードの第1の識別子とランダムオフセット109との和に基づいている(例えば、第2の識別子=(第1の識別子+ランダムオフセット109) modulus (出力ノードの数))。制御入力生成器144は、第2の出力ノードに対応する或る特定の制御入力を、ランダムオフセット制御入力191として指定する。本態様において、ランダムオフセット109は、第1の値(例えば-2)と第2の値(例えば2)との間の乱数値を含む。このように、制御入力生成器144は、制御入力113の値が中央に来るよう調整された範囲内から値を無作為に選択することによって、ランダムオフセット制御入力191を生成する。上記範囲は、第1の出力ノード(例えば、第2の出力ノード)に対応する第1の制御入力から、第2の出力ノード(例えば、第2の出力ノード)に対応する第2の制御入力までである。制御入力113の値が中央に来るよう調整された範囲内から値を無作為に選択することによって、ランダムオフセット制御入力191を生成することは、「ランダムウォーク(random-walk)」スキームを実施することに相当する。幾つかの態様において、ランダムウォークスキームは、拡張した状態と拡張していない状態との間で変化するフラップといった、別々の状態を有する傾向がある航空機制御と比べて、実際は比較的連続的な傾向にある航空機制御(例えば、昇降舵設定)のために適している。
【0049】
制御入力生成器144は、候補の制御入力107又はランダムなオフセット制御入力191うちの1つを、或る特定のシミュレーション時間ステップ(t+1)のための制御入力103として選択する。例えば、制御入力生成器144は、第1の値(例えば、0.0)と第2の値(例えば、1.0)との間の或る特定の乱数値を生成する。制御入力生成器144は、主ニューラルネットワーク104を訓練する繰返し回数(例えば、t+1)に基づいて、ランダム化設定値193を決定する。例えば、制御入力生成器144は、繰返し回数(例えば、t+1)が観察閾値(例えば、3000)よりも小さいという判定に応じて、ランダム化設定値193を第1の値(例えば、0.0)に設定する。ランダム化設定値193を第1の値に設定することで、ランダムなオフセット制御入力191が、観察閾値よりも少ない訓練の繰返しに対応する観察周期の間に選択される可能性が上がる。
【0050】
或る特定の態様において、制御入力生成器144は、繰返し回数(例えば、t+1)が観察閾値(例えば、3000)以上であるという判定に応じて、ランダム化設定値193を、繰返し回数(例えば、t+1)に基づいて一次関数を用いて、第1の値(例えば、0.01)と第2の値(例えば、1.0)に設定する。例えば、一次関数は、第1の訓練繰返し(例えば、3000)から第2の訓練繰返し(例えば、6000)へと、第1の値(例えば、0.01)から第2の値(例えば、1.0)へと線形的に増大して、ランダム化設定値193を生成する。ランダム化設定値193が線形的に増大することで、ランダムオフセット制御入力191が、観察周期の後の探索周期の間に選択される可能性が線形的に下がる。
【0051】
制御入力生成器144は、或る特定の乱数値がランダム化設定値193よりも大きいという判定に基づいて、ランダムオフセット制御入力191を制御入力103として選択する。或る特定の態様において、観察周期の間に、シミュレーション時間ステップの少なくとも幾つかについてランダムオフセット制御入力を選択することで、より多くの航空機シミュレーション状態と制御入力の組み合わせの探索が可能となり、主ニューラルネットワーク104のロバスト性が向上する。代替的に、制御入力生成器144は、或る特定の乱数値がランダム化設定値193以下であるという判定に応じて、候補の制御入力107を制御入力103として選択する。或る特定の態様において、探索周期の間に候補の制御入力のうちのより多くを選択することで、主ニューラルネットワーク104の挙動を収束させることが可能となる。
【0052】
或る特定の態様において、制御入力生成器144は、或る特定のシミュレーション時間ステップ(t+1)のための制御入力103を識別するデータを、メモリ132に格納する。制御入力生成器144は、或る特定のシミュレーション時間ステップ(t+1)のための制御入力103を、飛行シミュレータ146に供給する。或る特定の態様において、ニューラルネットワーク訓練器140は、重み121に基づく主ニューラルネットワーク104の更新に続いて、及び、目標ニューラルネットワーク106の先行する更新の後に少なくとも1回の閾値回数で主ニューラルネットワーク104が更新されているという判定に応じて、主ニューラルネットワーク104を複写することによって目標ニューラルネットワーク106を更新する。例えば、ニューラルネットワーク訓練器140は、主ニューラルネットワーク104と同じ重み(例えば重み121)を有するように、目標ニューラルネットワーク106を更新する。
【0053】
或る特定の態様において、飛行シミュレータ146は、或る特定のシミュレーション時間ステップ(t+1)が探索閾値(例えば、6000)よりも小さいという判定に応じて、制御入力103に基づいて次のシミュレーション時間ステップ(t+2)のための第2の状態データを生成する。主ニューラルネットワーク104の訓練が、状態データ105及び第2の状態データに基づいて、本明細書に記載の技術に従って続けられる。代替的に、飛行シミュレータ146が、或る特定のシミュレーション時間ステップ(t+1)が探索閾値(例えば、6000)以上であるという判定に応じて、主ニューラルネットワーク104が訓練されたことを示す出力を生成する。或る特定の態様において、主ニューラルネットワーク104が有効化されて、航空機(の昇降舵設定)を制御するために、航空機に提供される(例えば、アップロードされる)。例えば、航空機の1つ以上のセンサが、状態データを主ニューラルネットワーク104に供給し、航空機の昇降舵設定が、主ニューラルネットワーク104から受信された制御入力に基づいて更新される。
【0054】
このようにして、システム100は、航空機を制御するための主ニューラルネットワーク104の訓練を可能とする。飛行シミュレータ146に基づいて主ニューラルネットワーク104を訓練することによって、パイロットのデータと比べて、より少ないリソース(例えば、時間及び資金)が消費される。飛行シミュレータ146を用いて訓練されたニューラルネットワーク104はまた、よりロバストである可能性が高い。なぜならば、飛行シミュレータ146が、パイロットが通常では遭遇しないシナリオを含む様々なシナリオをシミュレートするよう設計可能だからである。
【0055】
図3は、飛行機を制御するためのニューラルネットワークを訓練する方法300を示している。或る特定の態様において、方法300の1つ以上の操作が、図1の制御入力生成器144、飛行シミュレータ146、ニューラルネットワーク訓練器140、システム100、又はこれらの組み合わせによって実施される。
【0056】
方法300は、302において、第1の制御入力を飛行シミュレータに供給することを含む。例えば、図1の制御入力生成器144が、図1を参照して説明したように、飛行シミュレータ146に制御入力113を供給する。飛行シミュレータ146は、制御入力113に応じて、第1の状態データを生成する。
【0057】
方法300はまた、304において、第1の状態データを入力として第1のニューラルネットワークに供給して、候補の第2の制御入力を生成することを含む。例えば、図1の飛行シミュレータ146が、図1を参照して説明したように、第1の状態データを主ニューラルネットワーク104に供給し、候補の制御入力107が生成される。
【0058】
方法300は、306において、乱数値に基づいて、飛行シミュレータのための第2の制御入力を選択することをさらに含む。例えば、図1の制御入力生成器144は、図1を参照して説明したように、乱数値に基づいて、飛行シミュレータ146のための制御入力103を選択する。図1を参照して説明したように、制御入力103は、候補の制御入力107とランダムなオフセット制御入力191との間で選択される。ランダムなオフセット制御入力191は、図1を参照して説明したように、制御入力113に加えられるランダムオフセット109に基づいている。
【0059】
方法300はまた、308において、第2の制御入力を飛行シミュレータに供給することも含む。例えば、制御入力生成器144が、制御入力103を飛行シミュレータ146に供給する。図1を参照して説明したように、飛行シミュレータ146が、制御入力103に応じて第2の状態データを生成する。
【0060】
方法300は、310において、第1の状態データ及び第2の状態データに少なくとも部分的に基づいて、第1のニューラルネットワークの重みを更新することをさらに含む。例えば、図1を参照して説明したように、ニューラルネットワーク訓練器140が、第1の状態データ及び第2の状態データに少なくとも部分的に基づいて、主ニューラルネットワーク104の重みを更新する。
【0061】
図4を参照すると、ニューラルネットワークにより制御されるよう構成された航空機のライフサイクルを示すフローチャートが示されており、方法400として設計されている。製造前の段階で、例示的な方法400は、402において、図5を参照して記載される航空機500といった、航空機の仕様及び設計を含む。航空機の使用及び設計では、方法400は、ニューラルネットワークに基づく航空機制御システムの仕様及び設計を含みうる。ニューラルネットワークに基づく航空機制御システムは、主ニューラルネットワーク104を用いて稼働することを含み、又は主ニューラルネットワーク104を用いて稼働するよう構成される。404において、方法400は材料調達を含み、このことは、ニューラルネットワークに基づく航空機制御システムのために材料を調達することを含みうる。
【0062】
製造の段階で、方法400は、406においてコンポーネントおよびサブアセンブリの製造を含み、408において航空機のシステムインテグレーションを含む。例えば、方法400は、ニューラルネットワークに基づく航空機制御システムのコンポーネント及びサブアセンブリの製造、及び、ニューラルネットワークに基づく航空機制御システムのシステムインテグレーションを含みうる。例えば、主ニューラルネットワーク104は、ニューラルネットワークに基づく航空機制御システムにロードされうる。方法400は、410において、航空機の認可及び納品を含み、412において、航空機を運航させることを含む。認可及び納品は、ニューラルネットワークに基づく航空機制御システムが認証され、当該ニューラルネットワークに基づく航空機制御システムが稼働させられることを含みうる。顧客により運行される間、航空機は、定期的な整備および保守(改造、再構成、改修等も含みうる)が予定されうる。例えば、主ニューラルネットワーク104の新バージョンが、ニューラルネットワークに基づく航空機制御システムにロードされうる。414において、方法400は、航空機で整備及び保守を行うことを含み、このことは、ニューラルネットワークに基づく航空機制御システムで整備及び保守を行うことを含みうる。
【0063】
方法400のプロセスの各々は、システムインテグレータ、第三者、及び/又はオペレータ(例えば、顧客)によって実行され、又は実施されうる。本明細書の目的のために、システムインテグレータは、任意の数の航空機製造業者及び主要システム下請業者を含みうるがそれらに限定されず、第三者は、任意の数のベンダー、下請業者、及び供給業者を含みうるがそれらに限定されず、かつ、オペレータとは、航空会社、リース会社、軍事団体、サービス機関などでありうる。
【0064】
本開示の態様は、車両を例とする文脈においても記載されうる。車両の或る特定の実施例は、図5に示される航空機500である。
【0065】
図5の例では、航空機500は、複数のシステム520および内装522を備えた機体518を含む。複数のシステム520の例には、推進システム524、電気システム526、環境システム528、油圧システム530、及び、ニューラルネットワークに基づく航空機制御システム532であって、主ニューラルネットワーク104にアクセスすることを含み又は主ニューラルネットワーク104にアクセスするよう構成されたューラルネットワークに基づく航空機制御システム532、の1つ以上が含まれる。任意の数の他のシステムも含まれてよい。ニューラルネットワークに基づく航空機制御システム532は、1つ以上のセンサ536からセンサデータを受信し、センサデータに応じた主ニューラルネットワーク104の出力に基づいて、1つ以上の操縦翼面534の位置といった、航空機500の1つ以上の他のシステム520の動作を制御するよう構成される。
【0066】
図6は、本開示に係る、コンピュータによって実施される方法及びコンピュータで実行可能なプログラム命令(又はコード)の諸態様を支援するよう構成された計算装置610を含む計算環境600のブロック図である。例えば、計算装置610又はその部分は、命令を実行して、図1から図5を参照しながら説明した1つ以上の動作を開始、実行、又は制御するように構成されている。或る特定の態様において、計算装置610は、図1のシステム100の1つ以上の構成要素、1つ以上のサーバ、1つ以上の仮想デバイス、又はこれらの組み合わせを含む。
【0067】
計算装置610は、1つ以上のプロセッサ620を含む。プロセッサ620は、システムメモリ630、1つ以上の記憶デバイス640、1つ以上の入力/出力インタフェース650、1つ以上の通信インタフェース660、又はこれらの任意の組み合わせと通信するよう構成される。システムメモリ630は、揮発性メモリデバイス(例えば、ランダムアクセスメモリ(RAM:random access memory)デバイス)、不揮発性メモリデバイス(例えば、読み出し専用メモリ(ROM:read-only memory)デバイス、プログララム可能な読み出し専用メモリ、及びフラッシュメモリ)、又はその双方を含む。システムメモリ630は、オペレーティングシステム632を格納しており、このオペレーティングシステム632は、計算装置610を起動するための基本入力/出力システムと、計算装置610がユーザ、他のプログラム、又は他の装置と連携することを可能とする完全なオペレーティングシステムと、を含みうる。システムメモリ630は、システム(プログラム)データ636を格納している。例えば、システムメモリ630は、主ニューラルネットワーク104、目標ニューラルネットワーク106、制御入力103、制御入力113、ランダムオフセット109、候補の制御入力107、ランダムオフセット制御入力191、ランダム化設定値193、予測される主報酬値117、予測される主報酬値127、予測される目標報酬値119、報酬値111、状態データ105、状態データ115、重み121、又はこれらの組み合わせを格納する。或る特定の態様において、システムメモリ630は図1のメモリ132を含む。
【0068】
システムメモリ630は、プロセッサ620により実行可能な1つ以上のアプリケーション634(例えば、命令の集合)を含む。一例として、1つ以上のアプリケーション634は、図1から図5を参照しながら記載した1つ以上の動作を開始、制御、又は実施するための、プロセッサ620により実行可能な1つ以上の命令682を含む。例えば、1つ以上のアプリケーション634は、主ニューラルネットワーク104、目標ニューラルネットワーク106、ニューラルネットワーク訓練器140、報酬計算機142、制御入力生成器144、飛行シミュレータ146、オフセット計算器148、又はこれらの組み合わせを参照しながら記載した1つ以上の動作を開始、制御、又は実施するための、プロセッサ620により実行可能な上記命令682を含む。
【0069】
或る特定の実現において、システムメモリ630は、非一過性のコンピュータ可読媒体(例えば、コンピュータ可読記憶デバイス)であって、プロセッサ620によって実行されると、当該プロセッサ620に、航空機を制御するためのニューラルネットワークを訓練するための動作を開始、実施、又は制御させる命令682を格納する非一過性のコンピュータ可読媒体を含む。上記動作は、第1の制御入力を飛行シミュレータに供給することを含む。飛行シミュレータは、第1の制御入力に応じて第1の状態データを生成し、候補の第2の制御入力を生成するために第1の状態データを入力として第1のニューラルネットワークに供給する。動作はまた、乱数値に基づいて、飛行シミュレータのための第2の制御入力を選択することも含む。第2の制御入力が、候補の第2の制御入力とランダムなオフセット制御入力との間から選択される。ランダムなオフセット制御入力は、第1の制御入力に加えられるランダムオフセットに基づいている。動作は、第2の制御入力を飛行シミュレータに供給することをさらに含む。飛行シミュレータは、第2の制御入力に応じて、第2の状態データを生成する。動作はまた、第1の状態データ及び第2の状態データに少なくとも部分的に基づいて、第1のニューラルネットワークの重みを更新することを含む。
【0070】
1つ以上の記憶デバイス640は、磁気ディスク、光ディスク、又はフラッシュメモリデバイスといった、不揮発性の記憶デバイスを含む。或る特定の実施例において、記憶デバイス640は、取り外し可能なメモリデバイスと取り外し不可能なメモリデバイスの両方を含む。記憶デバイス640は、オペレーティングシステム、オペレーティングシステムの画像、アプリケーション(例えば、1つ以上のアプリケーション634)、及び、プログラムデータ(例えば、プログラムデータ636)を格納するよう構成される。或る特定の態様において、システムメモリ630、記憶デバイス640、又はその双方は、有形のコンピュータ可読媒体を含む。或る特定の態様において、1つ以上の記憶デバイス640は、計算装置610の外部に存在する。
【0071】
計算装置610が1つ以上の入力/出力装置670と通信することを可能とする1つ以上の入力/出力インタフェース650が、ユーザとの相互作用を促進にする。例えば、1つ以上の入力/出力インタフェース650は、表示インタフェース、入力インタフェース、又はその双方を含みうる。例えば、入力/出力インタフェース650は、ユーザから入力を受信し、他の計算装置から入力を受信し、又は、これらを組み合わせて行うよう適合される。幾つかの実現において、入力/出力インタフェース650は、シリアルインタフェース(例えば、USB(universal serial bus)インタフェース、又は、(IEEE(Institute of Electrical and Electronics Engineers)インタフェース標準)、パラレルインタフェース、表示アダプタ、音声アダプタ、又は、カスタムインタフェースを含む、1つ以上の標準インタフェースプロトコルに準拠している(「IEEE」は、Institute of Electrical and Electronics Engineers、Inc.of Piscataway(ニュージャージー州)の登録商標である)。幾つかの実現において、入力/出力デバイス670が、ボタン、キーボード、ポインティングデバイス、ディスプレイ、スピーカ、マイクロフォン、タッチスクリーン、及び他のデバイスの何らかの組み合わせを含む、1つ以上のユーザインタフェースデバイス、及びディスプレイを含む。
【0072】
プロセッサ620は、1つ以上の通信インタフェース660を介して、装置又はコントローラ680と通信するよう構成される。例えば、1つ以上の通信インタフェース660は、ネットワークインタフェースを含みうる。装置又はコントローラ680は、例えば、図5の航空機500、1つ以上の他の装置、又は、これらの任意の組み合わせを含みうる。或る特定の実施例において、ニューラルネットワーク訓練器140は、主ニューラルネットワーク104の訓練が完了していると判定すること、ユーザ入力を受信すること、又はその双方に応じて、主ニューラルネットワーク104を、通信インタフェース660を介して航空機500に提供する。
【0073】
幾つかの実現において、非一過性のコンピュータ可読媒体(例えば、コンピュータ可読記憶デバイス)が、命令であって、1つ以上のプロセッサによって実行されると、当該1つ以上のプロセッサに、上述の機能の一部又は全てを実施するための動作を開始、実施又は制御させる命令を格納している。例えば、命令は、図1図5の1つ以上の動作又は方法を実現するために実施可能でありうる。幾つかの実現において、図1図5の1つ以上の動作又は方法の一部又は全てが、専用のハードウェア回路によって命令を実行する1つ以上のプロセッサ(例えば、1つ以上の中央処理ユニット(CPU:central processing unit)、1つ以上のGPU(graphics processing unit)、1つ以上のデジタル信号プロセッサ(DSP:digital signal processor))、又はこれらの任意の組み合わせによって実現されうる。
【0074】
本明細書に記載された実施例の例示は、様々な実装形態の構造の概略的な理解をもたらすことが意図されている。上記例示は、本明細書に記載された構造又は方法を利用する装置及びシステムの全ての要素及び特徴を網羅的に説明する役割を果たすことは意図されていない。本開示を精査することで、当業者には、他の多くの実装形態が明らかになりうる。本開示の範囲から逸脱することなく構造的かつ論理的な置換及び変更を行うことができるように、他の実装形態を利用し、本開示から他の実装形態を導き出すことが可能である。例えば、図面に示す順序とは異なる順序で方法動作を実行してよく、又は1つ以上の方法動作を省略してよい。したがって、本開示及び図面は、限定的というよりは、むしろ例示的なものと見なすべきである。
【0075】
さらに、本明細書では具体的な実施例が例示され記載されてきたが、同じ又は同様の結果を実現するよう設計された任意の後続の構成が、図示の特定の実装形態と置換されうると認識すべきである。本開示は、様々な実施態様のあらゆる後発の適合例又は変形例を対象とすることを意図している。上述の実装形態の組み合わせ、及び本明細書で特に記載されない他の実装形態が、本明細書を精査することで当業者には明らかとなろう。
【0076】
本開示の「要約書」は、それが、特許請求の範囲又は意味を解釈又は限定するために使用されるものではないという理解のもとに提出される。加えて、上記の「発明を実施するための形態」においては、本開示を簡潔にする目的で、様々な特徴が一つにまとめられたり、又は一つの実装形態として説明されたりする場合がある。上述の実施例は、本発明を例示するが、本開示を限定するものではない。また、本開示の原理に従って多くの修正例および変形例が可能である。下記の特許請求の範囲に反映されているように、特許請求される発明の主題は、開示されて実施例のいずれでも、全ての特徴を対象としているわけではないことがある。従って、本開示の範囲は、以下の特許請求の範囲及びそれらの均等物によって規定される。
図1
図2
図3
図4
図5
図6