(57)【要約】【課題】メモリ消費量の軽減及び学習処理の高速化の少なくとも一方を実現する。【解決手段】データ拡張システム（Ｓ）の入力手段（１０１）は、認識を行う機械学習モデルに入力データを入力する。特定手段（１０２）は、入力データを入力とした機械学習モデルによる認識における根拠となる前記入力データの特徴部分を特定する。加工手段（１０３）は、特徴部分の少なくとも一部を加工して加工データを取得する。データ拡張手段（１０４）は、加工データに基づいて、データ拡張をする。【選択図】図５
2020197833.tif 000002
【特許請求の範囲】
【請求項１】
認識を行う機械学習モデルに入力データを入力する入力手段と、
前記入力データを入力とした前記機械学習モデルによる認識における根拠となる前記入力データの特徴部分を特定する特定手段と、
前記特徴部分の少なくとも一部を加工して加工データを取得する加工手段と、
前記加工データに基づいて、データ拡張をするデータ拡張手段と、
を含むことを特徴とするデータ拡張システム。
【請求項２】
前記加工手段は、前記特徴部分の一部を加工対象部分として選択し、当該選択した加工対象部分を加工して前記加工データを取得する、
ことを特徴とする請求項１に記載のデータ拡張システム。
【請求項３】
前記加工手段は、前記特徴部分内の領域ごとに算出されるスコアに基づいて、前記加工対象部分を選択する、
ことを特徴とする請求項２に記載のデータ拡張システム。
【請求項４】
前記加工手段は、互いに異なる複数の前記加工対象部分を選択し、当該選択した複数の加工対象部分に基づいて、複数の前記加工データを取得し、
前記データ拡張手段は、前記複数の加工データに基づいて、前記データ拡張をする、
ことを特徴とする請求項２又は３に記載のデータ拡張システム。
【請求項５】
前記加工手段は、前記特徴部分の中から、前記複数の加工対象部分をランダムに選択する、
ことを特徴とする請求項４に記載のデータ拡張システム。
【請求項６】
前記特定手段は、複数の前記特徴部分を特定し、
前記加工手段は、前記複数の特徴部分に基づいて、複数の前記加工データを取得し、
前記データ拡張手段は、前記複数の加工データに基づいて、前記データ拡張をする、
ことを特徴とする請求項１〜５の何れかに記載のデータ拡張システム。
【請求項７】
前記入力データは、前記機械学習モデルに入力される入力画像であり、
前記特定手段は、前記入力画像の特徴部分を特定し、
前記加工手段は、前記特徴部分の少なくとも一部を加工して加工画像を取得し、
前記データ拡張手段は、前記加工画像に基づいて、前記データ拡張をする、
ことを特徴とする請求項１〜６の何れかに記載のデータ拡張システム。
【請求項８】
前記加工手段は、前記特徴部分の少なくとも一部にマスク処理を施して前記加工画像を取得し、
前記データ拡張手段は、前記マスク処理が施された前記加工画像に基づいて、前記データ拡張をする、
ことを特徴とする請求項７に記載のデータ拡張システム。
【請求項９】
前記加工手段は、前記特徴部分の少なくとも一部にインペインティング処理を施して前記加工画像を取得し、
前記データ拡張手段は、前記インペインティング処理が施された前記加工画像に基づいて、前記データ拡張をする、
ことを特徴とする請求項７に記載のデータ拡張システム。
【請求項１０】
前記特定手段は、前記機械学習モデルから出力される前記認識の結果に基づいて前記特徴部分を特定する、
ことを特徴とする請求項１〜９の何れかに記載のデータ拡張システム。
【請求項１１】
前記機械学習モデルは、少なくとも１以上の畳み込み層を含むモデルであり、
前記特定手段は、前記畳み込み層から出力される特徴マップに更に基づいて前記特徴部分を特定する、
ことを特徴とする請求項１０に記載のデータ拡張システム。
【請求項１２】
前記機械学習モデルは、前記認識の結果と、前記認識結果に対する活性化マップを出力し、
前記特定手段は、前記活性化マップに基づいて前記特徴部分を特定する、
ことを特徴とする請求項１〜１１の何れかに記載のデータ拡張システム。
【請求項１３】
前記機械学習モデルは、複数の教師データを含む教師データセットが学習済みであり、
前記入力データは、前記教師データセットに含まれており、
前記データ拡張手段は、前記加工データを含む教師データを前記教師データセットに追加することによって、前記データ拡張をする、
ことを特徴とする請求項１〜１２の何れかに記載のデータ拡張システム。
【請求項１４】
認識を行う機械学習モデルに入力データを入力する入力ステップと、
前記入力データを入力とした前記機械学習モデルによる認識における根拠となる前記入力データの特徴部分を特定する特定ステップと、
前記特徴部分の少なくとも一部を加工して加工データを取得する加工ステップと、
前記加工データに基づいて、データ拡張をするデータ拡張ステップと、
を含むことを特徴とするデータ拡張方法。
【請求項１５】
認識を行う機械学習モデルに入力データを入力する入力手段、
前記入力データを入力とした前記機械学習モデルによる認識における根拠となる前記入力データの特徴部分を特定する特定手段、
前記特徴部分の少なくとも一部を加工して加工データを取得する加工手段、
前記加工データに基づいて、データ拡張をするデータ拡張手段、
としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ拡張システム、データ拡張方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、教師あり機械学習を利用した機械学習モデルが知られている。例えば、非特許文献１には、教師画像の中からランダムに選択した部分にマスク処理を施して新たな教師画像を取得し、データ拡張を実現する技術が記載されている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】T. Devries and G. W. Taylor. "Improved regularization of convolutional neural networks with cutout." arXiv preprint arXiv: 1708.04552, 2017. 5
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１のように、マスク処理を施す部分をランダムに選択したとしても、学習させたい部分がマスクされてしまったり、学習させたくない部分がマスクされなかったりすることがあるので、効率的ではなかった。このため、十分な学習精度を得るには非常に多くの教師画像を作成する必要があり、メモリの消費量が増大したり、学習処理に時間がかかったりしていた。
【０００５】
本発明は上記課題に鑑みてなされたものであって、その目的は、メモリ消費量の軽減及び学習処理の高速化の少なくとも一方を実現可能なデータ拡張システム、データ拡張方法、及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係るデータ拡張システムは、認識を行う機械学習モデルに入力データを入力する入力手段と、前記入力データを入力とした前記機械学習モデルによる認識における根拠となる前記入力データの特徴部分を特定する特定手段と、前記特徴部分の少なくとも一部を加工して加工データを取得する加工手段と、前記加工データに基づいて、データ拡張をするデータ拡張手段と、を含むことを特徴とする。
【０００７】
本発明に係るデータ拡張方法は、認識を行う機械学習モデルに入力データを入力する入力ステップと、前記入力データを入力とした前記機械学習モデルによる認識における根拠となる前記入力データの特徴部分を特定する特定ステップと、前記特徴部分の少なくとも一部を加工して加工データを取得する加工ステップと、前記加工データに基づいて、データ拡張をするデータ拡張ステップと、を含むことを特徴とする。
【０００８】
本発明に係るプログラムは、認識を行う機械学習モデルに入力データを入力する入力手段、前記入力データを入力とした前記機械学習モデルによる認識における根拠となる前記入力データの特徴部分を特定する特定手段、前記特徴部分の少なくとも一部を加工して加工データを取得する加工手段、前記加工データに基づいて、データ拡張をするデータ拡張手段、としてコンピュータを機能させる。
【０００９】
本発明の一態様によれば、前記加工手段は、前記特徴部分の一部を加工対象部分として選択し、当該選択した加工対象部分を加工して前記加工データを取得する、ことを特徴とする。
【００１０】
本発明の一態様によれば、前記加工手段は、前記特徴部分内の領域ごとに算出されるスコアに基づいて、前記加工対象部分を選択する、ことを特徴とする。
【００１１】
本発明の一態様によれば、前記加工手段は、互いに異なる複数の前記加工対象部分を選択し、当該選択した複数の加工対象部分に基づいて、複数の前記加工データを取得し、前記データ拡張手段は、前記複数の加工データに基づいて、前記データ拡張をする、ことを特徴とする。
【００１２】
本発明の一態様によれば、前記加工手段は、前記特徴部分の中から、前記複数の加工対象部分をランダムに選択する、ことを特徴とする。
【００１３】
本発明の一態様によれば、前記特定手段は、複数の前記特徴部分を特定し、前記加工手段は、前記複数の特徴部分に基づいて、複数の前記加工データを取得し、前記データ拡張手段は、前記複数の加工データに基づいて、前記データ拡張をする、ことを特徴とする。
【００１４】
本発明の一態様によれば、前記入力データは、前記機械学習モデルに入力される入力画像であり、前記特定手段は、前記入力画像の特徴部分を特定し、前記加工手段は、前記特徴部分の少なくとも一部を加工して加工画像を取得し、前記データ拡張手段は、前記加工画像に基づいて、前記データ拡張をする、ことを特徴とする。
【００１５】
本発明の一態様によれば、前記加工手段は、前記特徴部分の少なくとも一部にマスク処理を施して前記加工画像を取得し、前記データ拡張手段は、前記マスク処理が施された前記加工画像に基づいて、前記データ拡張をする、ことを特徴とする。
【００１６】
本発明の一態様によれば、前記加工手段は、前記特徴部分の少なくとも一部にインペインティング処理を施して前記加工画像を取得し、前記データ拡張手段は、前記インペインティング処理が施された前記加工画像に基づいて、前記データ拡張をする、ことを特徴とする。
【００１７】
本発明の一態様によれば、前記特定手段は、前記機械学習モデルから出力される前記認識の結果に基づいて前記特徴部分を特定する、ことを特徴とする。
【００１８】
本発明の一態様によれば、前記機械学習モデルは、少なくとも１以上の畳み込み層を含むモデルであり、前記特定手段は、前記畳み込み層から出力される特徴マップに更に基づいて前記特徴部分を特定する、ことを特徴とする。
【００１９】
本発明の一態様によれば、前記機械学習モデルは、前記認識の結果と、前記認識結果に対する活性化マップを出力し、前記特定手段は、前記活性化マップに基づいて前記特徴部分を特定する、ことを特徴とする。
【００２０】
本発明の一態様によれば、前記機械学習モデルは、複数の教師データを含む教師データセットが学習済みであり、前記入力データは、前記教師データセットに含まれており、前記データ拡張手段は、前記加工データを含む教師データを前記教師データセットに追加することによって、前記データ拡張をする、ことを特徴とする。
【発明の効果】
【００２１】
本発明によれば、メモリ消費量の軽減及び学習処理の高速化の少なくとも一方を実現することができる。
【図面の簡単な説明】
【００２２】
【図１】データ拡張システムの全体構成を示す図である。
【図２】教師データに含まれる教師画像の一例を示す図である。
【図３】ヒートマップの一例を示す図である。
【図４】加工画像の一例を示す図である。
【図５】データ拡張システムで実現される機能の一例を示す機能ブロック図である。
【図６】教師データセットのデータ格納例を示す図である。
【図７】データ拡張システムにおいて実行される処理の一例を示すフロー図である。
【図８】変形例（１）における加工画像を示す図である。
【図９】加工対象部分がランダムに選択される様子を示す図である。
【図１０】入力画像に複数の特徴部分が存在する場合のヒートマップの一例を示す図である。
【発明を実施するための形態】
【００２３】
［１．データ拡張システムの全体構成］
以下、本発明に係るデータ拡張システムの実施形態の例を説明する。図１は、データ拡張システムの全体構成を示す図である。図１に示すように、データ拡張システムＳは、サーバ１０及びユーザ端末２０を含み、これらは、インターネットなどのネットワークＮに接続可能である。なお、図１では、サーバ１０及びユーザ端末２０の各々を１台ずつ示しているが、これらは複数台あってもよい。
【００２４】
サーバ１０は、サーバコンピュータである。サーバ１０は、制御部１１、記憶部１２、及び通信部１３を含む。制御部１１は、少なくとも１つのプロセッサを含む。制御部１１は、記憶部１２に記憶されたプログラムやデータに従って処理を実行する。記憶部１２は、主記憶部及び補助記憶部を含む。例えば、主記憶部はＲＡＭなどの揮発性メモリであり、補助記憶部は、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、又はハードディスクなどの不揮発性メモリである。通信部１３は、有線通信又は無線通信用の通信インタフェースであり、ネットワークＮを介してデータ通信を行う。
【００２５】
ユーザ端末２０は、ユーザが操作するコンピュータである。例えば、ユーザ端末２０は、携帯電話機（スマートフォンを含む）、携帯情報端末（タブレット型コンピュータを含む）、又はパーソナルコンピュータ等である。本実施形態では、ユーザ端末２０は、制御部２１、記憶部２２、通信部２３、操作部２４、及び表示部２５を含む。制御部２１、記憶部２２、及び通信部２３の物理的構成は、それぞれ制御部１１、記憶部１２、及び通信部１３と同様であってよい。
【００２６】
操作部２４は、入力デバイスであり、例えば、タッチパネルやマウス等のポインティングデバイス、キーボード、又はボタン等である。操作部２４は、ユーザによる操作内容を制御部２１に伝達する。表示部２５は、例えば、液晶表示部又は有機ＥＬ表示部等である。表示部２５は、制御部２１の指示に従って画像を表示する。
【００２７】
なお、記憶部１２，２２に記憶されるものとして説明するプログラム及びデータは、ネットワークＮを介して供給されるようにしてもよい。また、上記説明した各コンピュータのハードウェア構成は、上記の例に限られず、種々のハードウェアを適用可能である。例えば、コンピュータ読み取り可能な情報記憶媒体を読み取る読取部（例えば、光ディスクドライブやメモリカードスロット）や外部機器とデータの入出力をするための入出力部（例えば、ＵＳＢポート）が含まれていてもよい。例えば、情報記憶媒体に記憶されたプログラムやデータが読取部や入出力部を介して、各コンピュータに供給されるようにしてもよい。
【００２８】
［２．データ拡張システムの概要］
本実施形態のデータ拡張システムＳは、機械学習モデルに入力される入力データの特徴部分を特定し、特徴部分の少なくとも一部を加工した加工データに基づいて、データ拡張をする。
【００２９】
機械学習モデルは、教師あり機械学習により学習されたモデルである。機械学習モデルは、入力データに基づいて認識を行う。本明細書において認識とは、入力データの分析、解析、理解、分類、又は識別を含み、入力データから何かを検出したり、何かの位置を特定したりすることを含む、概念であり得る。機械学習モデルは、任意の認識を行うことができ、例えば、画像認識、文字認識、音声認識、人間の行動パターンの認識、又は自然界の現象の認識を行うことができる。機械学習モデルは、入力データの分類で用いられる場合、分類学習器と呼ばれることもある。
【００３０】
本実施形態では、分類学習器が行う認識の一例として、入力データの分類を説明する。機械学習モデルは、複数の分類の中で、入力データが属する少なくとも１つの分類を出力する。例えば、機械学習モデルは、学習済みの分類ごとに、入力データが属する蓋然性を示すスコアを出力する。また例えば、機械学習モデルは、特徴部分を識別可能なデータを出力する。このデータについては、後述する。機械学習モデルは、プログラム及びパラメータを含み、学習処理によってパラメータの調整が行われる。機械学習自体は、公知の種々の手法を適用可能であり、例えば、ＣＮＮ（Convolutional Neural Network）、ＲｅｓＮｅｔ（Residual Network）、又はＲＮＮ（Recurrent Neural Network）を利用可能である。
【００３１】
入力データは、機械学習モデルに入力されるデータである。別の言い方をすれば、入力データは、機械学習モデルによる処理対象（認識対象）となるデータである。本実施形態のように、機械学習モデルが入力データの分類を行う場合には、入力データは、分類対象となるデータである。入力データは、任意のデータ形式であってよく、例えば、画像、動画、テキスト、数値、文書、音声、又はこれらの組み合わせである。
【００３２】
例えば、入力データが画像又は動画であれば、画像又は動画に示されたオブジェクトが機械学習モデルによって分類される。なお、オブジェクトは、カメラで撮影された画像又は動画であれば被写体であり、ＣＧであれば３Ｄモデルやイラストなどである。また例えば、入力データがテキスト又は文書であれば、テキスト又は文書に記述された内容が機械学習モデルによって分類される。また例えば、入力データが音声であれば、音声に示された内容又は発話者が機械学習モデルによって分類される。
【００３３】
なお、本実施形態では、機械学習モデルが入力データの特徴量を計算する場合を説明するが、特徴量は、機械学習モデル以外のプログラムによって計算されてもよい。この場合、特徴量が機械学習モデルに入力されるので、特徴量が入力データに相当することになる。
【００３４】
特徴部分は、入力データにおける特徴的な部分である。別の言い方をすれば、特徴部分は、機械学習モデルに学習済みの特徴が表れた部分である。特徴部分は、機械学習モデルが着目した部分、又は、機械学習モデルによる分類の根拠となった部分ということもできる。入力データには、１つの特徴部分だけが存在することもあるし、複数の特徴部分が存在することもある。
【００３５】
例えば、入力データが画像又は動画であれば、オブジェクトの特徴（例えば、形状的な特徴又は色彩的な特徴）が表れた部分が特徴部分に相当する。また例えば、入力データがテキスト又は文書であれば、特徴的な文字列（例えば、所定のキーワード）が記述された部分が特徴部分に相当する。また例えば、入力データが音声であれば、特徴的な音声（例えば、所定の波形）が表れた部分が特徴部分に相当する。
【００３６】
加工は、データ内容を変更又は削除することである。加工は、編集ということもできる。特徴部分の全てが加工されてもよいし、特徴部分の一部だけが加工されてもよい。例えば、入力データが画像又は動画であれば、画素値、輝度、若しくは透明度といった値を変更すること、一部の領域を隠すこと、又は、一部の領域を切り出すことは、加工に相当する。また例えば、入力データがテキスト又は文書であれば、文字列、表、又は図などを変更したり削除したりすることは、加工に相当する。また例えば、入力データが音声であれば、波形を変更したり削除したりすることは、加工に相当する。
【００３７】
加工データは、特徴部分の少なくとも一部が加工されることによって生成されたデータである。別の言い方をすれば、加工データは、入力データが加工された後のデータである。加工データのうち、加工された部分は入力データと異なり、加工されていない部分は入力データと同じである。例えば、入力データが画像又は動画であれば、少なくとも１つの画素に対して加工が施された画像又は動画は、加工データに相当する。また例えば、入力データがテキスト又は文書であれば、少なくとも１つの文字列に対して加工が施されたテキスト又は文書は、加工データに相当する。また例えば、入力データが音声であれば、少なくとも一部の波形に対して加工が施されたデータは、加工データに相当する。
【００３８】
データ拡張は、教師データの数を増やすことである。別の言い方をすれば、データ拡張は、教師データを拡張すること、教師データを多様化すること、又は、教師データを水増しすることである。例えば、既存の教師データを利用して新たな教師データを生成することは、データ拡張に相当する。後述する教師データセットに教師データを追加することによってデータ拡張が行われてもよいし、既存の教師データセットとは別の教師データセットを新たに生成することによってデータ拡張が行われてもよい。
【００３９】
教師データは、機械学習で利用されるデータである。教師データは、学習データと呼ばれることもある。例えば、教師データは、入力データと同じ形式のデータと、正解となるラベル（アノテーション）と、がペアになったデータである。本実施形態では、機械学習モデルが入力データを分類するので、ラベルは、入力データの分類を識別する情報の一例である。例えば、入力データが画像又は動画であれば、教師データは、画像又は動画と、オブジェクトの分類を示すラベルと、がペアになったデータである。教師データは、入力と出力のペア、又は、設問と回答のペアということもできる。また例えば、入力データがテキスト又は文書であれば、教師データは、テキスト又は文書と、記述された内容の分類を示すラベルと、がペアになったデータである。また例えば、入力データが音声であれば、音声と、音声の内容又は発話者の分類を示すラベルと、がペアになったデータである。
【００４０】
一般的に、機械学習では、多数の教師データを利用して学習処理が実行される。本実施形態では、複数の教師データの集まりを教師データセットと記載し、教師データセットに含まれる１つ１つのデータを教師データと記載する。このため、本実施形態で教師データと記載した箇所は、上記説明したペアを意味し、教師データセットは、ペアの集まりを意味する。
【００４１】
本実施形態では、入力データが画像であり、機械学習モデルが画像に示されたオブジェクトを分類する場合を例に挙げて、データ拡張システムＳの処理を説明する。以降、入力データを入力画像と記載し、加工データを加工画像と記載する。このため、本実施形態で入力画像と記載した箇所は、入力データと読み替えることができ、加工画像と記載した箇所は、加工データと読み替えることができる。
【００４２】
例えば、ユーザは、学習対象となる分類ごとに、少なくとも１つの教師画像を用意する。犬や猫などの動物を分類する機械学習モデルを例に挙げると、ユーザは、動物が撮影された教師画像と、当該動物の分類を示す分類情報と、がペアになった教師データを用意する。なお、分類情報は、分類を識別可能な情報であればよく、例えば、分類を一意に識別するＩＤであってもよいし、分類を表す文字列であってもよい。
【００４３】
基本的には、教師データセットに含まれる教師データが多いほど、機械学習モデルに種々の特徴を学習させることができるので、機械学習モデルの精度が向上する。しかし、ユーザ自ら多数の教師データを用意するのは非常に手間がかかり困難である。そこで、本実施形態では、ある程度（例えば、１０〜１００個程度）の教師データだけをユーザに用意させ、データ拡張システムＳ側でデータ拡張をする。
【００４４】
図２は、教師データに含まれる教師画像の一例を示す図である。図２に示すように、教師画像Ｉ１には、学習対象の分類の１つである犬が示されている。例えば、ユーザは、教師画像Ｉ１と、犬であることを示す分類情報と、のペアを教師データとして作成する。ユーザは、猫などの他の分類についても、教師画像を用意して、教師画像と分類情報のペアを教師データとして作成する。
【００４５】
ユーザは、上記のようにして、ある程度の数の教師データを用意し、教師データセットを作成する。例えば、ユーザは、ユーザ端末２０を操作して、サーバ１０に教師データセットをアップロードし、機械学習モデルを学習させる。この時点では、機械学習モデルは、ある程度の数の教師データに基づいて学習されるので、ある程度の精度で入力画像を分類することができる。しかし、教師データの数があまり多くはないので、機械学習モデルは、さほど高い精度ではなく、細かな特徴を学習できていない可能性がある。
【００４６】
そこで、データ拡張システムＳは、学習済みの教師画像のうち、機械学習モデルによる分類の根拠となる特徴部分を加工し、新たな教師画像を取得する。分類の根拠とは、機械学習モデルによる認識において着目される部分である。
【００４７】
なお、本実施形態では、機械学習モデルの一例としてＣＮＮを説明し、分類の根拠となる部分が可視化されたヒートマップが生成される場合を説明する。ＣＮＮは、入力画像の分類を行い、ヒートマップは、Ｇｒａｄ−ＣＡＭと呼ばれる手法を利用して生成される。即ち、本実施形態では、入力画像と特定する手段と、ヒートマップを生成する手段と、が互いに異なる場合について説明する。
【００４８】
図３は、ヒートマップの一例を示す図である。図３のヒートマップＨは、図２の教師画像Ｉ１を入力画像として機械学習モデルに入力した場合に、機械学習モデルによる分類の根拠となった特徴部分を示す。例えば、ヒートマップＨは、入力画像と同じサイズの画像であり、特徴が強いほど色が濃くなる。図３では、ヒートマップＨの色を模式的に網点で示しており、網点の密度が高いほど色が濃く、網点の密度が低いほど色が薄いものとする。
【００４９】
本実施形態では、ヒートマップＨのうち、所定の濃さ以上の色が表れた部分を特徴部分とする。図３の例であれば、網点で示された符号「Ｐ」の部分を特徴部分とする。例えば、特徴部分Ｐは、入力画像である教師画像Ｉ１に示された犬の鼻付近になっている。これは、犬の鼻付近の特徴が機械学習モデルに強く学習されていることを意味する。
【００５０】
一方、犬の耳や胴体の部分については、ヒートマップＨに色が表れていない。これは、犬の耳や胴体の特徴が機械学習モデルに学習されていないことを意味する。現状の機械学習モデルは、犬の鼻付近だけの特徴に基づいて分類しているので、耳や胴体などの他の特徴を学習させることができれば、機械学習モデルの精度を向上させることができる。そこで、本実施形態のデータ拡張システムＳは、犬の鼻付近の特徴が低減する又は消えるように、入力画像である教師画像Ｉ１を加工して加工画像を取得する。
【００５１】
図４は、加工画像の一例を示す図である。図４に示すように、加工画像Ｉ２は、入力画像である教師画像Ｉ１のうち、特徴部分Ｐがマスクされており、犬の鼻付近の特徴が消えた状態になっている。加工画像Ｉ２は、鼻付近の特徴が消されているので、耳や胴体などの特徴が相対的に強く表れている。このため、加工画像Ｉ２と、犬を示す分類情報と、のペアを新たな教師データとすれば、犬の耳や胴体などの特徴を学習させることが可能になる。
【００５２】
以上のように、データ拡張システムＳは、ユーザがわざわざ新たな教師画像を用意しなくても、既存の教師画像Ｉ１に基づいて加工画像Ｉ２を取得し、新たな教師画像とすることによって、効率的なデータ拡張を実現することができるようになっている。以降、データ拡張システムＳの詳細を説明する。なお、以降の説明では、特に図面を参照する必要のないときは、教師画像Ｉ１や加工画像Ｉ２などの符号を省略する。
【００５３】
［３．データ拡張システムにおいて実現される機能］
図５は、データ拡張システムＳで実現される機能の一例を示す機能ブロック図である。図５に示すように、データ拡張システムＳでは、データ記憶部１００、入力部１０１、特定部１０２、加工部１０３、及びデータ拡張部１０４が実現される。本実施形態では、これら各機能がサーバ１０によって実現される場合を説明する。
【００５４】
[３−１．データ記憶部]
データ記憶部１００は、記憶部１２を主として実現される。データ記憶部１００は、本実施形態で説明する処理を実行するために必要なデータを記憶する。ここでは、データ記憶部１００が記憶するデータの一例として、教師データセットＤＳと、機械学習モデルＭと、について説明する。
【００５５】
図６は、教師データセットＤＳのデータ格納例を示す図である。図６に示すように、教師データセットＤＳには、教師画像と分類情報とのペアである教師データが複数個格納されている。図６では、教師データセットＤＳをテーブル形式で示しており、個々のレコードが教師データに相当する。
【００５６】
なお、図６では、分類情報を「犬」や「猫」などの文字で示しているが、これらを識別するための記号又は数値によって示されるようにしてもよい。教師画像は、機械学習モデルＭに対する入力（設問）に相当し、分類情報は、機械学習モデルＭからの出力（回答）に相当する。
【００５７】
本実施形態では、データ拡張が行われる前は、教師データセットＤＳには、ユーザが用意した複数の教師データだけが含まれる。その後、後述するデータ拡張部１０４によりデータ拡張が行われると、教師データセットＤＳには、ユーザが用意した複数の教師データと、データ拡張によって追加された少なくとも１つの教師データと、が含まれる。
【００５８】
データ記憶部１００は、機械学習モデルＭのプログラム（アルゴリズム）やパラメータなどを記憶する。ここでは、教師データセットＤＳによって学習済み（パラメータの調整済み）の機械学習モデルＭがデータ記憶部１００に記憶される場合を説明するが、学習前（パラメータの調整前）の機械学習モデルＭがデータ記憶部１００に記憶されていてもよい。
【００５９】
［３−２．入力部］
入力部１０１は、制御部１１を主として実現される。入力部１０１は、認識を行う機械学習モデルＭに入力画像を入力する。例えば、機械学習モデルＭは、入力画像が入力されると入力画像の特徴量を計算し、当該計算された特徴量に基づいて入力画像を分類し、入力画像が属する分類を示す分類情報を出力する。分類情報は、１つだけ出力されてもよいし、複数の分類情報が出力されてもよい。
【００６０】
先述したように、機械学習モデルＭは、入力画像が属する分類を示す分類情報を出力するのではなく、学習済みの複数の分類の各々のスコアを出力してもよい。この場合、入力画像は、スコアが最も高い分類、又は、スコアが閾値以上の分類に属することになる。
【００６１】
本実施形態の機械学習モデルＭは、複数の教師データを含む教師データセットＤＳが学習済みであり、入力画像は、教師データセットＤＳに含まれる何れかの教師画像となる。即ち、入力画像は、機械学習モデルＭに学習済みの教師画像の何れかとなる。
【００６２】
入力部１０１は、データ記憶部１００に記憶された教師データセットＤＳの中から、処理対象となる何れかの教師画像を選択し、入力画像として機械学習モデルＭに入力する。例えば、入力部１０１は、ユーザが指定した教師画像を選択してもよいし、ランダムに教師画像を選択してもよい。また例えば、入力部１０１は、加工部１０３による加工が行われていない教師画像を選択してもよいし、加工画像を取得した数が閾値未満の教師画像を選択してもよい。
【００６３】
なお、入力画像は、機械学習モデルＭに入力される画像であればよく、機械学習モデルＭにまだ学習させていない画像であってもよい。この場合、教師データセットＤＳのうち、まだ学習させていない教師画像が入力画像に相当してもよいし、教師データセットＤＳとは別に記憶された画像が入力画像に相当してもよい。例えば、まだ教師データセットＤＳに含まれていない画像がユーザ端末２０からアップロードされ、入力画像として入力されてもよい。
【００６４】
［３−３．特定部］
特定部１０２は、制御部１１を主として実現される。特定部１０２は、入力画像を入力とした機械学習モデルＭによる認識における根拠となる入力画像の特徴部分を特定する。先述したように、本実施形態では、認識を行う機械学習モデルＭと、ヒートマップＨを生成する手段と、が互いに別々であり、Ｇｒａｄ−ＣＡＭと呼ばれる手法を利用して特徴部分が特定される場合を説明する。
【００６５】
Ｇｒａｄ−ＣＡＭは、機械学習モデルＭにより計算された特徴マップにおける任意の位置に勾配の変化を加え、その際に生じる出力の変化の大きさをもとに、機械学習モデルＭによる認識における根拠となる重要な位置を特定手法である。この手法は、機械学習モデルＭによる認識に与える影響が大きい位置は、勾配の変化も大きいことに着目している。例えば、特定部１０２は、機械学習モデルＭが最終的に出力する認識結果（例えば、分類のスコア等）を取得した後に、当該認識結果と、機械学習モデルＭの中間的な出力である特徴マップと、の両方に基づいて、ヒートマップＨを生成する。
【００６６】
なお、Ｇｒａｄ−ＣＡＭを利用したヒートマップＨの生成方法自体は、公知の技術を利用可能なため、ここでは、ヒートマップＨを生成する際に利用される数式等の詳細（https://arxiv.org/abs/1610.02391、「Grad-CAM: Visual Explanations from Deep Networks via Gradient-Based Localization」）を省略する。また、Ｇｒａｄ−ＣＡＭ以外にも、Ｇｒａｄ−ＣＡＭ＋＋、Ｇｕｉｄｅｄ  Ｇｒａｄ−ＣＡＭ、又はＳｍｏｏｔｈ  Ｇｒａｄを利用してヒートマップＨが生成されてもよい。
【００６７】
上記のように、特定部１０２は、機械学習モデルＭから出力される認識の結果に基づいて特徴部分を特定する。本実施形態では、機械学習モデルＭは、少なくとも１以上の畳み込み層を含むモデル（例えば、ＣＮＮ）なので、特定部１０２は、畳み込み層から出力される特徴マップに更に基づいて特徴部分を特定することになる。なお、機械学習モデルＭは、畳み込み層を含まないモデルであってもよく、この場合には、特定部１０２は、特徴マップを利用せずに、機械学習モデルＭから出力される認識結果に基づいて、特徴部分を特定する。例えば、機械学習モデルＭとして、主に言語解析で利用され、畳み込み層を含まないＲＮＮ又はＦａｓｔｅｒ−ＲＮＮを利用する場合には、特定部１０２は、機械学習モデルＭから出力される認識結果に基づいて、特徴部分を特定する。
【００６８】
また、図３では、機械学習モデルＭの出力を可視化するためにヒートマップＨを例示したが、機械学習モデルＭは、ヒートマップＨに相当する情報を出力すればよく、例えば、入力画像の画素又は領域ごとに、特徴部分である蓋然性（確率）を示す数値を出力してもよい。この数値が高いほど特徴的であることを意味する。図３のヒートマップＨは、この数値を画像として表現したものといえる。なお、機械学習モデルＭは、特に蓋然性を示す数値は出力せずに、候補部分の位置を示す座標情報だけを出力してもよい。
【００６９】
例えば、特定部１０２は、入力画像のうち、特徴部分である蓋然性を示す数値が閾値以上の部分を特徴部分として特定する。例えば、図３の例であれば、特定部１０２は、入力画像のうち、ヒートマップＨにおける色が付けられた部分を特徴部分として特定する。なお、特定部１０２は、色が付けられた全ての部分を特徴部分として特定する必要はなく、例えば、色が最も薄い部分は特徴部分として特定しなくてもよいし、色が最も濃い部分だけを特徴部分として特定してもよい。
【００７０】
なお、特徴部分の特定方法は、Ｇｒａｄ−ＣＡＭを利用した手法に限られない。特徴部分の特定方法自体は、公知の手法を適用可能である。例えば、物体性の高い領域を示すバウンディングボックスを特定可能な機械学習モデルＭを利用するのであれば、特定部１０２は、バウンディングボックス内を特徴部分として特定してもよい。
【００７１】
また、特定部１０２は、バウンディングボックスそのものを特徴部分とするのではなく、バウンディングボックス内の一部を特徴部分として特定してもよい。例えば、特定部１０２は、バウンディングボックス内にエッジ処理を施してオブジェクトの輪郭線を抽出し、当該輪郭線の内部を特徴部分として特定してもよいし、バウンディングボックスの中心付近の領域だけを特徴部分として特定してもよい。
【００７２】
［３−４．加工部］
加工部１０３は、制御部１１を主として実現される。加工部１０３は、特徴部分の少なくとも一部を加工して加工画像を取得する。加工画像は、入力画像とは別の画像なので、加工部１０３は、入力画像を上書きして加工画像とするのではなく、入力画像とは別画像（別データ）として、加工画像を生成（新規作成又はファイル名を変えて保存）する。
【００７３】
例えば、加工部１０３は、特徴部分の少なくとも一部にマスク処理を施して加工画像を取得する場合を説明する。マスク処理は、画像内の特定の部分を抽出する処理（別の言い方をすれば、画像内の特定の部分を隠す処理）であり、マスキングと呼ばれることもある。マスク処理自体は、公知の画像処理を利用すればよく、ここでは、抽出対象となる部分を示すマスク画像（基準画像）を利用する場合を例に挙げて説明する。なお、本実施形態では、特徴部分の全部を加工対象とする場合を説明するが、後述する変形例のように、特徴部分の一部だけを加工対象としてもよい。
【００７４】
例えば、加工部１０３は、入力画像と同じサイズのマスク画像を作成する。ここでは、マスク画像は、特徴部分を黒色とし、それ以外の部分を白色とした二値画像とする。例えば、黒色は抽出しない部分（マスクする部分）を示し、白色は抽出する部分（マスクしない部分）を示す。図２〜図４の画像を例に挙げると、加工部１０３は、ヒートマップＨの色の付いた領域を黒色とし、色の付いていない部分を白色としたマスク画像を作成する。加工部１０３は、入力画像である教師画像Ｉ１に対してマスク画像を重ね合せ、マスク画像の白色の部分だけを抽出することによって、加工画像Ｉ２を取得する。
【００７５】
なお、マスク画像は、二値画像ではなく、例えば、グレースケール画像又はカラー画像であってもよい。また、加工部１０３による加工は、マスク処理に限られず、種々の加工を適用可能である。例えば、加工方法は、特徴部分の少なくとも一部の特徴を低下させたり、特徴部分の少なくとも一部の特徴を無くしたりする加工であればよい。
【００７６】
例えば、加工部１０３は、特徴部分の少なくとも一部にインペインティング処理を施して加工画像を取得してもよい。インペインティング処理は、処理対象の領域を周囲の色で塗りつぶす処理であり、画像修復と呼ばれることもある。インペインティング処理自体は、公知の画像処理を利用すればよく、ここでは、処理対象となる領域の周囲の何れかの画素の色で塗りつぶす場合を説明する。なお、周囲とは、処理対象となる領域に隣接する画素、又は、処理対象となる領域から所定画素以内の画素である。
【００７７】
本実施形態では、特徴部分の全部が加工対象となる場合を説明するので、例えば、加工部１０３は、入力画像のうち、特徴部分の周囲の画素の色（画素値）を取得する。例えば、加工部１０３は、特徴部分に隣接する何れかの画素、又は、特徴部分から所定画素以内の画素の色を取得する。加工部１０３は、当該取得した色で特徴部分の内部を塗りつぶすことによって、加工画像を取得する。なお、特徴部分の内部を塗りつぶす色は、周囲の１画素の色ではなく、周囲の複数の画素の色を混合した色であってもよい。また、特徴部分の内部は、単一の色で塗りつぶす必要はなく、位置に応じて色を変化させてもよい。また、加工部１０３は、色だけでなく、テクスチャや形状等についても周囲と調和するように塗りつぶし（いわゆるコンテンツに応じた塗りつぶし）をしてもよい。
【００７８】
また例えば、加工部１０３は、特徴部分の少なくとも一部の輝度を低下させることによって加工してもよい。また例えば、加工部１０３は、特徴部分の少なくとも一部の透明度を上げることによって加工してもよい。また例えば、加工部１０３は、特徴部分の少なくとも一部を、ユーザが指定した色又は予め定められた色で塗りつぶすことによって加工してもよい。
【００７９】
また例えば、加工部１０３は、特徴部分の少なくとも一部にぼかし処理を施すことによって加工してもよい。また例えば、加工部１０３は、特徴部分の少なくとも一部にノイズ処理を施すことによって加工してもよい。また例えば、加工部１０３は、特徴部分の少なくとも一部にテクスチャをマッピングすることによって加工してもよい。
【００８０】
［３−５．データ拡張部］
データ拡張部１０４は、制御部１１を主として実現される。データ拡張部１０４は、加工画像に基づいて、データ拡張をする。例えば、データ拡張部１０４は、加工画像に基づいて教師データを生成し、データ拡張をする。
【００８１】
本実施形態では、教師データは、教師画像と分類情報のペアなので、データ拡張部１０４は、加工画像と、加工画像の元となった入力画像の分類を示す分類情報と、のペアを教師データとして取得する。この分類情報は、入力画像を機械学習モデルＭに入力したときに出力された分類情報であってもよいし、教師データセットＤＳに格納された分類情報であってもよい。
【００８２】
データ拡張部１０４は、上記取得した教師データを教師データセットＤＳに追加することによって、データ拡張をする。例えば、データ拡張部１０４は、マスク処理が施された加工画像に基づいて、データ拡張をする。例えば、データ拡張部１０４は、マスク処理が施された加工画像と分類情報とのペアを教師データとして取得し、当該取得した教師データを教師データセットＤＳに追加することによって、データ拡張をする。
【００８３】
また例えば、データ拡張部１０４は、インペインティング処理が施された加工画像に基づいて、データ拡張をする。例えば、データ拡張部１０４は、インペインティング処理が施された加工画像と分類情報とのペアを教師データとして取得し、当該取得した教師データを教師データセットＤＳに追加することによって、データ拡張をする。
【００８４】
なお、データ拡張部１０４は、既存の教師データセットＤＳに追加するのではなく、上記取得した教師データを含む教師データセットを新たに生成することによって、データ拡張をしてもよい。例えば、新たに生成された教師データセットに基づいて、学習済みの機械学習モデルが追加学習される。また例えば、既存の教師データセットＤＳと、新たに生成された教師データセットと、に基づいて、未学習の機械学習モデルを新たに学習させてもよい。
【００８５】
［４．本実施形態において実行される処理］
図７は、データ拡張システムＳにおいて実行される処理の一例を示すフロー図である。図７に示す処理は、制御部１１，２１が記憶部１２，２２に記憶されたプログラムに従って動作することによって実行される。下記に説明する処理は、図５に示す機能ブロックにより実行される処理の一例である。なお、以降の処理が実行されるにあたり、ユーザは、教師データセットＤＳを作成してサーバ１０にアップロードしているものとする。また、機械学習モデルＭが教師データセットＤＳを学習済みであるものとする。
【００８６】
図７に示すように、まず、ユーザ端末２０において、制御部２１は、データ拡張処理の実行要求を送信する（Ｓ１）。実行要求は、所定形式のデータが送信されることによって行われる。実行要求は、ユーザが操作部２４から所定の操作をした場合に送信される。本実施形態では、まだ加工画像を取得していない全ての教師画像が処理対象になる場合を説明するが、加工画像を取得する教師画像をユーザが選択する場合には、実行要求には、ユーザが選択した教師画像を識別する情報が含まれていてもよい。なお、データ拡張処理は、ユーザが指示したときに実行されるのではなく、予め定められたタイミングが訪れた場合に実行させてもよい。
【００８７】
サーバ１０においては、実行要求を受信すると、制御部１１は、教師データセットＤＳに格納された教師画像の何れかを、入力画像として取得する（Ｓ２）。Ｓ２においては、制御部１１は、教師データセットＤＳに格納された教師画像のうち、まだ加工画像を取得していない任意の教師画像を、入力画像として取得する。なお、加工画像を取得しているか否かは、教師画像のファイル名やフラグなどの情報によって管理されているものとする。
【００８８】
制御部１１は、機械学習モデルＭに入力画像を入力する（Ｓ３）。Ｓ３において、機械学習モデルＭに入力画像が入力されると、機械学習モデルＭは、入力画像の特徴量を計算し、当該特徴量に基づいて、入力画像の分類を示す分類情報を出力する。
【００８９】
制御部１１は、Ｇｒａｄ−ＣＡＭを利用して、入力画像の特徴部分を特定する（Ｓ４）。Ｓ４においては、制御部１１は、機械学習モデルＭから出力された分類結果と、畳み込み層から出力された特徴マップと、に基づいてヒートマップＨを取得し、画素値が所定範囲の部分（色が付いている部分）を特徴部分として特定する。
【００９０】
制御部１１は、Ｓ４で特定した特徴部分にマスク処理を施して加工画像を取得する（Ｓ５）。Ｓ５においては、制御部１１は、特徴部分を黒色とし、特徴部分以外を白色としたマスク画像を生成し、入力画像にマスク画像を重ねることによって加工画像を取得する。
【００９１】
制御部１１は、加工処理を終了するか否かを判定する（Ｓ６）。Ｓ６においては、制御部１１は、全ての教師画像について加工画像を取得したか否かを判定する。まだ加工画像を取得していない教師画像がある場合、加工処理を終了すると判定されず、全ての教師画像について加工画像を取得した場合、加工処理を終了すると判定する。
【００９２】
加工処理を終了すると判定されない場合（Ｓ６；Ｎ）、Ｓ２の処理に戻り、次の教師画像を入力画像としてＳ２〜Ｓ５の処理が実行される。一方、加工処理を終了すると判定された場合（Ｓ６；Ｙ）、制御部１１は、加工画像に基づいて、データ拡張をして（Ｓ７）、本処理は終了する。Ｓ７においては、制御部１１は、加工画像と分類情報のペアを教師データとして取得し、当該取得した教師データを教師データセットＤＳに追加する。
【００９３】
なお、Ｓ７におけるデータ拡張が行われた後は、サーバ１０は、データ拡張された教師データセットＤＳに基づいて、機械学習モデルＭの学習処理を実行する。例えば、サーバ１０は、教師データセットＤＳに含まれる教師データの入力と出力の関係が得られるように、機械学習モデルＭのパラメータを調整する。学習処理自体は、公知の種々の手法を利用可能であり、例えば、ニューラルネットワーク等で利用されている手法を利用すればよい。
【００９４】
以上説明したデータ拡張システムＳによれば、機械学習モデルＭによる認識における根拠となる特徴部分を特定し、特徴部分の少なくとも一部を加工して加工画像を取得することによって、効率的なデータ拡張を実現することができる。従来技術で説明したような非効率的なデータ拡張が行われると、多数の教師画像が必要となるので、メモリ消費量が増大したり学習処理に時間がかかったりする可能性がある。この点、データ拡張システムＳによれば、学習に効果的な教師画像だけが取得され、学習効果が薄い又は全く無い教師画像が取得されることを防止し、メモリ消費量の軽減及び学習処理の高速化の少なくとも一方を効果的に実現することができる。サーバ１０に不要な処理を実行させる必要がなくなるので、サーバ１０の処理負荷を軽減することもできる。また例えば、ユーザは、ある程度の教師データだけを最初に用意すればよく、多数の教師データを用意する必要がないので、ユーザの手間を軽減することができる。これらの効果については、画像以外のデータを利用した場合についても同様である。
【００９５】
また、特徴部分の少なくとも一部にマスク処理を施して加工画像を取得し、マスク処理が施された加工画像に基づいてデータ拡張をすることにより、機械学習モデルＭが学習済みの特徴をマスクし、他の特徴を機械学習モデルＭに効率的に学習させることができる。その結果、機械学習モデルＭは、種々の特徴に基づいて分類をすることができるようになり、機械学習モデルＭの精度を向上させることができる。
【００９６】
また、特徴部分の少なくとも一部にインペインティング処理を施して加工画像を取得し、インペインティング処理が施された加工画像に基づいてデータ拡張をすることにより、機械学習モデルＭが学習済みの特徴を塗りつぶし他の特徴を機械学習モデルＭに効率的に学習させることができる。その結果、機械学習モデルＭは、種々の特徴に基づいて分類をすることができるようになり、機械学習モデルＭの精度を向上させることができる。
【００９７】
また、機械学習モデルＭから出力される認識の結果に基づいて特徴部分を特定し、実際の認識結果を利用して特徴部分を特定することによって、特徴部分を特定する精度を高めることができる。また、機械学習モデルＭを、ヒートマップＨを生成する手段とは別にすることによって、機械学習モデルＭの柔軟性を高めることができ、ユーザの目的にあった機械学習モデルＭを適用することができる。
【００９８】
また、畳み込み層を含むモデルを利用し畳み込み層から出力される特徴マップに更に基づいて特徴部分を特定することで、特徴部分を特定する精度を高めることができる。その結果、より効率的なデータ拡張を実現し、メモリ消費量の軽減及び学習処理の高速化の少なくとも一方を実現することができる。また、アルゴリズムが改善されているＧｒａｄ−ＣＡＭを利用すると、比較的早く特徴部分を特定することができるので、データ拡張処理を高速化することができる。その結果、サーバ１０の処理負荷を軽減することもできる。
【００９９】
また、機械学習モデルＭに学習済みの教師データセットＤＳに、加工画像を含む教師データを追加してデータ拡張を行うことで、既存の教師データセットＤＳをバリエーション豊かな内容とすることができる。その結果、分類の精度を効果的に向上させることができる。
【０１００】
［５．変形例］
なお、本発明は、以上に説明した実施の形態に限定されるものではない。本発明の趣旨を逸脱しない範囲で、適宜変更可能である。
【０１０１】
（１）例えば、実施形態では、特徴部分の全部が加工される場合を説明したが、特徴部分の一部だけが加工されてもよい。本変形例の加工部１０３は、特徴部分の一部を加工対象部分として選択し、当該選択した加工対象部分を加工して加工データを取得する。加工対象部分は、特徴部分のうち、加工が施される一部分である。特徴部分のうち、加工対象部分以外の部分については、加工は施されない。
【０１０２】
加工対象部分は、任意の方法で選択されるようにすればよく、ここでは、特徴部分の蓋然性を示す数値に基づいて加工対象部分が選択される場合を説明する。この数値は、特徴部分内の領域ごとに計算されるスコアに相当する。スコアは、分類に属する蓋然性とは異なり、特徴的な部分（機械学習モデルＭで認識可能な部分）である蓋然性を示す数値であり、特徴の強さを示す数値といえる。
【０１０３】
加工部１０３は、特徴部分内の領域ごとに算出されるスコアに基づいて、加工対象部分を選択する。実施形態と同様、ここでは、Ｇｒａｄ−ＣＡＭを利用してヒートマップＨが出力される場合を説明する。ヒートマップＨが示す色は、特徴部分の蓋然性を示す数値に相当するので、加工部１０３は、ヒートマップＨにおける色に基づいて、加工対象部分を選択して加工画像を取得する。
【０１０４】
図８は、変形例（１）における加工画像Ｉ２を示す図である。なお、ここでは、図２に示す教師画像Ｉ１が入力画像として機械学習モデルＭに入力された場合に、図３のヒートマップＨが出力された場合を説明する。図８に示すように、加工部１０３は、特徴部分（ヒートマップＨにおいて色が付けられた部分）の全部ではなく、その一部を加工対象部分として選択する。例えば、加工部１０３は、特徴部分の蓋然性を示す数値が閾値以上の部分を加工対象部分として選択する。
【０１０５】
例えば、ヒートマップＨにおいて、色の濃さが５段階で示されていたとすると、加工部１０３は、色が濃い順に３段階目までの部分を加工対象部分として選択し、４段階目と５段階目の部分は加工対象部分として選択しない。なお、加工対象部分の選択方法は、図８の例に限られず、加工部１０３は、候補部分の一部を加工対処部分として選択すればよい。例えば、加工部１０３は、色が最も濃い部分だけを加工対象部分として選択してもよいし、色が最も薄い部分だけを加工対象部分として選択してもよい。加工対象部分に対する加工方法は、実施形態で説明した通りである。
【０１０６】
変形例（１）によれば、特徴部分の一部を加工対象部分として選択し、当該選択した加工対象部分を加工して加工データを取得することで、より効率的なデータ拡張を実現することができる。例えば、特徴部分の中には、加工した方が良い部分もあれば、加工しない方が良い部分（まだ学習しきれていない部分）もある。この点、特徴部分の全てを加工するのではなく、一部だけを加工することにより、加工していない部分については、新たな教師データに含めて機械学習モデルＭに学習させることができる。
【０１０７】
また、特徴部分内の領域ごとに算出されるスコアに基づいて、加工対象部分を選択することにより、加工した方が良い部分と、加工しない方が良い部分と、を正確に区別することができ、加工対象部分の精度を高めることができる。その結果、より効率的なデータ拡張を実現することができる。
【０１０８】
（２）また例えば、実施形態及び変形例（１）では、１つの入力画像に対し、１つの加工画像が取得される場合を説明したが、１つの入力画像に対し、複数の加工画像が取得されてもよい。この場合、全く同じ加工画像を複数取得してもデータ拡張とはならないので、互いに内容が異なる複数の加工画像が取得されるものとする。
【０１０９】
加工部１０３は、互いに異なる複数の加工対象部分を選択し、当該選択した複数の加工対象部分に基づいて、複数の加工画像を取得する。複数の加工対象部分の各々は、位置、サイズ、及び形状の少なくとも１つが互いに異なる。位置、サイズ、及び形状が３つとも異なってもよいし、位置、サイズ、及び形状のうちの１つ又は２つだけが異なってもよい。
【０１１０】
例えば、ヒートマップＨにおいて、色の濃さが５段階で示されていたとすると、加工部１０３は、１つの入力画像に対し、（ａ）最も色の濃い部分だけを加工対象部分とした加工画像、（ｂ）最も色の濃い部分と２段階目の部分だけを加工対象部分とした加工画像、（ｃ）最も色の濃い部分から３段階目の部分までを加工対象部分とした加工画像、（ｄ）最も色の濃い部分から４段階目の部分までを加工対象部分とした加工画像、及び（ｅ）候補部分の全てを加工対象部分とした加工画像の５つの加工画像を取得する。
【０１１１】
なお、本変形例の加工部１０３は、複数の加工画像を取得すればよく、加工画像の数は、５つに限られない。１つの入力画像に対し、任意の数の加工画像が取得されるようにすればよく、２つ、３つ、４つ、又は６つ以上であってもよい。また、加工部１０３は、入力画像に関係なく所定数の加工画像を取得してもよいし、入力画像に基づいて加工画像の数を決定してもよい。例えば、加工部１０３は、ヒートマップＨの分布に基づいて加工画像の数を決定してもよい。個々の加工対象部分に対する加工方法は、実施形態で説明した通りである。
【０１１２】
データ拡張部１０４は、複数の加工画像に基づいて、データ拡張をする。データ拡張部１０４は、複数の加工画像にそれぞれ対応する複数の教師データを取得し、当該取得した複数の教師データに基づいて、データ拡張をする。個々の教師データの作成方法は、実施形態で説明した通りである。データ拡張方法についても、複数の教師データが対象となる点で実施形態と異なるだけであり、他の点については、実施形態と同じである。
【０１１３】
変形例（２）によれば、互いに異なる複数の加工対象部分を選択し、当該選択した複数の加工対象部分に基づいて、複数の加工データを取得してデータ拡張をすることで、教師データのバリエーションを効果的に増やすことができる。その結果、機械学習モデルＭの精度を効果的に向上させることができる。
【０１１４】
（３）また例えば、変形例（２）では、ヒートマップＨの色の濃さに基づいて複数の加工対象部分が選択される場合を説明したが、加工部１０３は、特徴部分の中から、複数の加工対象部分をランダムに選択してもよい。この場合、加工対象部分の数は、固定値であってもよいし、可変値であってもよい。加工対象部分の数が可変値である場合には、入力画像に基づいて加工対象部分の数が決定されてもよい。
【０１１５】
図９は、加工対象部分がランダムに選択される様子を示す図である。なお、ここでは、説明の簡略化のために、入力画像である教師画像Ｉ１の候補部分をバウンディングボックスＢとする。図９に示すように、加工部１０３は、バウンディングボックスＢ内の少なくとも一部を、加工対象部分としてランダムに選択する。図９の符号Ｂ１〜Ｂｎ（ｎは２以上の整数であり、加工画像の取得総数である。）に示すように、互いに位置、サイズ、及び形状の少なくとも１つが異なるように、加工対象部分が選択される。なお、符号Ｂ１〜Ｂｎでは、加工対象部分を濃い網掛けで示している。
【０１１６】
例えば、加工部１０３は、加工対象部分の位置、サイズ、及び形状の少なくとも１つをランダムに選択する。加工部１０３は、乱数発生関数に基づいて乱数を発生させ、当該発生させた乱数に基づいて、加工対象部分の位置、サイズ、及び形状の少なくとも１つを決定する。乱数と加工対象部分との関係は、加工対象部分を選択するプログラムコードに定義しておいてもよいし、テーブルや数式形式のデータとして定義しておいてもよい。以降、加工部１０３は、所定数の加工対象部分が選択されるまで、繰り返し乱数を発生させ、加工対象部分の位置、サイズ、及び形状の少なくとも１つを決定する。なお、乱数は、現在時刻等を利用して発生し、乱数を発生させるたびにその値が異なるものとする。
【０１１７】
変形例（３）によれば、特徴部分の中から、複数の加工対象部分をランダムに選択することで、比較的簡易な処理によって、互いに異なる複数の加工対象部分を選択することができ、サーバ１０の処理負荷を軽減することができる。また、特徴部分の蓋然性を示す数値を計算できない機械学習モデルＭであったとしても、複数の加工対象部分を選択し、効率的なデータ拡張を実現することができる。
【０１１８】
（４）また例えば、特定部１０２が複数の特徴部分を特定した場合、加工部１０３は、複数の特徴部分に基づいて、複数の加工画像を取得し、データ拡張部１０４は、複数の加工画像に基づいて、データ拡張をしてもよい。なお、複数の加工画像に基づくデータ拡張方法は、変形例（２）で説明した通りである。
【０１１９】
図１０は、入力画像に複数の特徴部分が存在する場合のヒートマップＨの一例を示す図である。図１０に示すように、ヒートマップＨで色が付けられた特徴部分Ｐ１，Ｐ２が存在した場合、加工部１０３は、特徴部分ごとに、当該特徴部分を加工して加工画像を取得する。別の言い方をすれば、加工部１０３は、複数の特徴部分のうち、互いに異なる部分が加工されるように、加工画像を取得する。
【０１２０】
例えば、加工部１０３は、特徴部分Ｐ１にだけマスク処理を施した１枚目の加工画像を取得し、特徴部分Ｐ２にだけマスク処理を施した２枚目の加工画像を取得してもよい。また例えば、加工部１０３は、これらとは別に、特徴部分Ｐ１，Ｐ２の２つに対してマスク処理を施した３枚目の加工画像を取得してもよい。
【０１２１】
変形例（４）によれば、複数の特徴部分に基づいて、複数の加工画像を取得してデータ拡張をすることで、教師データのバリエーションを効果的に増やすことができる。その結果、機械学習モデルＭの精度を効果的に向上させることができる。
【０１２２】
（５）また例えば、実施形態では、入力画像を分類する手段と、ヒートマップＨを生成する手段と、が互いに別々である場合を説明したが、これらは、一体化されていてもよい。即ち、機械学習モデルＭがこれら両方の手段を備えていてもよい。
【０１２３】
本変形例では、機械学習モデルＭの一例としてＣＡＭ（Class Activation Mapping）を説明する。ＣＡＭにおいては、最終層にＧＡＰ（Global Average Pooling）層が設けられており、ＧＡＰ層は、入力画像の分類結果と、ヒートマップＨと、の両方を出力する。ＧＡＰ層は、特徴マップのフィルタを畳み込んで平均値を算出し、所定の重みを乗算した値をソフトマックス関数に与えることによってヒートマップＨを生成する。ヒートマップＨは、活性化マップの一例であり、他の名称で呼ばれる活性化マップであってもよい。
【０１２４】
なお、ＣＡＭを利用したヒートマップＨの生成方法自体は、公知の技術を利用可能なため、ここでは、ＣＡＭにおける数式等の詳細（https://arxiv.org/abs/1512.04150、「Learning Deep Features for Discriminative Localization」）を省略する。また、ＣＡＭ以外にも、ＹＯＬＯ又はＳＳＤのように、機械学習モデルＭ自体がヒートマップＨを生成する機能を有していてもよい。
【０１２５】
上記のように、本変形例の機械学習モデルＭは、認識の結果と、認識結果に対するヒートマップＨを出力する。特定部１０２は、機械学習モデルＭから出力されたヒートマップＨに基づいて特徴部分を特定する。例えば、特定部１０２は、活性化マップを可視化したヒートマップＨを取得し、色がついている部分を特徴部分として特定する。
【０１２６】
変形例（５）によれば、機械学習モデルＭ自体にヒートマップＨを出力する機能を備えておくことによって、特徴部分を認識する精度を高めることができる。例えば、アルゴリズムが改善されているＣＡＭを利用すると、比較的早く特徴部分を特定することができるので、データ拡張処理を高速化することができる。その結果、サーバ１０の処理負荷を軽減することもできる。
【０１２７】
（６）また例えば、上記変形例を組み合わせてもよい。
【０１２８】
また例えば、加工部１０３は、入力画像のうち特徴部分だけを切り出して、その一部を加工することによって加工画像を取得してもよい。他にも例えば、加工部１０３は、入力画像のうち特徴部分以外の部分だけを切り出すことによって加工画像を取得してもよい。また例えば、加工部１０３は、ヒートマップＨに基づいて、加工画像の取得数を決定してもよい。例えば、ヒートマップＨの分布が広範囲に及んだり、ヒートマップＨの色の変化が激しかったりする場合には、入力画像内に多数の特徴が存在する可能性があるので、多数の加工画像を作成し、より多くの特徴を学習させてもよい。
【０１２９】
また例えば、入力データが画像である場合を説明したが、入力データが他の形式の場合にも、実施形態及び変形例で説明した処理が実行されることによって、データ拡張を実現すればよい。例えば、入力データが動画である場合、データ拡張システムＳは、動画に含まれる少なくとも１つの画像に対し、実施形態及び変形例で説明した処理を実行し、データ拡張を行う。また例えば、入力データがテキスト又は文書である場合、データ拡張システムＳは、テキスト又は文書の中から特徴部分を示す文字列を特定し、当該文字列を削除したり他の文字列に置き換えたりしたテキスト又は文書を加工データとして取得すればよい。また例えば、入力データが音声である場合、データ拡張システムＳは、音声の中から特徴部分を示す波形を特定し、当該波形を削除したり振幅を減らしたりした音声を加工データとして取得すればよい。
【０１３０】
また例えば、主な機能がサーバ１０で実現される場合を説明したが、各機能は、複数のコンピュータで分担されてもよい。例えば、サーバ１０及びユーザ端末２０の各々で機能が分担されてもよい。例えば、機械学習モデルＭによる処理がサーバ１０で実行されるのではなく、ユーザ端末２０で実行されてもよい。また例えば、データ拡張システムＳが複数のサーバコンピュータを含む場合には、これら複数のサーバコンピュータで機能が分担されてもよい。また例えば、データ記憶部１００で記憶されるものとして説明したデータは、サーバ１０以外のコンピュータによって記憶されてもよい。
【符号の説明】
【０１３１】
Ｓ  データ拡張システム、Ｎ  ネットワーク、Ｂ  バウンディングボックス、Ｈ  ヒートマップ、Ｍ  機械学習モデル、Ｐ  特徴部分、１０  サーバ、１１，２１  制御部、１２，２２  記憶部、１３，２３  通信部、２０  ユーザ端末、２４  操作部、２５  表示部、ＤＳ  教師データセット、Ｉ１  教師画像、Ｉ２  加工画像、Ｐ１，Ｐ２  特徴部分、１００  データ記憶部、１０１  入力部、１０２  特定部、１０３  加工部、１０４  データ拡張部。
【図１】
2020197833.tif 000003
【図２】
2020197833.tif 000004
【図３】
2020197833.tif 000005
【図４】
2020197833.tif 000006
【図５】
2020197833.tif 000007
【図６】
2020197833.tif 000008
【図７】
2020197833.tif 000009
【図８】
2020197833.tif 000010
【図９】
2020197833.tif 000011
【図１０】
2020197833.tif 000012
【手続補正書】
【提出日】令和2年10月20日(2020.10.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
認識を行う学習済みの機械学習モデルに入力データを入力する入力手段と、
前記入力データが入力されて前記機械学習モデルが行った認識において根拠とされた前記入力データの特徴部分を特定する特定手段と、
特定された前記特徴部分の少なくとも一部を加工して加工データを取得する加工手段と、
前記加工データに基づいて、データ拡張をするデータ拡張手段と、
を含むことを特徴とするデータ拡張システム。
【請求項２】
前記データ拡張手段は、前記加工データと、前記加工データの元となった前記入力データの分類を示す分類情報と、のペアに基づいて、前記データ拡張をする、
ことを特徴とする請求項１に記載のデータ拡張システム。
【請求項３】
前記加工手段は、前記特徴部分の少なくとも一部の特徴が低減又は消えて他の部分の特徴が学習されるように、前記特徴部分の少なくとも一部を加工して前記加工データを取得する、
ことを特徴とする請求項１又は２に記載のデータ拡張システム。
【請求項４】
前記特徴部分は、前記機械学習モデルの認識対象のうちの一部分であり、
前記加工手段は、前記一部分の少なくとも一部を加工して前記加工データを取得する、
ことを特徴とする請求項１〜３の何れかに記載のデータ拡張システム。
【請求項５】
前記加工手段は、前記特徴部分の一部を加工対象部分として選択し、当該選択した加工対象部分を加工して前記加工データを取得する、
ことを特徴とする請求項１〜４の何れかに記載のデータ拡張システム。
【請求項６】
前記加工手段は、前記特徴部分内の領域ごとに算出されるスコアに基づいて、前記加工対象部分を選択する、
ことを特徴とする請求項５に記載のデータ拡張システム。
【請求項７】
前記加工手段は、互いに異なる複数の前記加工対象部分を選択し、当該選択した複数の加工対象部分に基づいて、複数の前記加工データを取得し、
前記データ拡張手段は、前記複数の加工データに基づいて、前記データ拡張をする、
ことを特徴とする請求項５又は６に記載のデータ拡張システム。
【請求項８】
前記加工手段は、前記特徴部分の中から、前記複数の加工対象部分をランダムに選択する、
ことを特徴とする請求項７に記載のデータ拡張システム。
【請求項９】
前記特定手段は、複数の前記特徴部分を特定し、
前記加工手段は、前記複数の特徴部分に基づいて、複数の前記加工データを取得し、
前記データ拡張手段は、前記複数の加工データに基づいて、前記データ拡張をする、
ことを特徴とする請求項１〜８の何れかに記載のデータ拡張システム。
【請求項１０】
前記入力データは、前記機械学習モデルに入力される入力画像であり、
前記特定手段は、前記入力画像の特徴部分を特定し、
前記加工手段は、前記特徴部分の少なくとも一部を加工して加工画像を取得し、
前記データ拡張手段は、前記加工画像に基づいて、前記データ拡張をする、
ことを特徴とする請求項１〜９の何れかに記載のデータ拡張システム。
【請求項１１】
前記加工手段は、前記特徴部分の少なくとも一部にマスク処理を施して前記加工画像を取得し、
前記データ拡張手段は、前記マスク処理が施された前記加工画像に基づいて、前記データ拡張をする、
ことを特徴とする請求項１０に記載のデータ拡張システム。
【請求項１２】
前記加工手段は、前記特徴部分の少なくとも一部にインペインティング処理を施して前記加工画像を取得し、
前記データ拡張手段は、前記インペインティング処理が施された前記加工画像に基づいて、前記データ拡張をする、
ことを特徴とする請求項１０に記載のデータ拡張システム。
【請求項１３】
前記加工手段は、前記特徴部分の少なくとも一部に、輝度を低下させる輝度処理、透明度を上げる透明度処理、ユーザが指定した色又は予め定められた色で塗りつぶす色処理、ぼかし処理、又はノイズ処理を施して前記加工画像を取得し、
前記データ拡張手段は、前記輝度処理、前記透明度処理、前記色処理、前記ぼかし処理、又は前記ノイズ処理が施された前記加工画像に基づいて、前記データ拡張をする、
ことを特徴とする請求項１０に記載のデータ拡張システム。
【請求項１４】
前記特定手段は、前記機械学習モデルから出力される前記認識の結果に基づいて前記特徴部分を特定する、
ことを特徴とする請求項１〜１３の何れかに記載のデータ拡張システム。
【請求項１５】
前記機械学習モデルは、少なくとも１以上の畳み込み層を含むモデルであり、
前記特定手段は、前記畳み込み層から出力される特徴マップに更に基づいて前記特徴部分を特定する、
ことを特徴とする請求項１４に記載のデータ拡張システム。
【請求項１６】
前記機械学習モデルは、前記認識の結果と、前記認識結果に対する活性化マップを出力し、
前記特定手段は、前記活性化マップに基づいて前記特徴部分を特定する、
ことを特徴とする請求項１〜１５の何れかに記載のデータ拡張システム。
【請求項１７】
前記機械学習モデルは、複数の教師データを含む教師データセットが学習済みであり、
前記入力データは、前記教師データセットに含まれており、
前記データ拡張手段は、前記加工データを含む教師データを前記教師データセットに追加することによって、前記データ拡張をする、
ことを特徴とする請求項１〜１６の何れかに記載のデータ拡張システム。
【請求項１８】
認識を行う学習済みの機械学習モデルに入力データを入力する入力ステップと、
前記入力データが入力されて前記機械学習モデルが行った認識において根拠とされた前記入力データの特徴部分を特定する特定ステップと、
特定された前記特徴部分の少なくとも一部を加工して加工データを取得する加工ステップと、
前記加工データに基づいて、データ拡張をするデータ拡張ステップと、
を含むことを特徴とするデータ拡張方法。
【請求項１９】
認識を行う学習済みの機械学習モデルに入力データを入力する入力手段、
前記入力データが入力されて前記機械学習モデルが行った認識において根拠とされた前記入力データの特徴部分を特定する特定手段、
特定された前記特徴部分の少なくとも一部を加工して加工データを取得する加工手段、
前記加工データに基づいて、データ拡張をするデータ拡張手段、
としてコンピュータを機能させるためのプログラム。