(57)【要約】      （修正有）【課題】従業員の出勤簿データにおける特徴パターンの学習の際に、学習精度を向上させる機械学習プログラム、機械学習方法及び機械学習装置を提供する。【解決手段】学習装置１００は、制御部１１０において、複数の項目を有し、カレンダーに対応した複数のレコードを有する時系列データから、複数の単位期間から成る一定期間を当該単位期間ずつ始期を異ならせた各期間のデータと、始期に対応したラベルとが組となる学習データを複数生成する学習データ生成部１１１と、生成した各学習データから、カレンダー情報及び複数の項目それぞれを別次元としてテンソル化したテンソルデータを生成するテンソル生成部１１２と、テンソルデータをテンソル分解してニューラルネットワークに入力する学習モデルに対し、ニューラルネットワークの深層学習及びテンソル分解の方法の学習を行う学習部１１３と、を備える。【選択図】図５
2019191777.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
複数の項目を有し、カレンダーに対応した複数のレコードを有する時系列データから、複数の単位期間から成る一定期間を当該単位期間ずつ始期を異ならせた各期間のデータと、前記始期に対応したラベルとが組となる学習データを複数生成し、
生成した各学習データから、カレンダー情報、および、前記複数の項目それぞれを別次元としてテンソル化した、テンソルデータを生成し、
前記テンソルデータを入力テンソルデータとしてテンソル分解してニューラルネットワークに入力する学習モデルに対し、前記ニューラルネットワークの深層学習および前記テンソル分解の方法の学習を行う、
処理を実行させる機械学習プログラム。
【請求項２】
請求項１に記載の機械学習プログラムであって、前記コンピュータに、
前記始期を所定日数ずつずらした前記各期間のデータを、前記時系列データから抽出し、
抽出された前記各期間のデータと、前記各期間のデータに対応するラベルとを組とする複数の学習データを生成する、処理を実行させる機械学習プログラム。
【請求項３】
請求項１に記載の機械学習プログラムであって、前記コンピュータに、
月度、日付、出欠区分、出張有無を項目とする出勤簿データから、前記始期を異ならせた前記各期間のデータを抽出し、
前記各期間のデータそれぞれについて、当該期間のデータの終期から所定日数以内に療養期間がある場合は、ラベルとして療養ありを設定し、当該期間のデータの終期から所定日数以内に療養期間がない場合は、ラベルとして療養なしを設定し、
前記各期間のデータと、前記療養期間の有無により設定された各ラベルとを組とする複数の学習データを生成する、処理を実行させる機械学習プログラム。
【請求項４】
コンピュータが、
複数の項目を有し、カレンダーに対応した複数のレコードを有する時系列データから、複数の単位期間から成る一定期間を当該単位期間ずつ始期を異ならせた各期間のデータと、前記始期に対応したラベルとが組となる学習データを複数生成し、
生成した各学習データから、カレンダー情報、および、前記複数の項目それぞれを別次元としてテンソル化した、テンソルデータを生成し、
前記テンソルデータを入力テンソルデータとしてテンソル分解してニューラルネットワークに入力する学習モデルに対し、前記ニューラルネットワークの深層学習および前記テンソル分解の方法の学習を行う、
処理を実行する機械学習方法。
【請求項５】
複数の項目を有し、カレンダーに対応した複数のレコードを有する時系列データから、複数の単位期間から成る一定期間を当該単位期間ずつ始期を異ならせた各期間のデータと、前記始期に対応したラベルとが組となる学習データを複数生成する第１生成部と、
生成した各学習データから、カレンダー情報、および、前記複数の項目それぞれを別次元としてテンソル化した、テンソルデータを生成する第２生成部と、
前記テンソルデータを入力テンソルデータとしてテンソル分解してニューラルネットワークに入力する学習モデルに対し、前記ニューラルネットワークの深層学習および前記テンソル分解の方法の学習を行う学習部と、
を有する機械学習装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習プログラム、機械学習方法および機械学習装置に関する。
【背景技術】
【０００２】
従業員の出勤簿データから、数か月先のメンタル不調を予測し、カウンセリング等の対応を早期に実施することで、休職（療養）を回避することが行われている。一般的には、専任スタッフが、頻繁な出張、長時間残業、連続する急な欠勤、無断欠勤、これらの組合せなどの特徴的な特徴パターンの勤務状態に該当する従業員を目視で探している。このような特徴パターンは、各専任スタッフにより基準が異なることもあり、明確に定義することが難しい。近年では、決定木、ランダムフォレスト、ＳＶＭ（Support  Vector  Machine）などを用いた機械学習によって、メンタル不調を特徴づける特徴パターンを学習し、専任スタッフが行っている判断を機械的に予測することが行われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１５６７２１号公報
【特許文献２】特開２００６−１６３５２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、機械学習では、一定数以上の学習データが必要となるが、体調不良者は組織の約２〜３％の比率であるため、学習に必要なデータ数を集めるのは困難であり、学習精度を向上させることが難しい。
【０００５】
一般的な機械学習では、固定長の特徴ベクトルの入力が前提であり、出勤簿データにおける毎日の状況を出勤簿データの矢印の順にベクトル化した学習データを生成する。図１４は、一般的な機械学習のデータ形式を説明する図である。図１４に示すように、一般的な機械学習では、６月１日の出欠状況、６月１日の出張状況、６月１日の出勤時刻情報、６月１日の退勤時刻情報、６月２日の出欠状況、６月２日の出張状況、６月２日の出勤時刻情報、６月２日の退勤時刻情報のように、各要素に設定された値を順にベクトル化する。
【０００６】
このように、学習データのデータ形式は、単なるベクトル情報であり、ベクトルの各要素の属性情報は有さないので、どの値が出欠情報に該当し、どの値が出張情報に該当するのかを区別できない。このため、１つの出勤簿データから複数の学習データを生成したとしても、属性間の関係が不明確であることから、体調不良者の特徴パターンの数が増えるとは限らない。一方で、体調不良者の特徴パターンが複数にパターン化されてしまうこともあり、この場合は過学習となり、却って学習精度が劣化する。
【０００７】
一つの側面では、学習精度を向上させることができる機械学習プログラム、機械学習方法および機械学習装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
第１の案では、機械学習プログラムは、コンピュータに、複数の項目を有し、カレンダーに対応した複数のレコードを有する時系列データから、複数の単位期間から成る一定期間を当該単位期間ずつ始期を異ならせた各期間のデータと、前記始期に対応したラベルとが組となる学習データを複数生成する処理を実行させる。機械学習プログラムは、コンピュータに、生成した各学習データから、カレンダー情報、および、前記複数の項目それぞれを別次元としてテンソル化した、テンソルデータを生成する処理を実行させる。機械学習プログラムは、コンピュータに、前記テンソルデータを入力テンソルデータとしてテンソル分解してニューラルネットワークに入力する学習モデルに対し、前記ニューラルネットワークの深層学習および前記テンソル分解の方法の学習を行う処理を実行させる。
【発明の効果】
【０００９】
一実施形態によれば、学習精度を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施例１にかかる機械学習の全体例を説明する図である。
【図２】図２は、グラフ構造とテンソルとの関係の一例を示す図である。
【図３】図３は、部分グラフ構造の抽出の一例を示す図である。
【図４】図４は、ディープテンソルの学習例を説明する図である。
【図５】図５は、実施例１にかかる学習装置の機能構成を示す機能ブロック図である。
【図６】図６は、出勤簿データＤＢに記憶される出勤簿データの例を示す図である。
【図７】図７は、学習データの生成例を説明する図である。
【図８】図８は、テンソル化の具体例を説明する図である。
【図９】図９は、学習処理の流れを示すフローチャートである。
【図１０】図１０は、実施例１の手法を一般的な機械学習に適用した場合の問題点を説明する図である。
【図１１】図１１は、実施例１の手法をディープテンソルに適用した例を説明する図である。
【図１２】図１２は、効果を説明する図である。
【図１３】図１３は、ハードウェア構成例を説明する図である。
【図１４】図１４は、一般的な機械学習のデータ形式を説明する図である。
【発明を実施するための形態】
【００１１】
以下に、本願の開示する機械学習プログラム、機械学習方法および機械学習装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例１】
【００１２】
［全体例］
図１は、実施例１にかかる機械学習の全体例を説明する図である。図１に示すように、実施例１にかかる学習装置１００は、機械学習装置の一例であり、社員の日々の出勤、退勤時間、休暇取得、出張などの状況を含む出勤簿データを機械学習して学習モデルを生成し、学習後の学習モデルを用いて、予測対象のある社員の出勤簿データから、当該社員が療養するか療養しないかを予測するコンピュータ装置の一例である。なお、ここでは、学習装置１００が学習と予測とを実行する例で説明するが、別々の装置に実行することもできる。
【００１３】
具体的には、学習装置１００は、療養（休職）したことがある体調不良者の出勤簿データ（ラベル＝療養あり）と、療養（休職）したことがない通常者の出勤簿データ（ラベル＝療養なし）とを教師有データとして、グラフ構造のデータを深層学習（ディープラーニング・Deep  Learning；DL）するディープテンソルによって学習モデルを生成する。その後、学習結果を適用した学習モデルを用いて、新規なグラフ構造のデータに対して正確な事象（ラベル）の推定を実現する。
【００１４】
例えば、学習装置１００は、複数の項目を有し、カレンダーに対応した複数のレコードを有する時系列データから、複数の単位期間から成る一定期間を当該単位期間ずつ始期を異ならせた各期間のデータと、始期に対応したラベルとが組となる学習データ（教師データ）を複数生成する。そして、学習装置１００は、生成した学習データから、カレンダー情報、および、複数の項目を別次元としてテンソル化した、テンソルデータを生成する。その後、学習装置１００は、テンソルデータを入力テンソルデータとしてテンソル分解してニューラルネットワークに入力する学習モデルに対し、ニューラルネットワークの深層学習およびテンソル分解の方法を学習する。このようにして、学習装置１００は、出勤簿データから複数の学習データを生成し、各学習データのテンソルデータから、「療養する」か「療養しない」かを分類する学習モデルを生成する。
【００１５】
その後、学習装置１００は、判別対象の従業員の出勤簿データを同様にテンソル化してテンソルデータを生成し、学習済みの学習モデルに入力する。そして、学習装置１００は、当該従業員が「療養する」か「療養しない」かの予測結果を示す出力値を出力する。
【００１６】
ここで、ディープテンソルについて説明する。ディープテンソルとは、テンソル（グラフ情報）を入力とするディープラーニングであり、ニューラルネットワークの学習とともに、判別に寄与する部分グラフ構造を自動的に抽出する。この抽出処理は、ニューラルネットワークの学習とともに、入力テンソルデータのテンソル分解のパラメータを学習することによって実現される。
【００１７】
次に、図２および図３を用いてグラフ構造について説明する。図２は、グラフ構造とテンソルとの関係の一例を示す図である。図２に示すグラフ２０は、４つのノードがノード間の関係性（例えば「相関係数が所定値以上」）を示すエッジで結ばれている。なお、エッジで結ばれていないノード間は、当該関係性がないことを示す。グラフ２０を２階のテンソル、つまり行列で表す場合、例えば、ノードの左側の番号に基づく行列表現は「行列Ａ」で表され、ノードの右側の番号（囲み線で囲んだ数字）に基づく行列表現は「行列Ｂ」で表される。これらの行列の各成分は、ノード間が結ばれている（接続している）場合「１」で表され、ノード間が結ばれていない（接続していない）場合「０」で表される。以下の説明では、この様な行列を隣接行列ともいう。ここで、「行列Ｂ」は、「行列Ａ」の２，３行目および２，３列目を同時に置換することで生成できる。ディープテンソルでは、この様な置換処理を用いることで順序の違いを無視して処理を行う。すなわち、「行列Ａ」および「行列Ｂ」は、ディープテンソルでは順序性が無視され、同じグラフとして扱われる。なお、３階以上のテンソルについても同様の処理となる。
【００１８】
図３は、部分グラフ構造の抽出の一例を示す図である。図３に示すグラフ２１は、６つのノードがエッジで結ばれたものである。グラフ２１は、行列（テンソル）で表すと行列２２に示すように表現できる。行列２２に対して、特定の行および列を入れ替える演算、特定の行および列を抽出する演算、ならびに、隣接行列における非ゼロ要素をゼロに置換する演算を組み合わせることで、部分グラフ構造を抽出できる。例えば、行列２２の「ノード１，４，５」に対応する行列を抽出すると、行列２３となる。次に、行列２３の「ノード４，５」間の値をゼロに置換すると、行列２４となる。行列２４に対応する部分グラフ構造は、グラフ２５となる。
【００１９】
このような部分グラフ構造の抽出処理は、テンソル分解と呼ばれる数学的演算によって実現される。テンソル分解とは、入力されたｎ階テンソルをｎ階以下のテンソルの積で近似する演算である。例えば、入力されたｎ階テンソルを１つのｎ階テンソル（コアテンソルと呼ばれる。）、および、より低階のｎ個のテンソル（ｎ＞２の場合、通常は２階のテンソル、つまり行列が用いられる。）の積で近似する。この分解は一意ではなく、入力データが表すグラフ構造中の任意の部分グラフ構造をコアテンソルに含める事ができる。
【００２０】
続いて、ディープテンソルの学習について説明する。図４は、ディープテンソルの学習例を説明する図である。図４に示すように、学習装置１００は、「療養あり」などの教師ラベル（ラベルＡ）が付された出勤簿データからテンソルデータを生成する。そして、学習装置１００は、生成したテンソルデータを入力テンソルとしてテンソル分解を行って、初回にランダムに生成されたターゲットコアテンソルに類似するようにコアテンソルを生成する。そして、学習装置１００は、コアテンソルをニューラルネットワーク（ＮＮ：Neural  Network）に入力して分類結果（ラベルＡ：７０％、ラベルＢ：３０％）を得る。その後、学習装置１００は、分類結果（ラベルＡ：７０％、ラベルＢ：３０％）と教師ラベル（ラベルＡ：１００％、ラベルＢ：０％）との分類誤差を算出する。
【００２１】
ここで、学習装置１００は、誤差逆伝搬法を拡張した拡張誤差伝搬法を用いて予測モデルの学習を実行する。すなわち、学習装置１００は、ＮＮが有する入力層、中間層、出力層に対して、分類誤差を下層に伝搬させる形で、分類誤差を小さくするようにＮＮの各種パラメータを修正する。さらに、学習装置１００は、分類誤差をターゲットコアテンソルまで伝搬させ、予測に寄与するグラフの部分構造、すなわち休職者の特徴を示す特徴パターンもしくは通常者の特徴を示す特徴パターンに近づくように、ターゲットコアテンソルを修正する。このようにすることで、最適化されたターゲットコアテンソルには予測に寄与する部分パターンが抽出されるようになる。
【００２２】
なお、予測時には、テンソル分解により、入力テンソルをコアテンソル（入力テンソルの部分パターン）に変換し、コアテンソルをニューラルネットに入力することで、予測結果を得ることができる。テンソル分解では、コアテンソルがターゲットコアテンソルに類似するように変換される。つまり、予測に寄与する部分パターンを持つコアテンソルが抽出される。
【００２３】
［機能構成］
図５は、実施例１にかかる学習装置１００の機能構成を示す機能ブロック図である。図５に示すように、学習装置１００は、通信部１０１、記憶部１０２、制御部１１０を有する。
【００２４】
通信部１０１は、他の装置との通信を制御する処理部であり、例えば通信インタフェースである。例えば、通信部１０１は、管理者の端末から、処理開始指示、出勤簿データなどを受信する。また、通信部１１は、管理者の端末に対して、学習結果や予測対象のデータの予測結果などを出力する。
【００２５】
記憶部１０２は、プログラムやデータを記憶する記憶装置の一例であり、例えばメモリやハードディスクなどである。この記憶部１０２は、出勤簿データＤＢ１０３、学習データＤＢ１０４、テンソルＤＢ１０５、学習結果ＤＢ１０６、予測対象ＤＢ１０７を記憶する。
【００２６】
出勤簿データＤＢ１０３は、ユーザ等により入力された、社員等の出勤に関する出勤簿データを記憶するデータベースであり、時系列データの一例である。ここで記憶される出勤簿データは、複数の項目を有し、カレンダーに対応した複数のレコードを有するである。また、出勤簿データは、各企業で使用される出勤簿をデータ化したものであり、公知の様々な出勤管理システムなどから取得することができる。図６は、出勤簿データＤＢ１０３に記憶される出勤簿データの例を示す図である。図６に示すように、出勤簿データは、カレンダーに対応した各月（月度）の日単位のレコードより構成され、各レコードは各日付の出勤情報として、「出欠区分、出張有無、出勤時刻、退勤時刻」などの各項目の値を対応付けて記憶する。図６の例では、「９月１日は、出張ではなく、９時に出勤し２１時に退勤した」ことを示す。
【００２７】
なお、出欠区分の項目では、例えば出社、療養（休職）、積立休暇、有給休暇などの値が設定される。出張有無の項目には、出張の有無の値が設定され、出張ありまたは出張なしのいずれかに対応した値が格納される。なお、これらの値は、番号等により区別することができる。例えば、出社＝０、療養＝１、積立休暇＝２、有給休暇＝３などのように区別することもできる。なお、出勤簿データのカレンダーに対応したレコード単位は、日単位に限らず、週単位や月単位であってもよい。また、休暇が時間単位で取ることができる場合に対応して、時間休暇＝４、という値を設けてもよい。
【００２８】
学習データＤＢ１０４は、テンソル化対象となる学習データを記憶するデータベースである。具体的には、学習データＤＢ１０４は、出勤簿データにおいて始期の異なる一定期間のデータと、始期に対応したラベルの組となる各学習データを記憶する。例えば、学習データＤＢ１０４は、「データ、ラベル」として「学習データａ、ラベル（療養なし）」や「学習データｂ、ラベル（療養あり）」などを記憶する。なお、学習データについては後述する。
【００２９】
テンソルＤＢ１０５は、各学習データから生成された各テンソル（テンソルデータ）を記憶するデータベースである。このテンソルＤＢ１０５は、各テンソルとラベルとを対応付けた訓練データを記憶する。例えば、テンソルＤＢ１０５は、「テンソルデータ、ラベル」として「テンソルデータａ、ラベル（療養あり）」や「テンソルデータｂ、ラベル（療養なし）」などを記憶する。なお、テンソルＤＢ１０５が記憶するラベルは、当該テンソルの生成元の学習データに対応付けられるラベルである。
【００３０】
なお、上述の学習データにおけるレコードの項目やテンソルデータのラベルの設定は一例であり、「療養あり」と「療養なし」の値およびラベルに限らず、「休職者」と「通常者」、「休職あり」と「休職なし」などのように、体調不良者の有無を区別できる様々な値およびラベルを用いることもできる。
【００３１】
学習結果ＤＢ１０６は、学習結果を記憶するデータベースである。例えば、学習結果ＤＢ１０６は、制御部１１０による学習データの判別結果（分類結果）、機械学習やディープラーニングによって学習された、ＮＮの各種パラメータやディープテンソルの各種パラメータなどを記憶する。
【００３２】
予測対象ＤＢ１０７は、学習された予測モデルを用いて、療養（休職）の有無を予測する対象の出勤簿データを記憶するデータベースである。例えば、予測対象ＤＢ１０７は、予測対象の出勤簿データ、または、予測対象の出勤簿データから生成されたテンソルデータなどを記憶する。
【００３３】
制御部１１０は、学習装置１００全体の処理を司る処理部であり、例えばプロセッサなどである。この制御部１１０は、学習データ生成部１１１、テンソル生成部１１２、学習部１１３、予測部１１４を有する。なお、学習データ生成部１１１、テンソル生成部１１２、学習部１１３、予測部１１４は、プロセッサなどが有する電子回路やプロセッサなどが実行するプロセスの一例である。
【００３４】
学習データ生成部１１１は、出勤簿データＤＢ１０３に記憶される各出勤簿データから、複数の単位期間から成る一定期間を当該単位期間ずつ始期を異ならせた各期間のデータと、始期に対応したラベルとが組となる学習データを生成する処理部である。具体的には、学習データ生成部１１１は、一人の出勤簿データから重複を許して、指定された期間のデータをサンプリングする。例えば、学習データ生成部１１１は、各出勤簿データから、期間のはじまり（始期）が異なる複数のデータを抽出し、各データについて、データの終期から３か月以内に療養期間（休職期間）があればラベル「療養あり」を設定し、データの終期から３か月以内に療養期間（休職期間）がなければラベル「療養なし」を設定する。
【００３５】
図７は、学習データの生成例を説明する図である。図７では、一人の出勤簿データから始期を３０日ずつずらし、半年間の出勤簿データを１サンプルとしてサンプリングを行い、４個の学習データを生成する例を説明する。図７に示すように、学習データ生成部１１１は、４月から３月までの１年の出勤簿データから、４月から９月までの６か月分のデータ１ａを抽出する。そして、学習データ生成部１１１は、９月から３か月以内である１０月、１１月、１２月に「療養」が発生していないので、ラベルを「療養なし」と判定する。この結果、学習データ生成部１１１は、「データ１ａ、ラベル（療養なし）」を学習データＤＢ１０４に格納する。
【００３６】
続いて、学習データ生成部１１１は、４月から始期を３０日（１か月）ずらして、５月から１０月までの６か月分のデータ１ｂを抽出する。そして、学習データ生成部１１１は、１０月から３か月以内である１１月、１２月、１月のうち１月に「療養」が発生しているので、ラベルを「療養あり」と判定する。この結果、学習データ生成部１１１は、「データ１ｂ、ラベル（療養あり）」を学習データＤＢ１０４に格納する。
【００３７】
続いて、学習データ生成部１１１は、５月から始期を３０日（１か月）ずらして、６月から１１月までの６か月分のデータ１ｃを抽出する。そして、学習データ生成部１１１は、１１月から３か月以内である１２月、１月、２月のうち１月に「療養」が発生しているので、ラベルを「療養あり」と判定する。この結果、学習データ生成部１１１は、「データ１ｃ、ラベル（療養あり）」を学習データＤＢ１０４に格納する。
【００３８】
最後に、学習データ生成部１１１は、６月から始期を３０日（１か月）ずらして、７月から１２月までの６か月分のデータ１ｄを抽出する。そして、学習データ生成部１１１は、１２月から３か月以内である１月、２月、３月のうち１月および３月に「療養」が発生しているので、ラベルを「療養あり」と判定する。この結果、学習データ生成部１１１は、「データ１ｄ、ラベル（療養あり）」を学習データＤＢ１０４に格納する。
【００３９】
このようにして、学習データ生成部１１１は、一人の１年間出勤簿から最大４サンプルの学習データを生成することができる。なお、学習データ生成部１１１は、一人の出勤簿データから始期を１０日ずつずらし、半年間の出勤簿データを１サンプルとしてサンプリングする場合、最大１２個の学習データをできる。
【００４０】
テンソル生成部１１２は、各学習データをテンソル化したテンソルデータを生成する処理部である。テンソル生成部１１２は、各出勤簿データに含まれるカレンダー情報、および、各項目「月度、日付、出欠区分、出張有無、出勤時刻、退勤時刻」のそれぞれを次元としてテンソル化する。そして、テンソル生成部１１２は、テンソル化されたテンソル（テンソルデータ）と、学習データ生成部１１１によりテンソル元の学習データに付加されたラベルとを対応付けてテンソルＤＢ１０５に格納する。ここで、生成されたテンソルデータを入力としてディープテンソルによる学習を実行される。なお、ディープテンソルでは、学習時に、予測に影響を与える学習データの部分パターンを識別するターゲットコアテンソルを抽出し、予測時には、抽出したターゲットコアテンソルに基づいて予測を実行する。
【００４１】
具体的には、テンソル生成部１１２は、頻繁な出張、長時間残業、連続する急な欠勤、無断欠勤、頻繁な休日出勤、これらの組合せなど療養する傾向を特徴づけると想定される各項目を各次元として、学習データからテンソルを生成する。例えば、テンソル生成部１１２は、月度、日付、出欠区分、出張有無の４要素を用いた４次元の４階テンソルを生成する。なお、４か月分のデータである場合は、月度の要素数は「４」、各月の曜日数の最大値が３１であることから日付の要素数は「３１」、出欠の種類が出社・休暇・休日であることから出欠区分の要素数は「３」、出張はありとなしであることから出張有無の要素数は「２」となる。したがって、学習データから生成されるテンソルは、「４×３１×３×２」のテンソルとなり、学習データの各月度、日付における出欠区分、出張有無に対応する要素の値が１、そうでない要素の値が０となる。なお、テンソルの次元とする項目は、任意に選択することができ、過去の事例等から決定することもできる。
【００４２】
図８は、テンソル化の具体例を説明する図である。図８に示すように、テンソル生成部１１２が生成するテンソルは、横方向に月度、縦方向に日付、奥行き方向に出欠区分、左から出張ありのデータで途中から出張なしのデータとなる。日付は、上から１日目を順に示し、出欠区分は、手前から出社、休暇、休日を示す。例えば、図８の（ａ）は、月度１の１日目に出社して出張した要素を示し、図８の（ｂ）は、月度１の２日目に休暇を取得して出張しなかった要素を示す。
【００４３】
なお、本実施例では、上述したテンソルを簡略化して図８の（ｃ）のように記載することとする。すなわち、月度、日付、出欠区分、出張有無の各要素を重ねたキューブ状で表現することとし、各月度かつ日付の出張有無を区別して表現し、各月度かつ日付の出欠区分を区別して表現することとする。
【００４４】
学習部１１３は、テンソルデータを入力テンソルデータとしてテンソル分解してニューラルネットワークに入力する学習モデルに対し、ニューラルネットワークの深層学習およびテンソル分解の方法の学習を行う処理部である。すなわち、学習部１１３は、各学習データから生成された各テンソルデータおよびラベルを入力として、ディープテンソルによる学習モデルの学習を実行する。
【００４５】
具体的には、学習部１１３は、図４で説明した手法と同様、入力対象のテンソルデータ（入力テンソル）からコアテンソルを抽出してＮＮに入力し、ＮＮからの分類結果と入力テンソルに付与されているラベルとの誤差（分類誤差）を算出する。そして、学習部１１３は、分類誤差を用いて、ＮＮのパラメータの学習およびターゲットコアテンソルの最適化を実行する。その後、学習部１１３は、学習が終了すると、各種パラメータを学習結果として学習結果ＤＢ１０６に格納する。
【００４６】
予測部１１４は、学習結果を用いて、判別対象のデータのラベルを予測する処理部である。具体的には、予測部１１４は、学習結果ＤＢ１０６から各種パラメータを読み出し、各種パラメータを設定したニューラルネットワーク等を含むディープテンソルを構築する。そして、予測部１１４は、予測対象ＤＢ１０７から予測対象の出勤簿データを読み出してテンソル化して、ディープテンソルに入力する。その後、予測部１１４は、療養ありまたは療養なしを示す予測結果を出力する。そして、予測部１１４は、予測結果をディスプレイに表示したり、管理者端末に送信したりする。なお、予測対象の出勤簿データをそのまま入力してもよく、６か月ごとのデータに区切って入力することもできる。
【００４７】
［処理の流れ］
次に、学習処理の流れを説明する。図９は、学習処理の流れを示すフローチャートである。図９に示すように、処理開始が指示されると（Ｓ１０１：Ｙｅｓ）、学習データ生成部１１１は、出勤簿データＤＢ１０３から出勤簿データを読み込み（Ｓ１０２）、最初の始期に対応するデータをサンプリングする（Ｓ１０３）。
【００４８】
そして、学習データ生成部１１１は、３か月以内に「療養」があるデータである場合（Ｓ１０４：Ｙｅｓ）、当該サンプリングされたデータに、ラベル「療養あり」を付与する（Ｓ１０５）。一方、学習データ生成部１１１は、３か月以内に「療養」がないデータである場合（Ｓ１０４：Ｎｏ）、当該サンプリングされたデータに、ラベル「療養なし」を付与する（Ｓ１０６）。
【００４９】
その後、サンプリングを継続する場合（Ｓ１０７：Ｙｅｓ）、次の始期に対応するデータをサンプリングして（Ｓ１０８）、Ｓ１０４以降を実行する。一方、サンプリングを終了する場合（Ｓ１０７：Ｎｏ）、学習データ生成部１１１は、未処理の出勤簿データがあるか否かを判定する（Ｓ１０９）。
【００５０】
そして、学習データ生成部１１１は、未処理の出勤簿データがある場合（Ｓ１０９：Ｙｅｓ）、次の出勤簿データについてＳ１０２以降を繰り返す。一方、未処理の出勤簿データがない場合（Ｓ１０９：Ｎｏ）、テンソル生成部１１２が、学習データＤＢ１０４に記憶される各学習データのテンソル化を実行してテンソルを生成し（Ｓ１１０）、学習部１１３が、テンソルＤＢ１０５に記憶される各テンソルおよびラベルを用いて、学習処理を実行する（Ｓ１１１）。
【００５１】
［効果］
上述したように、実施例１による学習装置１００は、１０００人の組織において体調不良者は３０人程度の場合、１人の出勤簿から１サンプルとると体調不良者のサンプル数が３０と少ないが、３０日ずつ始期をずらすことで、最大１２０サンプルの体調不良者の学習データを生成することができる。また、学習装置１００は、１０日ずつ始期をずらした場合、最大３６０サンプルの体調不良者の学習データを生成することができる。
【００５２】
したがって、学習装置１００は、学習に十分なサンプル数を確保することができ、ディープテンソルによる学習が実行できるとともに、学習精度を向上させることができる。また、出勤簿データで扱う項目が異なるなどの理由で、学習済みのモデルを使うのではなく、新規に体調不良予測モデルを構築するケースでは、実施例１による手法を適用することで、小規模の組織でも体調不良予測モデルの構築が可能になる。
【００５３】
［一般的な機械学習との比較］
ここで、一般的な機械学習に実施例１による手法を適用して学習データを増やした例を説明する。図１０は、実施例１の手法を一般的な機械学習に適用した場合の問題点を説明する図である。図１０では、出勤簿データの１０月に、どの部分かはわからないが、体調不良の要因となる部分パターンが隠れているとする。このような状態で、図１１に示すように、３０日ずつ始期をずらすことで、データ２ｂ、データ２ｃ、データ２ｄを抽出する。これらのデータは、１０月が含まれることから、体調不良者のデータ（ラベル：療養あり）となる。
【００５４】
ここで、一般的な機械学習は、特徴ベクトルの同じ位置の要素を同じ属性として学習する（図１０の（１））。しかし、データ２ｂ、データ２ｃ、データ２ｄは、１０月のデータ位置が異なることから、体調不良の要因となる部分パターンが特徴ベクトルの異なる位置の要素で表現されていることとなる。つまり、実施例１のサンプリング方法で生成されたデータでは、元の部分パターンがデータ２ｂ、データ２ｃ、データ２ｄそれぞれでは異なる位置となる。一般的な機械学習は、異なる位置の要素を別の属性として学習するので、データの重複を許して複製することによる精度向上効果は期待できない。
【００５５】
一方、同じ条件で実施例１による手法を用いた例を説明する。図１１は、実施例１の手法をディープテンソルに適用した例を説明する図である。図１１に示すように、３０日ずつ始期をずらすことで、データ３ｂ、データ３ｃ、データ３ｄを抽出する。これらのデータは、１０月が含まれることから、体調不良者のデータ（ラベル：療養あり）となる。ディープテンソルの学習において体調不良の要因となる共通の部分パターンは、データが異なると、テンソル上の異なる部分構造として表現される。しかし、学習および予測モデルによって抽出されるコアテンソルは、共通の部分パターンを表現するものとなる。したがって、これらのデータは体調不良となるデータとして認識される。
【００５６】
このように、実施例１にかかる学習装置１００は、ディープテンソル（コアテンソル）の性質を利用して、元データの切り出し範囲を変化させることにより、複数の学習データを生成することができる。この結果、学習に必要なデータ数を集めることができ、学習精度を向上させることができる。
【００５７】
［シミュレーション］
次に、ディープテンソルと一般的な機械学習とのシミュレーション結果を説明する。図１２は、効果を説明する図である。図１２には、出勤簿データであるテストデータを５分割に分割した５分割交差の検証結果を示す。
【００５８】
ここでは、ディープテンソル（Ａ）、ディープテンソル（Ｂ）、決定木（Ａ）、決定木（Ｂ）のそれぞれについて、精度の指標となる正解率（accuracy）、適合率（precision）、再現率（recall）、Ｆ値を比較する。なお、ディープテンソル（Ａ）は、サンプルを増やさずに２９０サンプルを用いてディープテンソルによる学習を実行した結果であり、ディープテンソル（Ｂ）は、実施例１による手法サンプルを１０１０サンプルに増やしてディープテンソルによる学習を実行した結果である。決定木（Ａ）は、サンプルを増やさずに２９０サンプルを用いて決定木による学習を実行した結果であり、決定木（Ｂ）は、実施例１による手法サンプルを１０１０サンプルに増やして決定木による学習を実行した結果である。
【００５９】
図１２に示す結果において、各学習結果（Ｂ）に対するすべての指標が各学習結果（Ａ）を上回っていれば、効果があると判断できる。図１２に示すように、ディープテンソルでは、すべての指標が向上した。一方で、決定木では、適合率およびＦ値が低下した。したがって、実施例１による手法を決定木に適用した場合は、精度の向上が期待できないが、学習装置１００では、精度の向上が期待できる。
【実施例２】
【００６０】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【００６１】
［学習］
上述した学習処理は、任意の回数だけ実行することもできる。例えば、すべての訓練データを用いて実行することもでき、所定回数だけ実行することもできる。また、分類誤差の算出方法は、最小二乗法など公知の算出手法を採用することができ、ＮＮで用いられる一般的な算出手法を採用することもできる。なお、学習データを用いて、事象（例えば療養ありと療養なし）を分類できるように、テンソルデータをニューラルネットワークに入力してニューラルネットワークの重み等を学習することが学習モデルの一例に対応する。
【００６２】
また、６か月の出勤簿データを予測に用いるデータ例として説明したが、これに限定されるものではなく、４か月など任意に変更することができる。また、６か月の出勤簿データに対して、その後３か月以内に療養（休職）したか否かによってラベルを付与する例を説明したが、これに限定されるものではなく、２か月以内など任意に変更することができる。また、テンソルデータも四次元に限らず、四次元未満のテンソルデータを生成することもでき、五次元以上のテンソルデータを生成することもできる。
【００６３】
また、出勤簿データに限らず、従業員等の出退勤や休暇の取得状況などがわかる勤怠データであれば、データの形式を問わず採用することができる。また、始期のはじまりも、出勤データの先頭に限らず、どこからはじめてもよい。
【００６４】
［ニューラルネットワーク］
本実施例では、ＲＮＮ（Recurrent  Neural  Networks）やＣＮＮ（Convolutional  Neural  Network）など様々なニューラルネットワークを用いることができる。また、学習の手法も、誤差逆伝播以外にも公知の様々な手法を採用することができる。また、ニューラルネットワークは、例えば入力層、中間層（隠れ層）、出力層から構成される多段構成であり、各層は複数のノードがエッジで結ばれる構造を有する。各層は、「活性化関数」と呼ばれる関数を持ち、エッジは「重み」を持ち、各ノードの値は、前の層のノードの値、接続エッジの重みの値（重み係数）、層が持つ活性化関数から計算される。なお、計算方法については、公知の様々な手法を採用できる。
【００６５】
また、ニューラルネットワークにおける学習とは、出力層が正しい値となるように、パラメータ、すなわち、重みとバイアスを修正していくことである。誤差逆伝播法においては、ニューラルネットワークに対して、出力層の値がどれだけ正しい状態（望まれている状態）から離れているかを示す「損失関数（loss  function）」を定め、最急降下法等を用いて、損失関数が最小化するように、重みやバイアスの更新が行われる。
【００６６】
［システム］
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更することができる。
【００６７】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６８】
［ハードウェア］
図１３は、ハードウェア構成例を説明する図である。図１３に示すように、学習装置１００は、通信装置１００ａ、ＨＤＤ（Hard  Disk  Drive）１００ｂ、メモリ１００ｃ、プロセッサ１００ｄを有する。また、図１３に示した各部は、バス等で相互に接続される。
【００６９】
通信装置１００ａは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。ＨＤＤ１００ｂは、図５に示した機能を動作させるプログラムやＤＢを記憶する。
【００７０】
プロセッサ１００ｄは、図５に示した各処理部と同様の処理を実行するプログラムをＨＤＤ１００ｂ等から読み出してメモリ１００ｃに展開することで、図５等で説明した各機能を実行するプロセスを動作させる。すなわち、このプロセスは、学習装置１００が有する各処理部と同様の機能を実行する。具体的には、プロセッサ１００ｄは、学習データ生成部１１１、テンソル生成部１１２、学習部１１３、予測部１１４等と同様の機能を有するプログラムをＨＤＤ１００ｂ等から読み出す。そして、プロセッサ１００ｄは、学習データ生成部１１１、テンソル生成部１１２、学習部１１３、予測部１１４等と同様の処理を実行するプロセスを実行する。
【００７１】
このように学習装置１００は、プログラムを読み出して実行することで学習方法を実行する情報処理装置として動作する。また、学習装置１００は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、学習装置１００によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
【００７２】
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＭＯ（Magneto−Optical  disk）、ＤＶＤ（Digital  Versatile  Disc）などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
【符号の説明】
【００７３】
１００  学習装置
１０１  通信部
１０２  記憶部
１０３  出勤簿データＤＢ
１０４  学習データＤＢ
１０５  テンソルＤＢ
１０６  学習結果ＤＢ
１０７  予測対象ＤＢ
１１０  制御部
１１１  学習データ生成部
１１２  テンソル生成部
１１３  学習部
１１４  予測部
【図１】
2019191777.tif 000003
【図２】
2019191777.tif 000004
【図３】
2019191777.tif 000005
【図４】
2019191777.tif 000006
【図５】
2019191777.tif 000007
【図６】
2019191777.tif 000008
【図７】
2019191777.tif 000009
【図８】
2019191777.tif 000010
【図９】
2019191777.tif 000011
【図１０】
2019191777.tif 000012
【図１１】
2019191777.tif 000013
【図１２】
2019191777.tif 000014
【図１３】
2019191777.tif 000015
【図１４】
2019191777.tif 000016