2022-005002
視覚探索方法、装置および電子機器
- 審判番号
- 2022-005002
- 法域
- 特許
- 審判種別
- 拒絶査定不服審判(拒絶査定不服の審決)
- 出願番号
- 特願2020-082447外部サイト(J-PlatPat)へ移動します
- 請求日
- 2022年04月05日
- 審決日
- 2023年02月13日
- 公報発行日
- 2023年07月28日
- 結論
- 請求不成立
- 当事者
- 【請求人】バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
- 【請求人代理人】上田 邦生
- 【請求人代理人】柳 順一郎
- 【請求人代理人】竹内 邦彦
- 分類
- P18 .121-WZ (G06T)
- 根拠条文(結論部分から自動抽出・参考)
- 特許法29条2項
- 条文(本文から自動抽出・参考)
- 特許法第29条第2項
- データ出所
- 審決公報(XML)
事件の表示
結論
理由
目次 ▾ 12項目
第1 手続の経緯
折りたたみ中(クリックで表示)
本願は、令和2年5月8日(パリ条約に基づく優先権主張 2019年11月29日、中国(CN))を出願日とする出願であって、その手続の経緯は以下のとおりである。
第2 本願発明
本願の請求項1~14に係る発明は、令和4年12月6日付け手続補正(以下、本件補正という)により補正された特許請求の範囲の請求項1~14の記載により特定されるところ、その請求項1に係る発明(以下、本願発明という)は特許請求の範囲の請求項1に記載される、次のとおりのものである。(下線は本件補正により補正された箇所を示す。また、記号A~Fは分説するために審判合議体が付したものであり、請求項1の記載を、記号A~Fを用いて、以下、「構成A」~「構成F」と称する。)
【請求項1】
A 視覚探索プロセスにおける第1対象を決定することと、
B 前記第1対象の最適化対象で視覚探索を行うことと、を含み、
C 前記視覚探索プロセスにおける前記第1対象の電力消費が、前記視覚探索プロセスにおける第2対象の電力消費より大きく、前記第1対象がプログラムとアルゴリズムの少なくとも一つを含み、前記第2対象がプログラムとアルゴリズムの少なくとも一つを含み、
D 前記最適化対象の演算速度が前記第1対象の演算速度より速く、および/または、単位時間当たりの前記最適化対象の演算総回数が、前記単位時間当たりの前記第1対象の演算総回数より少なく、
E1 前記最適化対象は、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化して得られる対象を含み、または、
E3 前記最適化対象は、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化し、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つのスケジューリングを最適化して得られる対象を含み、
E4 前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化することは、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの第1深層学習モデルに対し、ネットワーク構造クリッピングまたは知識蒸留最適化処理を行って、モデルパラメータの数が減少した第1深層学習モデルを得ることを含むことを特徴とする、
F 視覚探索方法。
第3 当審の拒絶の理由の概要
当審の拒絶の理由である令和4年9月5日付け拒絶理由は、概略以下のとおりである。
(進歩性)本件出願の請求項1-12に係る発明は、その出願前に日本国内又は外国において、頒布された下記の刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基づいて、その出願前にその発明の属する技術の分野における通常の知識を有する者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により特許を受けることができない。
記
令和3年9月15日付け手続補正書により補正された特許請求の範囲のうち、請求項1に係る発明(本願発明)は、引用文献1に記載されている発明(引用発明)および周知技術(例えば引用文献1記載の事項)に基づいて、または引用文献1、2記載の事項に基づいて、当業者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により、特許を受けることができない。
また、請求項2~5に係る発明、請求項6~10、11、12に係る発明も、引用発明および引用文献1、2記載の事項に基づいて当業者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により、特許を受けることができない。
<引用文献等>
1.飯塚健太郎ほか、機械学習時代のソフトウェア開発[ゲームアプリ/インフラ/エッジ編]、日本、株式会社技術評論社、2019.08.22発行、pp.90-91,119-131(当審にて新たに引用する文献)
2.国際公開2019/127227号(当審にて新たに引用する文献)
第4 当審の判断
1 引用文献1の記載
当審が令和4年9月5日付けで通知した拒絶の理由に引用された引用文献1である、飯塚健太郎ほか、機械学習時代のソフトウェア開発[ゲームアプリ/インフラ/エッジ編]、日本、株式会社技術評論社、2019.08.22発行、pp.90-91,119-131には、以下の記載がある。(下線は強調のために当審で付した。以下同様。)
(1) 「Part4 [エッジで極める]深層学習推論の高速化限りある演算能力を駆使し、重い演算を動かす技術」
(中略)
高速化の必要性とエッジ特有の注意点
すでに述べたように、安価なエッジデバイスでは通常重たい処理が難しいです。一般の深層学習フレームワークを載せるだけの容量がなかったり、載せて実行できても遅かったりと、そのまま実用するにはなかなかの困難を伴います。
そのため、何らかの高速化は必要になってきます。処理が高速になることは、可能な処理が増えることは当然として、目的とするタスクの精度が高められるという結果を生むことがあります。たとえば、ある時点tの画像と、それからΔt時間後の画像があるとき、その2つの画像でそれぞれ物体検出できたオブジェクトが同じものかどうか、オプティカルフローという方法で追跡を行うことを考えるとΔtが小さいほど、つまり物体検出が速ければ速いほど精度が良くなります。
また、エッジ特有の事情としては、高速化のためにメモリーを消費し過ぎるわけにはいかないということもあります。エッジデバイスにはメモリーが少ないことが多いです。たとえば、深層学習の畳み込み演算の実装ではIm2Colと呼ばれる実装方法がありますが、Im2Colは瞬間的にメモリーの消費量を数倍にはね上げるため、利用には制限がかかります。他にも、メモリーの利用状況があらかじめすべて決定できる必要があるというのは、車載や医療等の分野では機能安全のための要件となっていたりします。」(P.90の枠外上部、第22行~最終行)
(2) 「深層学習コンパイラAI処理のための予測処理最適化ソフトウェア学習フェーズの学習を行うのが学習フレームワークでしたが、予測フェーズの予測、つまりAI処理を行うソフトウェアはどのように作れば良いでしょうか。予測フェーズの処理は学習フェーズの処理の一部分と見なすことができますが、AIの学習を行う環境(学習フェーズ)はスーパーコンピューターのような超高性能環境なのに対して、AI処理を行う環境(予測フェーズ)はエッジ端末などの非力な環境であることが多いです。そのため、学習フェーズで行っていた予測処理を、予測フェーズ用に最適化する必要があります。実は、この最適化を行うソフトウェアが深層学習コンパイラです(図5)。深層学習コンパイラは「推論コンパイラ」「深層学習オプティマイザ」などと呼ばれることもあります。学習済みモデルを効率良く動作させる「コンパイラ」と聞くと、「ソースコードから実行プログラムヘの変換」をイメージされるかもしれませんが、深層学習コンパイラの入力は、ソースコードではなく、深層学習の学習済みモデルです。学習済みのモデルを予測フェーズのハードウェア上で効率良く処理させるのは、実は難しい問題です。AI処理を行う環境は、先述のようにエッジ端末などの低スペック環境であることが多く、学習したモデルを効率的に動作させるためには、適切なモデルの変換やAI処理プログラムの生成が必要になります。従来、このような作業は有識者の手作業が多く必要だったのですが、深層学習コンパイラはこの作業を自動で行ってくれます。」(P.124の第4行~P.125の第1行)
(3) 「深層学習コンバイラの基本最適化の2段階アプローチ深層学習コンパイラは多くありますが、いずれのコンパイラも最適化は以下の2段階のアプローチで行います。・モデル最適化:計算グラフの最適化。ハードウェアヘの依存度が少ない、ニューラルネットワークのモデル構造の最適化深層学習のモデルサイズを劇的に軽量化させる、量子化(モデルのパラメーターを低い計算精度の表現に変換する)や枝刈り(ニューラルネットワークから一部のニューロン間接続を削除する)といった最適化もこの段階で実行される・オペレーター最適化:ハードウェアに依存する部分の多い、ルーブ処理や並列処理等の最適化ハードウェア固有の命令に依存したべクトル演算や、ハードウェアの特性を考慮したキャッシュヒット率向上もこの段階で実施される」(P.125の第8行~第20行)
(4) 「AI処理を行うエンジンを生成する深層学習コンパイラ。世の中にはすでに多くの深層学習コンパイラが存在しており、どのソフトウェアがデファクトスタンダードになるかは、今まさに競争が行われているところです。本節では、オープンソースで開発が行われ幅広い注目を集めている深層学習コンパイラの一つであるTVMを取り上げます。TVMを使うとどういったことができるようになるかから、見ていきましょう。」(P.128の第1行~第6行)
(5) 「TVMにおける注目技術AutoTVM、モデル記述言語Relay、VTA前述のとおり、TVMは大学発のソフトウェアということもあり、最先端の研究成果が積極的に取り入れられています。TVMで使われている技術について、・AutoTVM・モデル記述言語Relay・VTAの3つを取り上げて見ておきましょう。AutoTVMコンパイルを行う際には、処理をどのように分割するかなど、さまざまなチューニングポイントがあります。AutoTVMはこのチューニングを自動で実行する機能です。TVMコミュニティではTensorRTやOpenVINO、TensorflowXLAよりもTVMが高速であるというレポートが多数されていますが、これはAutoTVM機能のお陰と言っても過言ではありません(図2)。従来は、より高速にAI処理を行おうとするとどうしても全自動とはいかず、最終的には(職人のような方々の)人手によるチューニング作業が必要でした。AutoTVMはこのチューニングの箇所に機械学習を用いることで、自動で「最適なコード」を発見してくれます。この機能からTVMは「Learning-based Deep Learning Compiler」とも呼ばれています。」(P.130の第1行~最終行)
(6) 「モデル記述言語RelayTVMの内部では、深層学習のニューラルネットワークを記述するための中間言語Relayが実装されています。Relayは関数型の言語であり、関数の合成でニューラルネットワークのニューロン間の結合を表現します。これにより、型推論によるモデルの型チェックや、再帰関数によるモデルの直接的な表現などが可能になっています。このRelayですが、「学習」も意識して設計されているのが特徴です。実際、将来的にはTVMは学習フェーズに利用可能になるとされています。TVMはさまざまなハードウェア向けにコンパイルできるので、TVMを学習に利用できるとなると、FPGAやASICを用いた学習も行えるようになります。ここまでいくと、GoogleのTPU環境のような機械学習環境が、オープンソースソフトウェアと専用チップで容易に構築できる時代になりそうです。ただ、学習フェーズでのコンパイラ利用の話は本記事の範疇外となるので、今は置いておきましょう。Relayがもたらすがもたらす可能性TVMではRelayを用いることで、学習済みモデルの量子化や、ヘテロデバイス構成(さまざまなハードウェアが混在した構成)での推論実行などの、おもしろい機能も利用可能になります。量子化とは、入力の深層学習モデルに対して、たとえば32bit浮動小数点数で表現されているパラメーターを、8bit整数などのより低い計算精度の表現に変換することです。量子化を行うと推論の認識精度は下がることが多いですが、メモリー使用量や推論性能が向上するので、エッジデバイス等に組み込む際には重要な機能となります。」(P.131の第8行~第29行)
2 引用発明、引用文献記載事項
折りたたみ中(クリックで表示)
(1) 引用発明の認定
ア 上記1の(2)の下線部の記載から、深層学習コンパイラとは、予測処理を予測フェーズ用すなわちAI処理を行う環境であるエッジ端末などの非力な環境に最適化するソフトウェアであり、深層学習コンパイラの入力は深層学習モデルであること、AI処理を行う環境としてのエッジ端末で、学習したモデルを効率的に動作させるためには、適切なモデルの変換やAI処理プログラムの生成が必要になること、深層学習コンパイラはこの作業を自動的に行ってくれること、がいえる。
そうすると、深層学習コンパイラの出力は生成されたAI処理プログラムであり、AI処理を行うエッジ端末に最適化されたプログラムであるといえ、これを踏まえると、上記1の(2)の下線部の記載から、引用文献1には以下の事項が記載されているものといえる。
「深層学習モデルを入力とする深層学習コンパイラであって、学習したモデルを効率的に動作させるための適切なモデルの変換やAI処理プログラムの生成を行う、前記深層学習コンパイラにより生成される、AI処理を行うエッジ端末に最適化して予測処理を行うAI処理プログラム」
イ 上記1の(3)の下線部の記載から、深層学習コンパイラは最適化として、計算グラフの最適化を行うモデル最適化を行うこと、深層学習のモデルサイズを軽量化させたり、量子化(モデルのパラメーターを低い計算精度の表現に変換する)や枝刈り(ニューラルネットから一部のニューロン間接続を削除する)といった最適化もこのモデル最適化の段階で実行すること、ループ処理や並列処理などの最適化を行うオペレータ最適化とを行うこと、がいえる。
そうすると、上記1の(3)の下線部の記載から、引用文献1には以下の事項が記載されているといえる。
「深層学習コンパイラでは、計算グラフの最適化を行うものであり、深層学習のモデルサイズを軽量化させたり、量子化(モデルのパラメーターを低い計算精度の表現に変換する)や枝刈り(ニューラルネットから一部のニューロン間接続を削除する)といった最適化もこの段階で実行する、モデル最適化と、ループ処理や並列処理などの最適化を行うオペレータ最適化による、最適化を行うこと」
ウ 上記1の(4)~(6)の下線部の記載から、
・深層学習コンパイラの一つであるTVMで使われている技術について、AutoTVMと、モデル記述言語Relayがあること、
・AutoTVMは、コンパイルを行う際には、処理をどのように分割するかなどのチューニングポイントについて、このチューニングを自動で実行するものであること、従来はより高速にAI処理を行おうとするとチューニング作業が必要であったが、AutoTVMはこのチューニングの箇所に機械学習を用いることで、自動で最適なコードを発見してくれること、
・TVMの内部では、深層学習のニューラルネットワークを記述するためのモデル記述言語Relayが実装されており、Relayはニューラルネットの、ニューロン間の結合を表現し、TVMではRelayを用いることで、学習済みモデルの量子化(入力の深層学習モデルに対して、例えば32bit浮動小数点数で表現されているパラメーターを、8bit整数などのより低い計算精度の表現に変換すること)が利用可能となり、メモリー使用量が向上するので、エッジデバイス等に組み込む際には重要な機能となること
がいえる。
そうすると、上記1の(4)~(6)の下線部の記載から、引用文献1には以下の事項が記載されているといえる。
「深層学習コンパイラの一つであるTVMにおいて、コンパイルを行う際に処理をどのように分割するかなどのチューニングポイントについて、より高速なAI処理を行うためのチューニングを自動で行い最適なコードを発見するAutoTVMと、ニューラルネットのニューロン間の結合を表現し、学習済みモデルの量子化(入力の深層学習モデルに対して、例えば32bit浮動小数点数で表現されているパラメーターを、8bit整数などのより低い計算精度の表現に変換すること)行うことで、メモリー使用量を向上させ、エッジデバイス等に組み込む際には重要な機能となるRelayと、を備えること」
エ 上記ア~ウを総合すると、引用文献1には以下の発明(以下、引用発明という)が記載されているものと認められる。
(引用発明)
ab 深層学習コンパイラにより生成される、AI処理を行うエッジ端末に最適化して予測処理を行うAI処理プログラムであって、深層学習コンパイラは、深層学習モデルを入力とし、学習したモデルを効率的に動作させるための適切なモデルの変換やAI処理プログラムの生成を行い、(上記ア)
cde1 深層学習コンパイラでは、計算グラフの最適化を行うものであり、深層学習のモデルサイズを軽量化させたり、量子化(モデルのパラメーターを低い計算精度の表現に変換する)や枝刈り(ニューラルネットから一部のニューロン間接続を削除する)といった最適化もこの段階で実行する、モデル最適化と、ループ処理や並列処理等の最適化を行うオペレータ最適化による、最適化を行い、(上記イ)
cde2 深層学習コンパイラの一つであるTVMにおいて、
コンパイルを行う際に処理をどのように分割するかなどのチューニングポイントについて、より高速なAI処理を行うためのチューニングを自動で行い最適なコードを発見するAutoTVMと、
ニューラルネットのニューロン間の結合を表現し、学習済みモデルの量子化(入力の深層学習モデルに対して、例えば32bit浮動小数点数で表現されているパラメーターを、8bit整数などのより低い計算精度の表現に変換すること)を行うことで、メモリー使用量を向上させ、エッジデバイス等に組み込む際には重要な機能となるRelayと、を備える、(上記ウ)
ab 深層学習コンパイラにより生成されるAI処理プログラム。
(2) 引用文献1の記載事項
また、上記1の(1)のとおり、引用文献1には、「[エッジで極める]深層学習推論の高速化 限りある演算能力を駆使し、重い演算を動かす技術」という章において、
「エッジデバイスでは通常重たい処理が難しい」こと、その理由として、
「一般の深層学習フレームワークを載せるだけの容量がなかったり、載せて実行できても遅かったりと、そのまま実用するにはなかなかの困難を伴」うこと、
「そのため、何らかの高速化は必要にな」ること、
「処理が高速になることは」「目的とするタスクの精度が高められるという結果を生む」こと、その例として、
「たとえば、ある時点tの画像と、それからΔt時間後の画像があるとき、その2つの画像でそれぞれ物体検出できたオブジェクトが同じものかどうか、オプティカルフローという方法で追跡を行うことを考えるとΔtが小さいほど、つまり物体検出が速ければ速いほど精度が良くな」ることについての記載があることから、
引用文献1には、以下の事項が記載されていると認められる(以下、「引用文献1記載事項1」という)。
(引用文献1記載事項1)
「深層学習推論の実行においては、エッジデバイスでは通常重たい処理が難しいため、深層学習フレームワークを実行するための高速化が必要になること、処理が高速になることで、目的とするタスクの精度が高められること、例えばある時点tの画像と、それからΔt時間後の画像があるとき、その2つの画像でそれぞれ物体検出できたオブジェクトが同じものかどうか、オプティカルフローで追跡を行うことを考えると、Δtが小さいほど、つまり物体検出が速ければ速いほど精度が良くなること」
さらに、上記1の(1)のとおり、引用文献1には、「[エッジで極める]深層学習推論の高速化 限りある演算能力を駆使し、重い演算を動かす技術」という章において、
「エッジ特有の事情としては、高速化のためにメモリーを消費し過ぎるわけにはいかない」こと、「エッジデバイスにはメモリーが少ない」こと、したがって、「たとえば、深層学習の畳み込み演算の実装ではIm2Colと呼ばれる実装方法があるが、Im2Colは瞬間的にメモリーの消費量を数倍にはね上げるため、利用には制限がかかる」こと、についての記載があることから、引用文献1には、以下の事項が記載されていると認められる(以下、「引用文献1記載事項2」という)。
(引用文献1記載事項2)
「エッジ特有の事情として、エッジデバイスにはメモリーが少ないことから高速化のためにメモリーを消費しすぎるわけにはいかず、たとえば、深層学習の畳み込み演算の実装ではIm2Colと呼ばれる実装方法があるが、Im2Colは瞬間的にメモリーの消費量を数倍にはね上げるため、利用には制限がかかること」
3 本願発明と引用発明との対比
本願発明と上記引用発明とを対比する。
(1) 引用発明の構成abにおける「AI処理プログラム」は、深層学習モデルを入力とし、学習したモデルを効率的に動作させるための適切なモデルの変換やAI処理プログラムの生成を行う深層学習コンパイラにより生成され、AI処理を行うエッジ端末に最適化されたものである。
ここで、引用発明の構成abにおける「深層学習コンパイラ」は、入力された深層学習モデルについて、最適化を行うところ、チューニングをして最適なコードを発見するための処理(すなわち最適化)を施される部分とは、最適化の必要性がある部分ないし最適化の余地がある部分であること、最適化を行った結果得られる部分はやはり深層学習モデルというプログラムの一部であることは、およそプログラム処理、及びプログラムの最適化技術における技術常識ないし技術的前提にすぎない。
そうすると、引用発明の「AI処理プログラム」に含まれる、入力された深層学習モデルのうち、上記の最適化の必要性ないし最適化の余地のある部分、当該部分に対して最適化を行った結果得られた部分は、それぞれ、本願発明の構成A、Bの「第1対象」、「第1対象の最適化対象」に対応する。
また、引用発明の「AI処理プログラム」は、全体として最終的に予測処理を行う場合には、本願発明の構成Bを踏まえた構成Aの「プロセスにおける第1対象」の「最適化対象で」処理を行うような「プロセス」である点で共通する。
さらに、引用発明の「AI処理プログラム」は「方法」を行う点で、本願発明の構成Fの「視覚探索方法」と共通する。
ただし、実行される「プロセス」および発明を特定する「方法」に関して、本願発明は、「第1対象の最適化対象」が「視覚探索を行う」ような「視覚探索プロセス」である「視覚探索方法」であるのに対して、引用発明は、深層学習コンパイラによる最適化を行った結果得られた部分で行うAI処理について、視覚探索を行うとの特定がなされておらず、引用発明の「AI処理プログラム」全体は視覚探索プロセスであることや視覚探索方法を行うものであることの特定がなされていない点で相違する。
(2) (1)においても説明したが、引用発明の構成cde1、cde2において、チューニングをして最適なコードを発見するための処理(すなわち最適化)を施される部分は、最適化の必要性がある部分ないし最適化の余地がある部分であること、この部分は最適化の必要のない場所より処理量が多い部分が含まれており、処理量が多いのであればこれに従って電力消費も大きくなる部分であること、最適化の必要な部分の処理を削減することが最適化の1つの工程であり、これに伴って電力消費も小さくなること、は、およそプログラム処理、及びプログラムの最適化技術における技術的常識ないし技術的前提にすぎない。
そうすると、引用発明において、チューニングにより最適化を施される部分と、それ以外の部分が、本願発明における構成Cのうち、「電力消費が大き」い「プログラムとアルゴリズムの少なくとも一つを含」む「第1対象」と、第1対象より電力消費が少ない「プログラムとアルゴリズムの少なくとも一つを含」む「第2対象」に、それぞれ対応するといえる。
さらに、引用発明の構成cde1にあるように、最適化を施した後は、ループ処理や並列処理等の最適化が図られることで演算速度を速くすること、モデル最適化においてモデルサイズを軽量化させたりニューラルネットから一部のニューロン間接続を削減することで、削減されたニューロン間での演算回数を減らすこと、構成cde2にあるように、学習済モデルの量子化を行うことで、例えば32bit浮動小数点演算から8bit整数演算のような低い計算精度の表現に変換することで、高速化を行ったり演算処理量を減らすこと、ができるといえる。
これは、引用発明の構成cde1、cde2による最適化が、本願発明の構成Dの「最適化対象の演算速度が前記第1対象の演算速度より速く、および/または、単位時間あたりの前記最適化対象の演算総回数が、前記単位時間あたりの前記第1対象の演算総回数より少なく」することを実現するものであること、引用発明においてチューニングにより最適化を施される部分が、構成E1の「前記最適化対象は、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化して得られる対象を含む」ものといえる。
ここで、本願発明は構成E1、E3のいずれかを含んでいることを特定しているにすぎない。
(3) さらに、引用発明は、構成cde1に示されるように、枝刈り(ニューラルネットから一部のニューロン間接続を削減する)ことを含むモデル最適化を行うことから、本願発明の構成E4のうち、「前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化することは、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの第1深層学習モデルに対し、ネットワーク構造クリッピング」「を行って、モデルパラメータが減少した第1深層学習モデルを得ること」に相当する処理を行うといえる。
また、本願発明の構成E4は、上記「第1の深層学習モデルに対し」「ネットワーク構造クリッピングまたは知識蒸留最適化処理を行」うことを特定するにすぎない、すなわち、「ネットワーク構造クリッピング」と「知識蒸留最適化」の少なくとも一方を行うことを特定するにすぎない。
そうすると、引用発明の構成cde1は、本願発明の構成E4に相当する構成を含むといえる。
(4) 以上(1)~(3)を踏まえて、本願発明と引用発明とを対比すると、両者の一致点、相違点は以下のとおりである。
(一致点)
A’ プロセスにおける第1対象を決定することと、
B’ 前記第1対象の最適化対象で処理を行うことと、を含み、
C’ 前記プロセスにおける前記第1対象の電力消費が、前記プロセスにおける第2対象の電力消費より大きく、前記第1対象がプログラムとアルゴリズムの少なくとも一つを含み、前記第2対象がプログラムとアルゴリズムの少なくとも一つを含み、
D 前記最適化対象の演算速度が前記第1対象の演算速度より速く、および/または、単位時間当たりの前記最適化対象の演算総回数が、前記単位時間当たりの前記第1対象の演算総回数より少なく、
E1 前記最適化対象は、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化して得られる対象を含み、
E4 前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化することは、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの第1深層学習モデルに対し、ネットワーク構造クリッピングを行って、モデルパラメータの数が減少した第1深層学習モデルを得ることを含むことを特徴とする、
F’ 処理方法。
(相違点)
実行される「プロセス」および発明を特定する「方法」に関して、本願発明は、「第1対象の最適化対象」が「視覚探索を行う」ような「視覚探索プロセス」を行う「視覚探索方法」であるのに対して、引用発明は、深層学習コンパイラによる最適化を行った結果得られた部分で行うAI処理について、視覚探索を行うとの特定がなされておらず、引用発明の「AI処理プログラム」全体は視覚探索プロセスであることや視覚探索方法を行うものであることの特定がない点。
4 相違点に対する検討及び判断
上記相違点について検討する。
例えば引用文献1記載事項1にあるように、深層学習を用いたAI処理プログラムにおいて、高速化が必要になる処理の例として、ある時点tの画像とそれからΔt時間後の画像から、2つの画像のそれぞれで物体検出できたオブジェクトの追跡を行う場合における物体検出、すなわち、視覚探索処理における物体検出があることは広く知られている。
そうすると、引用発明のAI処理プログラム全体において、深層学習コンパイラによる最適化を行う部分を、視覚探索処理のうち物体検出を行う部分とし、AI処理プログラム全体を視覚探索処理を行うプログラムとすることは、当業者ならば容易になしえたものといえる。
このとき、上記視覚探索処理を行うプログラムは本願発明の構成Fの「視覚探索方法」を行うものであり、視覚探索のうち特に物体検出を行う部分は本願発明の構成Aの「視覚探索プロセスにおける第1対象」であり、当該物体検出を行う部分を最適化したものが本願発明の構成Bの「視覚探索を行う」「第1対象の最適化対象」に他ならない。
なお、引用発明の構成cde1において、モデル最適化に含まれる技術として、量子化や枝刈りと同様に、モデルサイズを軽量化することが含まれているところ、例えば、
山本ほか、ディープラーニングのモデル軽量化技術、Okiテクニカルレビュー、第223号、Vol.86,No.1、2019年5月、P.24-27、URL:https://www.oki.com/jp/otr/2019/n233/pdf/otr233_r11.pdf
のP.24の表1や
https://www.slideshare.net/tkatojp/iclr2018iclr2018pfn
https://note.com/imaimai/n/nae4bc0776c74
に記載されるように、モデル軽量化ないしモデル圧縮と称する技術として、引用発明の構成cde1に示される量子化(Quantization)や枝刈り(Pruning)と並んで、知識蒸留(Distillation)があることは、本件出願当時のニューラルネットのモデル最適化技術における技術常識にすぎず、このような技術常識を踏まえれば、引用発明のモデル最適化として本願発明の構成E4のような知識蒸留最適化を含めることは当業者が適宜なしうる設計的選択事項にすぎない。
さらに、引用文献1記載事項2の内容から、引用文献1には深層学習の畳み込み演算に用いられるIm2Colは常時スケジュールされるようにしたのではメモリーの消費量がはねあがることから、最適化の対象となるプログラムまたはアルゴリズムのスケジュールの最適化をする必要があることは示唆されているといえる。
そうすると、引用発明において、引用文献1記載事項2を踏まえて、最適化の対象となるプログラムまたはアルゴリズムのスケジュールの最適化をすることで、本願発明の構成E3の「前記最適化対象は」「前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つのスケジューリングを最適化して得られる対象を含」む構成をとることは当業者ならば容易になしえたものといえる。
5 小括
以上のとおり、本願発明は、引用発明および例えば引用文献1記載事項1のような周知技術に基づいて、当業者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により、特許を受けることができない。
6 審判請求人の主張について
審判請求人は、令和4年12月6日付け意見書の「2 拒絶の理由1(進歩性)に対して」の「(1)請求項1について」において、以下のとおり主張している。
「(1)請求項1について審査官殿は、引用発明1(引用文献1:飯塚健太郎ほか、機械学習時代のソフトウェア開発[ゲームアプリ/インフラ/エッジ編]、日本、株式会社技術評論社、2019.08.22発行、pp.90-91,119-131)および引用発明2(引用文献2:国際公開2019/127227号)に基づいて、本願請求項1に係る発明の進歩性を否定されています。しかしながら、本願請求項1に係る発明と引用発明1,2とを対比すると、本願請求項1に係る発明は、「前記最適化対象は、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化して得られる対象を含み」、または、「前記最適化対象は、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化し、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つのスケジューリングを最適化して得られる対象を含み」、「前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化することは、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの第1深層学習モデルに対し、ネットワーク構造クリッピングまたは知識蒸留最適化処理を行って、モデルパラメータの数が減少した第1深層学習モデルを得ることを含む」というものであるのに対し、引用発明1,2はこのように構成されたものではない点で、本願請求項1に係る発明は引用発明1,2とは構成が異なります。(中略)しかし、引用発明1は、深層学習フレームワークの実行に対する最適化が検出頻度についての最適化に限るものであり、「オプティカルフロー」というアルゴリズムの内容についての最適化に関与しておらず、特に、「前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの第1深層学習モデルに対し、ネットワーク構造クリッピングまたは知識蒸留最適化処理を行って、モデルパラメータの数が減少した第1深層学習モデルを得る」との最適化手段については言及しておりません。(中略)また、引用発明1,2には、第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化して得られる対象、または、第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化し、第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つのスケジューリングを最適化して得られる対象を含む最適化対象で視覚探索を行い、第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化することが、第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの第1深層学習モデルに対し、ネットワーク構造クリッピングまたは知識蒸留最適化処理を行って、モデルパラメータの数が減少した第1深層学習モデルを得ることを含むという技術的思想は開示も示唆もされていません。したがいまして、このような引用発明1,2を組み合わせたとしても、本願請求項1に係る発明を構成することはできるはずがありません。さらに、上記構成上の相違により、本願請求項1に係る発明は、深層学習モデルの構造を単純化し、それに係るモデルパラメータの数を減少させ、最適化された深層学習モデルを用いて目標検出を行うプロセスにおいて、計算量を減少させることができ、これにより、動作速度を向上させ、電力消費を減少させることができるという引用発明1,2と比較した有利な効果を奏します。よって、本願請求項1に係る発明は、引用発明1,2に基づいて当業者が容易に想到し得るものでは決してありません。」
上記主張について検討する。
引用発明は構成cde1にあるように、計算グラフの最適化を行うモデル最適化とループ処理や並列処理等の最適化を行うオペレータ最適化を行うものであるところ、ループ処理や並列処理とはプログラムの最適化を行うものであり、本願発明の構成E1、E3、E4の「第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化」するものといえる。
また、引用発明は構成cde1にあるように、枝刈り(ニューラルネットから一部のニューロン間接続を削減する)ことを含むモデル最適化を行うことから、本願発明の構成E4のうち「前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの内容を最適化することは、前記第1対象に含まれるプログラムとアルゴリズムのうちの少なくとも一つの第1深層学習モデルに対し、ネットワーク構造クリッピング」「を行って、モデルパラメータが減少した第1深層学習モデルを得ること」に相当する処理を行うといえる。ここで、本願発明の構成E4は、上記「第1の深層学習モデルに対し」「ネットワーク構造クリッピングまたは知識蒸留最適化処理を行」うこと、すなわち、「ネットワーク構造クリッピング」と「知識蒸留最適化」の少なくとも一方を行うことを特定するにすぎない以上、引用発明は「ネットワーク構造クリッピング」を行う上記構成E4を含むものといえる。
さらに、上記3の(1)、(2)のとおり、引用発明において、深層学習モデルの構造を単純化し、それに係るモデルパラメータの数を減少させ、最適化された深層学習モデルを用いるプロセスにおいて、演算速度を速くすることができたり、計算量を減少させることができるのであるから、これにより、本願発明同様に、動作速度を向上させ、電力消費を減少させることができることは明らかである。
以上のとおり、意見書の主張は採用できない。
第5 むすび
以上のとおり、本願発明は、引用発明および例えば引用文献1記載事項1のような周知技術に基づいて当業者が容易に発明をすることができたものであり、特許法第29条第2項の規定により特許を受けることができない。
したがって、本願は、その余の請求項について検討するまでもなく、拒絶をすべきものである。
よって、結論のとおり審決する。
審決本文(J-PlatPat)
J-PlatPatの審決検索トップを開きます。番号入力で「審判番号」を選び、下の番号を貼り付けて検索してください。
2022-005002