JP2021533486A - 人工知能プログラムの実行を管理するための監視制御システム、その方法、および非一時的コンピュータ可読媒体 - Google Patents

人工知能プログラムの実行を管理するための監視制御システム、その方法、および非一時的コンピュータ可読媒体 Download PDF

Info

Publication number
JP2021533486A
JP2021533486A JP2021506001A JP2021506001A JP2021533486A JP 2021533486 A JP2021533486 A JP 2021533486A JP 2021506001 A JP2021506001 A JP 2021506001A JP 2021506001 A JP2021506001 A JP 2021506001A JP 2021533486 A JP2021533486 A JP 2021533486A
Authority
JP
Japan
Prior art keywords
program
execution
control
monitoring
binary
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021506001A
Other languages
English (en)
Other versions
JP7136322B2 (ja
Inventor
ゴパラクリシュナン アイアー
アミア キャシャニー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Publication of JP2021533486A publication Critical patent/JP2021533486A/ja
Application granted granted Critical
Publication of JP7136322B2 publication Critical patent/JP7136322B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0796Safety measures, i.e. ensuring safe condition in the event of error, e.g. for controlling element
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0286Modifications to the monitored process, e.g. stopping operation or adapting control
    • G05B23/0291Switching into safety or degraded mode, e.g. protection and supervision after failure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

この明細書に記載のシステム、方法、および他の実施形態は、人工知能(AI)プログラムの実行の管理に関する。一実施形態では、方法は、AIプログラムによって生成された少なくとも現在の予測を示す、AIプログラムに関連付けられた実行状態を特定するために、AIプログラムの実行を監視することを含む。方法は、実行状態がキルスイッチ閾値を満たすときに、AIプログラムの実行を停止するように制御バイナリを作動させることを含む。キルスイッチ閾値は、不利な動作条件を示すAIプログラムの実行に関連する条件を定義する。

Description

関連出願の相互参照
この出願は、2018年10月18日に出願された米国特許出願第16/163936号の利益を主張する。上記出願の全開示が、参照によりこの明細書に組み込まれる。
本開示は、一般に、人工知能(AI)プログラムの管理を改善するためのシステムおよび方法に関し、特に、不利な動作条件を防止するためのAIプログラムの実行を監視するシステムおよび方法に関する。
この欄は、必ずしも公知技術に該当しない、本開示に関連する背景情報を提供する。
人工知能(AI)は、電子処理機能へのアプローチにおける重要な進歩を表している。たとえば、環境またはデータの態様を認識し、そこからインテリジェントな判断を下すコンピューティングシステムの機能は、多くの異なるアプリケーションに関して潜在的に強力なツールである。さらに、人工知能プログラムは、ベイジアンネットワーク、隠れマルコフモデル、カルマンフィルタなどの確率的方法、ニューラルネットワーク、サポートベクトルマシンなどの統計的方法などの、多くの異なる形態で実施されてもよい。いずれのアプローチを採用しても、開発された電子計算システムは、一般に、非決定論的で複雑であるという共通性を有しており、定義されたガイドラインや機能安全基準の範囲内で性能を予測したり、保証したりすることは困難である。
AIプログラムが、たとえば、セキュリティ、性能、安全性などに関して、種々の基準に適合することを保証することは、特に、プログラムが、自己学習、および/または、他の方法で種々の機能を実行するために自律的に動作している場合、非常に困難であり得る。AIプログラムの機能性は、多くの場合、そのようなシステムの「訓練段階」で使用されるデータの質と結びついている。時間の経過とともに、AIベースのシステムの「学習」プロセスに十分なデータが供給されると、実行と機能は、望ましい標準と結果に近づくか、それよりも良くなる可能性がある。AIプログラムの出力を決定論的な方法で予測する際の主な問題は、AIプログラムの学習メカニズムに入力された少量の「不良」、または、不正確なデータが、プログラムの出力に大きく未知の偏差をもたらし得ることである。このような状況下では、AIプログラムの理解は、たとえば、AIプログラムが動作し、さらなる理解を発展させるにつれて動的に進化する抽象的な内部ノード、潜在空間、および/または、他のモデル/メカニズム内で発展する。
このように、AIプログラムが抽象的で自律的であるがゆえに、特に機能安全基準に関連する特定の制約内でAIプログラムの動作を保証することは、独特の困難さがある。また、AIプログラムが複雑化し、能力が向上するにつれて、所定の範囲外の機能をもつAIプログラムが暴走する可能性が高くなる。その結果、AIプログラムによって提供される機能が常に期待どおりに機能しない場合があり、セキュリティホール、障害、安全上の危険などの問題などが発生する。
この欄は、開示の概要を提供するが、その全範囲またはその全特徴の包括的な開示ではない。
一実施形態では、AIプログラムの実行を管理することに関する例示的なシステムおよび方法が開示される。前述したように、AIプログラムの実行は、セキュリティ、安全性、性能などの目的のために、定義された制約内にとどまるようにすることは、困難なタスクである。AIプログラムは、AIプログラム内の抽象的な形で保持される発展的理解にしたがって自律的に実行するため、AIプログラムによって実行される動作が様々な制約(たとえば、機能安全制約)に適合することを保証することは困難である。
一実施形態では、AIプログラムの実行状態を積極的に監視し、不利な動作状態の発生時にAIプログラムの実行を停止する監視制御システムが開示される。たとえば、ひとつのアプローチでは、開示された監視制御システムは、最初に制御バイナリをAIプログラムに注入する。制御バイナリは、一実施形態では、AIプログラム内に埋め込まれた実行可能なバイナリコード(たとえば、マシンコード)である。様々なアプローチでは、制御バイナリは、監視または監視の容易化、AIプログラムの実行の停止、フェイルオーバ機能の実行などを含むひとつ以上の機能を実行することができる。
一般に、AIプログラムは、車両制御、物体検出、経路計画、物体識別などの機能を提供するために実行されると考える。したがって、車両と言された機能の文脈内において、AIプログラムが暴走状態で(たとえば、意図した制約から外れて)実行を開始した場合、人や物体に害を及ぼす虞がある。さらに、AIプログラムがセキュリティ侵害、または、他の操作を防止するメカニズムを含む場合、特にAIプログラムがそのような動作を防止するために積極的に適応するか、または対策を含む場合、外部アプローチを介してAIプログラムの実行を停止することは困難である。
したがって、AIプログラムが、車両を誘導するためにセンサ入力に基づいて制御を提供しており、不整合な方法(たとえば、連続した時間ステップにおける相反する制御)、または、衝突をもたらす可能性のある方法(たとえば、車両を道路から逸脱させる)で制御を提供することによって不規則な動作を開始すると、監視制御システムは、AIプログラムの実行を停止させるために制御バイナリを作動させる。AIプログラムは、特定のタスクについて時間をかけて学習し、内部化された理解を発展させる可能性があるため、不利な動作条件の原因を特定することは困難である。したがって、監視制御システムは、AIプログラムの特定の実行状態などの不利な動作状態の指標を監視する。一実施形態では、監視制御システムは、AIプログラムの実行状態を監視して、AIプログラムが不利な動作状態に向かって進化しているか、そうでなければいつ不利な動作状態に入る可能性があるかを検出する。
ひとつのアプローチでは、監視制御システムは、内部の状態/値、出力として提供される予測値、入力/内部/出力の値の統計的傾向、および、AIプログラムに影響を及ぼすか、または、AIプログラムの現在の状態を示す可能性がある他の態様(たとえば、入力)を監視する。たとえば、監視制御システムは、定義された許容範囲外の値、有意な変化(たとえば、特定の大きさよりも大きい変化、または、特定の性質の変化)、定義された範囲/傾向とは逆の特定の方向に一貫して傾向を示す値、既知の不利な状態に関連する値などについて、言及された態様を監視することができる。
ひとつ以上の実施形態では、監視制御システムは、通信チャネルを介して提供される情報、制御バイナリに定義されたポリシー、および/または、それらの組み合わせを介して、言及された条件の実行状態を遠隔的に監視する。いずれの場合も、制御バイナリはAIプログラムと統合されているので、AIプログラムは、たとえば、制御バイナリがAIプログラムの実行を停止するのを阻止するように動作することができない。したがって、不利な動作条件(たとえば、検出された実行状態がキルスイッチ閾値を満たす)が検出されると、監視制御システムは、AIプログラムの実行を停止するために制御バイナリを作動させる。一実施形態では、制御バイナリは、AIプログラムのプログラムフローをリダイレクトするためのキルスイッチを提供することができ、それによってAIプログラムのさらなる命令の実行を回避することによって実行を停止する。別のアプローチでは、制御バイナリは、AIプログラムが実行されているデバイスをリセットするか、AIプログラムのさらなる動作を阻止するように機能する。いずれの場合においても、監視制御システムは、AIプログラムによって提供される改善された計算処理の信頼性の高い統合を通じて、AIプログラムを管理する関連システムの能力を向上し、不利な動作条件を回避し、それによって全体的な機能を向上する。
一実施形態では、人工知能(AI)プログラムの実行を管理するための監視制御システムが開示される。監視制御システムは、ひとつ以上のプロセッサと、ひとつ以上のプロセッサに通信可能に結合されたメモリと、を備える。メモリは、ひとつ以上のプロセッサによって実行されると、ひとつ以上のプロセッサに、AIプログラムによって生成される少なくとも現在の予測を示す、AIプログラムに関連付けられた実行状態を特定するために、AIプログラムの実行を監視させる命令を含むウォッチドッグモジュールを格納する。ウォッチドッグモジュールは、実行状態がキルスイッチ閾値を満たすときに、AIプログラムの実行を停止するように制御バイナリを作動させる命令を含む。キルスイッチ閾値は、不利な動作条件を示すAIプログラムの実行に関連する条件を定義する。
一実施形態では、人工知能(AI)プログラムの実行を管理するための非一時的コンピュータ可読媒体が開示される。コンピュータ可読媒体は、ひとつ以上のプロセッサによって実行されると、ひとつ以上のプロセッサに、開示された機能を実行させる命令を格納する。命令は、AIプログラムによって生成された少なくとも現在の予測を示す、AIプログラムに関連付けられた実行状態を特定するために、AIプログラムの実行を監視する命令を含む。命令は、実行状態がキルスイッチ閾値を満たすときに、AIプログラムの実行を停止するように制御バイナリを作動させる命令を含む。キルスイッチ閾値は、不利な動作条件を示すAIプログラムの実行に関連する条件を定義する。
一実施形態では、人工知能(AI)プログラムの実行を管理する方法が開示される。方法は、AIプログラムによって生成された少なくとも現在の予測を示す、AIプログラムに関連付けられた実行状態を特定するために、AIプログラムの実行を監視することを含む。方法は、実行状態がキルスイッチ閾値を満たすときに、AIプログラムの実行を停止するように制御バイナリを作動させることを含む。キルスイッチ閾値は、不利な動作条件を示すAIプログラムの実行に関連する条件を定義する。
この明細書に組み込まれ、その一部を構成する添付図面は、本開示の様々なシステム、方法、および他の実施形態を示している。図中の図示された要素の境界(たとえば、ボックス、ボックスのグループ、または他の形状)は、境界の一実施形態を表すことが理解されるであろう。いくつかの実施形態では、ひとつの要素が複数の要素として設計されてもよく、または複数の要素がひとつの要素として設計されてもよい。いくつかの実施形態では、別の要素の内部コンポーネントとして示される要素は、外部コンポーネントとして実装されてもよく、その逆もあり得る。さらに、要素は縮尺どおりに描かれない場合がある。
AIプログラムの実行の管理に関連する監視制御システムの一実施形態を示す図である。 AIプログラム内に具現化された制御バイナリの一例を示す図である。 制御バイナリを使用してAIプログラムの実行を自動的に停止することに関する方法の一実施形態を示す図である。 制御バイナリをAIプログラムに動的に注入することに関する方法の一実施形態を示す図である。
AIプログラムの実行の管理に関するシステム、方法、および他の実施形態が開示される。人工知能ベースのプログラムの実行が安全で確実であることを保証することは、困難なタスクである。AIベースのプログラムは、一般に抽象的な形でAIプログラム内に保持される学習された理解にしたがって実行されるため、AIプログラムがどのように機能するか、AIプログラムの動作が様々な制約(たとえば、機能安全制約)に適合するか否かを正確に理解することは困難である。
したがって、一実施形態では、監視制御システムは、AIプログラムの実行を積極的(能動的)に監視し、不利な動作条件、または、不利な動作条件の潜在的な開始を定義する指標の検出時に実行を停止する。たとえば、ひとつのアプローチでは、開示された監視制御システムは、最初に、制御バイナリをAIプログラムに注入する。制御バイナリは、一実施形態では、AIプログラム内に埋め込まれた実行可能なバイナリコード(たとえば、マシンコード)である。監視制御システムは、制御バイナリがAIプログラムのコードによって難読化されるように、制御バイナリを、AIプログラムを形成するファームウェアに注入する。様々なアプローチにおいて、制御バイナリは、AIプログラムの監視、AIプログラムの実行の停止、フェイルオーバ機能の実行などを含むひとつ以上の機能を実行することができる。いずれの場合も、制御バイナリは、AIプログラムが望ましくない方法で動作を開始した場合に、AIプログラムを制御するためのメカニズム(機構)を監視制御システムに提供する。
一般に、車両制御、物体検出、経路計画、物体識別などの機能を提供するために、車両の文脈内で実行される例示的なAIプログラムを考える。車両と言及された機能の文脈内で、AIプログラムが暴走状態で(たとえば、意図した制約から外れて)実行を開始した場合、人や物体に害を及ぼす虞がある。さらに、AIプログラムがセキュリティ侵害、または、他の操作を防止するメカニズムを含む場合、特にAIプログラムがそのような動作を防止するために積極的に適応する場合、外部アプローチを介してAIプログラムの実行を停止することは困難である。
AIプログラムが、車両を誘導するためにセンサ入力に基づいて制御を提供しており、不整合な方法(たとえば、連続した時間ステップにおける相反する制御)、または、衝突をもたらす可能性のある方法(たとえば、車両を道路から逸脱させる)で制御を提供することによって不規則な動作を開始すると、監視制御システムは、AIプログラムの実行を停止させるために制御バイナリを作動させる。AIプログラムは、特定のタスクについて時間をかけて学習し、内部化された理解を発展させる可能性があるため、不利な動作条件の原因を特定することは困難である。したがって、監視制御システムは、AIプログラムの特定の実行状態などの不利な動作状態の指標を監視する。一実施形態では、監視制御システムは、AIプログラムの実行状態を監視して、AIプログラムが不利な動作状態に向かって進化しているか、そうでなければいつ不利な動作状態に入る可能性があるかを検出する。
ひとつのアプローチでは、監視制御システムは、内部の状態/値、出力として提供される予測値、言及された値の統計的傾向、および、AIプログラムに影響を及ぼすか、または、AIプログラムの現在の状態を示す可能性がある他の態様(たとえば、入力)を監視する。たとえば、監視制御システムは、定義された許容範囲外の値、有意な変化(たとえば、特定の大きさよりも大きい変化、または、特定の性質の変化)、定義された範囲/傾向とは逆の特定の方向に一貫して傾向を示す値、既知の不利な状態に関連する値などについて、言及された態様を監視することができる。
ひとつ以上の実施形態では、監視制御システムは、通信チャネルを介して提供される情報、制御バイナリに定義されたポリシー、および/または、それらの組み合わせを介して、言及された条件の実行状態を遠隔的に監視する。いずれの場合も、制御バイナリはAIプログラムと統合されているので、AIプログラムは、たとえば、制御バイナリがAIプログラムの実行を停止するのを阻止するように動作することができない。したがって、不利な動作条件(たとえば、検出された実行状態がキルスイッチ閾値を満たす)が検出されると、監視制御システムは、AIプログラムの実行を停止するために制御バイナリを作動させる。一実施形態では、制御バイナリは、AIプログラムのプログラムフローをリダイレクトするためのキルスイッチを提供することができ、それによってAIプログラムのさらなる命令の実行を回避することによって実行を停止する。別のアプローチでは、制御バイナリは、AIプログラムが実行されているデバイスをリセットするか、AIプログラムのさらなる動作を阻止するように機能する。いずれの場合においても、監視制御システムは、AIプログラムによって提供される改善された計算処理の信頼性の高い統合を通じて、AIプログラムを管理する関連システムの能力を向上し、不利な動作条件を回避し、それによって全体的な機能を向上する。
図1を参照すると、監視制御システム100の一実施形態が示されている。この明細書では、監視制御システム100に関する構成について説明するが、実施形態は、図示のような単一システムに限定されない。いくつかの実装形態では、監視制御システム100は、クラウドコンピューティングシステム、クラスタコンピューティングシステム、分散コンピューティングシステム、サービスとしてのSaaSシステムなどとして具現化することができる。SaaSは、software as a serviceの略称である。監視制御システム100は、説明の目的で単一の装置として示され、説明されているが、開示された構成要素が構成され得る全体的な可能な構成を制限するものとして解釈されるべきではない。たとえば、別個のモジュール、メモリ、データベースなどは、様々な組み合わせで様々なコンピューティングシステムに分散されてもよい。
監視制御システム100は、また、様々な要素を含む。様々な実施形態では、監視制御システム100が、図1に示される要素のすべてを有さなくてもよいことが理解される。監視制御システム100は、図1に示される様々な要素の任意の組み合わせを有することができる。さらに、監視制御システム100は、図1に示される様々な要素に対して追加の要素を有することができる。いくつかの構成では、監視制御システム100は、図1に示されるひとつ以上の要素なしで実施されてもよい。さらに、様々な要素は、図1の監視制御システム100内に位置するものとして示されているが、これらの要素のうちのひとつ以上が監視制御システム100の外部に配置できることが理解される。さらに、示された要素は、長い距離で物理的に分離されてもよい。
さらに、図示の単純化および明確化のために、参照番号が適宜、対応するまたは類似する要素を示すために、異なる図面間で繰り返されていることが理解される。さらに、この明細書に記載の実施形態は、記載された要素の様々な組み合わせを使用して実施できると理解される。この明細書に記載の実施形態の完全な理解を提供するために、多数の具体的な内容を説明する。しかしながら、当業であれば、この明細書に記載された実施形態は、これらの要素の様々な組み合わせを用いて実施され得ることを理解できる。
いずれの場合も、監視制御システム100は、潜在的に不利な動作条件を処理することによって人工知能ベースのプログラムの実行を改善することに関し、この明細書に開示されているような方法、および、他の機能を実行するために実装される。言及された機能と方法は、図のさらなる説明でより明らかになる。さらに、監視制御システム100は、プロセッサ110を備えるものとして示されている。様々な実施形態において、プロセッサ110は、監視制御システム100の一部であってもよく、監視制御システム100は、データバス、または、別の通信経路を介してプロセッサ110にアクセスしてもよく、プロセッサ110は、監視制御システム100によってアクセス可能なリモートコンピューティングリソースであってもよい。いずれの場合も、プロセッサ110は、マイクロプロセッサ、ASIC、グラフィックス処理装置(GPU)、電子制御装置(ECU)、または、他の電子デバイスの制御のために使用され得る様々な電子出力をそこから生成するための機械可読命令を実行することが可能な他のコンピューティングコンポーネント、のような電子デバイスである。
一実施形態では、監視制御システム100は、実行モジュール130と、ウォッチドッグモジュール140を格納するメモリ120を備える。メモリ120は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、ハードディスクドライブ、フラッシュメモリ、または、実行モジュール130およびウォッチドッグモジュール140を格納するための他の適切なメモリである。実行モジュール130およびウォッチドッグモジュール140を、以下ではモジュール130、140と示すことがある。モジュール130、140は、たとえば、プロセッサ110によって実行されると、プロセッサ110に、この明細書に開示される様々な機能を実行させるコンピュータ可読命令である。様々な実施形態では、モジュール130、140は、ハードウェアロジック、ASIC、グラフィックス処理装置(GPU)、プロセッサ110のコンポーネント、電子メモリ、または、二次プログラム(たとえば、制御バイナリ160)内に埋め込まれた命令などを含むことができるが、これらに限定されない様々な形態で実装され得る。
監視制御システム100は、一実施形態では、データベース150を備える。データベース150は、一実施形態では、メモリ120、分散メモリ、クラウドベースのメモリ、または、別のデータストアに格納された電子データ構造であり、格納されたデータの分析、格納されたデータの提供、格納されたデータの整理などのためにプロセッサ110によって実行され得るルーチンで構成される。一実施形態では、データベース150は、様々な決定を実行する際にモジュール130、140によって使用されるデータを格納する。一実施形態では、データベース150は、制御バイナリ160、実行状態170、および/または、開示された機能を実行する際にモジュール130、140によって使用され得る他のデータを格納する。
この明細書で使用される場合、「プログラム」という用語は、たとえば、ソースコードから派生したコンパイルされたマシンコードを指す。したがって、AIプログラムは、一実施形態では、マシンコードであるコンパイルされたプログラムまたはその一部である。この明細書で使用される「マシンコード」という語句は、一般に、たとえばプロセッサ110、ECU、または、他の処理装置のような、マイクロプロセッサによって実行され得る機械語命令で表されるプログラムを指す。さらに、マシンコードは、一般に、関連するハードウェアによって実装された命令セットによって定義されるオペコード(たとえば、NOOP命令)で構成されるプリミティブ言語、または、ハードウェア依存言語であると理解される。NOOPは、No Operationの略称であり、NOPと称されることもある。マシンコード自体は、データ値、レジスタアドレス、メモリアドレスなどでさらに構成される。もちろん、プログラムはマシンコードであると説明されているが、さらなる実施形態では、プログラムは、アセンブリコード、または、ソースコードの別の中間表現である。この明細書でさらに使用されるように、バイナリ、バイナリコード、および他のそのような類似の語句は、一般に、マシンコードを指す。
一実施形態では、AIプログラムは、環境認識、または、他の電子データの形での電子入力に応じてひとつ以上のタスクを達成するために機械知能を実装する個々のプログラム、または、プログラムのセットである。様々な実施形態において、AIプログラムは、ベイジアンネットワーク、隠れマルコフモデル、カルマンフィルタなどの確率的方法にしたがって機能する。さらなる態様では、AIプログラムは、ニューラルネットワーク、サポートベクターマシン、機械学習アルゴリズムなどのような統計的方法にしたがって機能する。もちろん、さらなる実施形態では、AIプログラムは、言及されたアプローチの組み合わせ、および/または、同じアプローチの複数のものから形成されてもよい。いずれの場合も、AIプログラムは、一般に、ノードの重み、抽象的な潜在空間、開発されたパラメータ化、または、電子メカニズムを捕捉する他の適切な知識、の形で具現化された内部理解を発展することによって、与えられたタスクについて学習(教師あり、または、教師なしのいずれか)する能力によって定義される。さらに、AIプログラムは、一般に、計算タスクを実行し、所望の出力を提供するために、自律的(すなわち、手動のユーザ入力なし)に機能する。
さらに、AIプログラムは、言及された機能を実現するために一緒に実行される機能とデータ構造のセットとして構成される。AIプログラムは、ひとつ以上のアプローチにおいて、複数の実行の反復にわたって内部理解を発展させるように実行され、そこから、言及された出力が改善され、提供される。AIプログラムは、内部理解を向上/変化させるために、連続的な反復にわたって進化することを理解されたい。AIプログラムは、ある意味ではブラックボックスのように動作しており、内部の理解や構成がすぐには分からないため、AIプログラムを正確に予測/制御することは困難である。さらに、AIプログラムは、不利と考えられる予期しない/望ましくない動作条件を発生させる場合がある。すなわち、たとえば、AIプログラムは、望ましい範囲から外れた出力をもたらす内部的な理解を発展することができる。一例として、AIプログラムは、明らかな理由なしに、車両に予期せずブレーキをかける可能性がある。この出力は、たとえば、何らかの脅威とならない周囲の状況を提供されたブレーキ制御に関連付けるような学習プロセスにおける収差によって生じ得る。このような異常は、一般にまれであると考えられているが、発生する可能性があり、潜在的に重大な安全上の危険性を示している。さらに、AIプログラムは、システム100とは別のコンピューティングシステム上で実行されると説明されているが、ひとつ以上の実施形態では、AIプログラムとシステム100は、同じ場所に配置されてもよく、および/または、同じ処理リソースを共有してもよい。
図1に示されるように、データベース150は、制御バイナリ160、および、実行状態170を備える。制御バイナリ160は、一実施形態では、AIプログラムを監視し、AIプログラムの実行を停止し、フェイルオーバ機能を提供するための機能を含む実行可能なマシンコードである。もちろん、様々な実施形態では、制御バイナリ160は、AIプログラムの実行を停止する命令を含み、他の前述した機能(たとえば、監視、フェイルオーバなど)は、他のために提供されてもよい。一実施形態では、制御バイナリ160は、AIプログラムのプログラムフロー内に割り込み、実行をフェイルオーバ機能(たとえば、回復機能)、または、AIプログラムの実行を停止させる別の命令のセットにリダイレクトすることによって、AIプログラムの実行を停止する。一般に、制御バイナリ160は、プログラムカウンタを変更して、制御バイナリ160に対応する命令のシーケンス内の指定されたセクションにジャンプすることによって、プログラムフロー内に割り込む。制御バイナリ160は、どの命令が実行されるかを制御するプログラムカウンタ、または、他の制御フローデータ引数に関連するレジスタ、または、他のメモリロケーション(メモリ位置)を変更するように機能することができる。
制御バイナリ160によって提供されるフェイルオーバ機能は、多種多様な機能を含むことができ、一般に実装固有である。たとえば、AIプログラムが車両の一部として実装される場合、フェイルオーバ機能は、ドライバに警告を提供するか、または、乗客の安全を確保するために自動プルオーバ操作を実行することができる。同様に、さらなる実装において、制御バイナリ160は、状況に適切なフェイルオーバ機能を実装する。
いずれの場合も、制御バイナリ160は、一般に、プラットフォーム固有であるように開発される。たとえば、制御バイナリ160は、x86、x86_64、ARM32、ARM64などの特定の命令セットにしたがって生成される。一般に、言及された命令セットは、異なるオペコードにしたがって定義され、したがって、制御バイナリ160は、言及された命令セットに固有のマシンコードで構成される。
さらなる説明として、図2は、AIプログラム210を実行する例示的なデバイス200を示している。制御バイナリ160は、AIプログラム210のサブコンポーネントとして示されている。一般的に、後述する実行モジュール130は、制御バイナリ160がAIプログラム210、および、AIプログラム210が格納されているメモリ内に統合され、制御バイナリ160がAIプログラム210と区別できなくなるように、制御バイナリ160をAIプログラム210に注入する。したがって、制御バイナリ160は、AIプログラム210内で効果的に難読化される。注入するとは、挿入する、差し込む(割り込ませる)と称されることがある。
さらに、一実施形態では、制御バイナリ160は、AIプログラム210の実行状態を積極的に監視することによって、または、監視制御システム100が実行状態を監視するメカニズムを提供することによって、監視機能を提供する。たとえば、制御バイナリ160は、AIプログラム210の実行状態を積極的に監視する機能を有するように構成できる。ひとつのアプローチでは、制御バイナリ160は、傍受する、または、他の方法で、AIプログラム210から内部的に実行状態を取得する。
さらなる態様では、制御バイナリ160は、たとえば、アプリケーションプログラムインターフェース(API)、指定レジスタ、メモリロケーション、通信データリンク、または、他の適切な手段を使用して、実行状態を監視制御システム100の外部に通信する。いずれにしても、AIプログラム210の実行状態は、監視を可能にするために利用可能にされる。
一実施形態では、実行状態170は、AIプログラム210の内部の状態/値、AIプログラム210の出力として提供される予測値、言及された値の統計的傾向、AIプログラムへ210の入力、AIプログラム210の学習された理解を表す内部データ構造の特徴、または、AIプログラム210の現在の状態を示すデータを含む。たとえば、実行状態170は、実際の実行状態に関連して定義されたポリシー、および/または、指標(メトリクス)などの追加情報を含むことができる。ひとつアプローチでは、追加情報は、実行状態について定義された許容範囲外の値、潜在的な不利な動作状態を示す重要な変化(たとえば、特定の大きさよりも大きい変化または特定の特徴の変化)を識別することに関連付けられた指標、定義された範囲/傾向とは逆の特定の方向に一貫して傾向を示す値を識別することに関連付けられた指標、不利な状態と相関することが知られている値を識別することに関連付けられた指標、などを定義する。一実施形態では、実行状態の不利な動作条件を指定する言及された情報は、キルスイッチ閾値と呼ばれる。
したがって、一実施形態では、実行モジュール130は、制御バイナリ160をAIプログラム210に注入するように機能する命令を含む。図2に関して前述したように、制御バイナリ160は、制御バイナリ160をAIプログラム210の一部として統合する方法(たとえば、ランダム化された位置)で、AIプログラム210のバイナリコードと統合される。したがって、ひとつのアプローチでは、実行モジュール130は、制御バイナリ160をAIプログラム210に追加することにより、制御バイナリ160をAIプログラム210に注入し、制御バイナリ160をAIプログラム210の一部として統合する。さらなる態様では、実行モジュール130は、制御バイナリ160を統合するために、AIプログラム210のひとつ以上の態様を変更する。たとえば、実行モジュール130は、格納された命令の順序、および/または、制御バイナリ160の統合を考慮して調整を必要とする他の態様に関連する静的メモリ値に関連付けられた値を調整してもよい。いずれの場合も、実行モジュール130は、通常、最初に実行されるAIプログラム210を構成するための準備ステップとして、制御バイナリ160を注入するように機能する。これにより、制御バイナリ160は、AIプログラム210を実装するシステム内にロードされるための前提条件として、AIプログラム210内に含まれる。もちろん、AIプログラム210の予備的修正として説明されているが、さらなる態様では、監視制御システム100は、制御バイナリ160を含むように既存のシステムを適合させるように機能する。
別の実施形態では、実行モジュール130は、制御バイナリ160をAIプログラム210に動的に注入するように機能する。すなわち、実行モジュール130は、AIプログラム210のプログラムフローを中断し、AIプログラム210に代えて制御バイナリ160を実行させる。このように、制御バイナリ160を動的に注入する場合、実行モジュール130は、ウォッチドッグモジュール140がAIプログラム210の実行状態のなかで不利な動作条件を特定(識別)することに応答して、ウォッチドッグモジュール140の制御で機能する。実行モジュール130は、実行される次の命令を、制御バイナリ160がAIプログラム210から制御を引き継ぎ、制御バイナリ160のものになるように、AIプログラム210のプログラムフローを操作する。実行モジュール130は、一実施形態では、プログラムカウンタ、または、他の制御フローデータ引数に関連付けられたメモリロケーションを変更することにより、制御フローを操作する。したがって、実行モジュール130は、実行を制御バイナリ160にリダイレクト(変更)することによって、AIプログラム210の実行を効果的に停止することができる。
このように、ウォッチドッグモジュール140は、一実施形態では、AIプログラム210の実行を監視するように機能する命令を含む。一般に、ウォッチドッグモジュール140は、不利な動作条件を示す状態について、AIプログラム210の言及された実行状態170を監視する。前述したように、不利な動作条件は、不利な結果をもたらす可能性のあるAIプログラム210の内部状態の組み合わせにしたがって定義される。ウォッチドッグモジュール140は、制御バイナリ160から実行状態170の指標(インジケータ)を受信する。たとえば、一実施形態では、ウォッチドッグモジュール140は、API、制御バイナリ160自体、または他の適切な手段を介して、実行状態(たとえば、内部値、入力、出力、メモリアドレスなど)にアクセスする。一実施形態では、AIプログラム210の実行状態170は、AIプログラム210の実行にともなって変化する変数の値、データ構造(たとえば、ノード)の内部構成、および、関連する格納データ(たとえば、ノードの重み、潜在空間の特性、パラメータ化など)を示す。このように、一実施形態では、ウォッチドッグモジュール140は、入力値、出力値、学習された理解を表す内部で導出、および、格納された値などの組み合わせについて実行状態を監視する。
監視された実行状態を形成する値は、特定の実施形態に応じて変化してもよいが、一般に、不利な動作条件を含む現在の状態を示すAIプログラム210の実行に関連する値の任意の組み合わせを含むことを理解されたい。不利な動作条件および不利な動作条件につながる実行状態は、異なるアプローチを用いて監視するための値を定義するために、予め特定されたものでもよい。たとえば、不利な動作条件は、機能安全基準、望ましくない既知の出力値、予測される組み合わせなどにしたがって定義してもよい。さらに、不利な動作条件は、回帰を実行し、不利な動作条件につながる特定の実行状態を決定するために使用されてもよい。ひとつのアプローチでは、システム100は、故障ツリー分析、制御フロー図の分析、または、他の適切なアプローチにしたがって、不利な動作条件および関連する実行状態を決定する。いずれのアプローチ、または、アプローチの組み合わせを採用しても、監視制御システム100は、監視を容易にするために、実行状態が定義された指標を格納する。
したがって、ウォッチドッグモジュール140は、一実施形態では、取得した実行状態をキルスイッチ閾値と比較して、不利な動作状態が発生しているか否か、または、発生する可能性があるか否かを判断する。実行状態は、ひとつ以上の発生において、進行中の不利な動作状態、または、差し迫った、あるいは、発生する可能性があると特徴付けられる動作状態を示す可能性があることに留意されたい。ウォッチドッグモジュール140が制御バイナリ160を作動させることを決定したときに、特定の不利な動作状態はまだ発生していないかもしれないが、そのような不利な動作状態の差し迫った性質、および/または、不利な動作状態を識別する情報の性質は、特定の不利な動作状態が実際に発生するまで待つことには適さない。いずれの場合でも、ウォッチドッグモジュール140は、制御バイナリ160、または、ウォッチドッグモジュール140に情報を提供する他の関連メカニズム(たとえば、制御バイナリ160を介して提供されるメモリアクセス)を介して、AIプログラム210の実行状態を形成する値にアクセスする。
次に、ウォッチドッグモジュール140は、たとえば、各実行サイクルで実行状態を形成する値を、定義された実行状態170、および/または、実行状態の範囲を定義する指標(メトリクス)と比較する。すなわち、一態様では、ウォッチドッグモジュール140は、また、少なくとも計装プログラムからの値を、値の可能な範囲のマップと比較して、値が不利な動作条件と相関するか否かを決定する。すなわち、ウォッチドッグモジュール140、および/または、実行モジュール130は、たとえば、記録された値の履歴に基づいて、異なる実行状態に対する値の範囲を決定する。この履歴を用いて、ウォッチドッグモジュール140は、値を分析し、値が範囲内にあるか否かを決定する。ウォッチドッグモジュール140は、一般に、監視制御システム100内からAIプログラム210の監視を実行するものとして説明されるが、一実施形態では、ウォッチドッグモジュール140またはその一部は、AIプログラム210内の制御バイナリ160と統合される。このように、ウォッチドッグモジュール140は、一実施形態では、AIプログラム210のシステム内でAIプログラム210をローカルに監視する。いずれの場合も、AIプログラム210を監視することに加えて、ウォッチドッグモジュール140は、また、方法300で後に詳細に説明するように、制御バイナリ160を作動させて、AIプログラム210の実行を停止する。
図3は、人工知能(AI)プログラムの実行を管理する方法300を示す。方法300は、図1の監視制御システム100の観点から説明される。方法300は、監視制御システム100と組み合わせて説明されるが、方法300は、監視制御システム100内で実施されることに限定されず、代わりに、方法300を実施することができるシステムの一例であることを理解されたい。
310において、実行モジュール130は、制御バイナリ160をAIプログラム210に注入する。一実施形態では、実行モジュール130は、AIプログラム210を実行する組み込みデバイスのファームウェアに制御バイナリ160を注入する。たとえば、実行モジュール130は、ファームウェアにアクセスし、制御バイナリ160がAIプログラム210と統合され、制御バイナリ160によるAIプログラム210の態様へのアクセスを提供するように、制御バイナリ160をAIプログラム210のコードのなかに格納する。言及された方法で制御バイナリ160を注入するひとつの特徴は、制御バイナリ160がAIプログラム210と統合されているために、制御バイナリ160の命令に帰属するセキュリティ特権を提供することである。すなわち、システム、AIプログラム210自体、または、他の方法で提供されるような監視プロセスは、制御バイナリ160がファームウェアに統合されているので、制御バイナリ160をネイティブプロセスとして見ることができる。その結果、言及された方法で制御バイナリ160を注入することにより、外部プロセスがメモリ、データ構造、および、AIプログラム210に関連する他の態様と相互作用することを妨げる可能性のあるセキュリティメカニズムを回避することができる。
さらに、AIプログラム210、および、注入されたときの制御バイナリ160を格納するメモリ/ファームウェアは、一実施形態では、AIプログラム210を実行するための電子制御装置(ECU)、または、他の処理装置と統合される。ファームウェア、および、実行デバイスの特定の構成は、様々な実施形態に応じて変化する可能性があることを理解されたい。ただし、様々な構成には、車両内のECUおよび関連する組み込みメモリなどを含むことができる。
320において、ウォッチドッグモジュール140は、AIプログラム210を監視して、AIプログラム210内の実行状態を特定(識別)する。一実施形態では、ウォッチドッグモジュール140は、入力、中間/内部値、出力値(たとえば、ひとつ以上のセンサ入力を処理するAIプログラム210から生じる、AIプログラム210によって生成される制御出力である予測値)、学習された知覚特性を格納する内部データ構造などを監視する。前述したように、ウォッチドッグモジュール140は、値に対する定義された可能な範囲、不利な動作条件に対応する予め特定された組み合わせなどにしたがって、言及された値を監視してもよい。
ウォッチドッグモジュール140は、たとえば、プログラムのテスト、検証された実行中のプログラムの追跡、AIプログラム210の静的分析などを通じて、様々な実行状態に対する期待値/可能値の範囲を定義する。ひとつのアプローチでは、ウォッチドッグモジュール140は、監視により収集された観測値の履歴にわたって範囲/条件を生成する。いずれの場合も、ウォッチドッグモジュール140は、320において、AIプログラム210へのアクセスを通じて、AIプログラム210の現在の実行状態を定義する現在の値を取得する。すなわち、ひとつのアプローチでは、ウォッチドッグモジュール140は、現在の実行状態を定義する値を収集するために、メモリロケーション、実行スレッド、レジスタ、および/または、AIプログラム210に関する他の情報源を検査する。値を取得するためにどのアプローチがとられても、制御バイナリ160は、一般に、AIプログラム210の他の保護された/安全な態様へのアクセスを容易にする。さらに、ウォッチドッグモジュール140は、実行状態がキルスイッチ閾値を満たすか否かを決定するためのさらなる分析のために、リモートデバイスで実行状態を受信する。
330において、ウォッチドッグモジュール140は、320で特定された実行状態がキルスイッチ閾値を満たすか否かを判定する。一実施形態では、キルスイッチ閾値は、ウォッチドッグモジュール140が制御バイナリ160を起動(トリガ)する実行状態の値の組み合わせである。たとえば、キルスイッチ閾値は、不利な動作条件を示す実行条件の値を定義する。したがって、キルスイッチ閾値は、AIプログラム210をいつ停止すべきかを決定するための定量的な指標を提供する。一実施形態では、キルスイッチ閾値は、標準動作範囲、または、示された機能標準(たとえば、ISO26262)に違反するAIプログラム210の動作にしたがって、不利な動作条件を定義する。
したがって、ウォッチドッグモジュール140は、キルスイッチ閾値と330で特定された実行状態とを比較して、実行状態がキルスイッチ閾値を満たし、これにより不利な動作状態を示しているか否かを判定する。ウォッチドッグモジュール140が、実行状態が閾値を満たす(たとえば、定義された範囲外、規定値よりも大きい、特定のマージンよりも小さい、定義された相関に等しいなど)と判定した場合、ウォッチドッグモジュール140は、340で制御バイナリ160を作動させる。そうでなければ、ウォッチドッグモジュール140は、AIプログラム210の実行中に、更新された実行状態を繰り返し取得し、その状態を継続的にチェックする。ウォッチドッグモジュール140がAIプログラム210を監視する頻度は、実施形態によって異なり得る。しかしながら、一般原則として、ウォッチドッグモジュール140は、不利な動作条件をもたらす可能性のあるAIプログラム210内の進展を捕捉するために、更新された実行状態を半連続的に取得し、十分な頻度で実行状態をチェックする。ウォッチドッグモジュール140は、AIプログラム210が実行されているプロセッサ/制御装置のクロック周波数に匹敵する周波数でAIプログラム210をチェックすることができる。
340において、ウォッチドッグモジュール140は、AIプログラム210の実行を停止させるために、制御バイナリ160を作動させる。一実施形態では、ウォッチドッグモジュール140は、実行の停止を開始するために、リモートデバイスから制御バイナリ160に制御信号を送信する。次に、制御バイナリ160は、たとえば、AIプログラム210の実行を停止させる停止機能を実行する。ひとつのアプローチでは、停止機能は、AIプログラム210の実行を中断し、代わりに、たとえばフェイルオーバ機能を実行するように、AIプログラム210のプログラムフローを操作する。別の構成では、制御バイナリ160は、AIプログラム210が実行されている関連デバイス、または、少なくとも処理装置をリセットする。さらに別の実施形態では、制御バイナリ160は、不利な動作状態につながる実行状態をクリアし、その後の動作でそのような実行状態を回避するために、AIプログラム210の内部状態、メモリロケーション、および/または、他の態様をリセットする。
前述したように、制御バイナリ160の作動は、フェイルオーバ機能の実行をさらに含むことができる。フェイルオーバ機能は、通常、AIプログラム210のリセット/停止からの回復をともなう関連デバイスを容易にする機能を含む。したがって、AIプログラム210が、先進運転支援システム(ADAS)、自律運転システム、または、車両の動作に影響を及ぼす可能性がある他の車両システムへの機能提供に関与する場合、制御バイナリ160によって実行されるフェイルオーバ機能は、車両の動作中にAIプログラム210が予期せずリセットされた場合に、車両の安全な運転を継続して提供することができる。たとえば、フェイルオーバ機能は、ドライバに簡単な警告を提供することから、道路の側方に安全に引き寄せるなどの安全操作を行うように車両を制御することまでの範囲に及ぶ。このように、監視制御システムは、AIプログラム210の不利な動作条件を回避するだけでなく、その後の車両の安全な運転も考慮する。
図4は、制御バイナリをAIプログラムに動的に注入する方法400を示している。方法400は、図1の監視制御システム100の観点から説明される。方法400は、監視制御システム100と組み合わせて説明されるが、方法400は、監視制御システム100内で実施されることに限定されず、代わりに、方法400を実施し得るシステムの一例であることを理解されたい。
方法400は、一般に、方法300と類似しており、したがって、共有される態様の詳細な説明は再検討されない。しかしながら、一般的な文脈として、方法400は、異なる方法で制御バイナリ160を活用することにより、方法300の代替手段を提供すると考える。たとえば、実行モジュール130は、最初に制御バイナリ160をAIプログラム210に注入せず、代わりに、悪意のある攻撃がプログラム制御フローをリダイレクト(変更)するのと同様の方法で制御バイナリ160を利用する。
図4に示されるように、ウォッチドッグモジュール140は、実行状態を監視し、実行状態がキルスイッチ閾値を満たすときを決定する。もちろん、制御バイナリ160はまだAIプログラム210に注入されていないため、ウォッチドッグモジュール140は、一般に、現在の実行状態を取得するために他のメカニズムを利用する。制御バイナリ160は、方法400のこの時点でAIプログラム210に埋め込まれておらず、ウォッチドッグモジュール140は、他の利用可能なメカニズムを介してAIプログラム210を監視する。実行状態を取得するための代替的なアプローチは、入力と出力の傍受、電力消費の監視、電磁放射の監視、メモリアクセスの監視、プロセッサスレッドの監視、レジスタの監視などを含み得る。いずれにせよ、ウォッチドッグモジュール140に利用可能な情報は、方法400によって提供されるアプローチのように包括的ではないかもしれないが、一般的には、AIプログラム210を管理するのに十分な情報を取得する。
キルスイッチ閾値が満たされていると判断して制御バイナリ160を作動させる代わりに、実行モジュール130は、方法400の下で動作し、410において、制御バイナリ160をAIプログラム210に注入する。一実施形態では、実行モジュール130は、AIプログラムのプログラム制御フローを動的に変更し、それによって実行を制御バイナリ160の命令にリダイレクトするために、ひとつ以上のメモリロケーションを操作する。このように、制御バイナリ160は、実行モジュール130によって提供される操作を介した別個の制御フロー経路を表す。いずれの場合も、AIプログラム制御フローが410で調整されると、制御バイナリ160は340で作動され、前述したように実行される。したがって、方法400は、たとえば、前提条件として制御バイナリ160をAIプログラム210に埋め込むことができないか、そうでなければ、AIプログラム210に埋め込まれていない場合に、一般的に、AIプログラム210の実行を停止する代替手段を表す。
さらに、図1の監視制御システム100は、別個の集積回路、および/または、チップを用いて様々な構成によって構成できることが理解されるべきである。そのような実施形態では、実行モジュール130は、別個の集積回路として具現化される。さらに、ウォッチドッグモジュール140は、個々の集積回路上で具現化される。回路は接続パスを介して接続され、個別の回路間で信号を通信する。もちろん、別個の集積回路が論じられているが、様々な実施形態では、回路は、共通の集積回路基板に統合されてもよい。さらに、集積回路は、より少ない集積回路に組み合わせるか、またはより多くの集積回路に割することができる。別の実施形態では、モジュール130および140は、別個の特定用途向け集積回路に組み合わされてもよい。さらなる実施形態では、モジュール130および140に関連する機能の一部は、プロセッサ110によって実行可能であり、非一時的メモリに格納されるファームウェアとして具現化されてもよい。さらなる実施形態では、モジュール130、140は、プロセッサ110のハードウェアコンポーネントとして統合される。
別の実施形態では、説明された方法、および/または、それらの等価物は、コンピュータ実行可能命令で実装されてもよい。したがって、一実施形態では、非一時的なコンピュータ可読媒体は、格納されたコンピュータ実行可能命令とともに構成されている。格納されたコンピュータ実行可能命令は、機械(たとえば、プロセッサ、コンピュータなど)によって実行されると、機械、および/または、関連するコンポーネントに方法を実行させる。
説明を簡単にするために、図に示されている方法論は一連のブロックとして示され説明されているが、いくつかのブロックは異なる順序で実行されることがあり、および/または、図示および説明から他のブロックと同時に実行されることがあり、方法論はブロックの順序によって制限されないことが理解されるべきである。さらに、例示されたブロックのすべてが、例示的な方法論を実装するために使用されてもよい。ブロックは、複数のコポーネントに結合、または、分離されることがある。さらに、追加の、および/または、代替の方法論は、図示されていない追加のブロックを使用することができる。
監視制御システム100は、ひとつ以上のプロセッサ110を含むことができる。ひとつ以上の構成では、プロセッサ110は、監視制御システム100のメインプロセッサであり得る。たとえば、プロセッサ110は、電子制御装置(ECU)であり得る。監視制御システム100は、ひとつ以上のタイプのデータを格納するためのひとつ以上のデータストアを含むことができる。データストアは、揮発性、および/または、不揮発性メモリを含むことができる。適切なデータストアの例には、RAM(ランダムアクセスメモリ)、フラッシュメモリ、ROM(リードオンリーメモリ)、PROM(プログラマブルリードオンリーメモリ)、EPROM(消去可能プログラマブルリードオンリーメモリ)、EEPROM(電気的消去可能プログラマブルリードオンリーメモリ)、レジスタ、磁気ディスク、光ディスク、ハードドライブ、分散メモリ、クラウドベースのメモリ、開示されたデータを格納するのに適した他の記憶媒体、またはそれらの任意の組み合わせが含まれる。データストアは、プロセッサ110のコンポーネントとすることができ、またはデータストアは、使用のためプロセッサ110に動作可能に接続することができる。この説明全体を通して使用される「動作可能に接続された」という用語は、直接的な物理的接触のない接続を含む、直接または間接の接続を含みえる。
この明細書では詳細な実施形態が開示されている。しかしながら、開示された実施形態は、例としてのみ意図されていることが理解されるべきである。したがって、この明細書に開示される特定の構造的および機能的詳細は、限定事項として解釈されるべきではなく単に請求項の基礎として、および、実質的に任意の適切な詳細な構造でこの明細書の態様をさまざまに使用することを当業者に教示するための代表的な基礎としてのみ解釈されるべきである。さらに、この明細書で使用される用語および語句は、限定することを意図するものではなく、可能な実装の理解可能な説明を提供することを意図している。種々の実施形態が図1〜図4に示されているが、実施形態は、図示された構造または用途に限定されない。
図中のフローチャート、および、ブロック図は、様々な実施形態による、システム、方法、および、コンピュータプログラム製品の可能な実装のアーキテクチャ、機能、および、動作を示している。これに関して、フローチャート、または、ブロック図の各ブロックは、指定された論理機能を実装するためのひとつ以上の実行可能な命令を含むコードのモジュール、セグメント、または、部分を表すことができる。また、一部の代替実装では、ブロックに記載されている機能が、図に記載されている順序とは異なる順序で発生する場があることにも注意されるべきである。たとえば、連続して示されたふたつのブロックは、実際には実質的に同時実行されてもよいし、関係する機能に応じて、ブロックが逆の順序で実行されることもある。
上記のシステム、コンポーネント、および/または、プロセスは、ハードウェア、または、ハードウェアとソフトウェアの組み合わせで実現でき、ひとつの処理システムで集中方式によって、または、複数の相互接続された処理システムに異なる要素が分散している分散方式によって実現することができる。この明細書に記載の方法を実行するように適合されたあらゆる種類の処理システム、または、別の装置が適している。ハードウェアとソフトウェアの組み合わせは、コンピュータで使用可能なプログラムコードを備えた処理システムであり、読み込まれて実行されると、ここで説明する方法を実行するように処理システムを制御する。システム、コンポーネント、および/または、処理は、たとえば、機械によって読み取り可能であって、ここに記述された処理、および、方法を実行するために機械によって実行可能な指令のプログラムに実体的に実装された、コンピュータプログラム製品の記憶装置、または、他のデータプログラムの記憶装置として、コンピュータによって読み取り可能な記憶装置に埋め込むことができる。これらの要素は、この明細書に記載の方法の実施を可能にし、処理システムにロードされたときにこれらの方法を実行できるすべての機能を含むアプリケーション製品に組み込むこともできる。
さらに、この明細書で説明された構成は、たとえば記憶されるなどして、実施されるコンピュータ可読プログラムコードを有するひとつ以上のコンピュータ可読媒体に具現化されるコンピュータプログラム製品の形をとることができる。ひとつ以上のコンピュータ可読媒体の任意の組み合わせが利用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であり得る。「コンピュータ可読記憶媒体」という語句は、非一時的な記憶媒体を意味する。コンピュータ可読媒体は、限定されるものではないが、不揮発性媒体および揮発性媒体を含む、形態をとってもよい。不揮発性媒体には、たとえば、光ディスク、磁気ディスクなどが含まれる。揮発性媒体には、たとえば、半導体メモリ、ダイナミックメモリなどが含まれる。そのようなコンピュータ可読媒体の限定的ではない例には、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、および、その他の磁気媒体、または、ASIC、または、グラフィックス処理装置(GPU)、または、CD、および、その他の光学媒体、または、RAM、または、ROM、または、メモリチップ、または、メモリカード、または、メモリスティック、または、他の媒体を含むことができ、これらは、コンピュータ、プロセッ、または、他の電子デバイスが読み取り可能である。この明細書の文脈において、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによって、またはそれに関連して使用するためのプログラムを含むか、または、記憶することができる任意の有形の媒体であり得る。
以下の説明は、この明細書で使用される選択された用語の定義を含んでいる。定義には、用語の範囲に含まれ、さまざまな実装に使用できるコンポーネントのさまざまな例や形式が含まれている。例は、制限することを意図したものではない。用語の単数形と複数形の両方が定義内にある場合がある。
「ひとつの実施形態」、「一実施形態」、「ひとつの例」、「一例」などへの言及は、そのように説明された実施形態、または、例が、特定の特徴、構造、特性、内部特性、要素、または、制限を含み得ることを示すが、それらの実施形態、または、例が、必須のものとして、特定の特徴、構造、特性、内部特性、要素、または、制限を含むことを示すものではない。さらに、「一実施形態では」という語句の繰り返しの使用は、同じ実施形態を指す場合があるが、必ずしもそうであるとは限らない。
この明細書で使用される「モジュール」は、コンピュータ、または、電気ハードウェアコンポーネント、ファームウェア、命令を格納する非遷移的なコンピュータ可読媒体、および/または、これらのコンポーネントの組み合わせを含み、これらは、機能、または、アクションを実行するか、および/または、別のロジック、方法、および/または、システムに、機能、または、アクションを発揮させるように構成されている。モジュールは、アルゴリズムによって制御されるマイクロプロセッサ、多数の電気素子を含む論理回路(たとえば、ASIC)、アナログ回路、デジタル回路、プログラムされた論理デバイス、実行時にアルゴリズムを実行する命令を含むメモリデバイスなどを含むことができる。モジュールは、ひとつ以上の実施形態では、ひとつ以上のCMOSゲート、ゲートの組み合わせ、または他の回路構成要素を含む。複数のモジュールが説明される場合、ひとつ以上の実施形態は、複数のモジュールをひとつの物理モジュール構成要素に組み込むことを含む。同様に、単一のモジュールが説明される場合、ひとつ以上の実施形態は、複数の物理的構成要素に、単一のモジュールを分配することを含む。
さらに、この明細書で使用されるモジュールには、タスクを実行したりデータ型を実装したりするルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。さらなる態様では、メモリは一般に、言及されたモジュールを格納する。モジュールに関連付けられたメモリは、プロセッサ、RAM、ROM、フラッシュメモリ、または、別の適切な電子記憶媒体内に埋め込まれたバッファ、または、キャッシュである場合ある。さらに別の態様では、この開示によって想定されるモジュールは、特定用途向け集積回路(ASIC)、システムオンチップ(SoC)のハードウェアコンポーネント、プログラマブルロジックアレイ(PLA)、グラフィックス処理装置(GPU)、または開示された機能を実行するための定義された構成セット(たとえば、命令)が組み込まれた別の適切なハードウェアコンポーネントとして実装される。
ひとつ以上の構成では、この明細書で説明されるひとつ以上のモジュールは、人工知能要素、または、計算知能要素、たとえば、ニューラルネットワーク、ファジーロジック、または、他の機械学習アルゴリズムを含むことができる。さらに、ひとつ以上の構成では、ひとつ以上のモジュールを、この明細書で説明する複数のモジュール間で分散させることできる。ひとつ以上の構成では、この明細書で説明されているふたつ以上のモジュールを組み合わせて単一のモジュールにすることができる。
コンピュータ可読媒体上で実施されるプログラムコードは、無線、有線、光ファイバ、ケーブル、RFなど、または、前述要素の任意の適切な組み合わせを含むがこれらに限定されない任意の適切な媒体を使用して送信することができる。この構成の態様の動作を実行するためのコンピュータプログラムコードは、Java(登録商標)、Smalltalk、C++などのオブジェクト指向プログラミング言語、および、Cプログラミング言語、同様のプログラミング言語などを含む従来の手続き型プログラミング言語を含むひとつ以上のプログラミング言語の任意の組み合わせで書くことができる。プログラムコードは、完全にユーザのコンピュータにおいて、一部はユーザのコンピュータにおいて、スタンドアロンソフトウェアパッケージとして、一部はユーザのコンピュータにおいて、残る一部はリモートコンピュータにおいて、または、完全にリモートコンピュータ、または、サーバーで実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または接続は、外部コンピュータ(たとえば、インターネットサービスプロバイダを使用してインターネットを介して)に接続されてもよい。
この明細書で使用される要素の数は、ひとつ、または、ふたつ以上として定義される。この明細書で使用される「複数」という用語は、ふたつ、または、ふたつ以上として定義される。この明細書で使用される「別の」という用語は、少なくとも第2、または、それ以上として定義される。この明細書で使用される「含む」、および/または、「有する」という用語は、「備える」を意味し、すなわち、他の要素の存在を許容する用語として定義される。「・・・と・・・との少なくともひとつ」という表現は、関連付けて列挙された項目のひとつ、または、複数のありとあらゆる可能な組み合わせを指し、それらを包含するものとして解釈されるべきである。一例として、「A、B、および、Cのうちの少なくともひとつ」という語句は、Aのみ、Bのみ、Cのみ、またはそれらの任意の組み合わせ(たとえば、AB、AC、BC、または、ABC)を含む。
この明細書の態様は、その精神、または、本質的な属性から逸脱することなく、他の形態で具体化することができる。したがって、この明細書の範囲を示すために、前述の明細書ではなく、以下の特許請求の範囲を参照する必要がある。

Claims (20)

  1. 人工知能(AI)プログラムの実行を管理するための監視制御システムであって、
    ひとつ以上のプロセッサ(110)と、
    ひとつ以上の前記プロセッサに通信可能に結合されたメモリ(120)と、を備え、
    前記メモリは、ウォッチドッグモジュール(140)を格納しており、
    前記ウォッチドッグモジュールは、ひとつ以上の前記プロセッサによって実行されると、ひとつ以上の前記プロセッサに実行させる命令として、
    前記AIプログラムによって生成された少なくとも現在の予測を示す、前記AIプログラムに関連付けられた実行状態を特定するために、前記AIプログラムの実行を監視させる命令と、
    前記実行状態が、不利な動作条件を示す前記AIプログラムの実行に関連する条件を定義するキルスイッチ閾値を満たすときに、前記AIプログラムの実行を停止するように制御バイナリを作動させる命令を含む、監視制御システム。
  2. ひとつ以上の前記プロセッサによって実行されると、ひとつ以上の前記プロセッサに、前記制御バイナリを前記AIプログラムに注入させる命令を含む実行モジュール(130)をさらに備え、
    前記制御バイナリは、前記AIプログラムの実行を中断するために実行される実行可能コードの一部である、請求項1に記載の監視制御システム。
  3. 前記実行モジュールは、前記制御バイナリを注入する命令として、前記制御バイナリを検出から難読化するために、前記AIプログラム内のランダムな位置に前記制御バイナリを挿入すること、および、前記AIプログラムを中断するために、前記制御バイナリを用いて前記AIプログラムのプログラムフローを動的に変更すること、のうちのひとつを実行する命令を含む、請求項2に記載の監視制御システム。
  4. 前記ウォッチドッグモジュールは、前記制御バイナリを作動する命令として、前記AIプログラムの実行を停止させる前記制御バイナリの停止機能を実行する命令と、前記AIプログラムの実行を停止させた状態から関連デバイスを安全に回復させるフェイルオーバ機能を実行する命令を含む、請求項1〜3いずれか1項に記載の監視制御システム。
  5. 前記ウォッチドッグモジュールは、前記AIプログラムの実行を監視する命令として、前記実行状態を特定するために前記AIプログラムの内部状態に関連付けられたメモリロケーションを検査することによって前記AIプログラムを自動的に監視する命令を含み、
    前記現在の予測は、前記AIプログラムがひとつ以上のセンサ入力を処理した結果、前記AIプログラムによって生成される制御出力を含む、請求項1〜3いずれか1項に記載の監視制御システム。
  6. 前記ウォッチドッグモジュールは、前記AIプログラムの実行を監視する命令として、リモートデバイスで前記実行状態を受信し、前記リモートデバイスから前記実行状態を監視して、前記実行状態が前記キルスイッチ閾値を満たすか否かを判断するための命令を含み、
    前記ウォッチドッグモジュールは、前記リモートデバイスから制御信号を送信することによって、前記制御バイナリを作動する命令を含む、請求項1〜3いずれか1項に記載の監視制御システム。
  7. 前記AIプログラムは、機械学習アルゴリズムであり、
    前記キルスイッチ閾値は、標準動作範囲に違反する前記AIプログラムの動作に応じて前記不利な動作条件を定義する、請求項1〜6いずれか1項に記載の監視制御システム。
  8. AIプログラムは車両内に統合されており、前記監視制御システムは前記車両から離れている、請求項1〜7いずれか1項に記載の監視制御システム。
  9. 人工知能(AI)プログラムの実行を管理するための命令を格納する非一時的コンピュータ可読媒体であって、
    ひとつ以上のプロセッサ(110)によって実行されると、ひとつ以上の前記プロセッサに、
    前記AIプログラムによって生成された少なくとも現在の予測を示す、前記AIプログラムに関連付けられた実行状態を特定するために、前記AIプログラムの実行を監視させ、
    前記実行状態が、不利な動作条件を示す前記AIプログラムの実行に関連する条件を定義するキルスイッチ閾値を満たすときに、前記AIプログラムの実行を停止するように制御バイナリを作動させる、非一時的コンピュータ可読媒体。
  10. 前記制御バイナリを前記AIプログラムに注入する命令をさらに含み、
    前記制御バイナリは、前記AIプログラムの実行を中断するために実行される実行可能コードの一部である、請求項9に記載の非一時的コンピュータ可読媒体。
  11. 前記制御バイナリを作動する命令は、前記AIプログラムの実行を停止させる前記制御バイナリの停止機能を実行する命令と、前記AIプログラムの実行を停止させた状態から関連デバイスを安全に回復させるフェイルオーバ機能を実行する命令とを含む、請求項9または請求項10に記載の非一時的コンピュータ可読媒体。
  12. 前記AIプログラムの実行を監視する命令は、前記実行状態を特定するために前記AIプログラムの内部状態に関連付けられたメモリロケーションを検査することによって前記AIプログラムを自動的に監視する命令を含み、
    前記現在の予測は、前記AIプログラムがひとつ以上のセンサ入力を処理した結果、前記AIプログラムによって生成される制御出力を含む、請求項9〜11いずれか1項に記載の非一時的コンピュータ可読媒体。
  13. 前記AIプログラムの実行を監視する命令は、リモートデバイスで前記実行状態を受信し、前記リモートデバイスから前記実行状態を監視して、前記実行状態が前記キルスイッチ閾値を満たすか否かを判断するための命令を含み、
    前記制御バイナリを作動する命令は、前記制御バイナリを実行させるために前記リモートデバイスから制御信号を送信する命令を含む、請求項9〜11いずれか1項に記載の非一時的コンピュータ可読媒体。
  14. 人工知能(AI)プログラムの実行を管理するための方法であって、
    前記AIプログラムによって生成された少なくとも現在の予測を示す、前記AIプログラムに関連付けられた実行状態を特定するために、前記AIプログラムの実行を監視することと、
    前記実行状態が、不利な動作条件を示す前記AIプログラムの実行に関連する条件を定義するキルスイッチ閾値を満たすときに、前記AIプログラムの実行を停止するように制御バイナリを作動することを含む、方法。
  15. 前記制御バイナリを前記AIプログラムに注入することをさらに含み、
    前記制御バイナリは、前記AIプログラムの実行を中断する実行可能コードの一部である、請求項14に記載の方法。
  16. 前記制御バイナリを注入することは、前記制御バイナリを検出から難読化するために、前記AIプログラム内のランダムな位置に前記制御バイナリを挿入すること、および、前記AIプログラムを中断するために、前記制御バイナリを用いて前記AIプログラムのプログラムフローを動的に変更すること、のうちのひとつを含む、請求項15に記載の方法。
  17. 前記制御バイナリを作動することは、前記AIプログラムの実行を停止させる前記制御バイナリの停止機能を実行することと、前記AIプログラムの実行を停止させた状態から関連デバイスを安全に回復させるフェイルオーバ機能を実行することを含む、請求項14〜16いずれか1項に記載の方法。
  18. 前記AIプログラムの実行を監視することは、前記実行状態を特定するために前記AIプログラムの内部状態に関連付けられたメモリロケーションを検査することによって前記AIプログラムを自動的に監視する命令を含み、
    前記現在の予測は、前記AIプログラムがひとつ以上のセンサ入力を処理した結果、前記AIプログラムによって生成される制御出力を含む、請求項14〜16いずれか1項に記載の方法。
  19. 前記AIプログラムの実行を監視することは、リモートデバイスで前記実行状態を受信し、前記リモートデバイスから前記実行状態を監視して、前記実行状態が前記キルスイッチ閾値を満たすか否かを判断することを含み、
    前記制御バイナリを作動することは、前記リモートデバイスから送信された制御信号に応答して行われる、請求項14〜16いずれか1項に記載の方法。
  20. 前記AIプログラムは、機械学習アルゴリズムであり、
    前記キルスイッチ閾値は、標準動作範囲に違反する前記AIプログラムの動作に応じて前記不利な動作条件を定義する、請求項14〜19いずれか1項に記載の方法。
JP2021506001A 2018-10-18 2019-10-18 人工知能プログラムの実行を管理するための監視制御システム、その方法、および非一時的コンピュータ可読媒体 Active JP7136322B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/163,936 US20200125722A1 (en) 2018-10-18 2018-10-18 Systems and methods for preventing runaway execution of artificial intelligence-based programs
US16/163,936 2018-10-18
PCT/JP2019/041070 WO2020080514A1 (en) 2018-10-18 2019-10-18 Systems and methods for preventing runaway execution of artificial intelligence-based programs

Publications (2)

Publication Number Publication Date
JP2021533486A true JP2021533486A (ja) 2021-12-02
JP7136322B2 JP7136322B2 (ja) 2022-09-13

Family

ID=68426774

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021506001A Active JP7136322B2 (ja) 2018-10-18 2019-10-18 人工知能プログラムの実行を管理するための監視制御システム、その方法、および非一時的コンピュータ可読媒体

Country Status (3)

Country Link
US (1) US20200125722A1 (ja)
JP (1) JP7136322B2 (ja)
WO (1) WO2020080514A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188436B2 (en) * 2018-10-30 2021-11-30 Accenture Global Solutions Limited Monitoring an artificial intelligence (AI) based process
US12052286B2 (en) * 2019-02-05 2024-07-30 Sennco Solutions, Inc. Integrated security monitoring via watchdog trigger locking
CN113112023B (zh) * 2021-06-15 2021-08-31 苏州浪潮智能科技有限公司 AIStation推理平台的推理服务管理方法和装置
CN113467527B (zh) * 2021-06-28 2023-03-24 华润电力湖南有限公司 执行机构联动方法、装置、dcs系统及存储介质
CN115843020A (zh) * 2021-09-14 2023-03-24 中国移动通信有限公司研究院 一种信息传输方法、装置、设备及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180275657A1 (en) * 2017-03-27 2018-09-27 Hyundai Motor Company Deep learning-based autonomous vehicle control device, system including the same, and method thereof

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8677482B2 (en) * 2009-03-12 2014-03-18 Broadcom Corporation Hardware security for software processes
US9178905B1 (en) * 2014-01-03 2015-11-03 Juniper Networks, Inc. Enabling custom countermeasures from a security device
JP2019034575A (ja) * 2017-08-10 2019-03-07 オムロン株式会社 運転者状態把握装置、運転者状態把握システム、及び運転者状態把握方法
US10606678B2 (en) * 2017-11-17 2020-03-31 Tesla, Inc. System and method for handling errors in a vehicle neural network processor
JP6849643B2 (ja) * 2018-11-09 2021-03-24 ファナック株式会社 出力装置、制御装置、及び評価関数と機械学習結果の出力方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180275657A1 (en) * 2017-03-27 2018-09-27 Hyundai Motor Company Deep learning-based autonomous vehicle control device, system including the same, and method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RESCHKA, ANDREAS ET AL.: ""A surveillance and safety system based on performance criteria and functional degradation for an au", 2012 15TH INTERNATIONAL IEEE CONFERENCE ON INTELIGENT TRANSPORTATION SYSTEMS, JPN6022006818, 2012, pages 237 - 242, XP032264014, ISSN: 0004711756, DOI: 10.1109/ITSC.2012.6338682 *

Also Published As

Publication number Publication date
WO2020080514A1 (en) 2020-04-23
US20200125722A1 (en) 2020-04-23
JP7136322B2 (ja) 2022-09-13

Similar Documents

Publication Publication Date Title
JP7136322B2 (ja) 人工知能プログラムの実行を管理するための監視制御システム、その方法、および非一時的コンピュータ可読媒体
US11829896B2 (en) Uncertainty-based data filtering in a vehicle
JP7240071B2 (ja) 無人航空機のサイバー攻撃検出、位置特定、および中和
CN107924323B (zh) 基于依赖的容器部署
US11797322B2 (en) Cloud native virtual machine runtime protection
JP7047969B2 (ja) 障害保護のための並列実行および関連プロセスの比較のためのシステムおよび方法
US20240242098A1 (en) Systems and Methods for Ensuring Safe, Norm-Conforming and Ethical Behavior of Intelligent Systems
JP2021535477A (ja) フォールトツリー分析を使用して機能安全のため制御フローグラフを最適化するシステム及び方法
JP7218793B2 (ja) プログラムの機能を向上するための制御フローシステム、非一時的可読媒体、および方法
US11176007B2 (en) Redundant processing fabric for autonomous vehicles
CN105164642B (zh) 对合同的操作系统支持
EP4250120B1 (en) Automatic display unit backup during failures of one more display units through the utilization of graphic user interface objects defined for control transfer and reversion after resolution of the failures
US9971634B2 (en) Detection of resource contention on computerized systems using co-located computer processes such as virtual machines
US11893412B2 (en) Device initialization by an access-restricted virtual machine
US11520617B2 (en) Modifying access privileges to secure resources in an autonomous vehicle
US11663337B2 (en) Methods and systems for system call reduction
US10089214B1 (en) Automated detection of faults in target software and target software recovery from some faults during continuing execution of target software
JP2024507532A (ja) プログラムコード欠陥及び使用の許容可能性の判定のためのシステム及び方法
Schmerl et al. Challenges in composing and decomposing assurances for self-adaptive systems
Dreany et al. A cognitive architecture safety design for safety critical systems
US20200326967A1 (en) Operating system modality switching in an autonomous vehicle
US20230161566A1 (en) Method and system for generating engineering designs in an engineering system
Vassev Modeling Self-adaptation-A Possible Endeavour?

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220408

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220815

R151 Written notification of patent or utility model registration

Ref document number: 7136322

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151