特許拒絶査定不服審判
2023-010634
ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、及び、プログラム
- 審判番号
- 2023-010634
- 法域
- 特許
- 審判種別
- 拒絶査定不服審判(拒絶査定不服の審決)
- 出願番号
- 特願2021-079516外部サイト(J-PlatPat)へ移動します
- 請求日
- 2023年06月27日
- 審決日
- 2024年08月06日
- 公報発行日
- 2024年09月27日
- 結論
- 原査定取消(特許/登録すべき)
- 当事者
- 【請求人】LeapMind株式会社
- 【請求人代理人】山川 茂樹
- 分類
- P18 .537-WY (G06F) / P18 .121-WY (G06F) / P18 .03 -WY (G06F)
- 条文(本文から自動抽出・参考)
- 特許法第36条第6項第1号、特許法第36条第6項第2号、特許法第29条第2項
- データ出所
- 審決公報(XML)
事件の表示
特願2021- 79516「ニューラルネットワーク処理装置、ニューラルネットワーク処理方法、及び、プログラム」拒絶査定不服審判事件〔令和 3年 7月29日出願公開、特開2021-108230、請求項の数(13)〕について、次のとおり審決する。
結論
結 論
原査定を取り消す。
本願の発明は、特許すべきものとする。
理由
理 由
第1 手続の経緯
本願は、2019(令和元年)年9月10日を国際出願日(国内優先権主張 平成30年10月10日)とする特願2020-504046号(以下、「原出願」という)の一部を令和3年5月10日に出願したものであって、その手続の経緯は以下のとおりである。
令和3年 5月10日 :上申書
令和4年 3月10日付け:拒絶理由通知書
令和4年 7月27日 :意見書、手続補正書の提出
令和4年10月17日付け:拒絶理由(最後)通知書
令和5年 1月 4日 :意見書、手続補正書の提出
令和5年 3月10日付け:補正の却下の決定、拒絶査定(原査定)
令和5年 6月27日 :審判請求書、手続補正書の提出
令和5年 9月22日付け:前置報告
令和6年 4月 2日付け:拒絶理由通知書
令和6年 6月 6日 :応対記録
令和6年 6月10日 :意見書、手続補正書の提出
なお、令和6年6月6日付け応対記録は、令和6年5月28日に、請求人より補正書案及び意見書案の確認を依頼され、合議体が当該補正書案及び意見書案を検討し、令和6年5月31日に、請求人に対して一部補正漏れを除き拒絶理由は解消した旨、及び下記第2の5の点で分割要件を満たしておらず出願日は遡及されない旨を伝え、令和6年6月6日に、請求人より意見書において分割要件を満たしている旨を主張するとの連絡があったことを記録したものである。
第2 出願日の遡及について
本願は、特願2020-504046号に基づく分割出願である。ここで、本願が、特願2020-504046号の出願日にしたものとみなされるには、本願の明細書、特許請求の範囲及び図面に記載された事項が、原出願の国際出願日及び分割直前における明細書、特許請求の範囲又は図面(以下、原出願明細書等と呼ぶ。)に記載された事項の範囲内でなければならないため、以下、この点について検討する。
1 本願の特許請求の範囲(請求項1)の記載
令和6年6月10日付け手続補正書の特許請求の範囲の請求項1(以下、単に「請求項1」という。)は、次のとおりのものである。
「【請求項1】
ニューラルネットワークに与えられる画像データと第1重みとの第1積和演算を含む前記ニューラルネットワークの第1畳み込み演算を行う演算部と、
前記第1畳み込み演算の第1演算結果が前記演算部の演算結果として入力される処理部であり、前記演算結果と、当該演算結果に対して所定の変換および量子化を含む変換-量子化処理を行ったときに得られる処理結果との関係を示すデータを用いて、前記第1演算結果に応じた前記処理結果を取得し、取得した前記処理結果を第1処理結果として出力する処理部と、を備え、
前記演算部は、前記第1処理結果と第2重みとの第2積和演算を含む前記ニューラルネットワークの第2畳み込み演算を行い、
前記処理部には、前記第2畳み込み演算の第2演算結果が前記演算部の前記演算結果として入力され、
前記処理部は、前記データを用いて、前記第2演算結果に応じた前記処理結果を取得し、取得した前記処理結果を第2処理結果として出力し、
前記変換-量子化処理に含まれる前記量子化は、前記画像データよりもビット精度を削減する量子化である
ことを特徴とするニューラルネットワーク処理装置。」
(下線は、強調のため当審が付与した。これ以降の下線についても同様。)
2 令和3年5月10日付け上申書における主張
「 各請求項に記載された特徴は、原出願の出願当初の明細書等の記載、例えば、段落0010-0012の他、0020、0026、0035-0038、0082-0089、0095-0098、図2、図7-図10等の記載に基づくもので、原出願の出願当初の明細書および特許請求の範囲に記載されており、原出願の明細書等に記載された事項の範囲内であることは明らかです。」
3 原出願明細書等の記載
請求項1に係る発明において、「前記変換-量子化処理における量子化は、前記入力信号よりもビット精度を削減して量子化する」ことについて、原出願の国際出願日及び分割直前における明細書及び図面には、次の記載がある。なお、原出願の国際出願日及び分割直前における明細書及び図面は同一である。
ア「【0010】
上述した課題を解決するために、本発明に係るニューラルネットワーク処理装置は、ニューラルネットワークに与えられる入力信号を記憶する第1メモリと、前記ニューラルネットワークの重みを記憶する第2メモリと、前記入力信号と前記重みとの積和演算を含む前記ニューラルネットワークの畳み込み演算を行う演算部と、前記演算部による畳み込み演算の演算結果を入力とし、入力された値を予め規定されている条件に基づいて変換し、変換したデータのビット精度を削減して量子化する変換-量子化処理の結果を出力としたとき、前記変換-量子化処理の入力と出力とを互いに関連付けたテーブルを記憶する第3メモリと、前記テーブルを参照して、前記演算部による演算結果に対応する前記変換-量子化処理の出力を取得する処理部とを備えることを特徴とする。
【0011】
上述した課題を解決するために、本発明に係るニューラルネットワーク処理方法は、ニューラルネットワークに与えられる入力信号を第1メモリに記憶する第1ステップと、前記ニューラルネットワークの重みを第2メモリに記憶する第2ステップと、前記入力信号と前記重みとの積和演算を含む前記ニューラルネットワークの畳み込み演算を行う第3ステップと、前記第3ステップでの畳み込み演算の演算結果を入力として、入力された値を予め規定されている条件に基づいて変換し、変換したデータのビット精度を削減して量子化する変換-量子化処理の結果を出力としたとき、前記変換-量子化処理の入力と出力とを互いに関連付けたテーブルを第3メモリに記憶する第4ステップと、前記テーブルを参照して、前記第3ステップでの演算結果に対応する前記変換-量子化処理の出力を取得する第5ステップとを備えることを特徴とする。
【0012】
上述した課題を解決するために、本発明に係るニューラルネットワーク処理プログラムは、コンピュータに、ニューラルネットワークに与えられる入力信号を第1メモリに記憶する第1ステップと、前記ニューラルネットワークの重みを第2メモリに記憶する第2ステップと、前記入力信号と前記重みとの積和演算を含む前記ニューラルネットワークの畳み込み演算を行う第3ステップと、前記第3ステップでの畳み込み演算の演算結果を入力として、入力された値を予め規定されている条件に基づいて変換し、変換したデータのビット精度を削減して量子化する変換-量子化処理の結果を出力としたとき、前記変換-量子化処理の入力と出力とを互いに関連付けたテーブルを第3メモリに記憶する第4ステップと、前記テーブルを参照して、前記第3ステップでの演算結果に対応する前記変換-量子化処理の出力を取得する第5ステップとを実行させることを特徴とする。
【0013】
本発明によれば、畳み込み演算の演算結果を予め規定された条件に基づいて変換し、変換したデータのビット精度を削減して量子化する変換-量子化処理の入力と出力とを互いに関連付けたテーブルを参照して、畳み込み演算の演算結果に対応する変換-量子化処理の出力を取得するので、組み込み用のハードウェアを使用した場合であってもニューラルネットワークの処理速度の低下を抑制することができる。」
イ「【0020】
入力バッファ10は、CNNに与えられる入力信号を記憶するメモリである。より詳細には、入力バッファ10は、後述する主記憶装置103によって実現され、この入力バッファ10には、例えば、外部から与えられた画像データなどが記憶される。入力バッファ10に与えられる入力信号は、予め前処理を行った画像データであってもよい。前処理の例としては、モノクロ変換、コントラスト調整、および輝度調整などが挙げられる。また、入力信号は、CNN処理装置1において予め設定されているCNNモデルに応じて設定されたビット深度となるように縮小されていてもよい。
【0021】
入力バッファ10に与えられる入力信号の値としては、例えば、32ビットや16ビット精度の浮動小数点の配列で表現された小数点を含む値や、これらの値を予め設定されたビット数表現に削減した値が用いられる。
【0022】
重みバッファ11は、CNNの重みを記憶するメモリである。より詳細には、重みバッファ11は、後述する主記憶装置103によって実現され、重みバッファ11には、CNN処理装置1の外部に設置されたサーバ(図示しない)や記憶部16などに予め記憶されているCNNの重みパラメータがロードされる。本実施の形態では、重みの値として、32ビットや16ビット精度の浮動小数点の配列で表現された小数点を含む値や、これらの値を予め設定されたビット数表現に削減した値が用いられる。
【0023】
畳み込み演算部12は、入力バッファ10に記憶されている入力信号と、重みバッファ11に記憶されている重みとの積和演算を含むCNNの畳み込み演算を行う。より詳細には、畳み込み演算部12は、入力バッファ10と重みバッファ11とからそれぞれ入力信号と重みとを読み出して、CNN処理装置1において予め設定されているCNNモデルを構成する畳み込み層に応じた畳み込み演算を行う。畳み込み演算部12が出力する演算結果は、演算結果バッファ13に供給される。」
ウ「【0025】
処理部14は、記憶部16に記憶されているテーブル160を参照して、演算結果バッファ13から読み出した畳み込み演算の結果に対し、変換および量子化の処理(以下、「変換-量子化処理」ということがある。)を行った結果を出力する。より詳細には、処理部14は、演算結果バッファ13に記憶されている畳み込み演算の結果を読み出し、変換-量子化処理の入出力関係が記憶されているテーブル160を参照して、変換-量子化処理の入力に対応する値を取得して出力する。
【0026】
ここで、畳み込み演算の結果の変換は、例えば、ReLUなどの活性化関数の適用や、BNなどを用いた正規化を含み、畳み込み演算の演算結果を予め規定された条件に基づいて変換することをいう。活性化関数は、畳み込み演算の演算結果を決定する。
【0027】畳み込み演算の結果に対して適用するReLUは、畳み込み演算の結果が負であれば0に、正であれば畳み込み演算の結果を1次変換した値に変換させるランプ関数である。このように、ReLUなど畳み込み演算の演算結果を変換する処理の入出力関係は予め規定されている。
【0028】一方、畳み込み演算の演算結果がReLUなどを介して変換された値は、演算負荷の軽減のためにビット精度を削減して量子化される。データの量子化は、例えば、四捨五入、切り上げ、切り捨て、最近接丸めなどよく知られた端数処理を含み、ReLUを介して畳み込み演算の結果が変換された値、例えば小数点を含む値を整数化するなどして制限をかけることをいう。」
エ「【0035】
図2に示すように、CNN処理装置1は、例えば、バス101を介して接続されるプロセッサ102、主記憶装置103、通信インターフェース104、補助記憶装置105、入出力装置106を備えるコンピュータと、これらのハードウェア資源を制御するプログラムによって実現することができる。
【0036】主記憶装置103には、プロセッサ102が各種制御や演算を行うためのプログラムが予め格納されている。プロセッサ102と主記憶装置103とによって、図1に示した畳み込み演算部12および処理部14を含むCNN処理装置1の各機能が実現される。
【0037】主記憶装置103によって、図1で説明した入力バッファ10、重みバッファ11、演算結果バッファ13、および出力バッファ15が実現される。
【0038】
通信インターフェース104は、通信ネットワークNWを介して各種外部電子機器との通信を行うためのインターフェース回路である。通信インターフェース104を介して、CNN処理装置1が用いる画像データなどの入力信号や、重みを、外部のサーバなどから受信してもよい。」
オ「【0082】
第2の実施の形態では、変換-量子化処理の出力が単調増加または単調減少する場合において、閾値処理部142は、変換-量子化処理の入力に対して予め設定されている閾値との比較を行う場合について説明した。これに対して、第3の実施の形態では、変換-量子化処理の出力が単調増加する入力の区間と、単調減少する入力の区間とを識別する分割情報に基づいて、変換-量子化処理の入力の値が属するいずれかの入力の区間内のみで閾値処理を行う。以下、第1および第2の実施の形態と異なる構成を中心に説明する。
【0083】
[処理部の機能ブロック]
処理部14は、入力判定部140、出力取得部141、および閾値処理部(第2閾値処理部)142を備える。
入力判定部140は、変換-量子化処理の出力が単調増加する入力の区間と、単調減少する入力の区間とを識別する分割情報に基づいて、前記演算部による畳み込み演算の演算結果Xの属する前記変換-量子化処理の入力の区間を判定する。
【0084】
閾値処理部142は、畳み込み演算部12による演算結果Xと、変換-量子化処理の入力に対して予め設定されている複数の閾値とを入力判定部140によって判定された入力の区間内で比較して、演算結果Xに対応する閾値を出力する。
【0085】
出力取得部141は、記憶部16に記憶されたテーブル160Bを参照し、閾値処理部142により出力された閾値に対応する変換-量子化処理の出力Yを取得する。
【0086】
記憶部16はテーブル160Bを記憶する。図11に示すように、テーブル160Bには、変換-量子化処理の出力が単調増加する入力の区間と、単調減少する入力の区間とを識別する分割情報と、変換-量子化処理の入力に対して予め設定されている複数の閾値と、複数の閾値のそれぞれに対応する変換-量子化処理の出力とを互いに関連付けたデータが記憶されている。
【0087】
分割情報は、例えば、活性化関数などの変換処理を介した畳み込み演算の演算結果をさらに量子化した出力が、2次関数のように単調増加する区間と単調減少する区間で構成される場合に、その単調増加と単調減少とが切り替わる頂点を示す情報などを含む。
【0088】
図11の例に示すように、変換-量子化処理の入出力の関係において、入力X=6を境界として出力Yが単調増加および単調減少する。
【0089】
図11の例において、例えば、畳み込み演算の演算結果X(入力X)が「6」未満(X<6)であるとする。この場合、入力判定部140は、変換-量子化処理への入力Xは単調増加する入力の区間に属すると判定する。」
カ「【0095】
より詳細には、入力判定部140は、変換-量子化処理の出力が単調増加する入力の区間と、単調減少する入力の区間とを識別する分割情報に基づいて、変換-量子化処理への入力X、すなわち、畳み込み演算の演算結果Xが属する入力の区間を判定する。
【0096】
その後、閾値処理部142は、畳み込み演算の演算結果X(入力X)と、変換-量子化処理の入力Xに対して予め設定された閾値とを入力判定部140によって判定された入力の区間内で比較し、比較結果に応じた閾値を出力する。その後、出力取得部141は、テーブル160Bを参照し、閾値処理部142によって出力された閾値に対応する変換-量子化処理の出力Yを取得する。
【0097】
取得された出力Yは、出力バッファ15に一時的に記憶され、プロセッサ102により読み出されて出力される(ステップS6)。
【0098】
以上説明したように、第3の実施の形態に係るCNN処理装置1によれば、変換-量子化処理の出力Yが単調増加する入出力の区間と単調減少する入出力の区間とを識別する分割情報に基づいて、変換-量子化処理の入力Xが属する区間を判定する。そして、判定された入力の区間内において、変換-量子化処理への入力Xに対する閾値処理を行い、テーブル160Bを参照し、変換-量子化処理の出力Yを取得する。」
キ「 図2
[図:0001413924000001.jpg]
」
ク「 図5
[図:0001413924000002.jpg]
」
ケ「 図7
[図:0001413924000003.jpg]
」
コ「 図8
[図:0001413924000004.jpg]
」
サ「 図9
[図:0001413924000005.jpg]
」
シ「 図10
[図:0001413924000006.jpg]
」
ス「 図11
[図:0001413924000007.jpg]
」
セ「 図13
[図:0001413924000008.jpg]
」
4 原出願明細書等の記載事項
(1)上記3のアの「(段落【0010】)前記演算部による畳み込み演算の演算結果を入力とし、入力された値を予め規定されている条件に基づいて変換し、変換したデータのビット精度を削減して量子化する変換-量子化処理の結果を出力」とするとの記載、「(段落【0011】)畳み込み演算の演算結果を入力として、入力された値を予め規定されている条件に基づいて変換し、変換したデータのビット精度を削減して量子化する変換-量子化処理の結果を出力」とするとの記載、「(段落【0012】)畳み込み演算の演算結果を入力として、入力された値を予め規定されている条件に基づいて変換し、変換したデータのビット精度を削減して量子化する変換-量子化処理の結果を出力」するとの記載、「(段落【0013】)畳み込み演算の演算結果を予め規定された条件に基づいて変換し、変換したデータのビット精度を削減して量子化」するとの記載、上記3のウの「(段落【0028】)畳み込み演算の演算結果がReLUなどを介して変換された値は、演算負荷の軽減のためにビット精度を削減して量子化される」との記載、「データの量子化は、例えば、・・・小数点を含む値を整数化するなどして制限をかけること」との記載から、「小数点を含む値である畳み込み演算の演算結果を整数化するなどして、ビット精度を削減する量子化を行うこと」が記載されているといえる。
(2)上記3のイの「(段落【0020】)入力信号は、予め前処理を行った画像データであってもよい」との記載、「(段落【0021】)入力信号の値としては、例えば、32ビットや16ビット精度の浮動小数点の配列で表現された小数点を含む値」が用いられるとの記載、「(段落【0022】)重みの値として、32ビットや16ビット精度の浮動小数点の配列で表現された小数点を含む値」が用いられるとの記載から、「画像データ(入力信号)の値や重みの値として、32ビットや16ビット精度の浮動小数点の配列で表現された小数点を含む値を用いられ得ること」が記載されているといえる。
(3)上記(1)、(2)より、原出願明細書等には、「画像データ(入力信号)の値や重みの値として、32ビットや16ビット精度の浮動小数点の配列で表現された小数点を含む値が用いられ得ること、小数点を含む値である畳み込み演算の演算結果を整数化するなどして、ビット精度を削減する量子化を行うこと」が記載されている。
5 当審の判断
上記第2の1より、本願の特許請求の範囲(請求項1)には、「前記変換-量子化処理における量子化は、前記画像データよりもビット精度を削減して量子化する」構成が記載されている。
ここで、原出願明細書等における「ビット精度」についての記載は、上記3及び4より、「画像データ(入力信号)」の値や「重み」の値として、32ビットや16ビット精度の浮動小数点表示が用いられ得るという例示にとどまり、「画像データ(入力信号)」や、「重み」のそれぞれについての具体的なビット精度については言及されていない。そして、「畳み込み演算の演算結果」や「量子化後の畳み込み演算の演算結果」については、符号化の手法も、具体的なビット精度についても言及されていない。また、「画像データ(入力信号)」と「量子化後の畳み込み演算の演算結果」それぞれの具体的なビット精度の関係についても一切言及されていない。また、「画像データ(入力信号)」のビット精度が、「量子化後の畳み込み演算の演算結果」のビット精度よりも小さいことは、本願の国際出願日における技術常識とも認められない。よって、量子化が、画像データ(入力信号)よりもビット精度を削減するものであることは、上記3のア~セを含め、原出願明細書等に記載されているとはいえない。よって、当該構成は、原出願明細書等に記載された事項の範囲内とはいえない。
6 請求人の主張について
上記5について、審判請求人は、令和6年6月10日付け意見書において、以下の主張を行っている。
「(3-4)分割要件について
本件については、電子メールにて補正案及び意見書案の確認を合議体殿にお願いし(令和6年5月29日)、補正案について、後日、特許審決して頂けるとのお返事を電話にて頂きました(今回提出する補正書は、前記補正案に、お電話でご指摘頂いた補正漏れを追加したものになります)。しかしながら、そのときのお電話で、本願の請求項1等の「前記変換-量子化処理に含まれる前記量子化は、前記画像データよりもビット精度を削減する量子化である」との発明特定事項が、原出願に記載されておらず、本願は分割要件を満たさないとのご指摘を頂きました。しかしながら、本出願人は、当該発明特定事項が、原出願の明細書などから把握できる事項と考えますので、以下、この点をご説明致します。なお、前記発明特定事項の「前記画像データ」は、「ニューラルネットワークに与えられる画像データ」(請求項1等)です。
ア 本願が分割要件を満たす理由その1
(ア)まず、原出願(特願2020-504046)の国際出願時の明細書には、下記の記載があります。
「【0020】
入力バッファ10は、CNNに与えられる入力信号を記憶するメモリである。より詳細には、入力バッファ10は、後述する主記憶装置103によって実現され、この入力バッファ10には、例えば、外部から与えられた画像データなどが記憶される。入力バッファ10に与えられる入力信号は、予め前処理を行った画像データであってもよい。(以下省略)
【0021】
入力バッファ10に与えられる入力信号の値としては、例えば、32ビットや16ビット精度の浮動小数点の配列で表現された小数点を含む値や、これらの値を予め設定されたビット数表現に削減した値が用いられる。」
(イ)上記記載から、ニューラルネットワークに与えられる画像データ(上記発明特定事項における「前記画像データ」)の値として、小数点を含む値が採用され得ることは理解できます。
(ウ)また、原出願の国際出願時の明細書には、下記記載もあります。
「【0025】
処理部14は、記憶部16に記憶されているテーブル160を参照して、演算結果バッファ13から読み出した畳み込み演算の結果に対し、変換および量子化の処理(以下、「変換-量子化処理」ということがある。)を行った結果を出力する。より詳細には、処理部14は、演算結果バッファ13に記憶されている畳み込み演算の結果を読み出し、変換-量子化処理の入出力関係が記憶されているテーブル160を参照して、変換-量子化処理の入力に対応する値を取得して出力する。」
「【0028】
一方、畳み込み演算の演算結果がReLUなどを介して変換された値は、演算負荷の軽減のためにビット精度を削減して量子化される。データの量子化は、例えば、四捨五入、切り上げ、切り捨て、最近接丸めなどよく知られた端数処理を含み、ReLUを介して畳み込み演算の結果が変換された値、例えば小数点を含む値を整数化するなどして制限をかけることをいう。」
(エ)上記記載から、変換-量子化処理の量子化には、小数点を含む値を整数化することが含まれることが理解されます。
(オ)上記(イ)及び(エ)からすると、ニューラルネットワークに与えられる画像データは、小数点を含む値を含み、量子化後の値は、小数点を含まない整数化された値となりますので、量子化では、ニューラルネットワークに与えられる画像データよりもビット精度が削減されております。このようなことから、請求項1等の「前記変換-量子化処理に含まれる前記量子化は、前記画像データよりもビット精度を削減する量子化である」は、原出願の明細書などから把握できる事項と思料します。
イ 本願が分割要件を満たす理由その2
(ア)原出願の出願当初の図5、図8、図11には、「変換-量子化処理」で使用されるテーブル160、160A、160Bが記載されていますが(段落0049、0077、0097など)、これら図を参照すると、テーブル160、160A、160Bの出力Yは、「5.7」など小数点以下1桁までの数値となっています。他方、図13に示すように、入力信号(画像データ)は、「0.10」など小数点2桁まで数値となっています。このような図面を参照しますと、テーブル160、160A、160Bの出力Y(つまり量子化後の値)のビット精度は、入力信号(画像データ)のビット精度よりも削減されていることが理解できます。
(イ)以上のように、請求項1等の「前記変換-量子化処理に含まれる前記量子化は、前記画像データよりもビット精度を削減する量子化である」は、原出願の明細書及び図面などから把握できる事項と思料します。
ウ 小括
以上で説明しましたように、請求項1等の「前記変換-量子化処理に含まれる前記量子化は、前記画像データよりもビット精度を削減する量子化である」は、原出願の明細書及び図面などから把握できる事項ですので、本願は、分割要件を満たすものと思料します。 」
上記各主張について検討する。
(1)「ア 本願が分割要件を満たす理由その1」について
原出願明細書等には、画像データ(入力信号)の値として、32ビットや16ビット精度の浮動小数点の配列で表現された小数点を含む値を用いることや、畳み込み演算の結果に対する量子化として、小数点を含む値を整数化することが、例示されている。
しかしながら、畳み込み演算は、画像データ(入力信号)に対する重みとの積和演算であるから、重みの値のビット精度によっては、畳み込み演算後の値(の整数部分)のビット精度が非常に大きなものになり得るため、整数化することにより必ずしも畳み込み演算の結果のビット精度が、入力信号のビット精度よりも小さくなるとは限らない。また、原出願明細書等には、重みの値のビット精度も、整数化した畳み込み演算の結果を何ビット精度で表現するのかについても、何ら記載されていない。
したがって、請求人が主張する量子化の態様は、必ずしも画像データ(入力信号)よりもビット精度を削減するものであるとはいえないから、請求人の主張は採用することができない。
なお、仮に請求人が主張する事項が原出願明細書等に記載されているとしても、請求項1の記載は、画像データ(入力信号)が小数点を含む値であり、かつ、量子化が小数点を含む値を整数化する態様には限定されておらず、当該態様以外の態様を含むものとなっているから、請求項1に係る発明は、原出願明細書等に記載されている範囲を超えるものであることに変わりはなく、請求人の主張は、採用することはできない。
(2)「イ 本願が分割要件を満たす理由その2」について
原出願明細書等における図13は、従来のCNNなどのニューラルネットワークであり、図5、図8、図11は、それぞれ第1、第2、第3の実施の形態に係る、変換-量子化処理で用いるテーブルであるから、これらを混在させて本願の発明を理解することは適切でない。たとえば、図13における畳み込み演算の演算結果は「38.16」であるが、図5では「7」と「38.16」から大きくかけ離れた値に量子化されることになって不合理であり、また、図8や図11においてはそもそも「38.16」に対応した範囲がテーブルに存在しない。したがって、従来技術に対応する図13に記載された例と、第1、第2、第3の実施の形態に係る例を組み合わせた態様が、原出願明細書等に記載されているとはいえない。
加えて、上記第2の3イより、入力信号の値として、例えば、32ビットや16ビット精度の浮動小数点で表現された小数点を含む値や、これらの値を予め設定されたビット数表現に削減した値が用いられることが記載されているが、浮動小数点表示は、数値を正規化し、符号、指数部、仮数部で表現するものであることが技術常識であるところ、量子化後の出力Yが、10進数で「5.7」など小数点以下1桁までの数値であり、画像データ(入力信号)が、10進数で「0.10」など小数点2桁までの数値であるからといって、必ずしも、32ビットや16ビット精度の浮動小数点で表現された「0.10」よりも、2進数(ビット精度が具体的に特定されていない浮動小数点)で表現された「5.7」のビット精度が削減されるとはいえず、請求人の主張は採用することができない。
なお、入力信号や量子化後の出力を固定小数点で表示する場合は、小数点以下の桁数を減らすことでビット精度が削減され得るが、原出願明細書等には、入力信号を32ビットや16ビット精度の浮動小数点で表現され得ることは記載されていても、固定小数点表示で表現することは記載も示唆もないため、請求人の主張が、固定小数点表示を前提としたものとも認められない。
また、請求項1には、入力信号(画像データ)として10進数で小数点以下2桁までの値を採用することや、量子化後の値が10進数で小数点1桁までの値であることはそもそも特定されていないため、請求人の主張は請求項の記載の基づくものでもない。よって、請求人の主張は採用することはできない。
7 小括
したがって、本願は分割の要件を満たしていないから、出願日の遡及が認められないので、本願の出願日は、本願の現実の出願日である令和3年5月10日である。
第3 当審で通知した拒絶理由の概要
当審で通知した拒絶理由(令和6年4月2日付け:拒絶理由通知書)の概要は次のとおりである。
1 理由1(サポート要件)
この出願は、特許請求の範囲の記載が以下の点で、特許法第36条第6項第1号に規定する要件を満たしていない。
請求項1の「ニューラルネットワーク装置」が「第1重みとの第1積和演算を含む前記ニューラルネットワークの第1畳み込み演算を行う第1演算部」及び「第2重みとの第2積和演算を含む前記ニューラルネットワークの第2畳み込み演算を行う第2演算部」を別々の演算部として備えるとの事項については、明細書及び図面に記載されておらず、また、複数の演算の各々を異なる演算器で実行することと1つの演算器で繰り返し実行することとでは作用効果が異なることが、本願の出願日時点における技術常識であることを参酌しても、上記事項の構成が自明であるとも認められない。
また、請求項14、15に記載された「ニューラルネットワークに与えられる入力信号に基づいて第1重みとの第1積和演算を含む前記ニューラルネットワークの第1畳み込み演算を行う第1演算ステップ」及び「前記処理ステップでの前記出力に基づいて第2重みとの第2積和演算を含む前記ニューラルネットワークの第2畳み込み演算を行う第2演算ステップ」についても同様である。
よって、請求項1を直接又は間接的に引用する請求項を含め、請求項1~15に係る発明は、発明の詳細な説明に記載したものではない。
2 理由2(明確性要件)
この出願は、特許請求の範囲の記載が以下の点で、特許法第36条第6項第2号に規定する要件を満たしていない。
(1)請求項5に記載された「閾値処理部」が出力する「比較結果」が、「前記第1の畳み込み演算の演算結果に基づく前記処理部の入力」に対して、「予め設定されている複数の閾値」と比較した結果として、単一の入力と複数の閾値の間のどのような関係に基づいた、どのような情報を特定しようとしているのか不明である。
そして、「比較結果」が、どのような関係に基づいた、どのような情報であるかが不明である以上、「比較結果に応じた閾値」が、入力とどのような関係を有する閾値を特定しようとしているのかも不明である。
(2)請求項14に記載された「ニューラルネットワーク処理方法」について、各ステップの主体が不明であり、人間が手動で行うものであるのか、人間がコンピュータを演算の道具として用いて行うものであるのか、コンピュータが自動的に行うものであるのかも不明である。
(3)請求項15に記載された「コンピュータに、…第1演算ステップと、…処理ステップと、…第2演算ステップと、を有し、…は…であることを特徴とするプログラム。」は、日本語として意味が明確ではなく、特に、「コンピュータ」と「第1演算ステップ」、「処理ステップ」及び「第2演算ステップ」と、「プログラム」との関係が不明である。
よって、請求項5を直接または間接的に引用する請求項を含め、請求項5~15に係る発明は、明確でない。
3 理由3(進歩性)
本願請求項1に係る発明は、以下の引用文献1に記載された発明と引用文献2ないし3に記載された周知技術に基いて、その発明の属する技術の分野における通常の知識を有する者(以下、「当業者」という。)が容易に発明することができたものであるから、特許法第29条第2項の規定により特許を受けることができない。
1.米国特許出願公開第2016/0179434号明細書
2.特開2018-147182号公報
3.特開2018-142049号公報
第4 本願発明
本願請求項1ないし13に係る発明(以下、それぞれ「本願発明1」ないし「本願発明13」という。)は、令和6年6月10日に提出された手続補正書により補正された特許請求の範囲の請求項1ないし13に記載された事項により特定される発明であり、このうち、本願発明1は、第2の1に記載のとおりの発明である。
本願発明2ないし11は、本願発明1を減縮した発明であり、本願発明12ないし13はそれぞれ、本願発明1を「ニューラルネットワーク処理方法」、「プログラム」の発明として特定したものである。
第5 引用文献、引用発明等
1 引用文献(1)引用文献1記載事項
引用文献1には、図面とともに、次の事項が記載されている。
ア 「[0005]・・・Among other usages, ANNs can be used for imaging processing, voice and object recognition or natural language processing. Convolution Neural Networks (CNNs) or Deep Belief Networks (DBNs) are just a few examples of computation paradigms that employ ANN algorithms.
(当審訳)
「[0005]・・・他の用途の中では、ANNは、画像処理、音声認識又は自然言語処理に使用することができる。畳み込みニューラルネットワーク(CNN)または深層信念ネットワーク(DBN)は、ANNアルゴリズムを使用する計算パラダイムの一例にすぎない。」
イ 「[0166] In order for a neural network to approximate or predict non-linear behaviors, non-linear activation functions must be used. Several non-linear functions can be implemented, although sigmoid, bounded rectified linear and hyperbolic tangent are the most common ones. One problem in convolutional neural networks (CNNs) is what AFs to choose. Studies show that different AFs may provide different accuracies and also may require larger or shorter training times. Ideally, a flexible hardware design should be able to implement various AFs, each one targeted at a specific problem.」
(当審訳)
「[0166] ニューラルネットワークが非線形の動作を近似または予測するためには、非線形の活性化関数を使用しなければならない。いくつかの非線形関数を実装することができるが、シグモイド、有界ReLU、ハイパーボリックタンジェントが最も一般的なものである。畳み込みニューラルネットワーク(CNN)における問題の一つは、どのような活性化関数を選択するかである。研究によれば、異なる活性化関数は異なる精度を提供し、また、より多くの、あるいはより短い学習時間を必要とする。理想的なのは、柔軟なハードウェア設計によって、特定の問題をターゲットとしたさまざまな活性化関数を実装できることである。」
ウ 「[0169] On the other hand, although there are some proposals that try to implement neuromorphic cores with reconfigurable AFs, the methodology they use is not efficient. First, those existing implementations use uniform segmentation, which is not optimal because the size of the segments is limited by the worst case (e.g., the smallest size). Also, the computation of each point in the function is approximated by a fixed value, which can be implemented as shown in FIG. 34A with a simple lookup table (LUT) 3400. FIG. 34B shows an exemplary sigmoid approximation with points. Alternatively, as shown in FIG. 35A, the computation of each point may be approximated by a linear segment with a given slope using a LUT 3500. FIG. 35B illustrates an exemplary sigmoid approximation with a linear function.」
(当審訳)
「[0169] 一方、再構成可能な活性化関数でニューロモーフィックコアを実装しようとする提案もあるが、それらの方法論は効率的ではない。まず、それらの既存の実装では、均一なセグメンテーションが使用されているが、これは、セグメントのサイズがワーストケース(例えば、最小サイズ)によって制限されるため、最適ではない。また、関数内の各点の計算は固定値で近似されるが、これは図34Aに示すように単純なルックアップテーブル(LUT)3400で実装することができる。図34Bは、点による例示的なシグモイド近似を示している。あるいは、図35Aに示すように、各点の計算は、LUT3500を使用して所定の傾きを有する線形セグメントで近似することができる。図35Bは、線形関数による例示的なシグモイド近似を示す。」
エ 「[0171] …(中略)… Nevertheless, AF implementations in current neuromorphic accelerators are not optimal, with significant constraints either in flexibility (e.g., they only support one AF) or, when reconfigurable, they are not efficient for acceptable accuracy levels because they use simple point approximation with uniform quantization (see FIG. 34A), which requires large LUT blocks; or piecewise approximation with uniform quantization (see FIG. 35A), which requires smaller LUT blocks but larger arithmetic units (multiplier and adder).」
(当審訳)
「[0171] …(中略)… にもかかわらず、現在のニューロモルフィックアクセラレータにおける活性化関数の実装は、柔軟性(例えば、1つの活性化関数しかサポートしない)に大きな制約があるか、再構成可能な場合であっても、許容可能な精度レベルでは効率的でない。これは、大きなLUTブロックを必要とする一様量子化を伴う単純点近似(図34A参照)、または小さなLUTブロックを必要とするが大きな演算ユニット(乗算器と加算器)を必要とする一様量子化を伴う区分的近似(図35A参照)を使用しているためである。」
オ 「[0184] In addition, the AF unit may be incorporated into the processing unit of a neuromorphic accelerator 1230 such as the one illustrated in FIGS. 12A-B. Moreover, in order to leverage the configurable capability of the unit, the following mechanisms may be exposed to software:
[0185] (1) A mechanism to load the approximation parameters into the LUTs 3602 according to the target function. This mechanism can be exposed via an instruction such as “Load M(Rx)→AF”.」
(当審訳)
「[0184] さらに、活性化関数ユニットは、図12A~Bに例示されるもののようなニューロモーフィックアクセラレータ1230の処理ユニットに組み込まれてもよい。さらに、活性化関数ユニットの構成可能な能力を活用するために、以下のメカニズムがソフトウェアに公開されてもよい:
[0185] (1) ターゲット関数に従って近似パラメータをLUT3602にロードするメカニズム。このメカニズムは、"Load M(Rx)→AF "のような命令を介して公開することができる。」
カ 「
[図:0001413924000009.jpg]
」
(当審訳は省略)
キ 「
[図:0001413924000010.jpg]
」
(当審訳は省略)
(2)引用発明
上記(1)の特に下線部に着目すると、引用文献1には、次の発明(以下、「引用発明」という。)が記載されていると認められる。
「ニューラルネットワークの入力信号である画像データと重みとの積和演算を行う演算部と、
演算部の演算結果を入力として、再構成可能な活性化関数を実装したルックアップテーブル(LUT)とを備え、
ルックアップテーブル(LUT)は、
nビットの入力をmビットに量子化し、
活性化関数に従って、パラメータをロードできる、
ハードウェアであるニューラルネットワーク。」
(3)周知技術
引用文献2、引用文献3には、本願の出願日時点における以下の周知技術が記載されていると認められる。
(周知技術)
画像データを入力として、入力データと重み係数との積和演算により、畳み込みニューラルネットワークの畳み込み層の畳み込み演算を行う畳み込み演算部と、畳み込み演算の演算結果を活性化関数により非線形変換する非線形変換処理部とを有する画像認識装置であって、前記畳み込み演算部は、非線形変換処理部の処理結果を畳み込みニューラルネットワークの次の畳み込み層の入力データとして、畳み込み演算を行うこと。
第6 当審拒絶理由についての判断
1 理由1(サポート要件)、及び理由2(明確性)について
令和6年6月10日付け手続補正書における補正の結果、当審拒絶理由の理由1(サポート要件)及び理由3(明確性)はいずれも解消した。
2 理由3(進歩性)について
(1)本願発明1について
ア 対比
本願発明1と引用発明とを対比すると、本願発明1と引用発明は、以下の点において一致ないし相違する。
(一致点)
ニューラルネットワークに与えられる画像データに基づいて重みとの積和演算を含む前記ニューラルネットワークの演算を行う演算部と、
前記演算部の演算結果を入力とし、前記演算結果と、当該演算結果に対して所定の変換および量子化を含む変換-量子化処理を行ったときに得られる処理結果との関係を示すデータを用いて、前記入力に応じた前記処理結果を取得し、取得した前記処理結果を出力する処理部と、を備える、
ことを特徴とするニューラルネットワーク処理装置。
(相違点1)
本願発明1における「ニューラルネットワーク処理装置」の「演算部」は、畳み込み演算を行うものであるのに対し、引用発明における「ニューラルネットワーク」の「演算部」は、積和演算を行うものの、畳み込み演算を行うことについて具体的に特定していない点。
(相違点2)
本願発明1の「処理部」は、出力を(第2)演算部の入力とするものであるのに対し、引用発明の「ルックアップテーブル(LUT)」は、出力データの入力先を具体的に特定していない点。
(相違点3)
本願発明1における「変換-量子化処理に含まれる量子化」は、前記画像データよりもビット精度を削減する量子化であるのに対し、引用発明における「量子化」は、ビット精度について具体的に特定していない点。
イ 判断
事案に鑑みて、相違点3について先に検討する。
演算部の畳み込み演算は、画像データに対する重みとの積和演算であるから、重みの値のビット精度によっては、演算部の演算結果のビット精度「nビット」が非常に大きなものになり得ることは、出願時の技術常識であるところ、引用発明において、「ルックアップテーブル(LUT)の出力のビット精度(mビット)が画像データのビット精度よりも削減されることが自明とはいえない。そして、第5の1(3)に記載した引用文献2ないし3記載事項を含め、上記相違点3に係る本願発明1の構成が、本件特許出願前に周知技術であったとする証拠もない。
ウ 小括
したがって、相違点1及び2について検討するまでもなく、本願発明1は、当業者であっても、引用発明と引用文献2ないし3に記載された周知技術に基いて容易に発明をすることができたものとはいえない。
以上のとおりであるから、本願発明1は、当業者が、引用文献1に記載された発明に基いて、引用文献2及び引用文献3に記載された事項を参酌することにより容易に発明をすることができたものとはいえない。
(2)本願発明2ないし13について
本願発明2ないし11は、本願発明1を減縮した発明であり、本願発明12ないし13はそれぞれ、本願発明1を「ニューラルネットワーク処理方法」、「プログラム」の発明として特定したものであるから、相違点1ないし3に係る本願発明1の構成を備えるものであるから、本願発明1と同じ理由により、当業者であっても、引用発明と引用文献2ないし3に記載された周知技術に基いて容易に発明をすることができたものとはいえない。
第7 むすび
以上のとおり、本願発明1ないし13に係る発明は、当業者が引用発明と引用文献2ないし3に記載された周知技術に基いて容易に発明をすることができたものではない。
したがって、原査定の理由及び当審で通知した拒絶理由によって、本願を拒絶することはできない。
また、他に本願を拒絶すべき理由を発見しない。
よって、結論のとおり審決する。
審決本文(J-PlatPat)
J-PlatPatの審決検索トップを開きます。番号入力で「審判番号」を選び、下の番号を貼り付けて検索してください。
J-PlatPat 審決検索を開く
2023-010634