IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

<>
  • 特許-機械学習プログラム、装置、及び方法 図1
  • 特許-機械学習プログラム、装置、及び方法 図2
  • 特許-機械学習プログラム、装置、及び方法 図3
  • 特許-機械学習プログラム、装置、及び方法 図4
  • 特許-機械学習プログラム、装置、及び方法 図5
  • 特許-機械学習プログラム、装置、及び方法 図6
  • 特許-機械学習プログラム、装置、及び方法 図7
  • 特許-機械学習プログラム、装置、及び方法 図8
  • 特許-機械学習プログラム、装置、及び方法 図9
  • 特許-機械学習プログラム、装置、及び方法 図10
  • 特許-機械学習プログラム、装置、及び方法 図11
  • 特許-機械学習プログラム、装置、及び方法 図12
  • 特許-機械学習プログラム、装置、及び方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-24
(45)【発行日】2024-10-02
(54)【発明の名称】機械学習プログラム、装置、及び方法
(51)【国際特許分類】
   G06N 3/082 20230101AFI20240925BHJP
   G06N 20/00 20190101ALI20240925BHJP
【FI】
G06N3/082
G06N20/00 130
【請求項の数】 8
(21)【出願番号】P 2023523763
(86)(22)【出願日】2021-05-25
(86)【国際出願番号】 JP2021019817
(87)【国際公開番号】W WO2022249285
(87)【国際公開日】2022-12-01
【審査請求日】2023-10-02
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】金月 寛彰
(72)【発明者】
【氏名】小林 健一
【審査官】北川 純次
(56)【参考文献】
【文献】特開2020-160764(JP,A)
【文献】米国特許出願公開第2018/0046915(US,A1)
【文献】HU, Xiaolong, et al.,"DRNet: Dissect and Reconstruct the Convolutional Neural Network via Interpretable Manners",arXiv:1911.08691v2,version v2,[online], arXiv (Cornell University),2020年02月26日,Pages 1-8,[retrieved on 2021.07.19], Retrieved from the Internet: <URL: https://arxiv.org/abs/1911.08691v2>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02- 3/10
G06N 20/00-20/20
(57)【特許請求の範囲】
【請求項1】
複数のクラスへ分類する機械学習モデルのパラメータと、前記複数のクラスのうち第1のクラスを正解ラベルに含む訓練データとに基づいて、前記機械学習モデルに第1の枝刈り処理を実行することによって前記第1のクラスを分類する第1の機械学習モデルを生成するための前記第1の枝刈り処理に関するパラメータを生成し、
前記機械学習モデルのパラメータと、前記複数のクラスのうち第2のクラスを正解ラベルに含む訓練データと、前記第1の枝刈り処理に関するパラメータを含む損失関数とに基づいて、前記機械学習モデルに第2の枝刈り処理を実行することによって前記第2のクラスを分類する第2の機械学習モデルを生成するための前記第2の枝刈り処理に関するパラメータを生成する、
処理をコンピュータに実行させることを特徴とする機械学習プログラム。
【請求項2】
前記第2の枝刈り処理に関するパラメータを生成する処理は、前記第2の機械学習モデルによる前記第2のクラスの分類結果と前記正解ラベルとの差を表す項と、前記第1の枝刈り処理に関するパラメータと前記第2の枝刈り処理に関するパラメータとの差を表す項とを含む前記損失関数を最小化することを含む、
請求項1に記載の機械学習プログラム。
【請求項3】
前記機械学習モデルはニューラルネットワークであり、
前記第1の枝刈り処理に関するパラメータは、前記複数のクラスへ分類する機械学習モデルに含まれるエッジの各々に対応し、前記第1の機械学習モデルのエッジとして残す適正度が高いエッジほど大きくなるスコアであり、
前記第2の枝刈り処理に関するパラメータは、前記複数のクラスへ分類する機械学習モデルに含まれるエッジの各々に対応し、前記第2の機械学習モデルのエッジとして残す適正度が高いエッジほど大きくなるスコアである、
ことを特徴とする請求項1又は請求項2に記載の機械学習プログラム。
【請求項4】
前記複数のクラスへ分類する機械学習モデルに含まれるエッジのうち、対応する前記第1の枝刈り処理に関するパラメータが大きい順に上位所定割合の数のエッジ、又は対応する前記第1の枝刈り処理に関するパラメータが所定値以上のエッジを、前記第1の機械学習モデルに残すことを表す第1のマスクを生成し、
前記複数のクラスへ分類する機械学習モデルに含まれるエッジのうち、対応する前記第2の枝刈り処理に関するパラメータが大きい順に上位所定割合の数のエッジ、又は対応する前記第2の枝刈り処理に関するパラメータが所定値以上のエッジを、前記第2の機械学習モデルに残すことを表す第2のマスクを生成する、
処理を前記コンピュータに実行させることを特徴とする請求項3に記載の機械学習プログラム。
【請求項5】
前記第1のマスク及び前記第2のマスクから選択された1以上のマスクの和集合に対応する前記複数のクラスへ分類する機械学習モデルの部分に、前記選択された1以上のマスクの各々を適用することにより、前記選択された1以上のマスクに対応するクラスを分類する第3の機械学習モデルを生成する、
処理を前記コンピュータに実行させることを特徴とする請求項4に記載の機械学習プログラム。
【請求項6】
分類されるクラスが未知のデータを前記第3の機械学習モデルに入力し、前記データを前記選択された1以上のマスクに対応するクラスに分類する、
処理を前記コンピュータに実行させることを特徴とする請求項5に記載の機械学習プログラム。
【請求項7】
複数のクラスへ分類する機械学習モデルのパラメータと、前記複数のクラスのうち第1のクラスを正解ラベルに含む訓練データとに基づいて、前記機械学習モデルに第1の枝刈り処理を実行することによって前記第1のクラスを分類する第1の機械学習モデルを生成するための前記第1の枝刈り処理に関するパラメータを生成し、
前記機械学習モデルのパラメータと、前記複数のクラスのうち第2のクラスを正解ラベルに含む訓練データと、前記第1の枝刈り処理に関するパラメータを含む損失関数とに基づいて、前記機械学習モデルに第2の枝刈り処理を実行することによって前記第2のクラスを分類する第2の機械学習モデルを生成するための前記第2の枝刈り処理に関するパラメータを生成する、
処理を実行する制御部を含むことを特徴とする機械学習装置。
【請求項8】
複数のクラスへ分類する機械学習モデルのパラメータと、前記複数のクラスのうち第1のクラスを正解ラベルに含む訓練データとに基づいて、前記機械学習モデルに第1の枝刈り処理を実行することによって前記第1のクラスを分類する第1の機械学習モデルを生成するための前記第1の枝刈り処理に関するパラメータを生成し、
前記機械学習モデルのパラメータと、前記複数のクラスのうち第2のクラスを正解ラベルに含む訓練データと、前記第1の枝刈り処理に関するパラメータを含む損失関数とに基づいて、前記機械学習モデルに第2の枝刈り処理を実行することによって前記第2のクラスを分類する第2の機械学習モデルを生成するための前記第2の枝刈り処理に関するパラメータを生成する、
処理をコンピュータが実行することを特徴とする機械学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
開示の技術は、機械学習プログラム、機械学習装置、及び機械学習方法に関する。
【背景技術】
【0002】
従来、複数のクラスへ分類する機械学習モデルについて、枝刈りによって一部のクラスのみを分類する個別の機械学習モデルを複数生成し、それらを結合させることで特定の複数のクラスを分類する機械学習モデルを生成する技術が存在する。例えば、機械学習済みのニューラルネットワークから、スーパーマスクを用いてサブネットワークを切り出す技術が提案されている。この技術では、ニューラルネットワークのエッジの重みに対応したスコア行列を用意し、ニューラルネットワークの重みに、スコア行列の上位k%の要素を1、その他の要素を0としたスーパーマスクを適用して、機械学習のフォワード処理が実行される。また、この技術では、バックワード処理時には、ニューラルネットワークのエッジの重みは固定した上で、スコア行列の各スコアについて、通常の勾配法により機械学習を実行する。
【先行技術文献】
【非特許文献】
【0003】
【文献】Vivek Ramanujan, Mitchell Wortsman, Aniruddha Kembhavi, Ali Farhadi, and Mohammad Rastegari, "What's Hidden in a Randomly Weighted Neural Network?", CVPR, 31 Mar 2020.
【発明の概要】
【発明が解決しようとする課題】
【0004】
上述のように、枝刈りによって生成した個別の機械学習モデルのうち、運用時のタスクに応じた個別の機械学習モデルを選択して結合することで、元の機械学習モデルに比べて、機械学習モデルのパラメータ数を少なくできるという効果がある。しかし、個別の機械学習モデルの構造によっては、結合により生成する機械学習モデルにおいて、枝刈りの効果が薄まる場合がある。
【0005】
一つの側面として、開示の技術は、元の機械学習モデルから枝刈りによって生成した一部のクラスのみを分類する個別の機械学習モデルを結合して機械学習モデルを生成する場合において、枝刈りの効果が薄まることを抑制する。
【課題を解決するための手段】
【0006】
一つの態様として、開示の技術は、複数のクラスへ分類する機械学習モデルのパラメータと、前記複数のクラスのうち第1のクラスを正解ラベルに含む訓練データとに基づいて、第1の枝刈り処理に関するパラメータを生成する。前記第1の枝刈り処理に関するパラメータは、前記機械学習モデルに第1の枝刈り処理を実行することによって前記第1のクラスを分類する第1の機械学習モデルを生成するためのパラメータである。また、開示の技術は、前記機械学習モデルのパラメータと、前記複数のクラスのうち第2のクラスを正解ラベルに含む訓練データと、前記第1の枝刈り処理に関するパラメータを含む損失関数とに基づいて、第2の枝刈り処理に関するパラメータを生成する。第2の枝刈り処理に関するパラメータは、前記機械学習モデルに第2の枝刈り処理を実行することによって前記第2のクラスを分類する第2の機械学習モデルを生成するためのパラメータである。
【発明の効果】
【0007】
一つの側面として、元の機械学習モデルから枝刈りによって生成した一部のクラスのみを分類する個別の機械学習モデルを結合して機械学習モデルを生成する場合において、枝刈りの効果が薄まることを抑制することができる、という効果を有する。
【図面の簡単な説明】
【0008】
図1】機械学習装置の機能ブロック図である。
図2】Nクラス分類器の一例を示す図である。
図3】Nクラス分類器のモジュール化を説明するための図である。
図4】Nクラス分類器のモジュール化を説明するための図である。
図5】ベースマスクの生成を説明するための図である。
図6】ベースマスク以外のマスクの生成を説明するための図である。
図7】分類装置の機能ブロック図である。
図8】機械学習装置及び分類装置の処理の一例を説明するための図である。
図9】機械学習装置として機能するコンピュータの概略構成を示すブロック図である。
図10】分類装置として機能するコンピュータの概略構成を示すブロック図である。
図11】機械学習処理の一例を示すフローチャートである。
図12】分類処理の一例を示すフローチャートである。
図13】本実施形態におけるモジュール間でのパラメータの共有割合の実験結果の一例を説明するための図である。
【発明を実施するための形態】
【0009】
以下、図面を参照して、開示の技術に係る実施形態の一例を説明する。本実施形態に係る機械学習システムは、機械学習装置と、分類装置とを含む。機械学習装置は、Nクラス分類器をモジュール化するためのマスクを生成する。分類器は、生成されたマスクを用いてタスクに応じた特定クラス分類器を生成し、運用データを分類する。以下、機械学習装置及び分類装置の各々について詳述する。
【0010】
まず、機械学習装置について説明する。図1に示すように、機械学習装置10は、機能的には、Nクラス分類器生成部12と、第1マスク生成部14と、第2マスク生成部16とを含む。また、機械学習装置10の所定の記憶領域には、Nクラス分類器22と、マスク集合24とが記憶される。
【0011】
Nクラス分類器生成部12は、入力されたデータを、N個のクラスのいずれかに分類するための分類器であるNクラス分類器22を生成する。例えば、Nクラス分類器22は、図2に示すようなニューラルネットワーク(Neural Network:NN)としてよい。図2の例では、丸印が各ニューロンであり、各層のニューロン間はエッジで接続されている。出力層(図2中の破線部)は、各クラスに対応したN個のニューロンを持ち、出力層の各ニューロンからは、入力されたデータが各クラスに分類される確率が出力される。
【0012】
Nクラス分類器生成部12は、機械学習装置10に入力された訓練データを取得し、取得した訓練データを用いた機械学習により、Nクラス分類器22のパラメータであるエッジの重みを算出する。訓練データは、画像データ、音声データ、センサデータ等のデータに、そのデータが属するクラスを示す正解ラベルが対応付けられたデータである。
【0013】
本実施形態では、上記のようなNクラス分類器22から、一部のクラスのみを分類可能な部分ネットワークをモジュールとして切り出し、モジュール同士を適宜結合することにより、任意のマルチクラスを分類可能な分類器を生成する。モジュール化することの利点は、ネットワークが小さくなることで、リスク検証が容易になること、及び、モジュール同士の結合で生成される分類器のパラメータ数を少なくすることができる点である。分類器のパラメータ数が少ない方が、計算量が低減されるため、運用時に用いる分類器として実用性が高まる。
【0014】
ここで、NNのモジュール化について説明する。例えば、図3の上図に示すように、オリジナルのNNが、入力されたデータを、クラス「猫」、「犬」、及び「鳥」の3クラスのいずれかに分類するものであるとする。オリジナルのNNには、クラス「猫」を表現する部分ネットワークと、クラス「犬」を表現する部分ネットワークと、クラス「鳥」を表現する部分ネットワークとが含まれる。機械学習装置は、クラス「猫」を表現する部分ネットワークをモジュールA、クラス「犬」を表現する部分ネットワークをモジュールB、及びクラス「鳥」を表現する部分ネットワークをモジュールCとして切り出す。そして、図3の下図に示すように、運用時のタスクが、入力されたデータが示すものが、猫か犬かを分類するタスクである場合、機械学習装置は、モジュールAとモジュールBとを結合した分類器を生成する。そして、機械学習装置は、入力されたデータを、モジュールAとモジュールBとを結合した分類器を用いて、クラス「猫」又はクラス「犬」に分類する。同様に、運用時のタスクが、入力されたデータが示すものが、猫か鳥かを分類するタスクである場合、機械学習装置10は、モジュールAとモジュールCとを結合した分類器を生成し、入力されたデータをクラス「猫」又はクラス「鳥」に分類する。
【0015】
NNをモジュール化する手法として、上述した非特許文献1に示すように、スーパーマスクを適用する手法が存在する。オリジナルのNNが手書き数字の画像データセットであるMNISTの10個の数字に対応する10クラス分類のNNである場合を例に、この手法によるモジュール化ついて説明する。図4に示すように、正解ラベル「0」の訓練データに基づく機械学習により生成した「マスク0」によりオリジナルのNNを枝刈りした際の、残りの部分ネットワークがモジュール0となる。モジュール0は、入力された画像データが示す数字が、「0」かそれ以外(1~9)かを分類するシングルクラス分類器である。同様に、正解ラベル「1」の訓練データに基づく機械学習により生成した「マスク1」によりオリジナルのNNを枝刈りした際の、残りの部分ネットワークがモジュール1となる。モジュール1は、入力された画像データが示す数字が、「1」かそれ以外(0、2~9)かを分類するシングルクラス分類器である。モジュール1とモジュール2とを結合することにより、「0」か「1」かを分類する2クラス分類の分類器が生成される。
【0016】
上述したように、モジュールを結合して生成される分類器のパラメータ数を少なくすることができる点が、オリジナルのNNの枝刈りによるモジュール化の効果である。しかし、生成されたモジュール間で、モジュールに含まれるエッジにばらつきが生じる場合がある。このような場合には、モジュール間で共有するエッジが少ないため、すなわち、モジュール間で同じパラメータを共有している割合が低いため、上記の枝刈りによるモジュール化の効果が薄まる。特に、オリジナルのNNに含まれるエッジ数が多い場合には、枝切りのバリエーションが多くなるため、枝切りにより生成されるモジュール間で、モジュールに含まれるエッジのばらつきが大きくなる。そこで、本実施形態では、モジュール間でのエッジのばらつきを抑制するように、各モジュールを生成する。以下、モジュールを生成するためのマスクを生成する第1マスク生成部14及び第2マスク生成部16について詳述する。
【0017】
第1マスク生成部14は、複数のクラスへ分類する機械学習モデルのパラメータと、複数のクラスのうち第1のクラスを正解ラベルに含む訓練データとに基づいて、第1の枝刈り処理に関するパラメータを生成する。第1の枝刈り処理に関するパラメータとは、機械学習モデルに第1の枝刈り処理を実行することによって第1のクラスを分類する第1の機械学習モデルを生成するためのパラメータである。
【0018】
具体的には、図5に示すように、第1マスク生成部14は、オリジナルのNNのエッジの各々に対応したスコアを要素とするスコア行列を用意する。図5右図において、s{i,j}は、オリジナルのNNのi番目の層のj番目のエッジに対応するスコアである。スコア行列の初期値はランダムに設定してよい。第1マスク生成部14は、スコア行列において、スコアが高い順に上位k%の要素を1、その他の要素を0としたマスクを生成する。また、第1マスク生成部14は、スコア行列において、スコアが所定値以上の要素を1、所定値未満の要素を0とするマスクを生成してもよい。第1マスク生成部14は、オリジナルのNNにおいて、生成したマスクの値が1の要素に対応するエッジ及びそのエッジで接続されたニューロンを含む部分ネットワークを用いて、機械学習のフォワード処理を実行する。図5の左図では、オリジナルのNNのうち、マスクの値が1の要素に対応する部分を実線、マスクの値が0の要素に対応する部分を点線で表している。より具体的には、第1マスク生成部14は、マスクの値が1に対応するオリジナルのNNの部分に対して、訓練データを入力して順方向に伝播させる。この際、第1マスク生成部14は、訓練データの正解ラベルyを、特定のクラスについては正例を示す値、それ以外のクラスについては負例を示す値とする。「特定のクラス」は、オリジナルのNNにより分類される複数のクラスのいずれか1つのクラスであり、複数のクラスのいずれであってもよい。そして、第1マスク生成部14は、分類結果y^(後述する数式内では、「y」の上に「^(ハット)」)を得る。
【0019】
また、第1マスク生成部14は、NNのエッジの重みではなく、スコア行列の各スコアに対して、機械学習のバックワード処理を実行する。具体的には、第1マスク生成部14は、分類結果y^が正解ラベルyに近づくように、誤差逆伝播法によりスコア行列の各スコアを更新する。例えば、第1マスク生成部14は、下記(1)式に示す損失関数を最小化するように、スコア行列の各スコアを更新する。
【0020】
【数1】
【0021】
なお、CE(y,y^)は、yとy^とのクロスエントロピーである。第1マスク生成部14は、上記のフォワード処理及びバックワード処理を機械学習の終了判定を満たすまで繰り返す。これにより、スコア行列において、オリジナルのNNに含まれるエッジのうち、特定のクラスを分類するためのモジュールのエッジとして残す適正度が高いエッジに対応するスコアほど大きな値となる。第1マスク生成部14は、機械学習が終了した際のスコア行列から生成されるマスクを、特定のクラスを分類するためのモジュールを生成するためのマスクとする。以下では、第1マスク生成部14により生成されるマスクを「ベースマスク」といい、ベースマスクにより生成されるモジュールを「ベースモジュール」という。第1マスク生成部14は、生成したベースマスクをマスク集合24に追加して記憶すると共に、ベースマスクに対応するスコア行列を第2マスク生成部16へ受け渡す。
【0022】
第2マスク生成部16は、機械学習モデルのパラメータと、複数のクラスのうち第2のクラスを正解ラベルに含む訓練データと、第1の枝刈り処理に関するパラメータを含む損失関数とに基づいて、第2の枝刈り処理に関するパラメータを生成する。第2の枝刈り処理に関するパラメータは、複数のクラスへ分類する機械学習モデルに第2の枝刈り処理を実行することによって第2のクラスを分類する第2の機械学習モデルを生成するためのパラメータである。
【0023】
具体的には、第2マスク生成部16は、特定のクラス以外のクラスを示す正解ラベルの各々が対応付けられた訓練データに基づく機械学習により、第1マスク生成部14と同様に、各クラスを分類するためのモジュールを生成するためのマスクを生成する。以下では、第2マスク生成部16により生成されるマスクを「訓練対象マスク」といい、訓練対象マスクにより生成されるモジュールを「訓練対象モジュール」という。この機械学習の際、第2マスク生成部16は、図6に示すように、訓練対象マスクに対応するスコア行列が、ベースマスクに対応するスコア行列と類似するように、訓練対象マスクに対応するスコア行列の各スコアを更新する。例えば、第2マスク生成部16は、訓練対象マスク毎に、下記(2)式に示すような損失関数Lを最小化するように、スコア行列の各スコアを更新する。
【0024】
【数2】
【0025】
なお、s{i,j}は、訓練対象マスクに対応するスコア行列の各要素の値、s{i,j} は、ベースマスクに対応するスコア行列の各要素の値、λはハイパーパラメータである。すなわち、(2)式に示す損失関数は、(1)式に示す損失関数に、モジュール間のスコア行列の差をペナルティとした正則化項を追加したものである。これにより、ベースモジュールと類似した枝刈り処理を実行するための訓練対象マスクが生成され、ベースモジュールと類似した訓練対象モジュールを生成することができる。第2マスク生成部16は、生成した訓練対象マスクをマスク集合24に追加して記憶する。
【0026】
次に、分類装置について説明する。図7に示すように、分類装置30は、機能的には、特定クラス分類器生成部32と、分類部34とを含む。また、分類装置30の所定の記憶領域には、特定クラス分類器42が記憶される。
【0027】
特定クラス分類器生成部32は、運用時のタスクに関するタスク情報を受け付ける。タスク情報には、タスクに応じたモジュールを指定する情報が含まれる。特定クラス分類器生成部32は、受け付けたタスク情報に基づいて、指定されたモジュールに対応するマスクをマスク集合24から取得する。また、特定クラス分類器生成部32は、Nクラス分類器22であるオリジナルのNNも取得する。特定クラス分類器生成部32は、取得したオリジナルのNNから、マスク集合24から取得したマスクの各々に対応する部分の和集合(以下、「和集合部分」という)を切り出す。和集合部分に、取得したマスクを適用することにより、そのマスクに対応するモジュールが生成される。特定クラス分類器生成部32は、切り出した和集合部分と、取得したマスクとを、特定クラス分類器42として記憶する。
【0028】
分類部34は、運用データを取得し、運用データを特定クラス分類器42に入力し、タスクに応じたクラスのうち、運用データが属するクラスを分類結果として出力する。運用データは、正解ラベルが未知である点を除いて、訓練データと同様である。具体的には、分類部34は、特定クラス分類器42に含まれるマスクの各々を和集合部分に適用して、タスクに応じたクラスの各々を分類するためのモジュールの各々を生成する。分類部34は、各モジュールに運用データを入力して分類結果を得て、分類結果の各々を統合して、最終的な分類結果を決定する。分類部34は、各モジュールから出力される分類結果、すなわち、運用データが各モジュールに対応するクラスに属する確率のうち、最も高い確率を示すモジュールから出力された分類結果を最終的な分類結果として決定してよい。分類部34は、決定した最終的な分類結果を出力する。
【0029】
ここで、図8を参照して、MNISTの0~9の10個の数字に対応する10クラス分類のNNをモジュール化して、運用データをクラス「3」又はクラス「5」に分類するタスクを例に、機械学習装置10及び分類装置30の処理の一例を説明する。
【0030】
まず、Nクラス分類器生成部12は、訓練データを用いた機械学習により、N(N=10)クラス分類器22を生成する。第1マスク生成部14は、1つのクラスを示す正解ラベルが対応付けられた訓練データとNクラス分類器22とに基づく機械学習により、ベースマスクを生成する。図8では、正解ラベル「0」が対応付けられた訓練データに基づき、入力された画像データが示す数字が、0か0以外かを分類するシングルクラス分類器であるモジュール0を生成するためのモジュール0マスクをベースマスクとする例を示している。第2マスク生成部14は、モジュール1~モジュール9の各々を生成するためのモジュール1マスク~モジュール9マスクの各々を生成する。この際、第2マスク生成部16は、モジュール1マスク~モジュール9マスクの各々に対応するスコア行列の各々が、ベースマスクに対応するスコア行列と類似するように、モジュール1マスク~モジュール9マスクの各々を生成する。これにより、モジュール0~9の各々に対応する10個のマスクが生成され、マスク集合24として記憶される。
【0031】
特定クラス分類器生成部32は、モジュール3及びモジュール5を指定するタスク情報を受け付け、マスク集合24から、モジュール3マスク及びモジュール5マスクを取得する。特定クラス分類器生成部32は、Nクラス分類器22のうち、モジュール3マスクに対応する部分と、モジュール5マスクに対応する部分との和集合部分を切り出し、モジュール3マスク及びモジュール5マスクと共に、特定クラス分類器42として記憶する。特定クラス分類器生成部32は、和集合部分にモジュール3マスクを適用してモジュール3を生成し、和集合部分にモジュール5マスクを適用してモジュール5を生成する。分類部34は、運用データとして、手書き数字の画像データを取得し、運用データをモジュール3に入力することにより、運用データが示す数字が3である確率を示す分類結果を得る。同様に、分類部34は、運用データをモジュール5に入力することにより、運用データが示す数字が5である確率を示す分類結果を得る。分類部34は、確率が高い方の分類結果を最終的な分類結果として出力する。例えば、分類部34は、モジュール3の分類結果が90%、モジュール5の分類結果が10%の場合、運用データが示す数字は「3」であるとする分類結果を出力する。
【0032】
機械学習装置10は、例えば図9に示すコンピュータ50で実現されてよい。コンピュータ50は、CPU(Central Processing Unit)51と、一時記憶領域としてのメモリ52と、不揮発性の記憶部53とを備える。また、コンピュータ50は、入力部、表示部等の入出力装置54と、記憶媒体59に対するデータの読み込み及び書き込みを制御するR/W(Read/Write)部55とを備える。また、コンピュータ50は、インターネット等のネットワークに接続される通信I/F(Interface)56を備える。CPU51、メモリ52、記憶部53、入出力装置54、R/W部55、及び通信I/F56は、バス57を介して互いに接続される。
【0033】
記憶部53は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等によって実現してよい。記憶媒体としての記憶部53には、コンピュータ50を、機械学習装置10として機能させるための機械学習プログラム60が記憶される。機械学習プログラム60は、Nクラス分類器生成プロセス62と、第1マスク生成プロセス64と、第2マスク生成プロセス66とを有する。また、記憶部53は、Nクラス分類器22及びマスク集合24の各々を構成する情報が記憶される情報記憶領域70を有する。
【0034】
CPU51は、機械学習プログラム60を記憶部53から読み出してメモリ52に展開し、機械学習プログラム60が有するプロセスを順次実行する。CPU51は、Nクラス分類器生成プロセス62を実行することで、図1に示すNクラス分類器生成部12として動作する。また、CPU51は、第1マスク生成プロセス64を実行することで、図1に示す第1マスク生成部14として動作する。また、CPU51は、第2マスク生成プロセス66を実行することで、図1に示す第2マスク生成部16として動作する。また、CPU51は、情報記憶領域70から情報を読み出して、Nクラス分類器22及びマスク集合24の各々をメモリ52に展開する。これにより、機械学習プログラム60を実行したコンピュータ50が、機械学習装置10として機能することになる。なお、プログラムを実行するCPU51はハードウェアである。
【0035】
分類装置30は、例えば図10に示すコンピュータ80で実現されてよい。コンピュータ80は、CPU81と、一時記憶領域としてのメモリ82と、不揮発性の記憶部83とを備える。また、コンピュータ80は、入力部、表示部等の入出力装置84と、記憶媒体89に対するデータの読み込み及び書き込みを制御するR/W部85と、通信I/F86とを備える。CPU81、メモリ82、記憶部83、入出力装置84、R/W部85、及び通信I/F86は、バス87を介して互いに接続される。
【0036】
記憶部83は、HDD、SSD、フラッシュメモリ等によって実現してよい。記憶媒体としての記憶部83には、コンピュータ80を、分類装置30として機能させるための分類プログラム90が記憶される。分類プログラム90は、特定クラス分類器生成プロセス92と、分類プロセス94とを有する。また、記憶部83は、特定クラス分類器42を構成する情報が記憶される情報記憶領域100を有する。
【0037】
CPU81は、分類プログラム90を記憶部83から読み出してメモリ82に展開し、分類プログラム90が有するプロセスを順次実行する。CPU81は、特定クラス分類器生成プロセス92を実行することで、図7に示す特定クラス分類器生成部32として動作する。また、CPU81は、分類プロセス94を実行することで、図7に示す分類部34として動作する。また、CPU81は、情報記憶領域100から情報を読み出して、特定クラス分類器42をメモリ82に展開する。これにより、分類プログラム90を実行したコンピュータ80が、分類装置30として機能することになる。なお、プログラムを実行するCPU81はハードウェアである。
【0038】
なお、機械学習プログラム60及び分類プログラム90の各々により実現される機能は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
【0039】
次に、本実施形態に係る機械学習システムの作用について説明する。機械学習装置10に訓練データが入力され、モジュール化のためのマスクの生成が指示されると、機械学習装置10において、図11に示す機械学習処理が実行される。また、分類装置30にタスク情報及び運用データが入力され、運用データの分類が指示されると、分類装置30において、図12に示す分類処理が実行される。以下、機械学習処理及び分類処理の各々について説明する。なお、機械学習処理及び分類処理は、開示の技術の機械学習方法の一例である。
【0040】
まず、図11を参照して、機械学習処理について説明する。
ステップS10で、Nクラス分類器生成部12が、機械学習装置10に入力された訓練データを取得する。次に、ステップS12で、Nクラス分類器生成部12が、取得した訓練データを用いた機械学習により、Nクラス分類器22を生成する。
【0041】
次に、ステップS14で、第1マスク生成部14が、Nクラス分類器22のエッジの各々に対応したスコアを要素とするスコア行列を用意する。また、第1マスク生成部14が、取得した訓練データの正解ラベルyを、特定のクラスについては正例、それ以外のクラスについては負例とする。そして、第1マスク生成部14が、スコア行列において、スコアが高い順に上位k%の要素を1、その他の要素を0としたマスクをNクラス分類器22に適用した部分に対して、訓練データを入力して順方向に伝播させ、分類結果y^を得る。さらに、第1マスク生成部14が、分類結果y^が正解ラベルyに近づくように、誤差逆伝播法によりスコア行列の各スコアを更新し、機械学習が終了した際のスコア行列からベースマスクを生成する。
【0042】
次に、ステップS16で、上記ステップS14と同様に、第2マスク生成部16が、特定のクラス以外のクラスを分類するための訓練対象モジュールの各々を生成するための訓練対象マスクを生成する。この際、第2マスク生成部16は、スコア行列がベースマスクのスコア行列と類似するように、訓練対象マスクの各々を生成する。次に、ステップS18で、第1マスク生成部14及び第2マスク生成部16の各々が、生成したマスクをマスク集合24として記憶し、機械学習処理は終了する。
【0043】
次に、図12を参照して、分類処理について説明する。
ステップS20で、特定クラス分類器生成部32が、タスクに応じたモジュールを指定する情報が含まれるタスク情報を取得する。次に、ステップS22で、特定クラス分類器生成部32が、タスク情報で指定されたモジュールに対応するマスクをマスク集合24から取得する。また、特定クラス分類器生成部32が、Nクラス分類器22から、取得したマスクの各々に対応する部分の和集合部分を切り出し、取得したマスクと共に、特定クラス分類器42として記憶する。
【0044】
次に、ステップS24で、分類部34が、分類装置30に入力された運用データを取得する。次に、ステップS26で、分類部34が、特定クラス分類器42に含まれるマスクの各々を和集合部分に適用して、タスクに応じたクラスの各々を分類するためのモジュールの各々を生成する。そして、分類部34が、各モジュールに運用データを入力して分類結果を得て、分類結果の各々を統合して、最終的な分類結果を決定し、出力する。そして、分類処理は終了する。
【0045】
以上説明したように、本実施形態に係る機械学習システムによれば、機械学習装置が、Nクラス分類器と、Nクラスのうちの第1のクラスを正解ラベルに含む訓練データとに基づいて、ベースモジュールを生成するための枝刈り処理に用いるベースマスクを生成する。ベースマスクは、Nクラス分類器のエッジの各々に対応したスコアを要素とするスコア行列をバイナリ化することにより生成される。また、機械学習装置が、Nクラス分類器と、Nクラスのうち第2のクラスを正解ラベルに含む訓練データと、ベースマスクに対応するスコア行列の値を含む損失関数とに基づいて、他のモジュールを生成するための枝刈り処理に用いるマスクを生成する。このように生成されたマスクをNクラス分類器に適用して各モジュールを生成することにより、モジュール間で同じパラメータを共有する割合が高まる。したがって、モジュールを結合して生成される分類器のパラメータ数を少なくすることができるという枝刈りの効果が薄まることを抑制することができる。
【0046】
図13を参照して、本実施形態におけるモジュール間でのパラメータの共有割合の実験結果の一例について説明する。この実験では、図8で説明したMNISTの例と同様に、10クラス分類器(オリジナルのNN)から、0~9の各クラスを分類するための10個のモジュールを生成した。なお、各モジュールは、オリジナルのNNの5%のパラメータ(各エッジの重み)数となるように枝切り処理を行うことにより生成した。図13に示す比較例1及び比較例2は、マスク作成のためのスコア行列の更新時に用いる損失関数に、モジュール間のスコア行列の差をペナルティとした正則化項を含まない手法である。また、比較例1は、スコア行列の初期値をモジュール間で共有しない場合、比較例2は、共有する場合である。また、本手法1及び本手法2は、上記実施形態のように、損失関数に、モジュール間のスコア行列の差をペナルティとした正則化項を含む手法である。また、本手法1では、正則化項に対するハイパーパラメータλをλ=1、本手法2では、λ=10とした。また、本手法1及び本手法2とも、スコア行列の初期値をモジュール間で共有した。
【0047】
また、図13において、「オリジナルのNNに対する結合時のパラメータ数の割合」は、オリジナルのNNのパラメータ数に対する、2つのモジュールを結合した場合のパラメータ数の割合である。また、この値は、10個のモジュールのうちの2つのモジュールの全組み合わせ45ペアの平均である。上述したように、各モジュールは、オリジナルのNNの5%のパラメータ数となるように生成されているため、この値は0.05~0.1となり、この値が小さいほど2つのモジュールが類似していることを表す。また、図13において、「共有パラメータの割合」は、結合する2つのモジュールで共有するパラメータ数の割合である。
【0048】
上述したように、モジュール同士が類似する場合は、モジュールを結合した場合のモデルのパラメータ数を削減することができるという効果がある。この効果を得るために、本手法とは異なり、スコア行列の初期値をモジュール間で共有させることも考えられる。しかし、図13に示すように、比較例1と比較例2とを比較すると、スコア行列の初期値をモジュール間で共有することにより、共有パラメータの割合が多少向上してはいる。これに対し、本手法1及び本手法2では、共有パラメータの割合が大きく向上している。すなわち、比較例1及び比較例2に比べ、本手法1及び本手法2は、よりモデルのデータ数を削減できる効果が高い。また、本手法2のように、損失関数に含まれる正則化項の影響をより大きくした場合には、その効果がより顕著になっている。
【0049】
なお、上記実施形態では、1クラス単位でモジュール化する例について説明したが、これに限定されない。例えば、10クラス分類器から、2クラスを分類するためのモジュールや、3クラスを分類するためのモジュールを生成するなど、元の機械学習モデルで分類可能な複数のクラスの一部を分類可能な部分ネットワークをモジュール化するものであればよい。
【0050】
また、上記実施形態では、機械学習装置と分類装置とをそれぞれ別のコンピュータで実現する場合について説明したが、機械学習装置と分類装置とを1つのコンピュータで実現してもよい。
【0051】
また、上記実施形態では、機械学習プログラム及び分類プログラムの各々が記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されない。開示の技術に係るプログラムは、CD-ROM、DVD-ROM、USBメモリ等の記憶媒体に記憶された形態で提供することも可能である。
【符号の説明】
【0052】
10 機械学習装置
12 Nクラス分類器生成部
14 第1マスク生成部
16 第2マスク生成部
22 Nクラス分類器
24 マスク集合
30 分類装置
32 特定クラス分類器生成部
34 分類部
42 特定クラス分類器
50、80 コンピュータ
51、81 CPU
52、82 メモリ
53、83 記憶部
59、89 記憶媒体
60 機械学習プログラム
90 分類プログラム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13