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