(57)【要約】      （修正有）【課題】自律走行車両がハッカーの脅威から安全に走行し得るようにする、少なくとも一つのテストパターンを利用してコンボリューションニューラルネットワーク（ＣＮＮ）の一つ以上のパラメータの無欠性を検証するための一つ以上のテストパターンを生成する方法を提供する。【解決手段】方法は、テストパターンが少なくとも一つのオリジナルＣＮＮに入力された後、コンボリューション演算が適用される過程でサチュレーション（ｓａｔｕｒａｔｉｏｎ）が起きないように、所定の関数を利用してテストパターンを生成させ、それぞれのテストパターン及びオリジナルＣＮＮの一つ以上のパラメータを参照して、それぞれのテストパターンの評価点数それぞれを生成させ、各評価点数を参照して、テストパターンの中から最適化テストパターンを選択させる。【選択図】図３
2020119557.tif 000002
【特許請求の範囲】
【請求項１】
一つ以上のコンボリューション演算の無欠性を検証するために一つ以上のテストパターンを生成し、前記テストパターンの中から一つ以上の最適化テストパターンを選択する方法において、
（ａ）コンピューティング装置が、少なくとも一つのパターン生成ユニットをもって、所定の関数を利用して前記テストパターンを生成させ、前記テストパターンが少なくとも一つのオリジナルＣＮＮに入力された後、前記コンボリューション演算が適用される過程でサチュレーション（ｓａｔｕｒａｔｉｏｎ）が起きないように前記テストパターンを生成させる段階；
（ｂ）前記コンピューティング装置が、少なくとも一つのパターン評価ユニットをもって、それぞれの前記テストパターン及び前記オリジナルＣＮＮの一つ以上のパラメータを参照して、それぞれの前記テストパターンの評価点数それぞれを生成させる段階；及び、
（ｃ）前記コンピューティング装置が、少なくとも一つのパターン選択ユニットをもって、前記各評価点数を参照して、前記テストパターンの中から前記最適化テストパターンを選択させる段階；
を含むことを特徴とする方法。
【請求項２】
（ｄ）前記コンピューティング装置が、少なくとも一つの無欠性検証モジュールをもって、前記最適化テストパターンのうちで少なくとも一つの特定の最適化テストパターン及び少なくとも一つのオリジナル入力を統合することにより、少なくとも一つの拡張入力を生成させ、前記オリジナルＣＮＮが前記拡張入力を使用して少なくとも一つの検証出力を生成する場合、前記コンピューティング装置が、前記無欠性検証モジュールをもって、前記検証出力を参照して前記オリジナルＣＮＮの無欠性を検証させる段階；
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記（ａ）段階は、
前記コンピューティング装置が、前記パターン生成ユニットをもって、（ｉ）前記所定の関数を利用して一つ以上の予備テストパターンを生成させ、（ｉｉ）前記予備テストパターンを前記オリジナルＣＮＮに入力して、それぞれの前記予備テストパターンを第１類型及び第２類型（前記第１類型は、前記オリジナルＣＮＮが前記コンボリューション演算を適用する際に前記サチュレーションされた前記予備テストパターンの第１部分を示し、前記第２類型は、前記オリジナルＣＮＮが前記コンボリューション演算を適用する際に前記サチュレーションされていない前記予備テストパターンの第２部分を示す）に分類し、（ｉｉｉ）前記第２部分の前記予備テストパターン及び一つ以上の調整された予備テストパターンを含む前記テストパターンを生成させ、前記調整された予備テストパターンは、前記オリジナルＣＮＮが前記コンボリューション演算を前記調整された予備テストパターンに適用する間、前記サチュレーションが発生しないように前記第１部分の前記予備テストパターンに含まれた少なくとも一部の値を調整して生成させることを特徴とする請求項１に記載の方法。
【請求項４】
前記オリジナルＣＮＮが前記予備テストパターンのうち特定の予備テストパターンに前記コンボリューション演算を適用する間、前記コンピューティング装置が、前記パターン生成ユニットをもって、少なくとも一つの（ｉ）前記特定の予備テストパターンに含まれた各特定値に対する一つ以上の重み付け値演算の少なくとも一つの結果値が、前記特定値が演算される前に前記重み付け値演算が適用された一つ以上の値に対する一つ以上の以前の結果値と合算される場合ごとの時点、及び（ｉｉ）一つ以上のバイアス演算が前記重み付け値演算のすべての結果値の総和に適用される場合ごとの時点で、前記サチュレーションが起きたか否かに関する情報を参照して、前記特定の予備テストパターンが前記第１類型または前記第２類型に属するかを決定することを特徴とする請求項３に記載の方法。
【請求項５】
前記（ｂ）段階は、
（ｂ１）前記コンピューティング装置が、前記パターン評価ユニットをもって、前記各テストパターンのうちで特定のテストパターンに含まれたそれぞれのビットを変調した一つ以上の結果である一つ以上の特定の変調テストパターンを生成させる段階；
（ｂ２）前記コンピューティング装置が、前記コンボリューション演算が前記オリジナルＣＮＮによって前記特定の変調テストパターン及び前記特定のテストパターンに適用される場合、前記パターン評価ユニットをもって、前記特定の変調テストパターンに対する前記コンボリューション演算のそれぞれの結果が前記特定のテストパターンに対する前記コンボリューション演算の少なくとも一つの結果と同一の頻度数を計算することにより、前記特定のテストパターンの少なくとも一つの特定の評価点数を生成させる段階；
を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記（ｂ）段階は、
前記コンピューティング装置が、前記パターン評価ユニットをもって、（ｉ）前記テストパターンのうちで特定のテストパターンに対するオリジナルＣＮＮによって適用された一つ以上の重み付け値演算の結果と、前記特定のテストパターンのそれぞれのビットを変調して生成された特定の変調テストパターンに対する前記重み付け値演算の結果との間の差異値を計算させ、（ｉｉ）それぞれの前記差異値が、前記特定の変調テストパターンに対する前記コンボリューション演算の結果が前記特定のテストパターンに対する前記コンボリューション演算の結果と異ならない、それぞれに対応する特定の範囲に含まれているかを決定させ、（ｉｉｉ）前記差異値が対応する特定の範囲に含まれているそれぞれの前記差異値の頻度数を計算することにより、前記特定のテストパターンの特定の評価点数を生成させることを特徴とする請求項１に記載の方法。
【請求項７】
前記（ｂ）段階は、
前記特定のテストパターンのビットのうちで特定のビットが変調されると、前記コンピューティング装置が、前記パターン評価ユニットをもって、特定の差異値に対する部分集合の割合を参照して前記特定の評価点数に含まれた、前記特定のビットに対応する少なくとも一つの特定の細部評価点数を決定し、前記特定の差異値はそれぞれの出力チャンネルから出力された前記特定のビットに対応し、前記部分集合が対応する特定の範囲に含まれている場合には、前記部分集合は前記特定の差異値の中から選択されるようにすることを特徴とする請求項６に記載の方法。
【請求項８】
前記（ｂ）段階は、
（ｂ１）前記コンピューティング装置が、前記パターン評価ユニットをもって、前記オリジナルＣＮＮの前記パラメータに含まれたそれぞれのビットを変調した一つ以上の結果である一つ以上の変調ＣＮＮを生成させる段階；
（ｂ２）前記コンピューティング装置が、前記変調ＣＮＮが一つ以上の変調コンボリューション演算を前記テストパターンのうちで特定のテストパターンに適用し、前記オリジナルＣＮＮが前記コンボリューション演算を前記特定のテストパターンに適用すると、前記パターン評価ユニットをもって、前記特定のテストパターンに対する前記変調ＣＮＮのそれぞれによって適用される前記変調コンボリューション演算の各結果が前記特定のテストパターンに対する前記コンボリューション演算の結果と同一である頻度を計算することによって、前記特定のテストパターンの特定の評価点数を生成させる段階；
を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記（ｂ）段階は、
前記コンピューティング装置が、前記パターン評価ユニットをもって、（ｉ）前記オリジナルＣＮＮにより前記テストパターンのうちで特定のテストパターンに適用された一つ以上の重み付け値演算の結果と、前記オリジナルＣＮＮのパラメータに含まれたそれぞれのビットを変調することにより生成された一つ以上の変調ＣＮＮにより前記特定のテストパターンに適用された一つ以上の変調重み付け値演算の結果との間の値の差異値を計算させ、前記差異値それぞれは前記オリジナルＣＮＮの前記パラメータに含まれたそれぞれのビットに対応し、（ｉｉ）それぞれの前記差異値が、前記変調重み付け値演算の結果が前記特定のテストパターンに対する前記コンボリューション演算の結果に影響を及ぼさない、それぞれに対応する特定の範囲に含まれているかを決定させ、（ｉｉｉ）それぞれの差異値が、これに対応する特定の範囲に含まれている頻度数を計算することにより、前記特定のテストパターンの特定の評価点数を生成させることを特徴とする請求項１に記載の方法。
【請求項１０】
前記（ｂ）段階は、
前記オリジナルＣＮＮの前記パラメータのうちで特定のコンボリューションパラメータに含まれた少なくとも一つの特定のビットを変調して変調ＣＮＮが生成されると、前記コンピューティング装置が、前記パターン評価ユニットをもって、前記オリジナルＣＮＮにより前記特定のテストパターンに適用された前記重み付け値演算の結果及び前記変調ＣＮＮにより前記特定のテストパターンに対する前記変調重み付け値演算の結果の間の特定の差異値に対する部分集合（前記特定の差異値は前記特定のビットに対応し、前記部分集合がこれに対応する特定の範囲に含まれている場合、前記部分集合は前記特定の差異値の中から選択される）の割合を参照して、前記特定の評価点数に含まれた前記特定のビットに対応する特定の細部評価点数を決定することを特徴とする請求項９に記載の方法。
【請求項１１】
前記（ａ）段階は、
前記所定の関数は少なくとも一つの乱数生成器の関数であり、前記コンピューティング装置は、前記パターン生成ユニットをもって、前記乱数生成器の前記関数で生成された一つ以上の乱数を利用して前記各テストパターンを生成させることを特徴とする請求項１に記載の方法。
【請求項１２】
前記（ａ）段階は、
前記サチュレーションは、前記テストパターンに対する前記コンボリューション演算に含まれた一つ以上の細部演算過程の一つ以上の細部結果値のうち少なくとも一部の絶対値がこれに対応する閾値より大きい場合であり、前記細部結果値それぞれに対応するそれぞれの前記閾値は、前記それぞれの細部結果値に割り当てられたビット数で表現され得る最大絶対値であることを特徴とする請求項１に記載の方法。
【請求項１３】
前記（ｂ）段階は、
前記コンピューティング装置が、前記パターン評価ユニットをもって、変調された少なくとも一つの特定の単一ビットに対する前記コンボリューション演算の結果を参照して、前記テストパターンのうちで特定のテストパターンの特定の評価点数を生成させ、前記特定の単一ビットは、前記特定のテストパターンに含まれたビットと前記オリジナルＣＮＮの前記パラメータに含まれたビットとの中から、均一な確率分布によって選択されることを特徴とする請求項１に記載の方法。
【請求項１４】
一つ以上のコンボリューション演算の無欠性を検証するために一つ以上のテストパターンを生成し、前記テストパターンの中から一つ以上の最適化テストパターンを選択する装置において、
各インストラクションを格納する少なくとも一つのメモリと、
（Ｉ）少なくとも一つのパターン生成ユニットをもって、所定の関数を利用して前記テストパターンを生成させ、前記テストパターンが少なくとも一つのオリジナルＣＮＮに入力された後、前記コンボリューション演算が適用される過程でサチュレーション（ｓａｔｕｒａｔｉｏｎ）が起きないように前記テストパターンを生成させるプロセス；（ＩＩ）少なくとも一つのパターン評価ユニットをもって、それぞれの前記テストパターン及び前記オリジナルＣＮＮの一つ以上のパラメータを参照して、それぞれの前記テストパターンの評価点数それぞれを生成させるプロセス；及び（ＩＩＩ）少なくとも一つのパターン選択ユニットをもって、前記各評価点数を参照して、前記テストパターンの中から前記最適化テストパターンを選択させるプロセス；を遂行するための前記各インストラクションを実行するように構成された少なくとも一つのプロセッサと、
を含むことを特徴とするコンピューティング装置。
【請求項１５】
（ＩＶ）前記プロセッサが、少なくとも一つの無欠性検証モジュールをもって、前記最適化テストパターンのうちで少なくとも一つの特定の最適化テストパターン及び少なくとも一つのオリジナル入力を統合することにより、少なくとも一つの拡張入力を生成させ、前記オリジナルＣＮＮが前記拡張入力を使用して少なくとも一つの検証出力を生成する場合、前記プロセスが、前記無欠性検証モジュールをもって、前記検証出力を参照して前記オリジナルＣＮＮの無欠性を検証させるプロセス；
をさらに遂行することを特徴とする請求項１４に記載のコンピューティング装置。
【請求項１６】
前記（Ｉ）プロセスは、
前記プロセッサが、前記パターン生成ユニットをもって、（ｉ）前記所定の関数を利用して一つ以上の予備テストパターンを生成させ、（ｉｉ）前記予備テストパターンを前記オリジナルＣＮＮに入力して、それぞれの前記予備テストパターンを第１類型及び第２類型（前記第１類型は、前記オリジナルＣＮＮが前記コンボリューション演算を適用する際に前記サチュレーションされた前記予備テストパターンの第１部分を示し、前記第２類型は、前記オリジナルＣＮＮが前記コンボリューション演算を適用する際に前記サチュレーションされていない前記予備テストパターンの第２部分を示す）に分類し、（ｉｉｉ）前記第２部分の前記予備テストパターン及び一つ以上の調整された予備テストパターンを含む前記テストパターンを生成させ、前記調整された予備テストパターンは、前記オリジナルＣＮＮが前記コンボリューション演算を前記調整された予備テストパターンに適用する間、前記サチュレーションが発生しないように前記第１部分の前記予備テストパターンに含まれた少なくとも一部の値を調整して生成させることを特徴とする請求項１４に記載のコンピューティング装置。
【請求項１７】
前記オリジナルＣＮＮが前記予備テストパターンのうち特定の予備テストパターンに前記コンボリューション演算を適用する間、前記プロセスが前記パターン生成ユニットをもって、少なくとも一つの（ｉ）前記特定の予備テストパターンに含まれた各特定値に対する一つ以上の重み付け値演算の少なくとも一つの結果値が、前記特定値が演算される前に前記重み付け値演算が適用された一つ以上の値に対する一つ以上の以前の結果値と合算される場合ごとの時点、及び（ｉｉ）一つ以上のバイアス演算が前記重み付け値演算のすべての結果値の総和に適用される場合ごとの時点で、前記サチュレーションが起きたか否かに関する情報を参照して、前記特定の予備テストパターンが前記第１類型または前記第２類型に属するかを決定することを特徴とする請求項１６に記載のコンピューティング装置。
【請求項１８】
前記（ＩＩ）プロセスは、
（ＩＩー１）前記プロセッサが、前記パターン評価ユニットをもって、前記各テストパターンのうちで特定のテストパターンに含まれたそれぞれのビットを変調した一つ以上の結果である一つ以上の特定の変調テストパターンを生成するプロセス；
（ＩＩー２）前記プロセッサが、前記コンボリューション演算が前記オリジナルＣＮＮによって前記特定の変調テストパターン及び前記特定のテストパターンに適用される場合、前記パターン評価ユニットをもって、前記特定の変調テストパターンに対する前記コンボリューション演算のそれぞれの結果が前記特定のテストパターンに対する前記コンボリューション演算の少なくとも一つの結果と同一の頻度数を計算することにより、前記特定のテストパターンの少なくとも一つの特定の評価点数を生成させるプロセス；
を遂行することを特徴とする請求項１４に記載のコンピューティング装置。
【請求項１９】
前記（ＩＩ）プロセスは、
前記プロセッサが、前記パターン評価ユニットをもって、（ｉ）前記テストパターンのうちで特定のテストパターンに対するオリジナルＣＮＮにより適用された一つ以上の重み付け値演算の結果と、前記特定のテストパターンのそれぞれのビットを変調して生成された特定の変調テストパターンに対する前記重み付け値演算の結果との間の差異値を計算させ、（ｉｉ）それぞれの前記差異値が、前記特定の変調テストパターンに対する前記コンボリューション演算の結果が前記特定のテストパターンに対する前記コンボリューション演算の結果と異ならない、それぞれに対応する特定の範囲に含まれているかを決定させ、（ｉｉｉ）前記差異値が対応する特定の範囲に含まれているそれぞれの前記差異値の頻度数を計算することにより、前記特定のテストパターンの特定の評価点数を生成させることを特徴とする請求項１４に記載のコンピューティング装置。
【請求項２０】
前記（ＩＩ）プロセスは、
前記特定のテストパターンのビットのうちで特定のビットが変調されると、前記プロセッサが、前記パターン評価ユニットをもって、特定の差異値に対する部分集合の割合を参照して前記特定の評価点数に含まれた、前記特定のビットに対応する少なくとも一つの特定の細部評価点数を決定し、前記特定の差異値はそれぞれの出力チャンネルから出力された前記特定のビットに対応し、前記部分集合が対応する特定の範囲に含まれている場合には、前記部分集合は前記特定の差異値の中から選択されるようにすることを特徴とする請求項１９に記載のコンピューティング装置。
【請求項２１】
前記（ＩＩ）プロセスは、
（ＩＩー１）前記プロセッサが、前記パターン評価ユニットをもって、前記オリジナルＣＮＮの前記パラメータに含まれたそれぞれのビットを変調した一つ以上の結果である一つ以上の変調ＣＮＮを生成させるプロセス；
（ＩＩー２）前記プロセッサが、前記変調ＣＮＮが一つ以上の変調コンボリューション演算を前記テストパターンのうちで特定のテストパターンに適用し、前記オリジナルＣＮＮが前記コンボリューション演算を前記特定のテストパターンに適用すると、前記パターン評価ユニットをもって、前記特定のテストパターンに対する前記変調ＣＮＮのそれぞれによって適用される前記変調コンボリューション演算の各結果が前記特定のテストパターンに対する前記コンボリューション演算の結果と同一である頻度を計算することによって、前記特定のテストパターンの特定の評価点数を生成させるプロセス；
を遂行することを特徴とする請求項１４に記載のコンピューティング装置。
【請求項２２】
前記（ＩＩ）プロセスは、
前記プロセッサが、前記パターン評価ユニットをもって、（ｉ）前記オリジナルＣＮＮにより前記テストパターンのうちで特定のテストパターンに適用された一つ以上の重み付け値演算の結果と、前記オリジナルＣＮＮのパラメータに含まれたそれぞれのビットを変調することにより生成された一つ以上の変調ＣＮＮにより前記特定のテストパターンに適用された一つ以上の変調重み付け値演算の結果との間の値の差異値を計算させ、前記差異値それぞれは前記オリジナルＣＮＮの前記パラメータに含まれたそれぞれのビットに対応し、（ｉｉ）それぞれの前記差異値が、前記変調重み付け値演算の結果が前記特定のテストパターンに対する前記コンボリューション演算の結果に影響を及ぼさない、それぞれに対応する特定の範囲に含まれているかを決定させ、（ｉｉｉ）それぞれの差異値が、これに対応する特定の範囲に含まれている頻度数を計算することにより、前記特定のテストパターンの特定の評価点数を生成させることを特徴とする請求項１４に記載のコンピューティング装置。
【請求項２３】
前記（ＩＩ）プロセスは、
前記オリジナルＣＮＮの前記パラメータのうちで特定のコンボリューションパラメータに含まれた少なくとも一つの特定のビットを変調して変調ＣＮＮが生成されると、前記プロセッサが、前記パターン評価ユニットをもって、前記オリジナルＣＮＮにより前記特定のテストパターンに適用された前記重み付け値演算の結果と、前記変調ＣＮＮにより前記特定のテストパターンに対する前記変調重み付け値演算の結果との間の特定の差異値に対する部分集合（前記特定の差異値は前記特定のビットに対応し、前記部分集合がこれに対応する特定の範囲に含まれている場合、前記部分集合は前記特定の差異値の中から選択される）の割合を参照して、前記特定の評価点数に含まれた前記特定のビットに対応する特定の細部評価点数を決定することを特徴とする請求項２２に記載のコンピューティング装置。
【請求項２４】
前記（Ｉ）プロセスは、
前記所定の関数は少なくとも一つの乱数生成器の関数であり、前記プロセッサが、前記パターン生成ユニットをもって、前記乱数生成器の前記関数で生成された一つ以上の乱数を利用して前記各テストパターンを生成させることを特徴とする請求項１４に記載のコンピューティング装置。
【請求項２５】
前記（Ｉ）プロセスは、
前記サチュレーションは、前記テストパターンに対する前記コンボリューション演算に含まれた一つ以上の細部演算過程の一つ以上の細部結果値のうち少なくとも一部の絶対値がこれに対応する閾値より大きい場合であり、前記細部結果値それぞれに対応するそれぞれの前記閾値は、前記それぞれの細部結果値に割り当てられたビット数で表現され得る最大絶対値であることを特徴とする請求項１４に記載のコンピューティング装置。
【請求項２６】
前記（ＩＩ）プロセスは、
前記プロセッサが、前記パターン評価ユニットをもって、変調された少なくとも一つの特定の単一ビットに対する前記コンボリューション演算の結果を参照して、前記テストパターンのうちで特定のテストパターンの特定の評価点数を生成させ、前記特定の単一ビットは、前記特定のテストパターンに含まれたビットと前記オリジナルＣＮＮの前記パラメータに含まれたビットのうちから、均一な確率分布によって選択されることを特徴とする請求項１４に記載のコンピューティング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンボリューション演算の無欠性を検証するためにテストパターンを生成し、前記テストパターンの中から最適化テストパターンを選択する方法及び装置に関する。より詳しくは、一つ以上のコンボリューション演算の無欠性を検証するために一つ以上のテストパターンを生成し、前記テストパターンの中から一つ以上の最適化テストパターンを選択する方法において、（ａ）コンピューティング装置が、少なくとも一つのパターン生成ユニットをもって、所定の関数を利用して前記テストパターンを生成させ、前記テストパターンが少なくとも一つのオリジナルＣＮＮに入力された後、前記コンボリューション演算が適用される過程でサチュレーション（ｓａｔｕｒａｔｉｏｎ）が起きないように前記テストパターンを生成させる段階；（ｂ）前記コンピューティング装置が、少なくとも一つのパターン評価ユニットをもって、それぞれの前記テストパターン及び前記オリジナルＣＮＮの一つ以上のパラメータを参照して、それぞれの前記テストパターンの評価点数それぞれを生成させる段階；及び（ｃ）前記コンピューティング装置が、少なくとも一つのパターン選択ユニットをもって、前記各評価点数を参照して、前記テストパターンの中から前記最適化テストパターンを選択させる段階；を含むことを特徴とする方法及び装置に関する。
【背景技術】
【０００２】
ディープコンボリューションニューラルネットワーク（Ｄｅｅｐ  Ｃｏｎｖｏｌｕｔｉｏｎ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ；Ｄｅｅｐ  ＣＮＮ）は、ディープラーニング分野で起きた驚くべき発展の核心である。ＣＮＮは、文字の認識問題を解決するために９０年代にも使用されていたが、近年になって初めて機械学習（Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ）分野で広く使用されるようになった。例えば、ＣＮＮは、２０１２年にイメージ認識コンテスト（ＩｍａｇｅＮｅｔ  Ｌａｒｇｅ  Ｓｃａｌｅ  Ｖｉｓｕａｌ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｃｈａｌｌｅｎｇｅ）で他の競争相手に勝って優勝を収めた。その後、ＣＮＮは、機械学習分野で非常に有用なツールとして使用されるようになった。
【０００３】
ＣＮＮは時として自動車の自律走行分野で使用されているが、これは主に自動車に取り付けられたカメラを通じて取得されたイメージを分析することで障害物を検出し、自由空間を検出するなどの機能を遂行して安全に車両が走行し得るようにする。
【０００４】
十分な学習過程を経て学習した自律走行用ＣＮＮを実際に自律走行に投入する場合、非常に重要に考えるべきことは自律走行用ＣＮＮのセキュリティである。自律走行車両は速い速度で動き、大きな質量を有するだけに、誤って走行した場合の危険性が高いからである。具体的に、もし悪意を持ったハッカーが自主走行用ＣＮＮをハッキングして自律走行用ＣＮＮに含まれたパラメータを変調すれば、自律走行用車両を意図的にテロに利用したり自律走行車両に搭乗した人を攻撃することができるからである。
【０００５】
したがって、テスト過程でＣＮＮのパラメータが、ＣＮＮが最初の学習を完了したときと同じパラメータを保持しているかを検証する方法が必要であるが、これまでの研究は自律走行用ＣＮＮが車両をいかにうまく動かすことができるかについて主に焦点が当てられていたのであり、このようにセキュリティを維持する方法についてはあまり研究されていないのが現実である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、上述した問題点を解決することを目的とする。
【０００７】
本発明は、少なくとも一つのテストパターンを利用してコンボリューションニューラルネットワーク（ＣＮＮ）の一つ以上のパラメータの無欠性を検証するための一つ以上のテストパターンを生成する方法を提供することにより、自律走行車両がハッカーの脅威から安全に走行し得るようにする。
【０００８】
本発明は、テストパターンに対する評価方法を提供することにより、最適化されたテストパターンを選択することができるようにして、コンボリューションパラメータの無欠性の検証方法がうまく遂行され得るようにする。
【課題を解決するための手段】
【０００９】
前記のような本発明の目的を達成し、後述する本発明の特徴的な効果を実現するための本発明の特徴的な構成は以下の通りである。
【００１０】
本発明の一態様によると、一つ以上のコンボリューション演算の無欠性を検証するために一つ以上のテストパターンを生成し、前記テストパターンの中から一つ以上の最適化テストパターンを選択する方法において、（ａ）コンピューティング装置が、少なくとも一つのパターン生成ユニットをもって、所定の関数を利用して前記テストパターンを生成させ、前記テストパターンが少なくとも一つのオリジナルＣＮＮに入力された後、前記コンボリューション演算が適用される過程でサチュレーション（ｓａｔｕｒａｔｉｏｎ）が起きないように前記テストパターンを生成させる段階；（ｂ）前記コンピューティング装置が、少なくとも一つのパターン評価ユニットをもって、それぞれの前記テストパターン及び前記オリジナルＣＮＮの一つ以上のパラメータを参照して、それぞれの前記テストパターンの評価点数それぞれを生成させる段階；及び（ｃ）前記コンピューティング装置が、少なくとも一つのパターン選択ユニットをもって、前記各評価点数を参照して、前記テストパターンの中から前記最適化テストパターンを選択させる段階；を含むことを特徴とする方法が提供される。
【００１１】
一実施例において、（ｄ）前記コンピューティング装置が、少なくとも一つの無欠性検証モジュールをもって、前記最適化テストパターンのうちで少なくとも一つの特定の最適化テストパターン及び少なくとも一つのオリジナル入力を統合することにより少なくとも一つの拡張入力を生成させ、前記オリジナルＣＮＮが前記拡張入力を使用して少なくとも一つの検証出力を生成する場合、前記コンピューティング装置が、前記無欠性検証モジュールをもって、前記検証出力を参照して前記オリジナルＣＮＮの無欠性を検証させる段階；をさらに含むことを特徴とする方法が提供される。
【００１２】
一実施例において、前記（ａ）段階は、前記コンピューティング装置が、前記パターン生成ユニットをもって、（ｉ）前記所定の関数を利用して一つ以上の予備テストパターンを生成させ、（ｉｉ）前記予備テストパターンを前記オリジナルＣＮＮに入力して、それぞれの前記予備テストパターンを第１類型及び第２類型（前記第１類型は、前記オリジナルＣＮＮが前記コンボリューション演算を適用する際に前記サチュレーションされた前記予備テストパターンの第１部分を示し、前記第２類型は、前記オリジナルＣＮＮが前記コンボリューション演算を適用する際に前記サチュレーションされていない前記予備テストパターンの第２部分を示す）に分類し、（ｉｉｉ）前記第２部分の前記予備テストパターン及び一つ以上の調整された予備テストパターンを含む前記テストパターンを生成させ、前記調整された予備テストパターンは、前記オリジナルＣＮＮが前記コンボリューション演算を前記調整された予備テストパターンに適用する間、前記サチュレーションが発生しないように前記第１部分の前記予備テストパターンに含まれた少なくとも一部の値を調整して生成させることを特徴とする方法が提供される。
【００１３】
一実施例において、前記オリジナルＣＮＮが前記予備テストパターンのうち特定の予備テストパターンに前記コンボリューション演算を適用する間、前記コンピューティング装置が、前記パターン生成ユニットをもって、少なくとも一つの（ｉ）前記特定の予備テストパターンに含まれた各特定値に対する一つ以上の重み付け値演算の少なくとも一つの結果値が、前記特定値が演算される前に前記重み付け値演算が適用された一つ以上の値に対する一つ以上の以前の結果値と合算される場合ごとの時点、及び（ｉｉ）一つ以上のバイアス演算が前記重み付け値演算のすべての結果値の総和に適用される場合ごとの時点で、前記サチュレーションが起きたか否かに関する情報を参照して、前記特定の予備テストパターンが前記第１類型または前記第２類型に属するかを決定することを特徴とする方法が提供される。
【００１４】
一実施例において、前記（ｂ）段階は、（ｂ１）前記コンピューティング装置が、前記パターン評価ユニットをもって、前記各テストパターンのうちで特定のテストパターンに含まれたそれぞれのビットを変調した一つ以上の結果である一つ以上の特定の変調テストパターンを生成させる段階；（ｂ２）前記コンピューティング装置が、前記コンボリューション演算が前記オリジナルＣＮＮによって前記特定の変調テストパターン及び前記特定のテストパターンに適用される場合、前記パターン評価ユニットをもって、前記特定の変調テストパターンに対する前記コンボリューション演算のそれぞれの結果が前記特定のテストパターンに対する前記コンボリューション演算の少なくとも一つの結果と同一の頻度数を計算することにより、前記特定のテストパターンの少なくとも一つの特定の評価点数を生成させる段階；を含むことを特徴とする方法が提供される。
【００１５】
一実施例において、前記（ｂ）段階は、前記コンピューティング装置が、前記パターン評価ユニットをもって、（ｉ）前記テストパターンのうちで特定のテストパターンに対するオリジナルＣＮＮによって適用された一つ以上の重み付け値演算の結果と、前記特定のテストパターンのそれぞれのビットを変調して生成された特定の変調テストパターンに対する前記重み付け値演算の結果との間の差異値を計算させ、（ｉｉ）それぞれの前記差異値が、前記特定の変調テストパターンに対する前記コンボリューション演算の結果が前記特定のテストパターンに対する演算の結果が前記特定のテストパターンに対する前記コンボリューション演算の結果と異ならない、それぞれに対応する特定の範囲に含まれているかを決定させ、（ｉｉｉ）前記差異値が対応する特定の範囲に含まれているそれぞれの前記差異値の頻度数を計算することにより、前記特定のテストパターンの特定の評価点数を生成させることを特徴とする方法が提供される。
【００１６】
一実施例において、前記（ｂ）段階は、前記特定のテストパターンのビットのうちで特定のビットが変調されると、前記コンピューティング装置が、前記パターン評価ユニットをもって、特定の差異値に対する部分集合の割合を参照して前記特定の評価点数に含まれた、前記特定のビットに対応する少なくとも一つの特定の細部評価点数を決定し、前記特定の差異値はそれぞれの出力チャンネルから出力された前記特定のビットに対応し、前記部分集合が対応する特定の範囲に含まれている場合には、前記部分集合は前記特定の差異値の中から選択されるようにすることを特徴とする方法が提供される。
【００１７】
一実施例において、前記（ｂ）段階は、（ｂ１）前記コンピューティング装置が、前記パターン評価ユニットをもって、前記オリジナルＣＮＮの前記パラメータに含まれたそれぞれのビットを変調した一つ以上の結果である一つ以上の変調ＣＮＮを生成させる段階；（ｂ２）前記コンピューティング装置が、前記変調ＣＮＮが一つ以上の変調コンボリューション演算を前記テストパターンのうちで特定のテストパターンに適用し、前記オリジナルＣＮＮが前記コンボリューション演算を前記特定のテストパターンに適用すると、前記パターン評価ユニットをもって、前記特定のテストパターンに対する前記変調ＣＮＮのそれぞれによって適用される前記変調コンボリューション演算の各結果が前記特定のテストパターンに対する前記コンボリューション演算の結果と同一である頻度を計算することによって、前記特定のテストパターンの特定の評価点数を生成させる段階；を含むことを特徴とする方法が提供される。
【００１８】
一実施例において、前記（ｂ）段階は、前記コンピューティング装置が、前記パターン評価ユニットをもって、（ｉ）前記オリジナルＣＮＮにより前記テストパターンのうちで特定のテストパターンに適用された一つ以上の重み付け値演算の結果と、前記オリジナルＣＮＮのパラメータに含まれたそれぞれのビットを変調することにより生成された一つ以上の変調ＣＮＮにより前記特定のテストパターンに適用された一つ以上の変調重み付け値演算の結果との間の値の差異値を計算させ、前記差異値それぞれは前記オリジナルＣＮＮの前記パラメータに含まれたそれぞれのビットに対応し、（ｉｉ）それぞれの前記差異値が、前記変調重み付け値演算の結果が前記特定のテストパターンに対する前記コンボリューション演算の結果に影響を及ぼさない、それぞれに対応する特定の範囲に含まれているかを決定させ、（ｉｉｉ）それぞれの差異値が、これに対応する特定の範囲に含まれている頻度数を計算することにより、前記特定のテストパターンの特定の評価点数を生成させることを特徴とする方法が提供される。
【００１９】
一実施例において、前記（ｂ）段階は、前記オリジナルＣＮＮの前記パラメータのうちで特定のコンボリューションパラメータに含まれた少なくとも一つの特定のビットを変調して変調ＣＮＮが生成されると、前記コンピューティング装置が、前記パターン評価ユニットをもって、前記オリジナルＣＮＮにより前記特定のテストパターンに適用された前記重み付け値演算の結果及び前記変調ＣＮＮにより前記特定のテストパターンに対する前記変調重み付け値演算の結果との間の特定の差異値に対する部分集合（前記特定の差異値は前記特定のビットに対応し、前記部分集合がこれに対応する特定の範囲に含まれている場合、前記部分集合は前記特定の差異値の中から選択される）の割合を参照して、前記特定の評価点数に含まれた前記特定のビットに対応する特定の細部評価点数を決定することを特徴とする方法が提供される。
【００２０】
一実施例において、前記（ａ）段階は、前記所定の関数は少なくとも一つの乱数生成器の関数であり、前記コンピューティング装置は、前記パターン生成ユニットをもって、前記乱数生成器の前記関数で生成された一つ以上の乱数を利用して前記各テストパターンを生成させることを特徴とする方法が提供される。
【００２１】
一実施例において、前記（ａ）段階は、前記サチュレーションは、前記テストパターンに対する前記コンボリューション演算に含まれた一つ以上の細部演算過程の一つ以上の細部結果値のうち少なくとも一部の絶対値がこれに対応する閾値より大きい場合であり、前記細部結果値それぞれに対応するそれぞれの前記閾値は、前記それぞれの細部結果値に割り当てられたビット数で表現され得る最大絶対値であることを特徴とする方法が提供される。
【００２２】
一実施例において、前記（ｂ）段階は、前記コンピューティング装置が、前記パターン評価ユニットをもって、変調された少なくとも一つの特定の単一ビットに対する前記コンボリューション演算の結果を参照して、前記テストパターンのうちで特定のテストパターンの特定の評価点数を生成させ、前記特定の単一ビットは、前記特定のテストパターンに含まれたビットと前記オリジナルＣＮＮの前記パラメータに含まれたビットの中から、均一な確率分布によって選択されることを特徴とする方法が提供される。
【００２３】
本発明の他の態様によると、一つ以上のコンボリューション演算の無欠性を検証するために一つ以上のテストパターンを生成し、前記テストパターンの中から一つ以上の最適化テストパターンを選択する装置において、各インストラクションを格納する少なくとも一つのメモリと、（Ｉ）少なくとも一つのパターン生成ユニットをもって、所定の関数を利用して前記テストパターンを生成させ、前記テストパターンが少なくとも一つのオリジナルＣＮＮに入力された後、前記コンボリューション演算が適用される過程でサチュレーション（ｓａｔｕｒａｔｉｏｎ）が起きないように前記テストパターンを生成させるプロセス；（ＩＩ）少なくとも一つのパターン評価ユニットをもって、それぞれの前記テストパターン及び前記オリジナルＣＮＮの一つ以上のパラメータを参照して、それぞれの前記テストパターンの評価点数それぞれを生成させるプロセス；及び（ＩＩＩ）少なくとも一つのパターン選択ユニットをもって、前記各評価点数を参照して、前記テストパターンの中から前記最適化テストパターンを選択させるプロセス；を遂行するための前記各インストラクションを実行するように構成された少なくとも一つのプロセッサと、を含むことを特徴とするコンピューティング装置が提供される。
【００２４】
一実施例において、（ＩＶ）前記プロセッサが、少なくとも一つの無欠性検証モジュールをもって、前記最適化テストパターンのうちで少なくとも一つの特定の最適化テストパターン及び少なくとも一つのオリジナル入力を統合することにより、少なくとも一つの拡張入力を生成させ、前記オリジナルＣＮＮが前記拡張入力を使用して少なくとも一つの検証出力を生成する場合、前記プロセスが、前記無欠性検証モジュールをもって、前記検証出力を参照して前記オリジナルＣＮＮの無欠性を検証させるプロセス；をさらに遂行することを特徴とするコンピューティング装置が提供される。
【００２５】
一実施例において、前記（Ｉ）プロセスは、前記プロセッサが、前記パターン生成ユニットをもって、（ｉ）前記所定の関数を利用して一つ以上の予備テストパターンを生成させ、（ｉｉ）前記予備テストパターンを前記オリジナルＣＮＮに入力して、それぞれの前記予備テストパターンを第１類型及び第２類型（前記第１類型は、前記オリジナルＣＮＮが前記コンボリューション演算を適用する際に前記サチュレーションされた前記予備テストパターンの第１部分を示し、前記第２類型は、前記オリジナルＣＮＮが前記コンボリューション演算を適用する際に前記サチュレーションされていない前記予備テストパターンの第２部分を示す）に分類し、（ｉｉｉ）前記第２部分の前記予備テストパターン及び一つ以上の調整された予備テストパターンを含む前記テストパターンを生成させ、前記調整された予備テストパターンは、前記オリジナルＣＮＮが前記コンボリューション演算を前記調整された予備テストパターンに適用する間、前記サチュレーションが発生しないように前記第１部分の前記予備テストパターンに含まれた少なくとも一部の値を調整して生成させることを特徴とするコンピューティング装置が提供される。
【００２６】
一実施例において、前記オリジナルＣＮＮが前記予備テストパターンのうち特定の予備テストパターンに前記コンボリューション演算を適用する間、前記プロセスが前記パターン生成ユニットをもって、少なくとも一つの（ｉ）前記特定の予備テストパターンに含まれた各特定値に対する一つ以上の重み付け値演算の少なくとも一つの結果値が、前記特定値が演算される前に前記重み付け値演算が適用された一つ以上の値に対する一つ以上の以前の結果値と合算される場合ごとの時点、及び（ｉｉ）一つ以上のバイアス演算が前記重み付け値演算のすべての結果値の総和に適用される場合ごとの時点で、前記サチュレーションが起きたか否かに関する情報を参照して、前記特定の予備テストパターンが前記第１類型または前記第２類型に属するかを決定することを特徴とするコンピューティング装置が提供される。
【００２７】
一実施例において、前記（ＩＩ）プロセスは、（ＩＩー１）前記プロセッサが、前記パターン評価ユニットをもって、前記各テストパターンのうちで特定のテストパターンに含まれたそれぞれのビットを変調した一つ以上の結果である一つ以上の特定の変調テストパターンを生成するプロセス；（ＩＩー２）前記プロセッサが、前記コンボリューション演算が前記オリジナルＣＮＮによって前記特定の変調テストパターン及び前記特定のテストパターンに適用される場合、前記パターン評価ユニットをもって、前記特定の変調テストパターンに対する前記コンボリューション演算のそれぞれの結果が前記特定のテストパターンに対する前記コンボリューション演算の少なくとも一つの結果と同一の頻度数を計算することにより、前記特定のテストパターンの少なくとも一つの特定の評価点数を生成させるプロセス；を遂行することを特徴とするコンピューティング装置が提供される。
【００２８】
一実施例において、前記（ＩＩ）プロセスは、前記プロセッサが、前記パターン評価ユニットをもって、（ｉ）前記テストパターンのうちで特定のテストパターンに対するオリジナルＣＮＮにより適用された一つ以上の重み付け値演算の結果と、前記特定のテストパターンのそれぞれのビットを変調して生成された特定の変調テストパターンに対する前記重み付け値演算の結果との間の差異値を計算させ、（ｉｉ）それぞれの前記差異値が、前記特定の変調テストパターンに対する前記コンボリューション演算の結果が前記特定のテストパターンに対する前記コンボリューション演算の結果と異ならない、それぞれに対応する特定の範囲に含まれているかを決定させ、（ｉｉｉ）前記差異値が対応する特定の範囲に含まれているそれぞれの前記差異値の頻度数を計算することにより、前記特定のテストパターンの特定の評価点数を生成させることを特徴とするコンピューティング装置が提供される。
【００２９】
一実施例において、前記（ＩＩ）プロセスは、前記特定のテストパターンのビットのうちで特定のビットが変調されると、前記プロセッサが、前記パターン評価ユニットをもって、特定の差異値に対する部分集合の割合を参照して前記特定の評価点数に含まれた、前記特定のビットに対応する少なくとも一つの特定の細部評価点数を決定し、前記特定の差異値はそれぞれの出力チャンネルから出力された前記特定のビットに対応し、前記部分集合が対応する特定の範囲に含まれている場合には、前記部分集合は前記特定の差異値の中から選択されるようにすることを特徴とするコンピューティング装置が提供される。
【００３０】
一実施例において、前記（ＩＩ）プロセスは、（ＩＩ−１）前記プロセッサが、前記パターン評価ユニットをもって、前記オリジナルＣＮＮの前記パラメータに含まれたそれぞれのビットを変調した一つ以上の結果である一つ以上の変調ＣＮＮを生成させるプロセス；（ＩＩー２）前記プロセッサが、前記変調ＣＮＮが一つ以上の変調コンボリューション演算を前記テストパターンのうちで特定のテストパターンに適用し、前記オリジナルＣＮＮが前記コンボリューション演算を前記特定のテストパターンに適用すると、前記パターン評価ユニットをもって、前記特定のテストパターンに対する前記変調ＣＮＮのそれぞれによって適用される前記変調コンボリューション演算の各結果が前記特定のテストパターンに対する前記コンボリューション演算の結果と同一である頻度を計算することによって、前記特定のテストパターンの特定の評価点数を生成させるプロセス；を遂行することを特徴とするコンピューティング装置が提供される。
【００３１】
一実施例において、前記（ＩＩ）プロセスは、前記プロセッサが、前記パターン評価ユニットをもって、（ｉ）前記オリジナルＣＮＮにより前記テストパターンのうちで特定のテストパターンに適用された一つ以上の重み付け値演算の結果と、前記オリジナルＣＮＮのパラメータに含まれたそれぞれのビットを変調することにより生成された一つ以上の変調ＣＮＮにより前記特定のテストパターンに適用された一つ以上の変調重み付け値演算の結果との間の値の差異値を計算させ、前記差異値それぞれは前記オリジナルＣＮＮの前記パラメータに含まれたそれぞれのビットに対応し、（ｉｉ）それぞれの前記差異値が、前記変調重み付け値演算の結果が前記特定のテストパターンに対する前記コンボリューション演算の結果に影響を及ぼさない、それぞれに対応する特定の範囲に含まれているかを決定させ、（ｉｉｉ）それぞれの差異値が、これに対応する特定の範囲に含まれている頻度数を計算することにより、前記特定のテストパターンの特定の評価点数を生成させることを特徴とするコンピューティング装置が提供される。
【００３２】
一実施例において、前記（ＩＩ）プロセスは、前記オリジナルＣＮＮの前記パラメータのうちで特定のコンボリューションパラメータに含まれた少なくとも一つの特定のビットを変調して変調ＣＮＮが生成されると、前記プロセッサが、前記パターン評価ユニットをもって、前記オリジナルＣＮＮにより前記特定のテストパターンに適用された前記重み付け値演算の結果と、前記変調ＣＮＮにより前記特定のテストパターンに対する前記変調重み付け値演算の結果との間の特定の差異値に対する部分集合（前記特定の差異値は前記特定のビットに対応し、前記部分集合がこれに対応する特定の範囲に含まれている場合、前記部分集合は前記特定の差異値の中から選択される）の割合を参照して、前記特定の評価点数に含まれた前記特定のビットに対応する特定の細部評価点数を決定することを特徴とするコンピューティング装置が提供される。
【００３３】
一実施例において、前記（Ｉ）プロセスは、前記所定の関数は少なくとも一つの乱数生成器の関数であり、前記プロセッサが、前記パターン生成ユニットをもって、前記乱数生成器の前記関数で生成された一つ以上の乱数を利用して前記各テストパターンを生成させることを特徴とするコンピューティング装置が提供される。
【００３４】
一実施例において、前記（Ｉ）プロセスは、前記サチュレーションは、前記テストパターンに対する前記コンボリューション演算に含まれた一つ以上の細部演算過程の一つ以上の細部結果値のうち少なくとも一部の絶対値がこれに対応する閾値より大きい場合であり、前記細部結果値それぞれに対応するそれぞれの前記閾値は、前記それぞれの細部結果値に割り当てられたビット数で表現され得る最大絶対値であることを特徴とするコンピューティング装置が提供される。
【００３５】
一実施例において、前記（ＩＩ）プロセスは、前記プロセッサが、前記パターン評価ユニットをもって、変調された少なくとも一つの特定の単一ビットに対する前記コンボリューション演算の結果を参照して、前記テストパターンのうちで特定のテストパターンの特定の評価点数を生成させ、前記特定の単一ビットは、前記特定のテストパターンに含まれたビットと前記オリジナルＣＮＮの前記パラメータに含まれたビットのうちから、均一な確率分布によって選択されることを特徴とするコンピューティング装置が提供される。
【発明の効果】
【００３６】
本発明は、テストパターンを利用してコンボリューションパラメータの無欠性を検証するためのテストパターンを生成する方法を提供することにより、自律走行車両がハッカーの脅威から安全に走行し得るようにする効果がある。
【００３７】
本発明は、テストパターンに対する評価方法を提供することにより、最適化されたテストパターンを選択することができるようにし、コンボリューションパラメータの無欠性検証方法がうまく遂行し得るようにする効果がある。
【００３８】
また、本発明は、コンボリューション演算において欠陥許容能力、極度の状況における揺れに強靭な性質、機能的な安全性を向上させるために使用され得、注釈の費用削減にも使用され得る。
【図面の簡単な説明】
【００３９】
本発明の実施例の説明に利用されるために添付された以下の図面は、本発明の実施例のうち単に一部であるに過ぎず、本発明の属する技術分野において通常の知識を有する者（以下「通常の技術者」）にとっては、発明的作業が行われずにこれらの図面に基づいて他の各図面が得られ得る。
【図１】本発明の一実施例にしたがって一つ以上のコンボリューション演算の無欠性を検証するために一つ以上のテストパターンを生成し、これらのうち一つ以上の最適化テストパターンを選択する方法を遂行するコンピューティング装置の構成を示した図面である。
【図２ａ】本発明の一実施例にしたがってコンボリューション演算の無欠性を検証するためにテストパターンを生成し、これらのうち一つ以上の最適化テストパターンを選択する方法を遂行するために使用される変化値及び特定の範囲について説明するための図面である。
【図２ｂ】本発明の一実施例にしたがってコンボリューション演算の無欠性を検証するためにテストパターンを生成し、これらのうち一つ以上の最適化テストパターンを選択する方法を遂行するために使用される変化値及び特定の範囲について説明するための図面である。
【図２ｃ】本発明の一実施例にしたがってコンボリューション演算の無欠性を検証するためにテストパターンを生成し、これらのうち一つ以上の最適化テストパターンを選択する方法を遂行するために使用される変化値及び特定の範囲について説明するための図面である。
【図３】本発明の一実施例によるコンボリューション演算の無欠性を検証するためにテストパターンを生成し、これらのうち一つ以上の最適化テストパターンを選択する方法を通じて選択された最適化テストパターンを利用してコンボリューション演算の無欠性を検証する方式を示した図面である。
【発明を実施するための形態】
【００４０】
後述する本発明に関する詳細な説明は、本発明が実施され得る特定の実施例を例示として示す添付図面を参照する。これらの実施例は、当業者が本発明を実施することができるように十分詳細に説明される。本発明の多様な実施例は互いに異なるが、相互に排他的である必要はないことが理解されるべきである。例えば、ここに記載されている特定の形状、構造及び特性は、一実施例に関連して本発明の精神及び範囲を逸脱せず、かつ他の実施例で具現され得る。また、それぞれの開示された実施例内の個別の構成要素の位置又は配置は、本発明の精神及び範囲を逸脱せず、かつ変更され得ることが理解されるべきである。したがって、後述の詳細な説明は、限定的な意味として受け取ろうとするものではなく、本発明の範囲は適切に説明されるのであれば、その請求項が主張することと均等な全ての範囲とともに添付された請求項によってのみ限定される。図面において類似の参照符号は、様々な側面にわたって同一であるか、又は類似の機能を指す。
【００４１】
また、本発明の詳細な説明及び各請求項にわたって、「含む」という単語及びそれらの変形は、他の技術的各特徴、各付加物、構成要素又は段階を除外することを意図したものではない。通常の技術者にとって本発明の他の各目的、長所及び各特性が、一部は本説明書から、また一部は本発明の実施から明らかになるであろう。以下の例示及び図面は実例として提供され、本発明を限定することを意図したものではない。
【００４２】
本発明で言及している各種イメージは、舗装または非舗装道路関連のイメージを含み得、この場合、道路環境で登場し得る物体（例えば、自動車、人、動物、植物、物、建物、飛行機やドローンのような飛行体、その他の障害物）を想定し得るが、必ずしもこれに限定されるものではなく、本発明で言及している各種イメージは、道路と関係のないイメージ（例えば、非舗装道路、路地、空き地、海、湖、川、山、森、砂漠、空、室内と関連したイメージ）でもあり得、この場合、非舗装道路、路地、空き地、海、湖、川、山、森、砂漠、空、室内環境で登場し得る物体（例えば、自動車、人、動物、植物、物、建物、飛行機やドローンのような飛行体、その他の障害物）を想定し得るが、必ずしもこれに限定されるものではない。
【００４３】
以下、本発明の属する技術分野において通常の知識を有する者が本発明を容易に実施し得るようにするために、本発明の好ましい実施例について、添付された図面を参照して詳細に説明することにする。
【００４４】
図１は、本発明の一実施例にしたがって一つ以上のコンボリューション演算の無欠性を検証するために一つ以上のテストパターンを生成し、これらのうち一つ以上の最適化テストパターンを選択する方法を遂行するコンピューティング装置の構成を示した図面である。
【００４５】
図１を参照すると、コンピューティング装置１００は、少なくとも一つのパターン生成ユニット２００、少なくとも一つのパターン評価ユニット３００、少なくとも一つのパターン選択ユニット４００、少なくとも一つのオリジナルＣＮＮ５００及び少なくとも一つの無欠性検証モジュール６００を含むことができる。パターン生成ユニット２００、パターン評価ユニット３００、パターン選択ユニット４００、オリジナルＣＮＮ５００及び無欠性検証モジュール６００の入出力及び演算の過程は、それぞれ通信部１１０及びプロセッサ１２０によって行われ得る。ただし、図１では通信部１１０及びプロセッサ１２０の具体的な連結関係を省略した。この場合、少なくとも一つのメモリ１１５は後述する様々なインストラクションを予め格納した状態であり得、プロセッサ１２０はメモリ１１５に格納された各インストラクションを遂行するように設定され、プロセッサ１２０は、追って説明するプロセスを遂行することにより本発明を遂行することができる。このように、コンピューティング装置１００が描写されたからといって、コンピューティング装置１００が本発明を実施するためのミディアム、プロセッサ及びメモリが統合された形態である統合プロセッサを含む場合を排除するわけではない。
【００４６】
以上、コンピューティング装置１００の全体的な構成について説明したところ、コンピューティング装置１００が遂行する、本発明の実施例によるコンボリューション演算の無欠性を検証するためにテストパターンを生成し、これらのうち一つ以上の最適化テストパターンを選択する方法について説明することにする。
【００４７】
まず、コンピューティング装置１００は、パターン生成ユニット２００をもって、所定の関数を利用してそれぞれのテストパターンを生成させることができる。一例として、所定の関数は乱数生成器として一つ以上の数字を生成することができ、自己論理を有する関数として時間に応じたシード値を利用して乱数を生成する関数であり得る。このような所定の関数を通じて数字が生成されると、パターン生成ユニット２００は、これを利用してそれぞれのテストパターンを生成することができる。ただし、このようなテストパターンは、オリジナルＣＮＮ５００に入力された後、コンボリューション演算される過程でサチュレーションが起きない状態でなければならない。
【００４８】
この場合、サチュレーションとは、テストパターンがオリジナルＣＮＮ５００に入力された後、コンボリューション演算される過程に含まれる一つ以上の細部演算の過程で生成される一つ以上の細部結果値に対して、そのうち少なくとも一部の絶対値がそれぞれの閾値以上である場合を意味し得る。それぞれの閾値はそれぞれの細部結果値に対応し得るが、具体的には、それぞれの閾値はそれぞれの細部結果値を格納するようにコンピューティング装置１００が割り当てたそれぞれのメモリビット数で表現することができるそれぞれの最大絶対値を意味し得る。この場合、ビット数が不足して、それぞれの細部結果値が実際よりもさらに小さく表現され得、テストパターンに対するコンボリューション演算の最終結果に影響を与えかねないところ、テストパターンがオリジナルＣＮＮ５００に入力されてコンボリューション演算が適用する間にサチュレーションが起こることを防止しなければならないのである。
【００４９】
以上、テストパターンが満たすべき条件について検討したところ、テストパターンが前記条件を満たすようにする方法を以下にて検討する。
【００５０】
すなわち、コンピューティング装置１００が、パターン生成ユニット２００をもって、所定の関数によって生成された数字を利用して一つ以上の予備テストパターンを生成させることができる。そして、それぞれの予備テストパターンをオリジナルＣＮＮ５００に入力させ、オリジナルＣＮＮ５００が入力されたそれぞれの予備テストパターンをコンボリューション演算する過程を分析して第１類型及び第２類型に分類され得る。前記第１類型は、前記コンボリューション演算の過程で、前記サチュレーションされた前記予備テストパターンの第１部分を示し、前記第２類型は、前記コンボリューション演算の過程で前記サチュレーションされていない前記予備テストパターンの第２部分を示す。以後、第１部分の予備テストパターンが含まれた値の少なくとも一部が調整され得、一つ以上の調整された予備テストパターンが生成されて、調整された予備テストパターンにコンボリューション演算が適用される間はサチュレーションが発生しない。したがって、テストパターンは、第２部分の予備テストパターン及び調整された予備テストパターンを含んで生成させることができる。
【００５１】
サチュレーションが起きたか否かは、毎演算が起こるたびに確認する必要はなく、コンボリューション演算過程の途中でサチュレーションが頻繁に起きる時点で確認することができる。例えば、コンボリューション演算に、入力値に重み付け値を掛け合わせる重み付け値演算と、重み付け値と入力値とが掛け合わせられた値にバイアスを加えるバイアス演算とが含まれると仮定した場合、オリジナルＣＮＮ５００が、予備テストパターンのうち一つである特定の予備テストパターンを演算する際にサチュレーションが起きたか否か判断する時点は、（ｉ）前記特定の予備テストパターンに含まれた各特定値に対する一つ以上の重み付け値演算の少なくとも一つの結果値が、前記特定値が演算される前に前記重み付け値演算が適用された一つ以上の値に対する一つ以上の以前の結果値と合算される場合ごとの時点、及び（ｉｉ）一つ以上のバイアス演算が前記重み付け値演算のすべての結果値の総和に適用される場合ごとの時点であり得る。
【００５２】
これについてさらに具体的に説明するために、一般的なコンボリューション演算の疑似コード（ｐｓｅｕｄｏ−ｃｏｄｅ）を例に挙げて説明することにする。
【００５３】
【表１】
2020119557.tif 000003
このような疑似コード（ｐｓｅｕｄｏ−ｃｏｄｅ）によるコンボリューション演算において、サチュレーションの危険が高い時点は、下段のＯｕｔ（ｉ）＝Ｏｕｔ（ｉ）＋（Ｉｎｔｅｒｍ＞＞ｓｈｉｆｔ（ｉ））及びＯｕｔ（ｉ）＝Ｏｕｔ（ｉ）＋ｂｉａｓ（ｉ）の演算が遂行されるときであろう。上述した（ｉ）特定値に対する重み付け値演算の結果値が、前記特定値が演算される前に前記重み付け値演算が適用された一つ以上の値に対する一つ以上の以前の結果値と合算される場合ごとの時点、及び（ｉｉ）バイアス演算が前記重み付け値演算のすべての結果値の総和に適用される場合ごとの時点は、前記言及した擬似コード（ｐｓｅｕｄｏ−ｃｏｄｅ）の下段の演算が遂行される時点を意味するためのものである。
【００５４】
前記時点にサチュレーションが起きた場合である第１部分の予備テストパターンの場合、サチュレーションが起きた時点によって、そしてどの方向にサチュレーションが起きたのかによって、第１部分の予備テストパターンに含まれた値の少なくとも一部が調整され得る。具体的には、特定値に対する特定の重み付け値演算の少なくとも一つの結果値と、特定値が演算される前に重み付け値演算が適用された一つ以上の値に対する一つ以上の以前の結果値とが合算される際に、その合計値が正数（ｐｏｓｉｔｉｖｅ  ｎｕｍｂｅｒ）であるもののその絶対値が閾値より大きいためにサチュレーションが起きたのであれば、このような特定値を、重み付け値演算の結果値がさらに小さくなるように調整することができるであろう。反対に、足し合わせた値が負数（ｎｅｇａｔｉｖｅ  ｎｕｍｂｅｒ）であり、その絶対値が閾値より大きいためにサチュレーションが起きたのであれば、各特定値を、重み付け値演算の結果値がさらに大きくなるように調整することができるであろう。重み付け値演算のすべての結果値の総和にバイアス演算が適用される間にサチュレーションが起きた場合にも、これとほぼ同じように第１部分の予備テストパターンに含まれた値の少なくとも一部は調整することができるであろう。
【００５５】
パターン生成ユニット２００は、前記第２部分の前記予備テストパターン及び一つ以上の調整された予備テストパターンを含む前記テストパターンを生成させ、前記調整された予備テストパターンは、前記オリジナルＣＮＮが前記コンボリューション演算を前記調整された予備テストパターンに適用する間に前記サチュレーションが発生しないように、前記第１部分の前記予備テストパターンに含まれた少なくとも一部の値を調整して生成することができる。
【００５６】
このようにテストパターンが生成されると、コンピューティング装置１００が、パターン評価ユニット３００をもって、それぞれの前記テストパターン及び前記オリジナルＣＮＮの一つ以上のパラメータを参照して、それぞれの前記テストパターンの評価点数それぞれを生成させることができる。
【００５７】
つまり、コンピューティング装置１００は、パターン評価ユニット３００をもって、変調された少なくとも一つの特定の単一ビットに対する前記コンボリューション演算の結果を参照して、前記テストパターンのうちで特定のテストパターンの特定の評価点数を生成させ、前記特定の単一ビットは、前記特定のテストパターンに含まれたビットと前記オリジナルＣＮＮの前記パラメータに含まれたビットのうちで均一な確率分布にしたがって選択され得る。以下、このような場合について、特定のテストパターンに含まれたビットの中から特定の単一ビットを選択する場合と、オリジナルＣＮＮのパラメータに含まれたビットの中から特定の単一ビットを選択する場合に分けて説明することにする。
【００５８】
まず、特定のテストパターンに含まれた値のうちで特定の単一ビットが選択された場合について説明する。コンピューティング装置１００が、パターン評価ユニット３００をもって、前記テストパターンのうちで特定のテストパターンに含まれたそれぞれのビットを変調した一つ以上の結果である一つ以上の特定の変調テストパターンを生成させることができる。このような特定の変調テストパターンは、特定のテストパターンに含まれたビットの個数だけ生成されるであろう。以後、前記コンボリューション演算が前記オリジナルＣＮＮによって前記特定の変調テストパターン及び前記特定のテストパターンに適用される場合、コンピューティング装置１００がパターン評価ユニット３００をもって、前記特定の変調テストパターンに対する前記コンボリューション演算のそれぞれの結果が前記特定のテストパターンに対する前記コンボリューション演算の少なくとも一つの結果と同一の頻度数を計算することにより、前記特定のテストパターンの少なくとも一つの特定の評価点数を生成させることができる。この際、コンボリューション演算の結果、変調された特定のテストパターンが特定のテストパターンと異なる結果がない場合、特定のテストパターンは特定の単一ビットを検出するには適合しないテストパターンであるところ、このような場合、頻度数を計算して数値化することができるからである。
【００５９】
オリジナルＣＮＮのパラメータに含まれたビットの中から特定の単一ビットを選択する場合もこれとほぼ同じである。コンピューティング装置１００が、パターン評価ユニット３００をもって、前記オリジナルＣＮＮの前記パラメータに含まれたそれぞれのビットを変調した一つ以上の結果である一つ以上の変調ＣＮＮ（図示せず）を生成させることができる。このような各変調ＣＮＮは、オリジナルＣＮＮ５００のパラメータに含まれたビットの個数だけ生成されるであろう。以後、前記変調ＣＮＮが一つ以上の変調コンボリューション演算を前記テストパターンのうちで特定のテストパターンに適用し、前記オリジナルＣＮＮが前記コンボリューション演算を前記特定のテストパターンに適用すれば、コンピューティング装置１００が前記パターン評価ユニット３００をもって、前記特定のテストパターンに対する前記変調ＣＮＮのそれぞれによって適用される前記変調コンボリューション演算の各結果が前記特定のテストパターンに対する前記コンボリューション演算の結果と同一である頻度を計算することによって、前記特定のテストパターンの特定の評価点数を生成させることができる。
【００６０】
特定のテストパターンが変調された場合とＣＮＮが変調された場合とを分けて述べたが、変調された特定のテストパターン及び変調されたＣＮＮのうち少なくとも一部のみを利用して評価点数を生成することもでき、これら両方を使用して評価点数を生成することもできるはずである。例えば、これら両方を使用する場合、オリジナルＣＮＮのパラメータに含まれたビットが変調された場合がより危険な場合であると判断して、該当する場合を始めとする評価点数をさらに高く生成することも可能であろう。
【００６１】
前記のように評価点数を生成することができるが、上述の方法はオリジナルＣＮＮ５００によって変調された特定のテストパターンにコンボリューション演算を、オリジナルＣＮＮ５００によって特定のテストパターンにコンボリューション演算を、変調されたＣＮＮによって特定のテストパターンに変調されたコンボリューション演算を全て完了した後に比較しなければならないところ、演算量が大きい短所がある。これに伴い、短所を補完することができる最適化されたテストパターン評価方法について検討する。
【００６２】
このような最適化方法は、変化値を生成することが重要な要素であることから、それについて説明することとする。まず、コンピューティング装置１００が、パターン評価ユニット３００をもって、特定のテストパターンに対するコンボリューション演算の結果と、特定のテストパターンの各ビットを変調することで生成された特定の変調テストパターンに対するコンボリューション演算の結果との間のそれぞれの第１差異値を計算させることができる。また、オリジナルＣＮＮ５００によって特定のテストパターンに適用された一つ以上の中間演算の少なくとも一つの結果と、オリジナルＣＮＮ５００のパラメータに含まれた各ビットを変調して生成された変調ＣＮＮによって特定のテストパターンに適用された一つ以上の変調中間演算の一つ以上の結果との間のそれぞれの第２差異値を計算させることができる。
【００６３】
この際、コンピューティング装置１００が、パターン評価ユニット３００をもって、第１差異値及び第２差異値それぞれが、前記特定の変調テストパターンに対する前記コンボリューション演算の結果が前記特定のテストパターンに対する前記コンボリューション演算の結果と異ならない、それぞれに対応する特定の範囲に含まれているかを決定させることができる。また、コンピューティング装置１００がパターン評価ユニット３００をもって、これに対応する特定の範囲に含まれた第１及び第２差異値それぞれの頻度数を計算することによって特定のテストパターンの特定の評価点数を生成させることができる。
【００６４】
第１差異値及び第２差異値に対応するコンボリューション演算のそれぞれの結果が、オリジナルＣＮＮ５００によって特定のテストパターンに適用されたコンボリューション演算の結果と異なるか否かは、それぞれの特定の範囲によって決定され得る。
【００６５】
第１差異値及び第２差異値それぞれに対応する特定の範囲それぞれは、それに対応する各演算の結果に応じて決定され得る。図２ａ、２ｂ及び２ｃは、特定の範囲、第１差異値及び第２差異値を説明するのに参照される。
【００６６】
図２ａ、２ｂ及び２ｃは、本発明の一実施例にしたがってコンボリューション演算の無欠性を検証するためにテストパターンを生成し、これらのうち一つ以上の最適化テストパターンを選択する方法を遂行するために使用される第１差異値、第２差異値及び特定の範囲について説明するための図面である。
【００６７】
まず、図２ａに示された、特定のテストパターンに含まれた各オリジナル値及びこれに対応するオリジナルＣＮＮの各パラメータは変調されていない状態である。このような場合、オリジナル値に対する重み付け値演算の結果は
５×１０＋（−４）×（−１１）＋（−３）×１２＋２×（−１３）＝３２
と計算されるであろう。以後、計算された結果がシフト（ｓｈｉｆｔ）され得るが、例示的に３ビットずつ右側にシフトされ得る。ここで、オリジナル値に対する重み付け値演算の細部結果値は４である。
【００６８】
図２ｂは、特定のテストパターンに含まれたオリジナル値のうち一つである２が３に変調された場合を示した図面である。この場合、これに対する重み付け値演算の第１特定結果は１９と計算される。この際、第１特定の差異値は−１３であるはずである。この場合、１９を３ビットだけ右側にシフトすると、第１特定の細部結果値は２と導き出される。第１特定の細部結果がオリジナル値に対する重み付け値演算の細部結果値と異なるので、これは変調された特定のテストパターンに対するコンボリューション演算の結果に影響を与えるようになる。
【００６９】
このような結果は、第１特定の重み付け値演算の結果及び第１細部結果を計算しなくても予測され得る。まず、第１特定の差異値は、オリジナル値に対する重み付け値演算の結果及び第１特定の重み付け値演算の結果をそれぞれ計算してこれらの間の差異値を計算するのではなく、変調されたビットに対応する大きさと、変調されたビットに対応する重み付け値を利用して計算され得る。図２ｂの場合、２が３に変わったところ、これに対応する−１３の重み付け値がもう一度計算されることと同じであるので、第１特定の差異値が−１３であることを、それぞれの重み付け値演算の結果を計算しなくても知り得るであろう。以後、変調された特定のテストパターンのコンボリューション演算の結果は、第１特定の差異値がこれに対応する特定の範囲に含まれているか否かを判断することで、結果を予測することができる。
【００７０】
この際、オリジナル値に含まれたそれぞれのビットに対応する特定の範囲それぞれは、オリジナル値に対する重み付け値演算の結果を使用して計算され得る。
【００７１】
図２ａ及び図２ｂにおいて、オリジナル値に対する重み付け値演算の結果をインターム（ｉｎｔｅｒｍ）とする。この際、ビットのシフトにより無視され得る値をｇとすると、
【００７２】
【数１】
2020119557.tif 000004
が成立するようになる。これはｉ番目のビット以下の各ビットはシフトによって無視されるためである。この場合、第１特定の差異値が
【００７３】
【数２】
2020119557.tif 000005
の範囲に属する場合、第１特定の差異値に対応するビットの変調は変調された特定のテストパターンのコンボリューション演算の結果に影響を及ぼさなくなる。このような方式で、前記オリジナル値の特定の範囲が決定され得る。
【００７４】
図２ｂの場合には、インターム（ｉｎｔｅｒｍ）が３２、ｉが３である場合に該当するので、ｇ＝１０００００2＆（１０００2−１）＝０になるところ、第１特定の差異値が０から７の間の範囲に存在する場合のみに、これに伴って該当ビットの変調はオリジナルＣＮＮ５００によって変調された特定のテストパターンに適用されたコンボリューション演算の結果に影響を与えないようになるのである。図２ｂの場合、前記第１特定の差異値は０から７の間の範囲に存在しないため、第１特定の差異値に対応するビットの変調がオリジナルＣＮＮ５００によって変調された特定のテストパターンに適用されるコンボリューション演算の結果に影響を与えるものと予想することができ、実際もこれと同様であることを確認することができる。
【００７５】
図２ｃの場合、オリジナルＣＮＮのパラメータに含まれたビットが変調された場合であって、−１３が−１２に変調されたことを確認することができる。この場合、第２特定の差異値が１だけ大きくなったわけであるので、これに対応する特定のテストパターン値２がもう一度加算されることと同じであるので、第２特定の差異値は２であるはずである。２は、上述した特定の範囲に含まれている。したがって、特定のテストパターンに対する変調コンボリューション演算の結果は、オリジナルＣＮＮによって特定のテストパターンに適用されたコンボリューション演算の結果と異ならないものと予想され、図２ｃで確認するように、その予想が正しいことが分かる。このような過程を通じて、それぞれに含まれたビットが変調された場合、コンボリューション演算の結果に影響を及ぼすか否かを予測することができる。
【００７６】
例示的に、テストパターンがビットに対応する各差異値がこれらに対応する特定の範囲にあるビットの少なくとも一部を含み、ビットの一部の数が閾値より大きい場合、テストパターンは比較的低い評価点数を有し得る。ビットが多く変調されたにもかかわらず結果値が変わらないのであれば、当該テストパターンはビット変調を検出するには不適切である。
【００７７】
ここで、前記特定のテストパターンのビットのうちで特定のビットが変調されると、前記コンピューティング装置１００が、前記パターン評価ユニット３００をもって、第１特定の差異値に対する部分集合の割合を参照して前記特定の評価点数に含まれた、前記特定のビットに対応する少なくとも一つの特定の細部評価点数を決定し、前記第１特定の差異値はそれぞれの出力チャンネルから出力された前記特定のビットに対応し、前記部分集合が対応する特定の範囲に含まれている場合には前記部分集合は前記第１特定の差異値の中から選択される。これは前記部分集合があまりに大きい場合に、前記第１差異値をそれぞれ区別するためである。
【００７８】
同様に、前記オリジナルＣＮＮの前記パラメータのうちで特定のコンボリューションパラメータに含まれた少なくとも一つの特定のビットを変調して変調ＣＮＮが生成されると、前記コンピューティング装置１００が、前記パターン評価ユニット３００をもって、前記オリジナルＣＮＮによって前記特定のテストパターンに適用された前記重み付け値演算の結果と、前記変調ＣＮＮによって前記特定のテストパターンに対する前記変調重み付け値演算の結果との間の特定の差異値に対する部分集合の割合を参照して、前記特定の評価点数に含まれた前記特定のビットに対応する特定の細部評価点数を決定することができる。これもやはり、前記第２差異値のうちで前記部分集合を区別するためである。ここで、前記特定の差異値は前記特定のビットに対応し、前記部分集合がこれに対応する特定の範囲に含まれている場合、前記部分集合は前記特定の差異値の中から選択され得る。
【００７９】
このように評価点数が生成されると、コンピューティング装置１００がパターン選択ユニット４００をもって、各評価点数を参照してテストパターンのうちから最適化テストパターンを選択させることができる。すなわち、評価点数の高いテストパターンを選び、最適化テストパターンとして選択することができるのである。
【００８０】
このように最適化テストパターンが選択されると、コンピューティング装置１００が、無欠性検証モジュール６００をもって、前記最適化テストパターンのうちで少なくとも一つの特定の最適化テストパターン及び少なくとも一つのオリジナル入力を統合することにより、少なくとも一つの拡張入力を生成させ、前記オリジナルＣＮＮが前記拡張入力を使用して少なくとも一つの検証出力を生成する場合、前記コンピューティング装置１００が、前記無欠性検証モジュール６００をもって、前記検証出力を参照して前記オリジナルＣＮＮの無欠性を検証させることができる。このようなプロセスについて説明するために、図３を参照することにする。
【００８１】
図３は、本発明の一実施例によるコンボリューション演算の無欠性を検証するために各テストパターンを生成し、これらのうち一つ以上の各最適化テストパターンを選択する方法を通じて選択された最適化テストパターンを利用してコンボリューション演算の無欠性を検証する方式を示した図面である。
【００８２】
図３を参照すると、オリジナルＣＮＮ５００が本来の機能を遂行するために入力されるオリジナル入力に、特定の最適化テストパターンが適用されたことが分かる。図３に示されているように、特定の最適化テストパターンがオリジナル入力に対するコンボリューション演算の結果に影響を及ぼさないように、特定の最適化テストパターンとオリジナル入力との間に少なくとも一つのゼロパターンが位置することができる。このような拡張された入力は、オリジナルＣＮＮ５００に入力され得、コンボリューション演算によって検証用出力に変換され得る。また、無欠性検証モジュール６００は、検証用出力の特定の最適化テストパターンに対応する少なくとも一つの部分及びレファレンスパターンを参照して、オリジナルＣＮＮ５００の無欠性を検証することができる。オリジナルＣＮＮ５００のセキュリティレベルが臨界レベルより高いことから、オリジナルＣＮＮ５００のパラメータ及びこれに入力された各値の無欠性が保障された状態で、レファレンスパターンは特定の最適化テストパターンをオリジナルＣＮＮ５００に入力することにより生成され得る。したがって、レファレンスパターンと、検証用出力に含まれた特定の最適化テストパターンに対応する部分とが互いに異なる場合、オリジナルＣＮＮ５００のパラメータの少なくとも一部が変調されているか、オリジナルＣＮＮ５００の拡張入力が入力過程で変調されたと推定することができるようになるのである。
【００８３】
以上にて説明した内容は、主に単一ビットの変調について説明しているが、複数のビットが変調された場合にも、これとほぼ同じように最適化テストパターンが導き出されるであろう。また、前記にて説明されたコンボリューション演算の過程は、常数（ｉｎｔｅｇｅｒ）コンボリューション演算の過程と類似するが、本発明がこれに限定されるわけではない。
【００８４】
このような過程を経ると、オリジナルＣＮＮ５００がハッカーの脅威から安全に保護され得る効果がある。
【００８５】
以上にて説明された本発明による実施例は、多様なコンピュータの構成要素を通じて遂行することができるプログラム命令語の形態で具現されて、コンピュータ読取り可能な記録媒体に格納され得る。前記コンピュータ読取り可能な記録媒体はプログラム命令語、データファイル、データ構造などを単独で又は組み合わせて含むことができる。前記コンピュータ読取り可能な記録媒体に格納されるプログラム命令語は、本発明のために特別に設計され、構成されたものであるか、コンピュータソフトウェア分野の当業者に公知にされて使用可能なものであり得る。コンピュータ読取り可能な記録媒体の例には、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロプティカル・ディスク（Ｆｌｏｐｔｉｃａｌ  Ｄｉｓｋ）のような磁気−光メディア（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  Ｍｅｄｉａ）、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令語を格納して遂行するように特別に構成されたハードウェア装置が含まれる。プログラム命令語の例には、コンパイラによって作られるもののような機械語コードだけでなく、インタープリターなどを使用してコンピュータによって実行される高級言語コードも含まれる。前記ハードウェア装置は、本発明による処理を実行するために一つ以上のソフトウェアモジュールとして作動するように構成され得、その反対も同様である。
【００８６】
以上にて本発明が具体的な構成要素などのような特定事項と限定された実施例及び図面によって説明されたが、これは本発明のより全般的な理解の一助とするために提供されたものであるに過ぎず、本発明が前記実施例に限られるものではなく、本発明が属する技術分野において通常の知識を有する者であれば、かかる記載から多様な修正及び変形が行われ得る。
【００８７】
従って、本発明の思想は、前記説明された実施例に局限されて定められてはならず、後述する特許請求の範囲だけでなく、本特許請求の範囲と均等または等価的に変形されたものすべては、本発明の思想の範囲に属するといえる。
【図１】
2020119557.tif 000006
【図２ａ】
2020119557.tif 000007
【図２ｂ】
2020119557.tif 000008
【図２ｃ】
2020119557.tif 000009
【図３】
2020119557.tif 000010