(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-02
(45)【発行日】2024-09-10
(54)【発明の名称】学習装置
(51)【国際特許分類】
G06Q 40/03 20230101AFI20240903BHJP
【FI】
G06Q40/03
(21)【出願番号】P 2021003600
(22)【出願日】2021-01-13
【審査請求日】2023-11-14
(73)【特許権者】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100089118
【氏名又は名称】酒井 宏明
(72)【発明者】
【氏名】木村 和史
(72)【発明者】
【氏名】笠原 亮介
【審査官】山田 倍司
(56)【参考文献】
【文献】特開2020-035395(JP,A)
【文献】特開2020-106773(JP,A)
【文献】特開2013-015900(JP,A)
【文献】特開2011-014110(JP,A)
【文献】特開2018-049400(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
企業に設置された印刷機で生成された印刷出力に関する情報を取得する取得部と、
前記取得部により取得された印刷出力に関する情報を含む学習データを用いて、企業のデフォルトを推定するためのスコアリングモデルの学習を行う学習部と、
を備えた学習装置。
【請求項2】
前記印刷出力に関する情報は、前記印刷機の印刷枚数に関する情報である請求項1に記載の学習装置。
【請求項3】
前記印刷出力に関する情報は、前記印刷機の印刷種別に関する情報である請求項1に記載の学習装置。
【請求項4】
前記印刷枚数に関する情報は、前記印刷機の印刷枚数の変化量である請求項2に記載の学習装置。
【請求項5】
前記印刷枚数に関する情報は、前記印刷機の印刷枚数の変化量の推移である請求項2に記載の学習装置。
【請求項6】
前記印刷種別に関する情報は、前記印刷機の印刷種別の比率の変化量である請求項3に記載の学習装置。
【請求項7】
前記取得部は、企業の延滞履歴の情報を取得し、
前記学習部は、前記取得部により取得された前記延滞履歴の情報を前記学習データに含めて、前記スコアリングモデルの学習を行う請求項1~6のいずれか一項に記載の学習装置。
【請求項8】
前記取得部は、企業の売上情報を取得し、
前記学習部は、前記取得部により取得された前記売上情報を前記学習データに含めて、前記スコアリングモデルの学習を行う請求項1~7のいずれか一項に記載の学習装置。
【請求項9】
前記取得部は、企業の財務情報を取得し、
前記学習部は、前記取得部により取得された前記財務情報を前記学習データに含めて、前記スコアリングモデルの学習を行う請求項1~8のいずれか一項に記載の学習装置。
【請求項10】
前記取得部は、前記印刷機の稼働情報を取得し、
前記学習部は、前記取得部により取得された前記印刷機の稼働情報を前記学習データに含めて、前記スコアリングモデルの学習を行う請求項1~9のいずれか一項に記載の学習装置。
【請求項11】
前記印刷機の稼働情報は、前記印刷機の駆動部品の利用状態の情報である請求項10に記載の学習装置。
【請求項12】
前記印刷機の稼働情報は、前記印刷機の動作時間である請求項10に記載の学習装置。
【請求項13】
前記学習データは、ラベルとして企業のデフォルトの有無の情報を含む請求項1~12のいずれか一項に記載の学習装置。
【請求項14】
前記学習部は、GBDT(Gradient Boosting Decision Tree)により前記スコアリングモデルの学習を行う請求項1~13のいずれか一項に記載の学習装置。
【請求項15】
前記学習部は、複数の機械学習のアルゴリズムのアンサンブル学習により前記スコアリングモデルの学習を行う請求項1~13のいずれか一項に記載の学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、学習装置に関する。
【背景技術】
【0002】
企業のデフォルトリスクを推定する信用スコアリングモデルを用いて、融資または物品の貸し出し等を行う際の与信業務に極めて有用なツールである。特に、近年は金利が低下している影響で、ますます与信コストを下げることが求められている。そのため、信用スコアリングモデルの重要性は今後さらに高まっていくと考えられる。
【0003】
従来、信用スコアリングモデルを求めるための手法として、例えば、Logistic Regression(LR:ロジスティック回帰)のような統計的な手法が用いられてきた。金融機関は実務の信用スコアリングモデルを公表しないため、具体的にどういった手法が多く使われているかは不明であるが、Logistic Regression、またはLogistic Regressionと決定木(Decision Tree)とを組み合わせたハイブリッドモデルが多いと考えられる。
【0004】
一方で、近年はDeep Learning(DL:ディープラーニング、深層学習)を中心として、様々な機械学習の手法が提案されており、著しく精度が向上している。それに伴って、機械学習手法を使った信用スコアリングモデル(以下、単にスコアリングモデルと称する)を構築に関する報告が増えている。これらの報告の多くは、学習データの件数が1000件前後の小規模なデータセットによって検証が行われている。しかし、一般的に機械学習で高い精度を出すためには、多数の学習データが必要である。また、ほとんどが個人の信用情報をもとに構築されたコンシューマ向けのスコアリングモデルであり、法人向けのスコアリングモデルに関する検証はあまり進んでいないのが現状である。海外ではわずかに報告があるものの、国内については我々の調査した範囲ではそのような検証を行ったという報告は確認できていない。
【0005】
また、法人向けの与信に関しては、近年は伝統的な企業の決算書での業績データおよび財務データだけではなく、名刺データの活用、衛星画像を活用した業績予測、または個人に対してはユーザ単位でのネットワーク上の行動履歴から与信を行う方法が提案されてきている。
【0006】
上述のように、スコアリングモデルを構築するために学習データを分割することによって学習データ数を増やし、学習の精度の向上を図る技術が開示されている(例えば特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載された技術では、与信業務に必ずしも有用な学習データが扱われる保証がないため、企業の状況について正確性高く反映したスコアリングモデルが構築できない可能性があるという問題がある。
【0008】
本発明は、上述の問題点に鑑みてなされたものであって、企業の状況を正確性高く反映したスコアリングモデルを精度よく構築することができる学習装置を提供することを目的とする。
【課題を解決するための手段】
【0009】
上述した課題を解決し、目的を達成するために、企業に設置された印刷機で生成された印刷出力に関する情報を取得する取得部と、前記取得部により取得された印刷出力に関する情報を含む学習データを用いて、企業のデフォルトを推定するためのスコアリングモデルの学習を行う学習部と、を備えたことを特徴とする。
【発明の効果】
【0010】
本発明によれば、企業の状況を正確性高く反映したスコアリングモデルを精度よく構築することができる。
【図面の簡単な説明】
【0011】
【
図1】
図1は、実施形態に係る学習システムの全体構成の一例を示す図である。
【
図2】
図2は、実施形態に係る学習識別装置の処理の流れの概要を説明する図である。
【
図3】
図3は、決定木モデルの一例を示す図である。
【
図4】
図4は、実施形態に係る学習識別装置のモジュール構成の一例を示す図である。
【
図5】
図5は、ポインタメモリの構成の一例を示す図である。
【
図6】
図6は、ラーニングモジュールのモジュール構成の一例を示す図である。
【
図7】
図7は、実施形態に係る学習識別装置の初期化時のモジュールの動作を示す図である。
【
図8】
図8は、実施形態に係る学習識別装置のデプス0、ノード0のノードパラメータを決定する場合のモジュールの動作を示す図である。
【
図9】
図9は、実施形態に係る学習識別装置のデプス0、ノード0の分岐時のモジュールの動作を示す図である。
【
図10】
図10は、実施形態に係る学習識別装置のデプス1、ノード0のノードパラメータを決定する場合のモジュールの動作を示す図である。
【
図11】
図11は、実施形態に係る学習識別装置のデプス1、ノード0の分岐時のモジュールの動作を示す図である。
【
図12】
図12は、実施形態に係る学習識別装置のデプス1、ノード1のノードパラメータを決定する場合のモジュールの動作を示す図である。
【
図13】
図13は、実施形態に係る学習識別装置のデプス1、ノード1の分岐時のモジュールの動作を示す図である。
【
図14】
図14は、実施形態に係る学習識別装置のデプス1、ノード1のノードパラメータを決定の結果、分岐しない場合のモジュールの動作を示す図である。
【
図15】
図15は、実施形態に係る学習識別装置において決定木の学習が完了した場合に全サンプルデータのステート情報を更新するときのモジュールの動作を示す図である。
【
図16】
図16は、デフォルト企業および非デフォルト企業のカラー比率の前月との差のヒストグラムの一例を示す図である。
【
図17】
図17は、非デフォルト企業のカラー比率の前月との差のヒストグラムの一例を示す図である。
【
図18】
図18は、デフォルト企業のカラー比率の前月との差のヒストグラムの一例を示す図である。
【
図19】
図19は、デフォルト企業および非デフォルト企業のモノクロの印刷枚数比のヒストグラムの一例を示す図である。
【
図20】
図20は、非デフォルト企業のモノクロの印刷枚数比のヒストグラムの一例を示す図である。
【
図21】
図21は、デフォルト企業のモノクロの印刷枚数比のヒストグラムの一例を示す図である。
【
図22】
図22は、デフォルト企業および非デフォルト企業のカラーの印刷枚数比のヒストグラムの一例を示す図である。
【
図23】
図23は、非デフォルト企業のカラーの印刷枚数比のヒストグラムの一例を示す図である。
【
図24】
図24は、デフォルト企業のカラーの印刷枚数比のヒストグラムの一例を示す図である。
【
図25】
図25は、感光体ドラムの累積印刷枚数とユニット交換寿命との関係を示すグラフの一例を示す図である。
【
図26】
図26は、感光体ドラムの累積印刷枚数と各枚数時点での交換台数との関係を示すグラフの一例を示す図である。
【
図27】
図27は、機器の稼働状況を示すグラフの一例を示す図である。
【
図28】
図28は、GBDTをスコアリングモデルに適用した場合の具体的な動作を説明する図である。
【発明を実施するための形態】
【0012】
以下に、
図1~
図29を参照しながら、本発明に係る学習装置の実施形態を詳細に説明する。また、以下の実施形態によって本発明が限定されるものではなく、以下の実施形態における構成要素には、当業者が容易に想到できるもの、実質的に同一のもの、およびいわゆる均等の範囲のものが含まれる。さらに、以下の実施形態の要旨を逸脱しない範囲で構成要素の種々の省略、置換、変更および組み合わせを行うことができる。
【0013】
(GBDTのロジックについて)
高性能な機械学習のアルゴリズムとしてのDLにおいて、識別器は様々なハードロジックによる実装が試みられ、GPU(Graphics Processing Unit)での処理と比較して電力効率が高いことが分かっている。ただし、DLのうち特にCNN(Convolutional Neural Network)の場合には、GPUのアーキテクチャが非常にマッチするため、速度的には、ロジック実装したFPGA(Field-Programmable Gate Array)の方がGPUに比べて、識別が速いというわけではない。それに対して、GBDT(Gradient Boosting Decision Tree:勾配ブースティング決定木)のような決定木系のアルゴリズムについて、FPGAによるハードロジックの実装が試行され、GPUよりも高速な結果が報告されている。これは、後述するように、決定木系のアルゴリズムはそのデータ配列の特徴上、GPUのアーキテクチャに適さないためである。
【0014】
また、学習に関しては、識別よりも世の中の検討は遅れており、DLにおいてもほとんど現状報告がなく、決定木系では報告は少ない状況である。その中でもGBDTの学習は、現状どこからもまだ報告がなく、現在では未開拓の分野であると考えられる。精度のよい識別モデルを得るためには、学習時に特徴量の選択および設計、ならびに学習アルゴリズムのハイパーパラメータの選択を行うため、莫大な試行回数が必要となり、特に大量の学習データがある場合には、学習処理のスピードの高さは現実的に最終的なモデルの精度について非常に大きく作用する。さらに、ロボティクス、HFT(High Frequency Trading)、およびRTB(Real-Time Bidding)のように環境変化への追従のリアルタイム性が求められる分野に関しては、スピードの速さが性能へと直結する。そのため、精度の高いGBDTにおいて、高速な学習処理が出来た場合には、結果的にそれを利用したシステムの性能を大きく向上させることができると考えられる。
【0015】
(GBDTのFPGAに対する親和性)
決定木またはGBDTが、なぜGPUでは速くならないか、および、なぜFPGAだと速くなるかについて、GBDTのFPGAに対する親和性の観点から述べる。
【0016】
まず、GBDTがブースティングを用いたアルゴリズムであることの観点から述べる。決定木の中でも、アンサンブル学習を用いたRandom Forest(RF:ランダムフォレスト)の場合は、木の間に依存関係がないため、GPUでも並列化しやすいが、GBDTはブースティングを用いて、多数の木を連結する方法であり、一個前の木の結果が出ないと、次の木の学習を開始することができない。そのため、処理としてシリアルな処理であり、一本ずつの木をいかに速く学習するかがキーとなる。これに対して、RFでは、一本あたりは遅くても、並列に多数の木の学習を速くすることで、全体の学習を速くするという選択肢をとり得る。そのため、GPUを用いた場合にも次に述べるDRAM(Dynamic Random Access Memory)のアクセスレイテンシの問題をある程度隠蔽することが可能であると考えられる。
【0017】
次に、GPUデバイスのRAM(Random Access Memory)へのアクセス速度の限界(特にランダムアクセス)の観点から述べる。FPGAに内蔵のSRAM(Static Random Access Memory)は、FPGA内のRAMのバス幅を非常に大きくできるため、ミドルレンジのFPGAである、例えば、Xilinx社のXC7k325Tを用いた場合でも、以下の様に、3.2[TB/sec]に及ぶ。なお、内蔵RAMの容量は16[Mb]である。
【0018】
BRAM 445個 × 36bit × 100MHz × 2ポート = 445*36*2*100*10^6/10^12 = 3.2TB/sec
【0019】
また、ハイエンドのFPGAである、Xilinx社のVU9Pを用いた場合、6.9[TB/sec]である。なお、内蔵RAMの容量は270[Mb]である。
【0020】
URAM 960個 × 36bit × 100MHz × 2ポート = 960*36*2*100*10^6/10^12 = 6.9TB/sec
【0021】
これらの値は、クロック周波数を100[MHz]とした場合であるが、実際には、回路構成を工夫すると、200~500[MHz]程度での動作が考えられ、限界の帯域は数倍となる。これに対して、CPU(Central Processing Unit)に接続されているRAMは現世代では、DDR4(Double-Data-Rate4)であるが、下記のようにDIMM(Dual Inline Memory Module)1枚での帯域は25.6[GB/sec]に留まる。4枚のインタリーブ構成(256ビット幅)にしたとしても、100[GB/sec]程度である。DDR4のチップ規格がDDR4-3200(バス幅64ビット、DIMM1枚)の場合、以下のようになる。
【0022】
200MHz × 2(DDR) × 64 = 200*10^6*2*64/10^9 = 25.6GB/sec
【0023】
GPUに搭載されているGDDR5(Graphics Double-Data-Rate5)では、DDR4の帯域よりも4倍程度大きくなっているが、それでも、最大で400[GB/sec]程度である。
【0024】
このように、FPGA内のRAMと、GPUおよびCPUでの外部メモリとは、帯域に大きな差がある。さらに、ここまでは、アドレスに対してシーケンシャルなアクセスの場合に関して述べてきたが、これ以上に大きく効いてくるのが、ランダムアクセス時のアクセスの時間である。FPGA内蔵のRAMはSRAMであるため、シーケンシャルアクセスでもランダムアクセスでもアクセスレイテンシは1クロックであるが、DDR4およびGDDR5は、DRAMであり、センスアンプの都合上、異なるカラムにアクセスした場合には、レイテンシが大きくなる。例えば、DDR4のRAMにおいて、代表的なCASレイテンシ(Column Address Strobe latency)は16クロックであり、簡単には、シーケンシャルアクセスと比較して、1/16しかスループットが出ない計算となる。
【0025】
CNNの場合には、隣接した画素のデータを処理していくので、ランダムアクセスのレイテンシは大きく問題とならないが、決定木の場合には、分岐を続けていくと、枝ごとに元のデータのアドレスがどんどんと不連続になり、基本的にランダムアクセスとなる。そのため、データをDRAMに置いた場合、そのスループットがボトルネックとなり、速度が大きく劣化する。GPUにはそのような場合の性能劣化を抑えるために、キャッシュが存在するが、基本的に決定木はデータを総なめしていくアルゴリズムなので、データアクセスに局所性がなくキャッシュの効果が非常に効きにくい。なお、GPUの構造では、GPUには、演算コア(SM)毎に割り振られたSRAMからなるシェアードメモリが存在し、これを使うと高速な処理が可能である場合があるが、1個のSMあたり16~48[kB]と少量であり、かつ、SM間をまたぐアクセスの場合には、大きなレイテンシが発生する。現在の高価で大規模なGPUである、Nvidia K80の場合のシェアードメモリの容量の試算を以下に示す。
【0026】
K80 = 2 × 13 SMX = 26 SMX = 4992 CUDAコア
26 × 48 × 8 = 9Mb
【0027】
このように、数十万円する大規模なGPUでもシェアードメモリはたった9[Mb]しか存在せず、容量が少な過ぎる。さらに、GPUの場合は、上述のように、処理を行うSMは他のSMのシェアードメモリには直接アクセスできないことに起因し、決定木の学習に利用する場合には、高速なコーディングが困難という制約も存在する。
【0028】
以上のように、データがFPGA上のSRAMに載るという前提で、FPGAはGPUに比べてGBDTの学習アルゴリズムを高速に実装可能であると考えられる。なお、上述ではGBDTのFPGAに対する親和性について説明したが、GBDTがFPGAのような集積回路で実現されることに限定されるものではなく、ソフトウェアで実現されてもよい。また、本実施形態において適用される学習アルゴリズムとしてGBDTに限定されるものではなく、その他の学習アルゴリズムを適用してもよい。ただし、本実施形態に係る学習識別装置の具体的な動作を説明するために、学習アルゴリズムとしてGBDTを適用した場合を例として説明する。
【0029】
(学習システムの全体構成)
図1は、実施形態に係る学習システムの全体構成の一例を示す図である。
図1を参照しながら、本実施形態に係る学習システム100の全体構成について説明する。
【0030】
図1に示すように、学習システム100は、学習識別装置1(学習装置)と、データ収集サーバ2と、印刷機3a~3cと、を含む。
【0031】
学習識別装置1は、学習アルゴリズムとしてGBDTを用いて、種々の特徴量を含む学習データによりスコアリングモデルを構築する装置である。学習識別装置1は、データ収集サーバ2により収集および蓄積された各種情報を学習データとして用いる。
【0032】
データ収集サーバ2は、学習識別装置1によるスコアリングモデルの構築に用いるための学習データの基となる各種情報を収集してデータベースに蓄積するサーバ装置である。データ収集サーバ2は、例えば、ネットワークNを介して、印刷機3a~3bから印刷出力に関する情報を収集および蓄積する。ここで、印刷出力に関する情報とは、例えば印刷枚数に関する情報、および印刷種別に関する情報等であり、詳細については後述する。ネットワークNは、例えば、LAN(Local Area Network)またはインターネット等を含むネットワークであり、例えば、TCP(Transmission Control Protocol)/IP(Internet Protocol)に準拠したネットワークである。なお、ネットワークNは、有線ネットワーク、無線ネットワークまたはこれらが混在していてもよい。また、データ収集サーバ2は、例えば、与信対象となる企業の過去の融資返済等の延滞履歴、財務情報および売上情報等を収集および蓄積する。そして、データ収集サーバ2は、収集および蓄積した各種情報を、学習識別装置1へ送信する。さらに、データ収集サーバ2は、各種情報の送信元となる企業(例えば
図1に示すA社、B社およびC社等)がデフォルト(債務不履行)したか否かを示す情報をラベルとして蓄積している。
【0033】
印刷機3a~3cは、それぞれA社、B社、C社に設置された印刷機である。印刷機3a~3cは、例えば、インクジェット方式プリンタ、電子写真方式プリンタ、商業用印刷機またはMFP(Multifunction Peripheral:複合機)等である。印刷機3a~3cは、上述の印刷枚数に関する情報、および印刷種別に関する情報等の印刷出力に関する情報を内部で生成し、ネットワークNを介して、データ収集サーバ2へ送信する。この場合、印刷機3a~3cは、自発的に、定期的に当該印刷に関する情報をデータ収集サーバ2へ送信するものとしてもよく、データ収集サーバ2からの要求に応じて当該印刷に関する情報を送信するものとしてもよい。
【0034】
なお、
図1に示す学習システム100では印刷機3a~3cの3台が含まれた例が示されているが、他の台数の印刷機が含まれるものとしてもよい。すなわち、
図1に示す学習システム100において、印刷機が設置される企業の数は制限されるものではなく、1の企業に設置される印刷機の台数も制限されるものではない。また、印刷機3a~3cについて、任意の印刷機を示す場合、または総称する場合、単に「印刷機3」と称するものとする。
【0035】
(学習識別装置による処理の流れの概要)
図2は、実施形態に係る学習識別装置の処理の流れの概要を説明する図である。
図2を参照しながら、本実施形態に係る学習識別装置1の処理の流れについて説明する。
【0036】
データ収集サーバ2は、例えば、ネットワークNを介して、印刷機3a~3bから印刷出力に関する情報を収集および蓄積し、与信対象となる企業の過去の融資返済等の延滞履歴、財務情報および売上情報等を収集および蓄積する。学習識別装置1は、データ収集サーバ2により収集および蓄積されたこれらの各種情報を、データソースとして受信する(ステップS1:データソース)。
【0037】
学習識別装置1は、受信したデータソースとしての各種情報から特徴量に変換する前処理を実行する(ステップS2:前処理)。
【0038】
そして、学習識別装置1は、変換した特徴量のデータソースの送信元である企業がデフォルトしたか否かを示すフラグをラベルとし、当該特徴量および当該ラベルを教師データ(学習データ)として、GBDTによりスコアリングモデルを構築する(ステップS3:モデル化)。
【0039】
さらに、学習識別装置1は、構築したスコアリングモデルに対して、種々の評価方法により、その性能および適用範囲を検証する(ステップS4:評価)。その結果問題ない場合には、そのスコアリングモデルが実使用される。スコアを算出する際には、最新のデータであることが望ましいため、日次、週次または月次でデータベース上のデータが更新され、日次、週次または月次最新の企業毎のスコアの算出に使用される。
【0040】
(GBDTのアルゴリズム)
図3は、決定木モデルの一例を示す図である。以下、式(1)~式(22)および
図3を参照してGBDTの基本論理を説明する。
【0041】
GBDTは、教師あり学習の一手法であり、教師あり学習は以下の式(1)に示すように、学習データに対するフィッティングの良さを表すロス関数L(θ)と、学習したモデルの複雑さを表す正則化項Ω(θ)とからなる目的関数obj(θ)を何らかの尺度で最適化する処理である。正則化項Ω(θ)は、モデル(決定木)が複雑になり過ぎることを防ぐ、すなわち、汎化性能を高める役割を有する。
【数1】
【0042】
式(1)の第1項のロス関数は、例えば、以下の式(2)に示すように、サンプルデータ(学習データ)ごとに誤差関数lより計算されるロスを足し合わせたものである。ここでnはサンプルデータ数、iはサンプル番号、yはラベル、モデルのy(ハット)は予測値である。
【数2】
【0043】
ここで、誤差関数lは、例えば、以下の式(3)および式(4)に示すような二乗誤差関数またはロジスティックロス関数等が用いられる。
【数3】
【数4】
【0044】
また式(1)の第2項の正則化項Ω(θ)は、例えば、以下の式(5)に示すようなパラメータθの二乗ノルム等が用いられる。ここで、λは正則化の重みを表すハイパーパラメータである。
【数5】
【0045】
ここで、GBDTの場合について考える。まず、GBDTのi番目のサンプルデータx
iに対する予測値は、以下の式(6)のように表現できる。
【数6】
【0046】
ここで、Kは決定木の総数、kは決定木の番号、f
k()はk番目の決定木の出力、x
iは入力されるサンプルデータの特徴量である。これより、GBDTもRF等と同じく、各決定木の出力を足し合わせたものを最終的な出力としていることがわかる。また、パラメータθは、θ={f
1,f
2,・・・,f
K}である。以上より、GBDTの目的関数は以下の式(7)のように表される。
【数7】
【0047】
上記の目的関数について学習を行うが、決定木モデルではニューラルネット等の学習で用いられるSGD(Stochastic Gradient Descent:確率的勾配降下法)等の手法は使えない。そこでAdditive Training(ブースティング)を用いて学習を行う。Additive Trainingでは、あるラウンド(学習回数、決定木モデル数)tにおける予測値を以下の式(8)のように表現する。
【数8】
【0048】
式(8)より、あるラウンドtにおいて、決定木(の出力)f
t(x
i)を求める必要があることが分かる。逆に、あるラウンドtでは他のラウンドについて考える必要はない。そこで、以下では、ラウンドtについて考える。ラウンドtでの目的関数は以下の式(9)のように表される。
【数9】
【0049】
ここで、ラウンドtにおける目的関数のテーラー展開(二次の項までで打ち切り)は以下の式(10)のようになる。
【数10】
【0050】
ここで、式(10)において、勾配情報g
i、h
iは以下の式(11)で表されるものである。
【数11】
【0051】
式(10)において定数項を無視すると、ラウンドtでの目的関数は、以下の式(12)のようになる。
【数12】
【0052】
この式(12)により、ラウンドtでの目的関数は、誤差関数を1ラウンド前の予測値で1階微分および2階微分したもの、および正則化項で表されるので、1階微分および2階微分が求まる誤差関数ならば適用が可能なことが分かる。
【0053】
ここで、決定木モデルについて考える。
図3に決定木モデルの例を示す。決定木モデルは、ノードとリーフとから構成され、ノードではある分岐条件を元に入力を次のノードまたはリーフへ入力し、リーフにはリーフウェイトがあり、これが入力に対する出力となる。例えば、
図3では、「リーフ2」のリーフウェイトW2が「-1」であることを示している。
【0054】
また、決定木モデルは以下の式(13)に示すように定式化される。
【数13】
【0055】
式(13)において、wはリーフウェイト、qは木の構造を表す。つまり、入力(サンプルデータx)は木の構造qによりいずれかのリーフに割り当てられ、そのリーフのリーフウェイトが出力されることになる。
【0056】
ここで、決定木モデルの複雑さを以下の式(14)のように定義する。
【数14】
【0057】
式(14)において、第1項はリーフの数による複雑さを、第2項はリーフウェイトの二乗ノルムである。また、γは正則化項の重要度を制御するハイパーパラメータである。以上より、ラウンドtでの目的関数について、以下の式(15)のように整理する。
【数15】
【0058】
ただし、式(15)において、I
j、G
j、H
jは、以下の式(16)のように表される。
【数16】
【0059】
式(15)より、あるラウンドtでの目的関数はリーフウェイトwに関する二次関数であり、一般に二次関数の最小値、およびその時の条件は、以下の式(17)で表される。
【数17】
【0060】
つまり、あるラウンドtの決定木の構造qが決まったときに、その目的関数およびリーフウェイトは以下の式(18)のようになる。
【数18】
【0061】
ここまでで、あるラウンドで決定木の構造が決まったときのリーフウェイトの算出が可能となった。以降は、決定木の構造の学習手順について述べる。
【0062】
決定木の構造の学習方法の1つに貪欲法(Greedy Algorithm)がある。貪欲法では、木構造を深さ0からスタートし、各ノードで分岐スコア(Gain)を計算し分岐するか否かを判断して決定木の構造を学習するアルゴリズムである。分岐スコアは以下の式(19)で求められる。
【数19】
【0063】
ここで、GL、HLは左ノードに分岐したサンプルの勾配情報の和、GR、HRは右ノードに分岐したサンプルの勾配情報の和、γは正則化項である。式(19)の[]内の第1項は左ノードに分岐したサンプルデータのスコア(目的関数)、第2項は右ノードに分岐したサンプルデータのスコア、第3項は分岐しない場合のスコアであり、分岐による目的関数の改善度合いを表している。
【0064】
上述の式(19)に示す分岐スコアは、ある特徴量のあるしきい値で分岐した時の良さを表すが、これ単体ではどのような条件が最適か判断できない。そこで、貪欲法では、全ての特徴量の全てのしきい値候補で分岐スコアを求め、分岐スコアが最大となる条件を探すものである。貪欲法は上述のように、アルゴリズムとしては非常にシンプルであるが、全ての特徴量の全てのしきい値候補で分岐スコアを求めるため計算コストが高い。そこで後述するXGBoost等のライブラリでは、性能を維持しつつ、計算コストを低減する工夫がなされている。
【0065】
(XGBoostについて)
以下、GBDTのライブラリとして周知なXGBoostについて述べる。XGBoostの学習アルゴリズムでは、しきい値候補の削減、および欠損値の扱いの2点について工夫がされている。
【0066】
まず、しきい値候補の削減について説明する。上述した貪欲法は計算コストが高いという課題があった。XGBoostでは、Weighted Quantile Sketchという方法でしきい値候補数を削減している。これは、分岐スコア(Gain)の計算では、左右に別れるサンプルデータの勾配情報の和が重要であり、勾配情報の和が一定割合変化するしきい値のみを探索候補とするものである。具体的にはサンプルの二次勾配であるhを用いている。特徴量の次元をfとすると、特徴量およびサンプルデータの二次勾配hの集合を、以下の式(20)のように表現する。
【数20】
【0067】
また、ランク関数r
fを以下の式(21)のように定義する。
【数21】
【0068】
ここで、zはしきい値候補である。式(21)に示すランク関数r
fは、あるしきい値候補より小さいサンプルデータの二次勾配の和が全サンプルデータの二次勾配の和に占める割合を意味している。最終的には、次元fで示される特徴量について、あるしきい値候補の集合{s
f1,s
f2,・・・,s
fl}を求める必要があり、これは以下の式(22)で求める。
【数22】
【0069】
ここでεはしきい値候補の削減度合いを決めるパラメータであり、おおよそ1/ε個のしきい値候補が得られる。
【0070】
Weighted Quantile Sketchは、決定木の最初のノードで(全サンプルデータに対して一括で)行うグローバルと、ノードごとに(当該ノードに割り当てられたサンプルについて毎回)行うローカルの2パターンが考えられる。汎化性能の面ではローカルの方がよいという結果が出ているので、XGBoostではローカルを採用している。
【0071】
次に、欠損値の扱いについて説明する。入力されるサンプルデータの欠損値の扱いはGBDTおよび決定木に限らず、機械学習分野において一般的に有効な手法はない。欠損値を、平均値、中央値、もしくは協調フィルタ等で補完する方法、または欠損値が多い特徴量を除外する方法等があるが、性能の面で多くのケースで成功するわけではない。しかし、構造化データは欠損値を含むことが多く、実用上は何らかの対応が求められる。
【0072】
XGBoostは、欠損値を含むサンプルデータを直接扱えるように学習アルゴリズムが工夫されている。これは、ノードの分岐スコアを求める際に、欠損値のデータを全て左右どちらかのノードに割り当てた時のスコアを求める方法である。また、上述のWeighted Quantile Sketchを行う場合は、欠損値を含むサンプルデータを除外した集合に対してしきい値候補を求めるものとすればよい。
【0073】
(LightGBMについて)
次に、GBDTのライブラリであるLightGBMについて述べる。LightGBMは前処理にbinningと呼ばれる特徴量の量子化を採用し、分岐スコアの計算にGPUを利用した高速なアルゴリズムを採用している。LightGBMはXGBoostと比較して性能は同程度で学習速度が数倍速く、近年利用者が増えてきている。
【0074】
まず、特徴量の量子化について説明する。分岐スコアは、データセットが大規模であれば大量のしきい値候補に対して計算が必要である。LightGBMは、学習の前処理として、特徴量を量子化することでしきい値候補数を削減している。また、量子化することでXGBoostのようにノードごとにしきい値候補の値および数が変わることがなく、GPUを利用する場合に必須の処理となっている。
【0075】
特徴量の量子化についてはbinningという名前で様々な研究がなされており、LightGBMでは、特徴量をk個のビンに分割しており、しきい値候補はk個だけとなる。kは255、63、15等であり、データセットによって性能または学習速度は異なる。
【0076】
また、特徴量を量子化したことで分岐スコアの計算が簡易になる。具体的には、しきい値候補が単に量子化された値になる。そのため、各特徴量について一次勾配および二次勾配のヒストグラムを作成し、各ビン(量子化された値)について分岐スコアを求めればよいことになる。これを特徴量ヒストグラムと呼んでいる。
【0077】
次に、GPUを利用した分岐スコアの計算について説明する。分岐スコアの計算自体は特徴量が量子化されているため最大でも256パターンであるが、サンプルデータ数はデータセットによっては数万件を超えるため、ヒストグラム作成が学習時間に対して支配的となる。上述で述べたように、分岐スコアの計算では、特徴量ヒストグラムを求める必要がある。GPUを利用した場合、複数のスレッドが同一のヒストグラムを更新する必要があるが、このとき同一のビンを更新する可能性がある。そのため、アトミック演算を使用する必要があり、同一のビンを更新する割合が高いとパフォーマンスが低下する。そこで、LightGBMでは、ヒストグラムの作成の際に、一次勾配および二次勾配のどちらのヒストグラムから値を更新するかをスレッドごとに分けており、これによって同一のビンを更新する頻度を下げている。
【0078】
(学習識別装置の構成)
図4は、実施形態に係る学習識別装置のモジュール構成の一例を示す図である。
図5は、ポインタメモリの構成の一例を示す図である。
図6は、ラーニングモジュールのモジュール構成の一例を示す図である。
図4~
図6を参照しながら、本実施形態に係る学習識別装置1(学習装置)のモジュール構成について説明する。
【0079】
図4に示すように、本実施形態に係る学習識別装置1は、CPU10と、ラーニングモジュール20と、データメモリ30と、モデルメモリ40と、クラシフィケーションモジュール50と、を備えている。このうち、ラーニングモジュール20、データメモリ30、モデルメモリ40およびクラシフィケーションモジュール50は、FPGAにより構成されている。CPU10と、当該FPGAとはバスを介してデータ通信可能となっている。なお、学習識別装置1は、
図4に示す各構成要素だけではなく、他の構成要素、例えば、CPU10のワークエリアとなるRAM、CPU10が実行するプログラム等を記憶したROM(Read Only Memory)、各種データ(プログラム等)を記憶した補助記憶装置、および外部装置と通信を行う通信I/F等を備えているものとしてもよい。また、本発明に係る「学習部」は、ラーニングモジュール20およびクラシフィケーションモジュール50に相当する。
【0080】
CPU10は、全体でGBDTの学習を制御する演算装置である。CPU10は、制御部11を有する。制御部11は、ラーニングモジュール20、データメモリ30、モデルメモリ40およびクラシフィケーションモジュール50の各モジュールを制御する。制御部11は、CPU10で実行されるプログラムによって実現される。また、制御部11(取得部)は、ネットワークNを介して各印刷機3から印刷出力に関する情報を収集および蓄積したデータ収集サーバ2から、ネットワークI/Fを介して当該印刷出力に関する情報を取得する。そして、制御部11は、当該印刷出力に関する情報を、データメモリ30(後述するフィーチャメモリ32)へ学習データ(サンプルデータ)として記憶させる。
【0081】
ラーニングモジュール20は、決定木を構成するノード毎の最適な特徴量の番号(以下、「特徴量番号」と称する場合がある)、およびしきい値を算出し、当該ノードがリーフの場合は、リーフウェイトを算出し、モデルメモリ40に書き込むハードウェアモジュールである。また、
図6に示すように、ラーニングモジュール20は、ゲイン算出モジュール21_1、21_2、・・・、21_nと、最適条件導出モジュール22と、を備えている。ここで、nは、少なくともサンプルデータ(学習データ、識別データ双方含む)の特徴量の数以上の数である。なお、ゲイン算出モジュール21_1、21_2、・・・、21_nについて、任意のゲイン算出モジュールを示す場合、または総称する場合、単に「ゲイン算出モジュール21」と称するものとする。
【0082】
ゲイン算出モジュール21は、入力されるサンプルデータに含まれる特徴量のうち対応する特徴量について、各しきい値における分岐スコアを、上述の式(19)を用いて算出するモジュールである。ここで、サンプルデータのうち学習データには、特徴量の他、ラベル(真の値)が含まれ、サンプルデータのうち識別データには、特徴量が含まれるが、ラベルは含まれていない。また、各ゲイン算出モジュール21は、一度(1クロック)で入力されたすべての特徴量について、それぞれにそのヒストグラムを演算・格納するメモリを有し、全特徴量を並列に演算する。そのヒストグラムの結果より、各特徴量のゲインを並列に算出する。これによって、一度に、または同時に全特徴量に対する処理が可能となるので、学習処理の速度を飛躍的に向上させることが可能となる。このように、並列に全部の特徴量を読み出し、処理していく方法をフィーチャパラレル(Feature Parallel)と呼ぶ。なお、この方法を実現するためには、データメモリは一度(1クロック)ですべての特徴量を読み出すことができる必要がある。そのため、通常の32ビットや256ビット幅のデータ幅を持つメモリでは実現できない。また、ソフトウェアでは、通常CPUの一度に扱えるデータのビット数は64ビットにとどまり、特徴量数が100、各特徴量のビット数が8ビットだとしても8000ビットが必要となるのに対して、全く対応できない。そのため、従来は、メモリのアドレス毎(例えば、CPUが扱える64ビット幅)に別の特徴量を格納しておき、特徴量すべてでは、複数のアドレスにまたがって保存される方法が取られていた。それに対して、本方法では、メモリの1アドレスにすべての特徴量を格納し、1アクセスで全特徴量を読み出すものとする。
【0083】
上述のように、GBDTでは決定木の学習についての並列化はできない。そのため、いかに一本ずつの決定木を速く学習するかが、学習処理の速度に関して支配的となる。一方、アンサンブルな学習を行うRFでは、決定木の間の依存関係は学習時にないので、決定木ごとの学習処理の並列化は容易であるが、一般的にGBDTに対して精度が劣る。上述のように、RFよりも精度の高いGBDTの学習について、上述のようなフィーチャパラレル(Feature Parallel)を適用することで、決定木の学習処理の速度を向上させることができる。
【0084】
ゲイン算出モジュール21は、算出した分岐スコアを最適条件導出モジュール22へ出力する。
【0085】
最適条件導出モジュール22は、各ゲイン算出モジュール21により出力された各特徴量に対応する各分岐スコアを入力し、分岐スコアが最大となる特徴量の番号(特徴量番号)およびしきい値を導出するモジュールである。最適条件導出モジュール22は、導出した特徴量番号およびしきい値を、対応するノードの分岐条件データ(分岐条件)として、モデルメモリ40へ書き込む。
【0086】
データメモリ30は、各種データを格納するSRAMである。データメモリ30は、ポインタメモリ31と、フィーチャメモリ32と、ステートメモリ33と、を備えている。
【0087】
ポインタメモリ31は、フィーチャメモリ32で格納されているサンプルデータの格納先アドレスを記憶するメモリである。ポインタメモリ31は、
図5に示すように、バンクA(バンク領域)と、バンクB(バンク領域)とを有する。なお、バンクAおよびバンクBの2バンクに分割して、サンプルデータの格納先アドレスを記憶する動作の詳細については、
図7~
図15で後述する。なお、ポインタメモリ31は、3つ以上のバンクを有することを制限するものではない。
【0088】
フィーチャメモリ32は、サンプルデータ(学習データ、識別データを含む)を格納するメモリである。
【0089】
ステートメモリ33は、ステート情報(上述のw、g、h)およびラベル情報を記憶するメモリである。
【0090】
モデルメモリ40は、決定木のノード毎の分岐条件データ(特徴量番号、しきい値)、そのノードがリーフであるか否かを示すリーフフラグ(フラグ情報)、および、そのノードがリーフである場合におけるリーフウェイトを記憶するSRAMである。
【0091】
クラシフィケーションモジュール50は、ノードごと、決定木ごとにサンプルデータを振り分けるハードウェアモジュールである。また、クラシフィケーションモジュール50は、ステート情報(w,g,h)を計算して、ステートメモリ33に書き込む。
【0092】
なお、クラシフィケーションモジュール50は、上述のように学習処理におけるサンプルデータ(学習データ)の識別(分岐)だけでなく、サンプルデータ(識別データ)に対する識別処理においても、同一のモジュール構成で、当該識別データに対する識別を行うことが可能である。また、識別処理時にも、一括して特徴量をすべて読み込むことにより、クラシフィケーションモジュール50による処理をパイプライン化することができ、クロックごとに1つのサンプルデータの識別をすることまで処理の高速化が可能となる。一方、上述のように一括で読み込むことができない場合、どこの特徴量が必要になるかは、各ノードに分岐してみないとわからないため、毎回該当する特徴量のアドレスにアクセスする形態ではパイプライン化ができないことになる。
【0093】
また、上述のクラシフィケーションモジュール50を複数備えるものとし、複数の識別データを分割(データパラレル(Data Parallel))して、各クラシフィケーションモジュール50に分配してそれぞれに識別処理をさせることによって、識別処理を高速化させることもできる。
【0094】
(学習識別装置の学習処理)
以下、
図7~
図15を参照しながら、学習識別装置1の学習処理について具体的に説明する。
【0095】
<初期化>
図7は、実施形態に係る学習識別装置の初期化時のモジュールの動作を示す図である。
図7に示すように、まず、制御部11は、ポインタメモリ31を初期化する。例えば、
図7に示すように、制御部11は、ポインタメモリ31のバンクAに対して、サンプルデータ(学習データ)のフィーチャメモリ32におけるアドレスを、学習データの数だけ順番に(例えば、アドレスの低い方から順に)書き込む。
【0096】
なお、学習データのすべてを利用(すべてのアドレスを書き込み)することに限定されるものではなく、いわゆるデータサブサンプリングによって、所定の乱数に従った確率に基づいてランダムに選択した学習データを用いる(当該選択した学習データのアドレスを書き込む)ものとしてもよい。例えば、データサブサンプリングが0.5の場合、乱数に従った半分の確率で学習データの全アドレスのうち、半分のアドレスがポインタメモリ31(ここではバンクA)に書き込まれるものとしてもよい。乱数の発生には、LFSR(Linear Feedback Shift Register:線形帰還シフトレジスタ)により作成された擬似乱数が使用可能である。
【0097】
また、学習に使用する学習データのうちすべての特徴量を使用することに限定されるものではなく、いわゆるフィーチャサブサンプリングによって、上述と同様の乱数に従った確率に基づいてランダムに選択(例えば、半分を選択)した特徴量のみを使用するものとしてもよい。この場合、例えば、フィーチャサブサンプリングにより選択された特徴量以外の特徴量のデータとしては、フィーチャメモリ32から定数が出力されるものとすればよい。これによって、未知のデータ(識別データ)に対する汎化性能が向上するという効果がある。
【0098】
<デプス0・ノード0の分岐条件データの決定>
図8は、実施形態に係る学習識別装置のデプス0、ノード0のノードパラメータを決定する場合のモジュールの動作を示す図である。なお、決定木の一番上の階層を「デプス0」、そこから下の階層を順に「デプス1」、「デプス2」、・・・と称するものとし、特定の階層の一番左のノードを「ノード0」、そこから右のノードを順に「ノード1」、「ノード2」、・・・と称するものとする。
【0099】
図8に示すように、まず、制御部11は、ラーニングモジュール20へ開始アドレスおよび終了アドレスを送信し、トリガによりラーニングモジュール20による処理を開始させる。ラーニングモジュール20は、開始アドレスおよび終了アドレスに基づいて、ポインタメモリ31(バンクA)から対象とする学習データのアドレスを指定し、当該アドレスによって、フィーチャメモリ32から学習データ(特徴量)を読み出し、ステートメモリ33からステート情報(w,g,h)を読み出す。
【0100】
この場合、上述したように、ラーニングモジュール20の各ゲイン算出モジュール21は、対応する特徴量のヒストグラムを計算し、それぞれ自身のSRAMに格納し、その結果に基づいて各しきい値における分岐スコアを算出する。そして、ラーニングモジュール20の最適条件導出モジュール22は、各ゲイン算出モジュール21により出力された各特徴量に対応する各分岐スコアを入力し、分岐スコアが最大となる特徴量の番号(特徴量番号)およびしきい値を導出する。そして、最適条件導出モジュール22は、導出した特徴量番号およびしきい値を、対応するノード(デプス0、ノード0)の分岐条件データとして、モデルメモリ40へ書き込む。この際、最適条件導出モジュール22は、ノード(デプス0、ノード0)からさらに分岐されることを示すためにリーフフラグを「0」として、当該ノードのデータ(分岐条件データの一部としてもよい)をモデルメモリ40へ書き込む。
【0101】
以上の動作について、ラーニングモジュール20は、バンクAに書き込まれた学習データのアドレスを順に指定し、当該アドレスによって、フィーチャメモリ32から各学習データを読み出して行う。
【0102】
<デプス0・ノード0でのデータ分岐処理>
図9は、実施形態に係る学習識別装置のデプス0、ノード0の分岐時のモジュールの動作を示す図である。
【0103】
図9に示すように、制御部11は、クラシフィケーションモジュール50へ開始アドレスおよび終了アドレスを送信し、トリガによりクラシフィケーションモジュール50による処理を開始させる。クラシフィケーションモジュール50は、開始アドレスおよび終了アドレスに基づいて、ポインタメモリ31(バンクA)から対象とする学習データのアドレスを指定し、当該アドレスによって、フィーチャメモリ32から学習データ(特徴量)を読み出す。また、クラシフィケーションモジュール50は、モデルメモリ40から対応するノード(デプス0、ノード0)の分岐条件データ(特徴量番号、しきい値)を読み出す。そして、クラシフィケーションモジュール50は、分岐条件データに従って、読み出したサンプルデータを、ノード(デプス0、ノード0)の左側に分岐させるか、右側に分岐させるかを判定し、その判定結果により、当該学習データのフィーチャメモリ32におけるアドレスを、ポインタメモリ31の読み出しバンク(ここではバンクA)(読み出し用のバンク領域)と異なる他方のバンク(書き込みバンク)(ここではバンクB)(書き込み用のバンク領域)に書き込む。
【0104】
この際、クラシフィケーションモジュール50は、当該ノードの左側に分岐すると判定した場合、当該学習データのアドレスを、
図9に示すように、バンクBのアドレスの低い方から順に書き込み、当該ノードの右側に分岐すると判定した場合、当該学習データのアドレスを、バンクBのアドレスの高い方から順に書き込む。これによって、書き込みバンク(バンクB)では、ノードの左側に分岐した学習データのアドレスは、アドレスの低い方に、ノードの右側に分岐した学習データのアドレスは、アドレスの高い方にきれいに分けて書き込むことができる。なお、書き込みバンクにおいて、ノードの左側に分岐した学習データのアドレスは、アドレスの高い方に、ノードの右側に分岐した学習データのアドレスは、アドレスの低い方に分けて書き込むものとしてもよい。
【0105】
このように、ポインタメモリ31では、上述のように、バンクAおよびバンクBの2つが構成されており、交互に読み書きすることによって、FPGA内のSRAMの容量が限られている中、効率的にメモリを使用することが可能となる。単純には、フィーチャメモリ32およびステートメモリ33を、それぞれ2バンク構成する方法もあるが、一般的に、サンプルデータよりも、フィーチャメモリ32でのアドレスを示すデータの方が小さいので、本実施形態のように、ポインタメモリ31を準備しておき、間接的にアドレスを指定する方法の方が、メモリの使用量を削減することが可能となる。
【0106】
以上の動作について、クラシフィケーションモジュール50は、全学習データに対して分岐処理を行う。ただし、分岐処理が終了した後、ノード(デプス0、ノード0)の左側と右側とに同数の学習データが分けられるわけではないので、クラシフィケーションモジュール50は、左側に分岐した学習データのアドレスと、右側に分岐した学習データのアドレスとの境界に対応する書き込みバンク(バンクB)におけるアドレス(中間アドレス)を、制御部11に返す。当該中間アドレスは、次の分岐処理の際に使用される。
【0107】
<デプス1・ノード0の分岐条件データの決定>
図10は、実施形態に係る学習識別装置のデプス1、ノード0のノードパラメータを決定する場合のモジュールの動作を示す図である。基本的には、
図8に示した、デプス0・ノード0の分岐条件データの決定の処理と同様であるが、対象とするノードの階層が変わる(デプス0からデプス1になる)ので、ポインタメモリ31のバンクAおよびバンクBの役割が反転する。具体的には、バンクBが読み出しバンクとなり、バンクAが書き込みバンク(
図11参照)となる。
【0108】
図10に示すように、制御部11は、デプス0での処理でクラシフィケーションモジュール50から受け取った中間アドレスに基づいて、ラーニングモジュール20へ開始アドレスおよび終了アドレスを送信し、トリガによりラーニングモジュール20による処理を開始させる。ラーニングモジュール20は、開始アドレスおよび終了アドレスに基づいて、ポインタメモリ31(バンクB)から対象とする学習データのアドレスを指定し、当該アドレスによって、フィーチャメモリ32から学習データ(特徴量)を読み出し、ステートメモリ33からステート情報(w,g,h)を読み出す。具体的には、ラーニングモジュール20は、
図10に示すように、バンクBの左側(アドレスが低い方)から中間アドレスまで順にアドレスを指定していく。
【0109】
この場合、上述したように、ラーニングモジュール20の各ゲイン算出モジュール21は、読み出した学習データの各特徴量をそれぞれ自身のSRAMに格納して、各しきい値における分岐スコアを算出する。そして、ラーニングモジュール20の最適条件導出モジュール22は、各ゲイン算出モジュール21により出力された各特徴量に対応する各分岐スコアを入力し、分岐スコアが最大となる特徴量の番号(特徴量番号)およびしきい値を導出する。そして、最適条件導出モジュール22は、導出した特徴量番号およびしきい値を、対応するノード(デプス1、ノード0)の分岐条件データとして、モデルメモリ40へ書き込む。この際、最適条件導出モジュール22は、ノード(デプス1、ノード0)からさらに分岐されることを示すためにリーフフラグを「0」として、当該ノードのデータ(分岐条件データの一部としてもよい)をモデルメモリ40へ書き込む。
【0110】
以上の動作について、ラーニングモジュール20は、バンクBの左側(アドレスが低い方)から中間アドレスまで順に指定し、当該アドレスによって、フィーチャメモリ32から各学習データを読み出して行う。
【0111】
<デプス1・ノード0でのデータ分岐処理>
図11は、実施形態に係る学習識別装置のデプス1、ノード0の分岐時のモジュールの動作を示す図である。
【0112】
図11に示すように、制御部11は、デプス0での処理でクラシフィケーションモジュール50から受け取った中間アドレスに基づいて、クラシフィケーションモジュール50へ開始アドレスおよび終了アドレスを送信し、トリガによりクラシフィケーションモジュール50による処理を開始させる。クラシフィケーションモジュール50は、開始アドレスおよび終了アドレスに基づいて、ポインタメモリ31(バンクB)の左側から対象とする学習データのアドレスを指定し、当該アドレスによって、フィーチャメモリ32から学習データ(特徴量)を読み出す。また、クラシフィケーションモジュール50は、モデルメモリ40から対応するノード(デプス1、ノード0)の分岐条件データ(特徴量番号、しきい値)を読み出す。そして、クラシフィケーションモジュール50は、分岐条件データに従って、読み出したサンプルデータを、ノード(デプス1、ノード0)の左側に分岐させるか、右側に分岐させるかを判定し、その判定結果により、当該学習データのフィーチャメモリ32におけるアドレスを、ポインタメモリ31の読み出しバンク(ここではバンクB)(読み出し用のバンク領域)と異なる他方のバンク(書き込みバンク)(ここではバンクA)(書き込み用のバンク領域)に書き込む。
【0113】
この際、クラシフィケーションモジュール50は、当該ノードの左側に分岐すると判定した場合、当該学習データのアドレスを、
図11に示すように、バンクAのアドレスの低い方(受信した開始アドレス)から順に書き込み、当該ノードの右側に分岐すると判定した場合、当該学習データのアドレスを、バンクAのアドレスの高い方(受信した終了アドレスであって前回の中間アドレス)から順に書き込む。これによって、書き込みバンク(バンクA)では、ノードの左側に分岐した学習データのアドレスは、アドレスの低い方に、ノードの右側に分岐した学習データのアドレスは、アドレスの高い方にきれいに分けて書き込むことができる。なお、書き込みバンクにおいて、ノードの左側に分岐した学習データのアドレスは、アドレスの高い方に、ノードの右側に分岐した学習データのアドレスは、アドレスの低い方に分けて書き込むものとしてもよい。
【0114】
以上の動作について、クラシフィケーションモジュール50は、全学習データのうちバンクBの中間アドレスよりも左側に書き込まれたアドレスで指定される学習データに対して分岐処理を行う。ただし、分岐処理が終了した後、ノード(デプス1、ノード0)の左側と右側とに同数の学習データが分けられるわけではないので、クラシフィケーションモジュール50は、左側に分岐した学習データのアドレスと、右側に分岐した学習データのアドレスとの中間に対応する書き込みバンク(バンクA)におけるアドレス(中間アドレス)を、制御部11に返す。当該中間アドレスは、次の分岐処理の際に使用される。
【0115】
<デプス1・ノード1の分岐条件データの決定>
図12は、実施形態に係る学習識別装置のデプス1、ノード1のノードパラメータを決定する場合のモジュールの動作を示す図である。なお、
図10の場合と同様に、デプス1・ノード0のノードと同じ階層なので、バンクBが読み出しバンクとなり、バンクAが書き込みバンク(
図13参照)となる。
【0116】
図12に示すように、制御部11は、デプス0での処理でクラシフィケーションモジュール50から受け取った中間アドレスに基づいて、ラーニングモジュール20へ開始アドレスおよび終了アドレスを送信し、トリガによりラーニングモジュール20による処理を開始させる。ラーニングモジュール20は、開始アドレスおよび終了アドレスに基づいて、ポインタメモリ31(バンクB)から対象とする学習データのアドレスを指定し、当該アドレスによって、フィーチャメモリ32から学習データ(特徴量)を読み出し、ステートメモリ33からステート情報(w,g,h)を読み出す。具体的には、ラーニングモジュール20は、
図12に示すように、バンクBの右側(アドレスが高い方)から中間アドレスまで順にアドレスを指定していく。
【0117】
この場合、上述したように、ラーニングモジュール20の各ゲイン算出モジュール21は、読み出した学習データの各特徴量をそれぞれ自身のSRAMに格納して、各しきい値における分岐スコアを算出する。そして、ラーニングモジュール20の最適条件導出モジュール22は、各ゲイン算出モジュール21により出力された各特徴量に対応する各分岐スコアを入力し、分岐スコアが最大となる特徴量の番号(特徴量番号)およびしきい値を導出する。そして、最適条件導出モジュール22は、導出した特徴量番号およびしきい値を、対応するノード(デプス1、ノード1)の分岐条件データとして、モデルメモリ40へ書き込む。この際、最適条件導出モジュール22は、ノード(デプス1、ノード1)からさらに分岐されることを示すためにリーフフラグを「0」として、当該ノードのデータ(分岐条件データの一部としてもよい)をモデルメモリ40へ書き込む。
【0118】
以上の動作について、ラーニングモジュール20は、バンクBの右側(アドレスが高い方)から中間アドレスまで順に指定し、当該アドレスによって、フィーチャメモリ32から各学習データを読み出して行う。
【0119】
<デプス1・ノード1でのデータ分岐処理>
図13は、実施形態に係る学習識別装置のデプス1、ノード1の分岐時のモジュールの動作を示す図である。
【0120】
図13に示すように、制御部11は、デプス0での処理でクラシフィケーションモジュール50から受け取った中間アドレスに基づいて、クラシフィケーションモジュール50へ開始アドレスおよび終了アドレスを送信し、トリガによりクラシフィケーションモジュール50による処理を開始させる。クラシフィケーションモジュール50は、開始アドレスおよび終了アドレスに基づいて、ポインタメモリ31(バンクB)の右側から対象とする学習データのアドレスを指定し、当該アドレスによって、フィーチャメモリ32から学習データ(特徴量)を読み出す。また、クラシフィケーションモジュール50は、モデルメモリ40から対応するノード(デプス1、ノード1)の分岐条件データ(特徴量番号、しきい値)を読み出す。そして、クラシフィケーションモジュール50は、分岐条件データに従って、読み出したサンプルデータを、ノード(デプス1、ノード1)の左側に分岐させるか、右側に分岐させるかを判定し、その判定結果により、当該学習データのフィーチャメモリ32におけるアドレスを、ポインタメモリ31の読み出しバンク(ここではバンクB)(読み出し用のバンク領域)と異なる他方のバンク(書き込みバンク)(ここではバンクA)(書き込み用のバンク領域)に書き込む。
【0121】
この際、クラシフィケーションモジュール50は、当該ノードの左側に分岐すると判定した場合、当該学習データのアドレスを、
図13に示すように、バンクAのアドレスの低い方(受信した開始アドレスであって前回の中間アドレス)から順に書き込み、当該ノードの右側に分岐すると判定した場合、当該学習データのアドレスを、バンクAのアドレスの高い方(受信した終了アドレス)から順に書き込む。これによって、書き込みバンク(バンクA)では、ノードの左側に分岐した学習データのアドレスは、アドレスの低い方に、ノードの右側に分岐した学習データのアドレスは、アドレスの高い方にきれいに分けて書き込むことができる。なお、書き込みバンクにおいて、ノードの左側に分岐した学習データのアドレスは、アドレスの高い方に、ノードの右側に分岐した学習データのアドレスは、アドレスの低い方に分けて書き込むものとしてもよい。この場合、
図11における動作も合わせる必要がある。
【0122】
以上の動作について、クラシフィケーションモジュール50は、全学習データのうちバンクBの中間アドレスよりも右側に書き込まれたアドレスで指定される学習データに対して分岐処理を行う。ただし、分岐処理が終了した後、ノード(デプス1、ノード1)の左側と右側とに同数の学習データが分けられるわけではないので、クラシフィケーションモジュール50は、左側に分岐した学習データのアドレスと、右側に分岐した学習データのアドレスとの中間に対応する書き込みバンク(バンクA)におけるアドレス(中間アドレス)を、制御部11に返す。当該中間アドレスは、次の分岐処理の際に使用される。
【0123】
<デプス1・ノード1の分岐条件データの決定時に分岐しない場合>
図14は、実施形態に係る学習識別装置のデプス1、ノード1のノードパラメータを決定の結果、分岐しない場合のモジュールの動作を示す図である。なお、
図10の場合と同様に、デプス1・ノード0のノードと同じ階層なので、バンクBが読み出しバンクとなる。
【0124】
図14に示すように、制御部11は、デプス0での処理でクラシフィケーションモジュール50から受け取った中間アドレスに基づいて、ラーニングモジュール20へ開始アドレスおよび終了アドレスを送信し、トリガによりラーニングモジュール20による処理を開始させる。ラーニングモジュール20は、開始アドレスおよび終了アドレスに基づいて、ポインタメモリ31(バンクB)から対象とする学習データのアドレスを指定し、当該アドレスによって、フィーチャメモリ32から学習データ(特徴量)を読み出し、ステートメモリ33からステート情報(w,g,h)を読み出す。具体的には、ラーニングモジュール20は、
図14に示すように、バンクBの右側(アドレスが高い方)から中間アドレスまで順にアドレスを指定していく。
【0125】
ラーニングモジュール20は、算出した分岐スコア等から、これ以上ノード(デプス1、ノード1)から分岐しないと判断した場合、リーフフラグを「1」として、当該ノードのデータ(分岐条件データの一部としてもよい)をモデルメモリ40に書き込むと共に、制御部11にも当該ノードのリーフフラグが「1」であることを送信する。これによって、ノード(デプス1、ノード1)から下の階層には分岐しないことが認識される。さらに、ラーニングモジュール20は、ノード(デプス1、ノード1)のリーフフラグが「1」である場合、特徴量番号およびしきい値の代わりに、リーフウェイト(w)(分岐条件データの一部としてもよい)をモデルメモリ40に書き込む。これにより、モデルメモリ40の容量を別々に持つよりも小さくすることができる。
【0126】
以上の
図8~
図14で示した処理を、階層(デプス)毎に進めていくと、全体の決定木が完成する(決定木が学習される)。
【0127】
<決定木の学習が完了した場合>
図15は、実施形態に係る学習識別装置において決定木の学習が完了した場合に全サンプルデータのステート情報を更新するときのモジュールの動作を示す図である。
【0128】
GBDTを構成する1つの決定木の学習が完了した場合、次の決定木へのブースティング(ここではグラディエントブースティング)の際に使用するため、各学習データの誤差関数に対応する一次勾配g、二次勾配h、および各学習データに対するリーフウェイトwを算出する必要がある。
図15に示すように、制御部11は、トリガによりクラシフィケーションモジュール50による上述の計算を開始させる。クラシフィケーションモジュール50は、全学習データに対して、全デプス(階層)のノードに対する分岐判定の処理を行い、各学習データに対応するリーフウェイトを算出する。そして、クラシフィケーションモジュール50は、算出したリーフウェイトに対して、ラベル情報を基に、ステート情報(w、g、h)を算出し、元のステートメモリ33のアドレスに書き戻す。このように、更新されたステート情報を利用して、次の決定木の学習が行われる。
【0129】
以上のように、本実施形態に係る学習識別装置1において、ラーニングモジュール20は、入力されたサンプルデータの各特徴量を読み込むためのメモリ(例えば、SRAM)をそれぞれ備えている。これによって、1アクセスでサンプルデータの全特徴量を読み出すことができ、各ゲイン算出モジュール21により、一度に全特徴量に対する処理が可能となるので、決定木の学習処理の速度を飛躍的に向上させることが可能となる。
【0130】
また、本実施形態に係る学習識別装置1において、ポインタメモリ31では、バンクAおよびバンクBの2つが構成されており、交互に読み書きするものとしている。これによって、効率的にメモリを使用することが可能となる。単純には、フィーチャメモリ32およびステートメモリ33を、それぞれ2バンク構成する方法もあるが、一般的に、サンプルデータよりも、フィーチャメモリ32でのアドレスを示すデータの方が小さいので、本実施形態のように、ポインタメモリ31を準備しておき、間接的にアドレスを指定する方法の方が、メモリ容量を節約することが可能となる。また、クラシフィケーションモジュール50は、ノードの左側に分岐すると判定した場合、学習データのアドレスを、2つのバンクのうち書き込みバンクのアドレスの低い方から順に書き込み、当該ノードの右側に分岐すると判定した場合、当該学習データのアドレスを、書き込みバンクのアドレスの高い方から順に書き込む。これによって、書き込みバンクでは、ノードの左側に分岐した学習データのアドレスは、アドレスの低い方に、ノードの右側に分岐した学習データのアドレスは、アドレスの高い方にきれいに分けて書き込むことができる。
【0131】
(データソースについて)
以下、
図16~
図27を参照しながら、データ収集サーバ2に収集および蓄積され、学習識別装置1において学習データとしてスコアリングモデルの構築のために使用されるデータソースについて説明する。
【0132】
企業活動において、紙等の記録媒体に印刷するインクジェット方式プリンタ、電子写真方式プリンタ、商業用印刷機またはMFP等の印刷機3は必要不可欠であり、一般的な企業に導入されている。
【0133】
このような印刷機3において、印刷枚数および印刷種別等についての印刷出力に関する情報は、企業活動を反映した情報となっている。例えば、活発な企業活動が行われている際には、印刷物が多数必要となるため、一般的に印刷枚数は増加し、逆に企業活動が活発でない場合には、印刷枚数は減少する。また、印刷枚数の急激な変化は、良し悪しは別として、何らかの企業活動の変化が生じたというシグナルとなっている場合がある。印刷枚数が短期間で劇的に増加した場合には、例えば破産手続きのために大量の資料を印刷する必要がある場合も考えられる。
【0134】
また、印刷種別としてのカラー比率(モノクロ印刷枚数とカラー印刷枚数との比率)の変化も、ビジネス上その企業に利益が出ているのかどうかの指標となる。なぜなら、一般的にカラー印刷は印刷コストが高く、短期間にカラー印刷比率が落ちた場合には、企業の利益が圧迫され、コスト低減の施策が行われている可能性が高いと考えられるからである。当然低い利益は将来の先行きの指標となる。
【0135】
このように、企業活動のモニタ指標として、印刷出力に関する情報としての印刷枚数に関する情報、および印刷種別に関する情報は有用であり、企業のデフォルトのリスクを推定するための情報を含んでいる。以下、スコアリングモデルの構築のために使用されるデータソースとして用いる各種の印刷出力に関する情報について説明する。
【0136】
図16は、デフォルト企業および非デフォルト企業のカラー比率の前月との差のヒストグラムの一例を示す図である。
図17は、非デフォルト企業のカラー比率の前月との差のヒストグラムの一例を示す図である。
図18は、デフォルト企業のカラー比率の前月との差のヒストグラムの一例を示す図である。
図16~
図18を参照しながら、印刷種別に関する情報として、カラー比率(モノクロ印刷枚数とカラー印刷枚数との比率)の前月との差[%]について説明する。この場合、印刷種別は、カラーかモノクロかという種別を意味する。このうち、
図17では、3ヵ月後にデフォルトしていない企業(以下、非デフォルト企業と称する場合がある)のカラー比率の前月との差[%]のヒストグラムが示されており、
図18では、3ヵ月後にデフォルト下企業(以下、デフォルト企業と称する場合がある)のカラー比率の前月との差[%]のヒストグラムが示されている。そして、
図16では、
図17のヒストグラムと、
図18のヒストグラムとを重ね合わせた状態が示されている。
【0137】
図16~
図18に示すように、非デフォルト企業のヒストグラムと比較して、デフォルト企業のヒストグラムでは裾野の広がりが大きく、例えば、-25[%]以下の企業を抽出することにより、デフォルトの可能性の高い企業を抽出することが可能である。このように、印刷種別に関する情報は、将来のデフォルト企業を予測するスコアリングモデルを構築するための学習データの特徴量として入力することにより、スコアリングモデルの予測精度を向上させることができる。
【0138】
このように、カラー比率では過去との変化量(印刷種別の変化量の一例)がデフォルトとの関連が大きく出ており、他の印刷種別に関する情報でも同様の傾向がある。例えば、カラー比率の他にも、印刷紙のサイズの比率についての過去との変化量(印刷種別の変化量の一例)についても、何らかの情報を含んでいる場合がある。この場合、印刷種別は、印刷紙のサイズの種別を意味する。例えば、A4サイズの印刷紙と比較して、急にB4サイズの印刷紙の印刷枚数が多くなった場合には、B4サイズが指定されている何らかの従来と異なる相手とのやり取りが急増している可能性がある。
【0139】
また、両面印刷枚数と片面印刷枚数との比率である両面印刷比率についての過去との変化量(印刷種別の変化量の一例)が、手がかりとなる場合もある。なぜなら、両面印刷比率を上げるということは、カラー比率を下げるのと同様、コスト低減の施策が行われている可能性が高いと考えられるからである。この場合、印刷種別は、両面印刷か片面印刷かという種別を意味する。同じ理由で、2枚の印刷物を縮小して、1枚に印刷する等の集約印刷の比率についての過去との変化量(印刷種別の変化量の一例)も、手がかりとなる場合がある。この場合、印刷種別は、集約印刷か集約でいない印刷か、および集約印刷でもどの程度の集約かという種別を意味する。例えば、2枚を1枚に入れる集約印刷なのか、4枚を1枚に入れる集約印刷なのかといった集約印刷の種別に関する比率についても、コスト低減の圧力の強さを推測することも可能である。
【0140】
なお、上述のカラー比率、印刷紙のサイズの比率、両面印刷比率および集約印刷の比率等について、前月との差だけではなく、過去数か月の期間での差を用いたり、差の変化量を用いたりすることも有効である。これにより企業の継続的な活動状況を反映することが可能となる。
【0141】
図19は、デフォルト企業および非デフォルト企業のモノクロの印刷枚数比のヒストグラムの一例を示す図である。
図20は、非デフォルト企業のモノクロの印刷枚数比のヒストグラムの一例を示す図である。
図21は、デフォルト企業のモノクロの印刷枚数比のヒストグラムの一例を示す図である。
図19~
図21を参照しながら、印刷枚数に関する情報として、モノクロの印刷枚数の前月との比であるモノクロ印刷枚数比(当月枚数/前月枚数)について説明する。このうち、
図20では、12ヵ月後における非デフォルト企業のモノクロ印刷枚数比のヒストグラムが示されており、
図21では、12ヵ月後におけるデフォルト企業のモノクロ印刷枚数比のヒストグラムが示されている。そして、
図19では、
図20のヒストグラムと、
図21のヒストグラムとを重ね合わせた状態が示されている。
【0142】
図19~
図21に示すように、非デフォルト企業のヒストグラムと比較して、デフォルト企業のヒストグラムでは、モノクロ印刷枚数比が5を超える劇的な増加が見られ、例えば、この5を超える企業を抽出することにより、デフォルトの可能性の高い企業を抽出することが可能である。また、非デフォルト企業のヒストグラムは、デフォルト企業のヒストグラムと比較して歪度が大きい特徴を有しており、例えば、各企業のモノクロ印刷枚数比の値をx、全企業での最頻値をAとしたとき、x-A<0を満たす企業を抽出することにより、デフォルトの可能性が高い企業を抽出することが可能である。さらに、デフォルト企業のヒストグラムは0付近に大きなピークが見られることから、0付近の企業を抽出することにより、デフォルトの可能性の高い企業を抽出することが可能である。これらはそれぞれ印刷枚数の減少、急激な減少を示しており、企業活動が鈍化していることを示唆している。
【0143】
このように、モノクロ印刷枚数比(印刷枚数の変化量の一例)のような印刷枚数に関するデータは、将来のデフォルト企業を予測するスコアリングモデルを構築するための学習データの特徴量として入力することにより、スコアリングモデルの予測精度を向上させることができる。
【0144】
なお、この傾向は、
図22~
図24に示したカラーの印刷枚数の前月との比であるカラー印刷枚数比(当月枚数/前月枚数)(印刷枚数の変化量の一例)について確認できる。
図22は、デフォルト企業および非デフォルト企業のカラーの印刷枚数比のヒストグラムの一例を示す図である。
図23は、非デフォルト企業のカラーの印刷枚数比のヒストグラムの一例を示す図である。
図24は、デフォルト企業のカラーの印刷枚数比のヒストグラムの一例を示す図である。このうち、
図23では、12ヵ月後における非デフォルト企業のカラー印刷枚数比のヒストグラムが示されており、
図24では、12ヵ月後におけるデフォルト企業のカラー印刷枚数比のヒストグラムが示されている。そして、
図22では、
図23のヒストグラムと、
図24のヒストグラムとを重ね合わせた状態が示されている。以上の
図19~
図21に示したモノクロ印刷枚数比、および
図22~
図24に示したカラー印刷枚数比のうち片方または両方を、学習データの特徴量として入力することにより、スコアリングモデルの予測精度を向上させることができる。
【0145】
このように、モノクロの印刷枚数、およびカラーの印刷枚数それぞれの過去との変化量が企業のデフォルトと関連性が顕著であり、これらの和の変化量(印刷枚数の変化量の一例)についても同様の結果が得られる。印刷枚数が少なくモノクロ、カラーそれぞれの場合のみでは統計的有意差が得られない場合は特に重要であり、モノクロおよびカラーの印刷枚数の和を取り、分解能を上げることによって精度の向上が可能となる。
【0146】
なお、上述のモノクロの印刷枚数、カラーの印刷枚数およびこれらの和について、前月比だけではなく過去数か月の期間での比を用いたり、比の推移(印刷枚数の変化量の推移の一例)を用いたりすることも有効である。これにより企業の継続的な活動状況を反映することが可能となる。
【0147】
また、企業がデフォルトするかどうかのための有力な情報としては、上述のような印刷出力に関する情報以外にも、その企業の過去の延滞履歴、その企業の印刷に関する売上以外の売上情報、およびその企業の財務情報等が存在する。これらの情報と、印刷出力に関する情報とを組み合わせることによって、より高精度なスコアリングモデルの構築が可能である。その場合には、印刷出力に関する情報に加えて、これらの情報を変数として学習データとしてスコアリングモデルに入力して学習させ、スコアリングモデルの使用時はそれらのデータも入力して予測を行う。
【0148】
また、印刷機3の稼働情報を利用することも可能である。例えば、印刷機3の稼働情報としては、駆動部品としての感光体ドラムまたは現像ユニット等の利用状態(総印刷枚数、総走行距離等)、駆動部品の導入日時(初期設定日時)、省エネ復帰時刻、電源ON時刻、前回印刷ジョブからの放置時間等が挙げられる。ここで、省エネ復帰時刻、電源ON時刻、および、前回印刷ジョブからの放置時間は、印刷機3の動作時間の一例と捉えることができる。これらの情報を活用することによって、上述の印刷枚数および印刷種別とは異なる観点から企業の活動状況を推測することが可能である。
【0149】
例えば感光体ドラムおよび現像ユニットには一般的な使われ方を想定した耐久枚数(交換寿命)が設定されており、交換タイミングから企業の財務状況の推測が可能である。なぜならば、これらの駆動部品の経時劣化によって異常画像、画質低下が生じ、有償交換が望まれる場合であっても継続利用する企業には特有の状況が存在すると判断することができるためである。以下、
図25および
図26において、感光体ドラムを例として挙げ、感光体ドラムの利用状態に基づいて、企業の活動状況を推測する例を説明する。
【0150】
図25は、感光体ドラムの累積印刷枚数とユニット交換寿命との関係を示すグラフの一例を示す図である。
図26は、感光体ドラムの累積印刷枚数と各枚数時点での交換台数との関係を示すグラフの一例を示す図である。
図25に示すように、印刷ジョブの内容によりユニット交換寿命に達するまでの累積印刷枚数にばらつきがあることが示されている。また、
図26に示すように、通常、「枚数/寿命が最大となる使われ方」に達するまでに所定の割合(例えば99.6[%]等)のユニットが交換されることになるが、これ以上の累積印刷枚数に達した状態にもかかわらず継続稼働している場合には、やはり特有の状況が存在すると推察できる。
【0151】
さらに、長期にわたる企業活動においては、午前・午後、一日、一週間、一か月等のように、概ね周期的な単位で印刷機3の使用サイクルが現れることが知られている。これは月末の請求書処理、定例会議、期末報告等の企業活動が概ね一定のサイクルで行われることに起因している。したがって、このサイクルの変化状況を印刷機3の稼働情報として着目することで企業活動の変化を検出することが可能となる。以下、
図27において、印刷機3の電源ON時間(稼働率)に基づいて、企業の活動状況を推測する例を説明する。
【0152】
図27は、機器の稼働状況を示すグラフの一例を示す図である。
図27では、サイクルの変化状況の一例として、1時間あたりの印刷機3の電源ON時間(稼働率)が示されており、日中の企業活動における一般的な印刷機3の稼働状況は、始業時・昼食後・終業前などに集中していることが確認できる。一方、
図27に示した「特有の状況下での機器の稼働状況」では、午前の稼働率が低く、午後以降に急激に稼働率が上昇したことを示している。これは、例えば固定費削減のため、午後のみの半日勤務へ勤務体系が変更されたことを示している可能性がある。なお、印刷機3の稼働率の計算には省エネ移行時間、待機時間または電源OFF時間等を用いることによって、同様の演算が可能である。以上のような、電源ON時間、省エネ移行時間、待機時間、および電源OFF時間は、サイクルの変化状況、および印刷機3の動作時間の一例として捉えることができる。また、稼働率、省エネ移行時間、待機時間または電源OFF時間等の任意の時刻での変化量を算出することによって、企業活動の変化をより顕著に捉えることが可能となる。
【0153】
以上のように、印刷枚数および印刷種別だけではなく、印刷機3の稼働情報にも企業活動に纏わる情報が含まれており、互いに単一のデータとして扱うだけでは十分なスコアリングモデルの構築が困難な場合であっても、異なる情報を利用することによって、より精度の高いスコアリングモデルの構築が可能となる。
【0154】
(各アルゴリズムによるスコアリングモデルの構築動作)
図28は、GBDTをスコアリングモデルに適用した場合の具体的な動作を説明する図である。
【0155】
スコアリングモデルは、与信判断時にデフォルトする確率を推定するために使用するモデルであり、単純には、入力された企業のパラメータにより、その企業がデフォルトする確率を出力するモデルである。これらのスコアリングモデルには、大量の学習データより規則性を学習し、結果を予測する機械学習のアルゴリズムが使われることが一般的である。
【0156】
以下、学習データとして、企業の与信判断のための各種特徴量を含むデータを想定する。特徴量として、上述の印刷出力に関する情報、売上高等の数値変数の他、業種等のカテゴリを示す特徴量(カテゴリ特徴量)が含まれており、100種以上の特徴量が含まれる場合もあり得る。また、各企業に対して、必ずしもすべての特徴量が取得できるわけではないので、欠損値を含んでいることもある。
【0157】
本実施形態では、上述のようにGDBTを実行する構成を説明した。現状では、GBDTは特徴量の抽出が難しいため、画像・音声・言語等の入力データに対しては精度が劣るものの、それ以外の構造化したデータではより良い性能が出ることが知られている。現に、データサイエンティストのコンペティションである、Kaggleでは、GBDTが最もスタンダードなアルゴリズムとなっている。実社会の機械学習により解決したい課題のうち70[%]は、画像・音声・言語以外の構造化されたデータと言われており、GBDTは実世界の問題を解くためには、重要なアルゴリズムであることは間違いない。今回使用される学習データも構造化されたデータとなっており、GBDTが高い精度を実現することが確認されている。
【0158】
ただし、スコアリングモデルを構築するためのアルゴリズム(機械学習手法)として、さらに、公知のRandom Forest(RF)、NN(Neural Network、ニューラルネットワーク)、およびベンチマークとしてのLogistic Regression(LR)を用いてもよい。また、本実施形態に係る学習識別装置1は、上述の各アルゴリズムに基づく学習処理が可能であるものとする。ここでいう各アルゴリズムに基づく学習処理とは、各アルゴリズム単体による学習、おおよび、いくつかのアルゴリズムのアンサンブル学習を含む。また、用いるサンプルデータのうち、例えば、6:3:1の割合で学習用、バリデーション用、および識別用のデータに分ける。学習用のデータ(学習データ)は、スコアリングモデルを構築するための学習に使用し、バリデーション用のデータ(バリデーションデータ)は、パラメータの最適化に用い、テスト用のデータ(識別データ)は、評価用に用いる。
【0159】
また、各アルゴリズム(機械学習手法)には、ハイパーパラメータが複数存在する。最適なパラメータはデータセットによって異なるため、パラメータの最適化を行う必要がある。パラメータの探索の手法としては、いくつかの方法が知られているが、例えば、Bayesian Optimization(ベイズ最適化)を用いるものとする。
【0160】
また、上述のような各種アルゴリズムを用いた学習において、上述のようにデフォルトしたか否かを示すフラグをラベルとする教師データを学習データとする。また、アンサンブル学習には、例えばStacked Generalizationを用いることができる。Stacked Generalizationは、異なる機械学習モデルを多層にしてアンサンブル学習を行う手法である。
【0161】
次に、
図28を参照しながら、GBDTをスコアリングモデルに適用した場合の動作例を説明する。各企業に対応する学習データについて、与信判断対象となる企業の印刷に関する情報、延滞履歴、売上情報、財務情報、印刷機3の稼働情報等の情報(特徴量)を基に、多数の決定木を合わせて、デフォルト確率(所定期間においてデフォルトする確率)を予測していく。
【0162】
図28に示すように、決定木の各ノードでは、学習で決定された分岐条件(特徴量番号、しきい値)に基づいて、各学習データが分岐される。例えば、「売上」と記載されたノードでは、「売上」という特徴量について、「10億円」というしきい値により左右に分岐されることを示す。最初の決定木では、「D社」の学習データのラベルが、D社がデフォルトしたことを示す「デフォルト」であるにも関わらず、非デフォルトに分類されているので、アンサンブル学習に基づき、このような適切に分類できなかった学習データを、別に生成された決定木により分類する。このような多数の決定木を合わせてデフォルト確率が予測される。
【0163】
(スコアリングモデルの評価)
図29は、CAP曲線を説明する図である。
図29を参照しながら、まず、学習データを用いた学習により生成されたスコアリングモデルを適用して得られる予測結果に対する評価として用いる、CAP(Cumulative Accuracy Profiles)曲線、および、AR(Accuracy Ratio)値について説明する。
【0164】
CAP曲線は、
図29に示すように、横軸に、学習データをデフォルト確率順に並べた場合の当該確率の上位x件の全体(N件)に占める割合x/Nとし、縦軸に、上位x件のうち実際にデフォルトした件数Nxの全体のデフォルト件数(Nd件)に占める割合Nx/Ndとしてプロットした線である。
図29における、Bの曲線が典型的なCAP曲線の例である。また、モデルとしての精度がほとんどない場合はCのような直線が描かれ、モデルに基づく予測が完全に正解であればAのような形状の線が描かれる。
【0165】
また、CAP曲線がBの曲線であるとした場合、AとCとで囲まれた部分の面積に対するBとCとで囲まれた部分の面積の割合がAR値となる。ここで、上述の各機械学習手法としてアンサンブル学習を用いず、単体で学習を行って、スコアリングモデルを構築した場合、GBDTが著しく高いAR値を示して高精度となることが知られている。例えば、テストデータに対してAR価が0.6を超える場合には、十分な精度が実現されたものと判断し、そのモデルを実使用可能と判断する。これに対して、RFおよびNNは、既存のLRと比較してほとんど精度に差が出ない結果となる。したがって、GBDTは、その他の機械学習手法と比較して、スコアリングモデルの生成に好適なアルゴリズムであると判断できる。ただし、学習識別装置1がスコアリングモデルを生成するためのアルゴリズムとしては、GBDTに限定されるものではない。
【0166】
以上のように、本実施形態に係る学習識別装置1では、制御部11が企業に設置された印刷機3で生成された印刷出力に関する情報を取得し、ラーニングモジュール20およびクラシフィケーションモジュール50が印刷出力に関する情報を含む学習データを用いて、企業のデフォルトを推定するためのスコアリングモデルの学習を行うものとしている。これによって、企業の状況を正確性高く反映したスコアリングモデルを精度よく構築することができる。
【0167】
また、印刷出力に関する情報として印刷枚数に関する情報または印刷種別に関する情報を用いることによって、将来のデフォルト企業を予測するスコアリングモデルを構築するための学習データの特徴量として入力することにより、スコアリングモデルの予測精度を向上させることができる。
【符号の説明】
【0168】
1 学習識別装置
2 データ収集サーバ
3、3a~3c 印刷機
10 CPU
11 制御部
20 ラーニングモジュール
21、21_1、21_2 ゲイン算出モジュール
22 最適条件導出モジュール
30 データメモリ
31 ポインタメモリ
32 フィーチャメモリ
33 ステートメモリ
40 モデルメモリ
50 クラシフィケーションモジュール
100 学習システム
N ネットワーク
【先行技術文献】
【特許文献】
【0169】