(57)【要約】【課題】学習処理に要する計算量を削減する学習プログラム、学習方法及び学習装置を提供する。【解決手段】学習プログラムは、データと該データの確信度とが対応付けられたモデルの学習対象である学習データを取得する処理をコンピュータに実行させることを特徴とする。学習プログラムは、取得する処理で取得された学習データに対して蓄積されたモデルの更新に関する判断結果と、所定条件とを比較して学習データの学習の要否を判定する処理を特徴とする。学習プログラムは、判定する処理において学習を要しないと判定された学習データを学習対象から除外する処理をコンピュータに実行させることを特徴とする。【選択図】図１
2018194919.tif 000002
【特許請求の範囲】
【請求項１】
データと該データの確信度とが対応付けられたモデルの学習対象である学習データを取得する処理と、
前記取得する処理で取得された学習データに対して蓄積された前記モデルの更新に関する判断結果と、所定条件とを比較して前記学習データの学習の要否を判定する処理と、
前記判定する処理において学習を要しないと判定された前記学習データを学習対象から除外する処理と、
をコンピュータに実行させることを特徴とする学習プログラム。
【請求項２】
前記判定する処理において学習を要すると判定された前記学習データと前記モデルとを照合し、照合対象の学習データが前記モデルの更新に用いるデータであるか否かを判断する処理と、
前記判断する処理において前記照合対象の学習データが前記モデルの更新に用いるデータであると判断された場合には、前記学習データを基に前記モデルを更新する処理と、
前記判断する処理における前記照合対象の学習データに対する判断結果を蓄積する処理と、
をさらにコンピュータに実行させることを特徴とする請求項１に記載の学習プログラム。
【請求項３】
前記学習データは、正例または負例のラベルと特徴量とを含み、
前記モデルは、前記モデルの確信度に反したラベルを含む学習データを誤った事例として学習し、
前記判断する処理は、前記照合対象の学習データが前記モデルの確信度に反したラベルを含む場合に前記照合対象の学習データが前記モデルの更新に用いるデータであると判断し、前記照合対象の学習データが前記モデルの確信度に対応するラベルを含む場合に前記照合対象の学習データが前記モデルの更新に用いるデータでないと判断することを特徴とする請求項２に記載の学習プログラム。
【請求項４】
前記蓄積する処理は、前記判断する処理において前記モデルの更新に用いるデータでないと判断された前記学習データに対し、正解事例であった回数を示す正解回数を蓄積し、
前記判定する処理は、前記取得する処理で取得された学習データに対して蓄積された前記正解回数が所定の閾値以上である場合に、前記学習データは学習を要しないと判定することを特徴とする請求項３に記載の学習プログラム。
【請求項５】
前記蓄積する処理は、前記判断する処理において前記モデルの更新に用いるデータでないと判断された前記学習データに対し、正解らしさを示す正解スコアを蓄積し、
前記判定する処理は、前記取得する処理で取得された学習データに対して蓄積された前記正解スコアが所定の閾値以上である場合に、前記学習データは学習を要しないと判定することを特徴とする請求項３に記載の学習プログラム。
【請求項６】
前記蓄積する処理は、前記判断する処理において前記モデルの更新に用いるデータでないと判断された前記学習データに対し、正解事例であった回数を示す正解回数を蓄積し、
前記判定する処理は、前記取得する処理で取得された学習データに対して蓄積された前記正解回数の処理回数に対する割合が所定の閾値以上である場合に、前記学習データは学習を要しないと判定することを特徴とする請求項３に記載の学習プログラム。
【請求項７】
前記判断する処理において前記照合対象の学習データが前記モデルの更新に用いるデータであると判断された場合、前記学習データに対して蓄積された前記判断結果をリセットする処理
をさらにコンピュータに実行させることを特徴とする請求項３〜６のいずれか一つに記載の学習プログラム。
【請求項８】
前記学習データは、テキストであり、
前記取得する処理は、前記学習対象である前記テキストに含まれる素性を取得することを特徴とする請求項１〜７のいずれか一つに記載の学習プログラム。
【請求項９】
データと該データの確信度とが対応付けられたモデルの学習対象である学習データを取得する処理と、
前記取得する処理で取得された学習データに対して蓄積された前記モデルの更新に関する判断結果と、所定条件とを比較して前記学習データの学習の要否を判定する処理と、
前記判定する処理において学習を要しないと判定された前記学習データを学習対象から除外する処理と、
をコンピュータが実行することを特徴とする学習方法。
【請求項１０】
データと該データの確信度とが対応付けられたモデルの学習対象である学習データを取得する取得部と、
前記取得部によって取得された学習データに対して蓄積された前記学習データに対するモデルに関する判断結果と、所定条件とを比較して前記学習データの学習の要否を判定し、学習を要しないと判定した前記学習データを学習対象から除外する判定部と、
を有することを特徴とする学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、学習プログラム、学習方法及び学習装置に関する。
【背景技術】
【０００２】
自然言語処理には、一例として、ｐｅｒｃｅｐｔｒｏｎ、ＳＶＭｓ（Support  Vector  Machines）、ＰＡ（Passive-Aggressive）やＡＲＯＷ（Adaptive  Regularization  of  Weight  Vectors）などいった各種の機械学習が用いられる。
【０００３】
例えば、学習対象のラベル付のテキストから単語を切り出して素性とし、この素性と確信度とが対応付けられたモデルを、ｐｅｒｃｅｐｔｒｏｎという手法にしたがって学習する場合について説明する。ｐｅｒｃｅｐｔｒｏｎ手法では、各学習データのそれぞれの素性ごとに、モデル内の素性と照合し、モデルの確信度に反したラベルが付されているか否かを評価する。そして、ｐｅｒｃｅｐｔｒｏｎ手法では、モデルによって与えられる確信度に反したラベルが付されている素性を誤った事例として分類し、この誤った事例をモデルに学習させてモデルを更新する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１０２５５５号公報
【特許文献２】特開２００５−４４３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の手法では、全ての学習データについて、モデルとの照合及び評価を繰り返し行っている。言い換えると、従来の手法では、連続して正解している学習データであっても、毎回、モデルとの照合及び評価を行っている。この結果、従来の手法では、学習処理の実行のために一定の計算量を必要とし、学習処理に要する計算量を削減することが難しい。
【０００６】
一つの側面では、学習処理に要する計算量を削減する学習プログラム、学習方法及び学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様では、学習プログラムは、データと該データの確信度とが対応付けられたモデルの学習対象である学習データを取得する処理をコンピュータに実行させることを特徴とする。学習プログラムは、前記取得する処理で取得された学習データに対して蓄積された前記モデルの更新に関する判断結果と、所定条件とを比較して前記学習データの学習の要否を判定する処理を特徴とする。学習プログラムは、前記判定する処理において学習を要しないと判定された前記学習データを学習対象から除外する処理をコンピュータに実行させることを特徴とする。
【発明の効果】
【０００８】
学習処理に要する計算量を削減する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係る学習装置の機能的構成を示すブロック図である。
【図２】図２は、学習データの一例を示す図である。
【図３】図３は、実施例１に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図４】図４は、実施例１に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図５】図５は、実施例１に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図６】図６は、実施例１に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図７】図７は、実施例１に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図８】図８は、実施例１に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図９】図９は、実施例１に係る素性の照合に対する判定の一例を示す図である。
【図１０】図１０は、実施例１に係る学習処理の手順を示すフローチャートである。
【図１１】図１１は、比較例に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図１２】図１２は、比較例に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図１３】図１３は、比較例に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図１４】図１４は、比較例に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図１５】図１５は、比較例に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図１６】図１６は、比較例に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図１７】図１７は、比較例に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図１８】図１８は、比較例に係る素性とモデルの照合及びモデルの更新の一例を示す図である。
【図１９】図１９は、実施例１に係る学習処理の他の手順を示すフローチャートである。
【図２０】図２０は、実施例１に係る学習処理の他の手順を示すフローチャートである。
【図２１】図２１は、実施例１に係る学習処理の他の手順を示すフローチャートである。
【図２２】図２２は、実施例１に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本願の開示する学習プログラム、学習方法及び学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例は一例であり、構成等は限定しない。
【実施例１】
【００１１】
［学習装置の一例］
図１は、実施例１に係る学習装置の機能的構成を示すブロック図である。図１に示す学習装置１０は、自然言語処理における素性を学習する学習処理を行うものである。学習装置１０は、学習対象のラベル付のテキストから単語を切り出して素性とし、この素性と確信度とが対応付けられたモデルとの照合を行う。そして、学習装置１０は、モデルの確信度に反したラベルが付されている素性を誤った事例として分類し、この誤った事例をモデルに学習させてモデルを更新する。ここで、本実施例１に係る学習装置１０は、モデルに対する各学習データの正解回数を蓄積し、正解回数が閾値以上となった学習データを学習対象から除外することによって、学習処理に要する計算量を削減する。
【００１２】
図１に示す学習装置１０は、上記の学習処理を実現するコンピュータである。
【００１３】
一実施形態として、学習装置１０は、パッケージソフトウェアやオンラインソフトウェアとして上記の学習処理を実行する学習プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の学習プログラムを情報処理装置に実行させることにより、情報処理装置を学習装置１０として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータの他、スマートフォン、携帯電話機などの移動体通信端末、さらには、ＰＤＡ（Personal  Digital  Assistants）などのスレート端末などがその範疇に含まれる。また、ユーザが使用する端末装置をクライアントとし、当該クライアントに上記の学習処理に関するサービスを提供するサーバ装置として実装することもできる。例えば、学習装置１０は、正例または負例のラベル付きの学習データ、または、学習データをネットワークもしくは記憶メディアを介して呼び出すことができる識別情報を入力とする。学習装置１０は、当該学習データに対する上記の学習処理の実行結果であるモデルを出力する学習サービスを提供するサーバ装置として実装される。この場合、学習装置１０は、Ｗｅｂサーバとして実装することとしてもよいし、アウトソーシングによって上記の学習処理に関するサービスを提供するクラウドとして実装することとしてもかまわない。
【００１４】
図１に示すように、本実施例１に係る学習装置１０は、取得部１１、判定部１２、モデル記憶部１３、照合部１４及び更新部１５を有する。なお、学習装置１０は、図１に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや音声出力デバイスなどの機能部を有することとしてもかまわない。
【００１５】
取得部１１は、モデル（後述）の学習対象である学習データを取得する。学習データは、正例または負例のラベルと特徴量とを含むテキストである。取得部１１は、学習対象であるテキストに含まれる素性を取得する。
【００１６】
一実施形態として、取得部１１は、ハードディスクや光ディスクなどの補助記憶装置またはメモリカードやＵＳＢ（Universal  Serial  Bus）メモリなどのリムーバブルメディアに保存された学習データを読み出すことにより取得することもできる。この他、取得部１１は、外部装置からネットワークを介して受信することによって学習データを取得することもできる。
【００１７】
判定部１２は、取得部１１によって取得された学習データに対して蓄積された学習データに対するモデルに関する判断結果と、所定条件とを比較して学習データの学習の要否を判定し、学習を要しないと判定した学習データを学習対象から除外する。
【００１８】
モデル記憶部１３は、データと該データの確信度とが対応付けられたモデルを記憶する。モデルは、テキストに含まれる素性と確信度とが対応付けられた学習である。モデルは、モデルによって付与される確信度、すなわち、モデルの確信度に反したラベルを含む学習データを誤った事例として学習する。このモデルは、学習処理が開始された段階には空の状態であり、更新部１５（後述）によって、素性やその確信度が新規登録される。或いは、このモデルは、更新部１５によって、素性に対応付けられた確信度が更新される。ここで言う「確信度」は、スパムである確からしさを指すため、以下では、あくまで一側面として「スパムスコア」と記載する。
【００１９】
照合部１４は、判定部１２によって学習を要すると判定された学習データと、モデル記憶部１３に記憶されたモデルとを照合し、照合対象の学習データがモデルの更新に用いるデータであるか否かを判断し、照合対象の学習データに対する判断結果を蓄積する。具体的には、照合部１４は、照合対象の学習データがモデルの確信度に反したラベルを含む場合、すなわち、分類が不正解（誤り）である場合に、照合対象の学習データがモデルの更新に用いるデータであると判断する。
【００２０】
一方、照合部１４は、照合対象の学習データがモデルの確信度に対応するラベルを含む場合、すなわち、分類が正解である場合に、照合対象の学習データがモデルの更新に用いるデータでないと判断する。そして、照合部１４は、モデルの更新に用いるデータでないと判断した学習データ、すなわち、分類が正解であるデータに対し、正解事例であった回数を示す正解回数を蓄積する。判定部１２は、取得部１１によって取得された学習データに対して蓄積された正解回数が所定の閾値以上である場合に、この学習データは学習を要しないと判定する。
【００２１】
更新部１５は、照合部１４によってモデルの更新に用いるデータであると判断された照合対象の学習データを基に、モデル記憶部１３に記憶されたモデルを更新する。具体的には、更新部１５は、モデルの更新に用いるデータであると判断された照合対象のテキストデータにおける素性のうち、モデルと一致する素性に対応付ける確信度をラベルに基づいて更新する。また、更新部１５は、モデルの更新に用いるデータであると判断された照合対象のテキストデータにおける素性のうち、モデルと一致しない素性をモデルに追加する。
【００２２】
［学習データの一例］
図２は、学習データの一例を示す図である。図２の上段に示す通り、取得部１１は、「
スパム」または「通常」のラベルが付与されたテキストを学習データとして取得する。
【００２３】
このように学習データが取得されると、取得部１１は、一例として、テキストに形態素解析を実行することにより形態素に分解し、テキストに含まれる名詞を抽出する。これにより、図２の下段に示す通り、ラベルと素性の対応関係が抽出される。例えば、１行目のテキスト「簡単に速度を上げる」の場合、素性として「簡単」、「速度」が抽出される。また、２行目のテキスト「簡単に売り上げを上げる」の場合、素性として「簡単」、「売り上げ」が抽出される。また、３行目のテキスト「速度を改善する」の場合、素性として「速度」、「改善」が抽出される。また、４行目のテキスト「売り上げを改善する」の場合、素性として「売り上げ」、「改善」が抽出される。
【００２４】
［学習装置の処理］
次に、学習装置１０における学習処理について説明する。一例として、図２に示す学習データが取得される場合を想定し、入力されるテキストをスパムまたは通常のいずれかのクラスに分類するのに用いるモデルをｐｅｒｃｅｐｔｒｏｎという手法にしたがって学習する場合を想定する。
【００２５】
例えば、学習装置１０は、図２に示す学習データのうち１行目の学習データ、２行目の学習データ、３行目の学習データ、４行目のデータの順に処理を実行する場合を想定する。図３〜図８は、実施例１に係る素性とモデルとの照合及びモデルの更新の一例を示す図である。図９は、実施例１に係る素性の照合に対する判定の一例を示す図である。図３〜図６は、図２に示した１〜４行目の学習データに対する１周目の処理について示す。図７〜図９は、図２に示した１〜４行目の学習データに対する２周目の処理について示す。図３〜図９では、左側に学習データＦ１を示し、右側にモデルＭ１を示す。また、取得部１１は、学習データＦ１とともに、繰り返し回数Ｌ、正解回数の閾値「１」を取得する。
【００２６】
そして、図３〜図９では、学習データに付与されたラベルにしたがって学習データにスパム「１」または通常「−１」のスパムスコアが付与される。そして、図３〜図９では、学習データＦ１に正解回数を保持する欄が対応付けられている。また、図３〜図９に示すように、モデルＭ１は、素性「簡単」、「速度」、「売り上げ」、「改善」と、スパムスコアとが対応付けられた構成を有する。そして、モデルＭ１は、学習処理が開始された段階にはスパムスコアは「０」の状態であり、学習処理の際に、更新部１５によってスパムスコアが更新される。図３〜図９を用いて説明する学習では、与えられた学習データを「＋１」と「−１」に分類するモデルを生成する。また、一つの学習データを取り出し、分類が不正解である場合に、更新部１５がモデルＭ１を更新する。
【００２７】
まず、図３を参照して、学習データＦ１の１行目（枠Ｒ１参照）のデータに対する１周目の処理について示す。まず、判定部１２は、学習対象の学習データに対して蓄積された正解回数が「１」以上である場合に、この学習データは学習を要しないと判定する。図３の例では、学習データＦ１の１行目のデータは正解回数が「０」であるため、判定部１２は、この１行目のデータは学習を要すると判定する。
【００２８】
続いて、照合部１４は、学習データＦ１の１行目のデータとモデルＭ１とを照合する（Ｙ１１参照）。ここで、照合対象の学習データＦ１がモデルのスパムスコアに反したラベルを含む場合は、分類が不正解（誤り）である場合である。
【００２９】
例えば、学習データのラベルと、モデルのスパムスコアとの積算値が０以下である場合は、学習データがモデルのスパムスコアに反したラベルを含み、分類は不正解である場合である。このように、この学習データのラベルと、モデルのスパムスコアとの積算値が０以下である場合、照合部１４は、この学習データに基づくモデルの更新が必要であると判断する。これに対し、学習データのラベルとモデルのスパムスコアとの積算値が０より大である場合は、学習データはモデルのスパムスコアと合致するラベルを含み、分類が正解である場合である。このように、学習データのラベルとモデルのスパムスコアとの積算値が０より大である場合、照合部１４は、モデルの更新が不要であると判断する。
【００３０】
図３の例では、学習データＦ１の１行目のデータについてはラベルが「−１」であるのに対し、モデルＭ１の素性「簡単」、「速度」のスパムスコアはいずれも「０」となっている。したがって、学習データＦ１の１行目のラベル「−１」と、モデルＭ１の素性「簡単」、「速度」のスパムスコア「０」との積算値がいずれも「０」となる。このため、学習データＦ１の１行目のデータについては、照合部１４は、分類が不正解と判断する。更新部１５は、学習データＦ１の１行目のデータを用いてモデルＭ１の更新を実施する（Ｙ１２参照）。
【００３１】
更新部１５は、モデルＭ１に含まれるスパムスコアのうち、学習データＦ１の１行目のデータの素性と一致する素性に対応付けられたスパムスコアをラベルに基づいて更新する。図３の例では、更新部１５は、モデルＭ１のうち、学習データＦ１の１行目に示す素性「簡単」、「速度」のスパムスコアを、学習データＦ１の１行目のラベルに対応させて、それぞれ「−１」に更新する（図３の欄Ｃ１，Ｃ２参照）。
【００３２】
次に、図４を参照して、学習データＦ１の２行目（枠Ｒ２参照）のデータに対する１周目の処理について示す。まず、判定部１２は、図４において、学習データＦ１の２行目のデータについては正解回数が「０」であるため、この２行目のデータは学習を要すると判定する。
【００３３】
続いて、照合部１４は、学習データＦ１の２行目のデータとモデルＭ１とを照合する（Ｙ１３参照）。図４の例では、学習データＦ１の２行目のラベル「＋１」と、モデルＭ１の素性「簡単」のスパムスコア「−１」との積算値が「−１」になる。このため、更新部１５は、モデルＭ１の素性「簡単」のスパムスコアについては、元のスパムスコア「−１」に２行目のデータのラベル「＋１」を加算し「０」（図４の欄Ｃ１参照）に更新する（Ｙ１４参照）。また、図４の例では、学習データＦ１の２行目のラベル「＋１」と、モデルＭ１の素性「売り上げ」のスパムスコア「０」との積算値が「０」になる。このため、更新部１５は、モデルＭ１の素性「売り上げ」のスパムスコアについては、ラベルに対応させて「＋１」に更新する（図４の欄Ｃ３参照）に更新する（Ｙ１４参照）。
【００３４】
次に、図５を参照して、学習データＦ１の３行目（枠Ｒ３参照）のデータに対する１周目の処理について示す。判定部１２は、学習データＦ１の３行目のデータについては正解回数が「０」であるため、この３行目のデータは学習を要すると判定する。そして、照合部１４は、学習データＦ１の３行目のデータとモデルＭ１とを照合する（Ｙ１５参照）。図５の例では、学習データＦ１の３行目のラベル「−１」と、モデルＭ１の素性「速度」のスパムスコア「−１」との積算値が「１」となる。このため、照合部１４は、学習データＦ１の３行目のデータについては、分類が正解であるため、モデルＭ１を更新しないと判断する。そして、照合部１４は、この学習データＦ１の３行目の正解回数に１を加算して「１」とする（Ｙ１６参照）。
【００３５】
続いて、図６を参照して、学習データＦ１の４行目（枠Ｒ４参照）のデータに対する１周目の処理について示す。判定部１２は、学習データＦ１の４行目のデータについては正解回数が「０」であるため、この４行目のデータは学習を要すると判定する。続いて、照合部１４は、学習データＦ１の４行目のデータとモデルＭ１とを照合する（Ｙ１７参照）。図６の例では、学習データＦ１の４行目のラベル「＋１」と、モデルＭ１の素性「売り上げ」のスパムスコア「＋１」との積算値が「１」となる。このため、照合部１４は、モデルＭ１を更新しないと判断し、学習データＦ１の４行目の正解回数に１を加算して「１」とする（Ｙ１８参照）。これで、学習データＦ１に対する１周目の処理が終了する。
【００３６】
次に、学習データＦ１に対する２周目の処理について説明する。図７は、学習データＦ１の１行目（枠Ｒ１参照）のデータに対する２周目の処理について示す図である。判定部１２は、図７において、学習データＦ１の１行目のデータについては正解回数が「０」であるため、この１行目のデータは学習を要すると判定する。照合部１４は、学習データＦ１の１行目のデータとモデルＭ１とを照合する（Ｙ２１参照）。図７の例では、学習データＦ１の１行目のラベル「−１」と、モデルＭ１の素性「速度」のスパムスコア「−１」との積算値が「１」になるため、照合部１４は、モデルＭ１を更新しないと判断する。そして、照合部１４は、この学習データＦ１の１行目の正解回数に１を加算して「１」とする（Ｙ２２参照）。
【００３７】
次に、図８を参照して、学習データＦ１の２行目（枠Ｒ２参照）のデータに対する２周目の処理について示す。判定部１２は、学習データＦ１の２行目のデータについては正解回数が「０」であるため、この４行目のデータは学習を要すると判定する。続いて、照合部１４は、学習データＦ１の２行目のデータとモデルＭ１とを照合する（Ｙ２３参照）。図８の例では、学習データＦ１の２行目のラベル「＋１」と、モデルＭ１の素性「売り上げ」のスパムスコア「＋１」との積算値が「１」になるため、照合部１４は、モデルＭ１を更新しないと判断する。そして、照合部１４は、この学習データＦ１の２行目の正解回数に１を加算して「１」とする（Ｙ２４参照）。
【００３８】
次に、図９を参照して、学習データＦ１の３，４行目（枠Ｒ３，Ｒ４参照）のデータに対する２周目の処理について示す。判定部１２は、学習データＦ１の３行目のデータについては正解回数が「１」であるため、この３行目のデータは学習を要しないと判定し、学習対象から除外する。言い換えると、学習装置１０は、２周目において、学習データＦ１の３行目のデータについて、以降のモデルＭ１との照合処理及びモデルＭ１の更新処理をスキップする（Ｙ２５参照）。続いて、判定部１２は、学習データＦ１の４行目のデータについても正解回数が「１」であるため、この４行目のデータは学習を要しないと判定し、学習対象から除外する。すなわち、学習装置１０は、学習データＦ１の４行目のデータについても、以降の処理をスキップする（Ｙ２６参照）。
【００３９】
このように、実施例１に係る学習装置１０では、正解回数が「１」以上である学習データについては、モデルとの照合処理及びモデルの更新処理自体を実行しないため、モデルとの照合処理及びモデルの更新処理に要する計算量を削減できる。
【００４０】
［学習処理の処理手順］
次に、実施例１に係る学習処理の手順について説明する。図１０は、実施例１に係る学習処理の手順を示すフローチャートである。この学習処理では、入力部等の指示入力により学習が指示された場合に処理を起動する。或いは、この学習処理は、学習データが取得された場合に処理を自動的に起動することができる。
【００４１】
図１０に示すように、取得部１１は、学習データＴを取得すると共に、学習の繰り返し回数Ｌの設定を取得する（ステップＳ１０１，Ｓ１０２）。さらに、取得部１１は、正解回数の閾値Ｃを取得する（ステップＳ１０３）。この繰り返し回数Ｌは、モデルに求める精度に応じて任意の回数を予め設定しておくことができる。また、この正解回数の閾値Ｃは、モデルに求める精度に応じて任意の回数を予め設定しておくことができる。なお、ステップＳ１０１〜Ｓ１０３の処理は、実行される順序が順不同であってよく、並列して実行されることも妨げない。
【００４２】
続いて、取得部１１は、ステップＳ１０１で取得された学習データＴの全てのサンプルに関するステータス、例えばフラグ等を未処理に設定する（ステップＳ１０４）。そして、学習装置１０は、学習データＴの中に未処理の学習データのサンプルが存在する限り（ステップＳ１０５：Ｙｅｓ）、ステップＳ１０６以降の処理を実行する。
【００４３】
すなわち、取得部１１は、ステップＳ１０１で取得された学習データＴのうち未処理の学習データｔを１つ選択する（ステップＳ１０６）。判定部１２は、この学習データｔの正解回数を参照し、正解回数が閾値Ｃ以上であるか否かを判断する（ステップＳ１０７）。言い換えると、判定部１２は、ステップ１０７において、学習データｔに対して蓄積されたモデルの更新に関する判断結果である正解回数と、正解回数が閾値Ｃ以上であるという条件とを比較して学習データｔの学習の要否を判定している。判定部１２は、この学習データｔの正解回数が閾値Ｃ以上であると判断した場合（ステップＳ１０７：Ｙｅｓ）、この学習データｔを学習対象から除外して、ステップＳ１１２に進む。
【００４４】
一方、この学習データｔの正解回数が閾値Ｃ以上でないと判定部１２が判定した場合（ステップＳ１０７：Ｎｏ）、学習データｔに対する学習処理が実行される。具体的には、照合部１４は、学習データｔの素性と、モデル記憶部１３に記憶されたモデルに含まれる素性とを照合し、スパムスコアを取得する（ステップＳ１０８）。
【００４５】
続いて、照合部１４は、照合対象の学習データｔがモデルの更新に用いるデータであるか否かを判断する（ステップＳ１０９）。具体的には、照合部１４は、ステップＳ１０８の照合により得られたスパムスコアによる学習データｔの分類が誤りである場合、学習データｔがモデルの更新に用いるデータであると判断する。
【００４６】
照合対象の学習データｔがモデルの更新に用いるデータであると照合部１４が判断した場合（ステップＳ１０９：Ｙｅｓ）、更新部１５は、学習データｔを基にモデルを更新する（ステップＳ１１０）。具体的には、更新部１５は、モデルに含まれる素性に対応付けられた現在のスパムスコアに学習データｔのラベルに付与されたスパムスコアを加算する更新を行う。一方、照合部１４は、照合対象の学習データｔがモデルの更新に用いるデータでないと判断した場合（ステップＳ１０９：Ｎｏ）、この学習データｔの正解回数に１を加算する（ステップＳ１１１）。
【００４７】
学習装置１０は、学習データｔの正解回数が閾値Ｃ以上であると判定部１２が判定した場合（ステップＳ１０７：Ｙｅｓ）、ステップＳ１１０またはステップＳ１１１の処理後、図示しないレジスタ等に保持される繰り返し試行回数ｉをインクリメントする（ステップＳ１１２）。
【００４８】
学習装置１０は、学習データＴの中に未処理の学習データのサンプルが存在しない場合（ステップＳ１０５：Ｎｏ）、或いは、ステップＳ１１２の処理後、繰り返し試行回数ｉが繰り返し回数Ｌ未満であるか否かを判定する（ステップＳ１１３）。学習装置１０は、繰り返し試行回数ｉが繰り返し回数Ｌ未満であると判定した場合（ステップＳ１１３：Ｙｅｓ）、ステップＳ１０４へ移行し、ステップＳ１０４〜ステップＳ１１３までの処理を繰り返し実行する。
【００４９】
一方、学習装置１０は、繰り返し試行回数ｉが繰り返し回数Ｌになったと判定した場合（ステップＳ１１３：Ｎｏ）、更新部１５が、モデル記憶部１３に記憶されたモデルを所定の出力先へ出力し（ステップＳ１１４）、処理を終了する。なお、モデルの出力先には、一例として、メールのフィルタリング処理を実行するアプリケーションプログラムなどが挙げられる。また、外部の装置からモデルの生成を依頼された場合には、その依頼元へ返信することができる。
【００５０】
［本実施例１の効果］
本実施例１によれば、学習データに対して蓄積されたモデルの更新に関する判断結果と所定条件とを比較して学習データの学習の要否を判定し、学習を要しないと判定された学習データを学習対象から除外するため、学習処理に要する計算量を削減できる。
【００５１】
ここで、本実施例に係る学習処理の処理量と、一般的な学習処理の処理量とを比較する。図１１〜図１８は、比較例に係る素性とモデルとの照合及びモデルの更新の一例を示す図である。図１１〜図１８では、本実施例１との比較のため、図３〜図９で用いた学習データＦ１と同じ学習データＦ２を用いて学習処理を行う例を示す。
【００５２】
図１１〜図１４は、比較例の学習処理のうち、図２に示した１〜４行目の学習データに対する１周目の処理について示す。図１５〜図１８は、図２に示した１〜４行目の学習データに対する２周目の処理について示す。図１１〜図１８では、図３〜図９と同様に、左側に学習データＦ２を示し、右側にモデルＭ２を示す。まず、比較例に係る学習処理のうち、学習データＦ２に対する１周目の処理について説明する。
【００５３】
図１１に示すように、比較例の学習処理では、学習データＦ２の１行目（枠Ｒ２１参照）のデータとモデルＭ２とを照合する（Ｙ１１Ａ参照）。図１１の例では、学習データＦ２の１行目のデータについてはラベルが「−１」であるのに対し、モデルＭ２の素性「簡単」、「速度」のスパムスコアはいずれも「０」である。したがって、学習データＦ２の１行目のラベル「−１」と、モデルＭ２の素性「簡単」、「速度」のスパムスコア「０」との積算値がいずれも「０」になる。このため、図１１の例では、学習データＦ２の１行目のデータを用いてモデルＭ２の更新が実施される（Ｙ１２Ａ参照）。この結果、モデルＭ２のうち素性「簡単」、「速度」のスパムスコアが、学習データＦ２の１行目のラベルに対応する「−１」にそれぞれ更新される（図１１の欄Ｃ１１，Ｃ１２参照）。
【００５４】
続いて、比較例の学習処理では、図１２に示すように、学習データＦ２の２行目（枠Ｒ２２参照）のデータとモデルＭ２とを照合する（Ｙ１３Ａ参照）。図１２の例では、学習データＦ２の２行目のラベル「＋１」とモデルＭ２の素性「簡単」のスパムスコア「−１」との積算値が「−１」になる。また、学習データＦ２の２行目のラベル「＋１」と、モデルＭ２の素性「売り上げ」のスパムスコア「０」との積算値が「０」になる。このため、図４に示す例と同様に、モデルＭ２の素性「簡単」のスパムスコアについては、２行目のデータのラベル「＋１」が加算された「０」（図１２の欄Ｃ１１参照）に更新される（Ｙ１４Ａ参照）。また、素性「売り上げ」のスパムスコアについては、ラベルに対応させて「＋１」（図１２の欄Ｃ１３参照）に更新される。
【００５５】
次に、比較例の学習処理では、図１３に示すように、学習データＦ２の３行目のデータ（枠Ｒ２３参照）とモデルＭ２とを照合する（Ｙ１５Ａ参照）。図１３の例では、学習データＦ２の３行目のラベル「−１」と、モデルＭ２の素性「速度」のスパムスコア「−１」との積算値が「１」になる。このため、比較例の学習処理では、モデルＭ２を更新しない。
【００５６】
続いて、比較例の学習処理では、図１４に示すように、学習データＦ２の４行目のデータ（枠Ｒ２４参照）とモデルＭ２とを照合する（Ｙ１６Ａ参照）。図１４の例では、学習データＦ２の４行目のラベル「＋１」と、モデルＭ２の素性「売り上げ」のスパムスコア「＋１」との積算値が「１」になるため、比較例の学習処理では、モデルＭ２を更新しない。これで、学習データＦ２に対する１周目の処理が終了する。
【００５７】
次に、比較例に係る学習処理のうち、学習データＦ２に対する２周目の処理について説明する。まず、比較例の学習処理では、図１５に示すように、学習データＦ２の１行目のデータ（枠Ｒ２１参照）とモデルＭ２とを照合する（Ｙ２１Ａ参照）。図１５の例では、学習データＦ２の１行目のラベル「−１」と、モデルＭ２の素性「速度」のスパムスコア「−１」との積算値が「１」になるため、モデルＭ２を更新しない。
【００５８】
続いて、比較例の学習処理では、図１６に示すように、学習データＦ２の２行目のデータ（枠Ｒ２２参照）とモデルＭ２とを照合する（Ｙ２２Ａ参照）。図１６の例では、学習データＦ２の２行目のラベル「＋１」と、モデルＭ２の素性「売り上げ」のスパムスコア「＋１」との積算値が「１」になるため、モデルＭ２を更新しない。
【００５９】
続いて、比較例の学習処理では、図１７に示すように、学習データＦ２の３行目のデータ（枠Ｒ２３参照）とモデルＭ２とを照合する（Ｙ２３Ａ参照）。図１７の例では、学習データＦ２の３行目のラベル「−１」と、モデルＭ２の素性「速度」のスパムスコア「−１」との積算値が「１」になるため、モデルＭ２を更新しない。
【００６０】
次に、比較例の学習処理では、図１８に示すように、学習データＦ２の４行目のデータ（枠Ｒ２４参照）とモデルＭ２とを照合する（Ｙ２４Ａ参照）。図１８の例では、学習データＦ２の４行目のラベル「＋１」と、モデルＭ２の素性「売り上げ」のスパムスコア「＋１」との積算値が「１」になるため、モデルＭ２を更新しない。図１８に示すように、この比較例に係る学習処理で得られたモデルＭ２は、本実施例１に係る学習処理で得られたモデルＭ１と同じものとなった。
【００６１】
このように、一般的な学習処理では、正しく分類できる学習データに対しても再度分類を行っている。すなわち、一般的な学習処理では、学習データＦ２の３行目のデータと学習データＦ２の４行目のデータが、１周目で正しく分類できたにも関わらず、２周目でも分類を行っている。したがって、一般的な学習処理では、正解事例が連続している素性であっても、毎回、モデルとの照合及び評価を行っているため、一定の計算量が必要となってしまう。
【００６２】
そして、学習対象のデータの中で、同種のデータに対する評価が変わる頻度がそれほど多くない場合もある。実際に、図１８に示すモデルＭ２は、本実施例１に係る学習処理で得られたモデルＭ１と同じものとなった。したがって、同種のデータに対し、毎回、モデルとの照合及び評価を行うことは、モデル内容を向上させないにも関わらず、計算時間を長期化させることになる。
【００６３】
これに対し、本実施例１に係る学習処理では、モデルに対する各学習データの正解回数を蓄積し、正解回数が閾値以上となった学習データを学習対象から除外する。実際に、図９で説明したように、学習装置１０は、学習データＦ１に対する２周目の処理において、１周目で正しく分類できた３，４行目の学習データを学習対象から除外し、モデルとの照合処理及びモデルの更新処理を行っていない。このため、本実施例１では、一般的な学習処理と比して、正解回数が閾値以上となった学習データに対するモデルとの照合処理及びモデルの更新処理に要する計算量を削減できる。したがって、本実施例１によれば、一般的な学習処理と比して、学習処理に要する計算時間の短縮化や、学習処理に使用するメモリの使用量の削減も図ることができる。
【００６４】
［学習処理の他の処理手順］
次に、実施例１の変形例について説明する。図１９は、実施例１に係る学習処理の他の手順を示すフローチャートである。
【００６５】
図１９に示すステップＳ２０１〜ステップＳ２０９は、図１０に示すステップＳ１０１〜ステップＳ１０９と同様の処理であるので、その説明は省略する。また、以下の説明において、図１０の各ステップに相当する図１９の各ステップについては、その説明は省略する。照合部１４は、照合対象の学習データｔがモデルの更新に用いるデータであると判断した場合（ステップＳ２０９：Ｙｅｓ）、この学習データｔに対して蓄積された正解回数をリセットする（ステップＳ２１０）。ステップＳ２１１は、図１０に示すステップＳ１１０に相当する。ステップＳ２１２は、図１０に示すステップＳ１１１に相当する。ステップＳ２１３〜ステップＳ２１５は、図１０に示すステップＳ１１２〜ステップＳ１１４に相当する。
【００６６】
図１９に示す学習処理では、一度、誤りであると分類された学習データｔに対し、正解回数をリセットしている。このように、図１９に示す学習処理では、適切なタイミングで正解回数をリセットすることによって、モデルに対する一定の評価を確保する。
【００６７】
［学習処理の他の処理手順］
次に、実施例１の他の変形例について説明する。学習装置１０は、照合部１４が、正解回数に代えて、モデルに対する各学習データの正解らしさを示す正解スコアを蓄積してもよい。そして、学習装置１０は、判定部１２が、この正解スコアが閾値以上となった学習データを学習対象から除外する判定を行ってもよい。図２０は、実施例１に係る学習処理の他の手順を示すフローチャートである。図２０に示すステップＳ３０１〜ステップＳ３０２は、図１０に示すステップＳ１０１〜ステップＳ１０２と同様の処理であるので、その説明は省略する。また、以下の説明において、図１０の各ステップに相当する図２０の各ステップについては、その説明は省略する。
【００６８】
取得部１１は、正解スコアの閾値Ｃａを取得する（ステップＳ３０３）。この正解スコアの閾値Ｃａは、モデルに求める精度に応じて任意の値を予め設定しておくことができる。ステップＳ３０４〜ステップＳ３０６は、図１０に示すステップＳ１０４〜１０６に相当する。判定部１２は、この学習データｔの正解スコアを参照し、正解スコアが閾値Ｃａ以上であるか否かを判断する（ステップＳ３０７）。判定部１２は、この学習データｔの正解スコアが閾値Ｃａ以上であると判断した場合（ステップＳ３０７：Ｙｅｓ）、この学習データｔを学習対象から除外して、ステップＳ３１２に進む。一方、この学習データｔの正解スコアが閾値Ｃａ以上でないと判定部１２が判定した場合（ステップＳ３０７：Ｎｏ）、学習データｔに対する学習処理が実行される。ステップＳ３０８〜ステップＳ３１０は、図１０に示すステップＳ１０８〜１１０に相当する。照合部１４は、照合対象の学習データｔがモデルの更新に用いるデータでないと判断した場合には（ステップＳ３０９：Ｎｏ）、この学習データｔの正解スコアを加算する（ステップＳ３１１）。
【００６９】
学習装置１０は、この学習データｔの正解スコアが閾値Ｃａ以上であると判定部１２が判断した場合（ステップＳ３０７：Ｙｅｓ）、ステップＳ３１０、或いは、ステップＳ３１１の処理後、ステップＳ３１２に進む。ステップＳ３１２〜ステップＳ３１４は、図１０に示すステップＳ１１２〜１１４に相当する。
【００７０】
また、学習装置１０は、判定部１２が、処理回数に対する正解回数の割合が所定の閾値以上となった学習データを学習対象から除外する判定を行ってもよい。具体的に、図２１を参照して説明する。
【００７１】
図２１は、実施例１に係る学習処理の他の手順を示すフローチャートである。図２１に示すステップＳ４０１〜ステップＳ４０２は、図１０に示すステップＳ１０１〜ステップＳ１０２と同様の処理であるので、その説明は省略する。また、以下の説明において、図１０の各ステップに相当する図２１の各ステップについては、その説明は省略する。取得部１１は、処理回数に対する正解回数の割合の閾値Ｃｂを取得する（ステップＳ４０３）。この正解スコアの閾値Ｃｂは、モデルに求める精度に応じて任意の値を予め設定しておくことができる。ステップＳ４０４〜ステップ４０６は、図１０に示すステップＳ１０４〜１０６に相当する。
【００７２】
判定部１２は、この学習データｔの正解回数と処理回数とを参照し、処理回数に対する正解回数の割合を計算して、計算した割合が閾値Ｃｂ以上であるか否かを判断する（ステップＳ４０７）。判定部１２は、この学習データｔの処理回数に対する正解回数の割合が閾値Ｃｂ以上であると判断した場合（ステップＳ４０７：Ｙｅｓ）、この学習データｔを学習対象から除外して、ステップＳ４１２に進む。一方、この学習データｔの処理回数に対する正解回数の割合が閾値Ｃｂ以上でないと判定部１２が判定した場合（ステップＳ４０７：Ｎｏ）、学習データｔに対する学習処理が実行される。ステップＳ４０８〜ステップＳ４１４は、図１０に示すステップＳ１０８〜１１４に相当する。
【００７３】
［具体的な適用例］
具体的には、本実施例１に係る学習処理を、新聞作成過程に適用した例について説明する。作成した記事がテキストデータに対応し、第１面、経済面、文化面、社会面等の掲載面がテキストデータに付与されるラベルとして対応する。モデルは、掲載面の数だけ設定されており、素性ごとにスコアが対応付けられている。予め、既存の各掲載面の複数の記事を学習データとして学習処理を実行し、モデルを作成する。
【００７４】
そして、学習装置１０は、新たに作成された記事について、本実施例１に係る学習処理を適用し、学習の要否の判定、学習が必要である場合におけるモデルとの照合及びモデルの更新を実行する。この結果、学習装置１０は、この記事に対して尤もらしい掲載面を出力する。このように、本実施例１を適用することによって、学習装置１０が、作成した記事をどの掲載面に載せるとよいかを自動的に提示するため、掲載面の選考に関する新聞作成者の作業時間を短縮できる。
【００７５】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、取得部１１、判定部１２、照合部１４または更新部１５を学習装置１０の外部装置としてネットワーク経由で接続するようにしてもよい。また、取得部１１、判定部１２、照合部１４または更新部１５を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の学習装置１０の機能を実現するようにしてもよい。
【００７６】
［学習プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図２２を用いて、上記の実施例と同様の機能を有する学習プログラムを実行するコンピュータの一例について説明する。
【００７７】
図２２は、実施例１に係る学習プログラムを実行するコンピュータのハードウェア構成例を示す図である。図２２に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０と、を有する。さらに、このコンピュータ１００は、ＣＰＵ（Central  Processing  Unit）１５０と、ＲＯＭ（Read  Only  Memory）１６０と、ＨＤＤ（Hard  Disk  Drive）１７０と、ＲＡＭ（Random  Access  Memory）１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【００７８】
ＨＤＤ１７０には、図２２に示すように、上記の実施例１で示した取得部１１、判定部１２、照合部１４及び更新部１５と同様の機能を発揮する学習プログラム１７０ａが記憶される。この学習プログラム１７０ａは、図１に示した取得部１１、判定部１２、照合部１４及び更新部１５の各構成要素と同様、統合又は分離してもかまわない。すなわち、ＨＤＤ１７０には、必ずしも上記の実施例１で示した全てのデータが格納されずともよく、処理に用いるデータがＨＤＤ１７０に格納されればよい。
【００７９】
このような環境の下、ＣＰＵ１５０は、ＨＤＤ１７０から学習プログラム１７０ａを読み出した上でＲＡＭ１８０へ展開する。この結果、学習プログラム１７０ａは、図２２に示すように、学習プロセス１８０ａとして機能する。この学習プロセス１８０ａは、ＲＡＭ１８０が有する記憶領域のうち学習プロセス１８０ａに割り当てられた領域にＨＤＤ１７０から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、学習プロセス１８０ａが実行する処理の一例として、図１０や図１９〜図２１に示す処理などが含まれる。なお、ＣＰＵ１５０では、必ずしも上記の実施例１で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
【００８０】
なお、上記の学習プログラム１７０ａは、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶されておらずともかまわない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に学習プログラム１７０ａを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から学習プログラム１７０ａを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに学習プログラム１７０ａを記憶させておき、コンピュータ１００がこれらから学習プログラム１７０ａを取得して実行するようにしてもよい。
【符号の説明】
【００８１】
１０  学習装置
１１  取得部
１２  判定部
１３  モデル記憶部
１４  照合部
１５  更新部
【図１】
2018194919.tif 000003
【図２】
2018194919.tif 000004
【図３】
2018194919.tif 000005
【図４】
2018194919.tif 000006
【図５】
2018194919.tif 000007
【図６】
2018194919.tif 000008
【図７】
2018194919.tif 000009
【図８】
2018194919.tif 000010
【図９】
2018194919.tif 000011
【図１０】
2018194919.tif 000012
【図１１】
2018194919.tif 000013
【図１２】
2018194919.tif 000014
【図１３】
2018194919.tif 000015
【図１４】
2018194919.tif 000016
【図１５】
2018194919.tif 000017
【図１６】
2018194919.tif 000018
【図１７】
2018194919.tif 000019
【図１８】
2018194919.tif 000020
【図１９】
2018194919.tif 000021
【図２０】
2018194919.tif 000022
【図２１】
2018194919.tif 000023
【図２２】
2018194919.tif 000024