(57)【要約】【課題】  ニューラルネットワークの学習結果に基づいて、結果に影響する要因を定量的に探る。【解決手段】病因モデル１６０の入力ノードには、データセットに含まれる複数の入力値が設定される。出力ノードには、データセットに含まれる出力値が設定される。出力値および複数の入力値に基づいて、病因モデル１６０に含まれる複数のノードの重み係数ｗを調整する。次に、重み係数の調整結果に基づいて、出力値に対する複数の入力項目それぞれの影響値を算出し、複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの出力に対する寄与度を算出する。【選択図】図３
2018198027.tif 000002
【特許請求の範囲】
【請求項１】
出力値および複数の入力値を含むデータセットを取得するデータセット取得部と、
前記データセットに含まれる前記複数の入力値をニューラルネットワーク・モデルの複数の入力ノードに設定する入力設定部と、
前記データセットに含まれる前記出力値を前記ニューラルネットワーク・モデルの出力ノードに設定する出力設定部と、
前記出力値および前記複数の入力値に基づいて、前記ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整するモデル調整部と、
前記重み係数の調整結果に基づいて、前記出力値に対する複数の入力項目それぞれの影響値を算出する影響値算出部と、
複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの出力に対する寄与度を算出する寄与度算出部と、を備えることを特徴とする要因分析装置。
【請求項２】
前記影響値算出部は、前記複数の影響値それぞれの絶対値を合計することにより調整値を算出し、前記複数の影響値それぞれを前記調整値で除することにより前記複数の影響値を補正することを特徴とする請求項１に記載の要因分析装置。
【請求項３】
前記影響値算出部は、非正規入力または無入力の入力項目の数に応じた補正係数により、前記影響値を更に補正することを特徴とする請求項２に記載の要因分析装置。
【請求項４】
前記寄与度算出部は、入力項目ごとに、前記複数のデータセットそれぞれから得られた影響値の平均値を前記寄与度として算出することを特徴とする請求項１から３のいずれかに記載の要因分析装置。
【請求項５】
前記寄与度算出部は、非正規値またはゼロとなる影響値を平均値計算から除外することを特徴とする請求項４に記載の要因分析装置。
【請求項６】
前記データセット取得部は、前記複数の入力値とともに互いに背反する第１の出力値および第２の出力値を取得し、
前記出力設定部は、前記第１および第２の出力値を前記ニューラルネットワーク・モデルの第１および第２の出力ノードに設定し、
前記モデル調整部は、前記複数の入力値と前記第１および第２の出力値に基づいて、前記ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整し、
前記影響値算出部は、前記重み係数の調整結果に基づいて、前記第１および第２の出力値それぞれについて、複数の入力項目それぞれの影響値を算出し、
前記寄与度算出部は、前記第１の出力値に対する入力項目ごとの第１寄与度と、前記第２の出力値に対する入力項目ごとの第２寄与度を算出することを特徴とする請求項１から５のいずれかに記載の要因分析装置。
【請求項７】
前記寄与度算出部は、前記第１寄与度の絶対値と前記第２寄与度の絶対値の合計値に基づいて、入力項目ごとの寄与度を算出することを特徴とする請求項６に記載の要因分析装置。
【請求項８】
前記ニューラルネットワーク・モデルの活性化関数はＲｅＬＵ（Rectified Linear Unit）関数であることを特徴とする請求項１から７のいずれかに記載の要因分析装置。
【請求項９】
互いに背反する第１および第２の出力値と、複数の入力値とを含むデータセットを取得するデータセット取得部と、
前記データセットに含まれる前記複数の入力値をニューラルネットワーク・モデルの複数の入力ノードに設定する入力設定部と、
前記第１および第２の出力値を前記ニューラルネットワーク・モデルの第１および第２の出力ノードに設定する出力設定部と、
前記第１および第２の出力値および前記複数の入力値に基づいて、前記ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整するモデル調整部と、
前記重み係数の調整結果に基づいて、前記第１および第２の出力値それぞれについて、複数の入力項目それぞれの影響値を算出する影響値算出部と、
複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの第１の出力値に対する第１寄与度および第２の出力値に対する第２寄与度を算出する寄与度算出部と、を備え、
前記影響値算出部は、前記複数の影響値それぞれの絶対値を合計することにより調整値を算出し、前記複数の影響値それぞれを前記調整値で除することにより影響値を補正した後、非正規入力または無入力の入力項目の数に応じた補正係数により前記影響値を更に補正し、
前記寄与度算出部は、非正規値またはゼロとなる影響値を除外した上で、入力項目ごとに、前記複数のデータセットそれぞれから得られた影響値の平均値を前記第１および第２寄与度として算出し、前記第１寄与度の絶対値と前記第２寄与度の絶対値の合計値に基づいて、入力項目ごとの出力に対する寄与度を算出することを特徴とする要因分析装置。
【請求項１０】
出力値および複数の入力値を含むデータセットを取得する機能と、
前記データセットに含まれる前記複数の入力値をニューラルネットワーク・モデルの複数の入力ノードに設定する機能と、
前記データセットに含まれる前記出力値を前記ニューラルネットワーク・モデルの出力ノードに設定する機能と、
前記出力値および前記複数の入力値に基づいて、前記ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整する機能と、
前記重み係数の調整結果に基づいて、前記出力値に対する複数の入力項目それぞれの影響値を算出する機能と、
複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの出力に対する寄与度を算出する機能と、をコンピュータに発揮させることを特徴とする要因分析プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークに関する。
【背景技術】
【０００２】
ニューラルネットワークは、生物のニューロンの仕組みを応用することにより、コンピュータに推論機能を持たせる技術である。ニューラルネットワークの研究は１９４０年代に始まり、ブームと停滞を繰り返し、現在、３度目のブームにあるといわれる。
【０００３】
ニューラルネットワークにおいては多数の「ノード」が設定される。まず、複数の入力項目それぞれに入力ノードが対応づけられる。入力ノードは、入力値を活性化関数により処理し、その出力値を複数の中間ノードに伝播させる。各中間ノードも同様の処理を実行する。最後に、出力ノードが処理結果を「判断」として出力する。判断に誤りがあればノードの「つながり」が修正される。このような処理を繰り返しながら、ニューラルネットワークは入力に基づく推論方法を学習していく（特許文献１参照）。
以下、入力項目に設定される値を「入力値」とよび、複数の入力値の集合を「入力」、出力ノードの処理結果を「出力値」、１以上の出力値の集合を「出力」または「結果」とよぶ。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−４３００７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ニューラルネットワークの目的は、未知の入力を与えられたとき、学習経験を活かして正しい推論（結果）を出力することである。いいかえれば、入力から適切な結果を求めることに主眼が置かれている。
【０００６】
結果には多種類の入力項目（要因）が影響する。結果に大きく影響する要因もあれば、ほとんど影響しない要因もある。従来、結果に対して各要因がどの程度影響しているかを分析する方法については、あまり提案がなされていないのが現状である。
【０００７】
本発明は、上記課題認識に基づいて完成された発明であり、その主たる目的は、ニューラルネットワークの学習結果に基づいて、結果に影響する要因を定量的に探る技術、を提供することにある。
【課題を解決するための手段】
【０００８】
本発明のある態様における要因分析装置は、出力値および複数の入力値を含むデータセットを取得するデータセット取得部と、データセットに含まれる複数の入力値をニューラルネットワーク・モデルの複数の入力ノードに設定する入力設定部と、データセットに含まれる出力値をニューラルネットワーク・モデルの出力ノードに設定する出力設定部と、出力値および複数の入力値に基づいて、ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整するモデル調整部と、重み係数の調整結果に基づいて、出力値に対する複数の入力項目それぞれの影響値を算出する影響値算出部と、複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの出力に対する寄与度を算出する寄与度算出部と、を備える。
【０００９】
本発明の別の態様における要因分析装置は、互いに背反する第１および第２の出力値と、複数の入力値とを含むデータセットを取得するデータセット取得部と、データセットに含まれる複数の入力値をニューラルネットワーク・モデルの複数の入力ノードに設定する入力設定部と、第１および第２の出力値をニューラルネットワーク・モデルの第１および第２の出力ノードに設定する出力設定部と、第１および第２の出力値および複数の入力値に基づいて、ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整するモデル調整部と、重み係数の調整結果に基づいて、第１および第２の出力値それぞれについて、複数の入力項目それぞれの影響値を算出する影響値算出部と、複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの第１の出力値に対する第１寄与度および第２の出力値に対する第２寄与度を算出する寄与度算出部と、を備える。
影響値算出部は、複数の影響値それぞれの絶対値を合計することにより調整値を算出し、複数の影響値それぞれを調整値で除することにより影響値を補正した後、非正規入力または無入力の入力項目の数に応じた補正係数により前記影響値を更に補正する。
寄与度算出部は、非正規値またはゼロとなる影響値を除外した上で、入力項目ごとに、複数のデータセットそれぞれから得られた影響値の平均値を第１寄与度および第２寄与度として算出し、第１寄与度の絶対値と第２寄与度の絶対値の合計値に基づいて、入力項目ごとの出力に対する寄与度を算出する。
【発明の効果】
【００１０】
本発明によれば、結果に及ぼす要因を定量分析しやすくなる。
【図面の簡単な説明】
【００１１】
【図１】病因分析システムのハードウェア構成図である。
【図２】病因分析装置の機能ブロック図である。
【図３】病因モデルの概念図である。
【図４（ａ）】出力値（偽）に対する第１影響値を示す図である。
【図４（ｂ）】出力値（真）に対する第１影響値を示す図である。
【図５（ａ）】出力値（偽）に対する第２影響値を示す図である。
【図５（ｂ）】出力値（真）に対する第２影響値を示す図である。
【図６】第２影響値の計算過程を示すフローチャートである。
【図７】結果に対する要因の寄与度を示す図である。
【発明を実施するための形態】
【００１２】
以下、ニューラルネットワークにおいて、複数の入力項目（要因）それぞれの結果に対する影響の大きさを定量分析する方法について説明する。本実施形態においては、病気（出力）に対する複数の食品（入力）の影響を分析する病因分析装置１０２（要因分析装置）を対象として説明する。
【００１３】
図１は、病因分析システム１００のハードウェア構成図である。
病因分析システム１００において、病因分析装置１０２は、インターネット１１０を介して、病院１０８および複数のクライアント端末１０６ａ、１０６ｂ・・・１０６ｎ（以下、まとめて言うときや特に区別しないときには「クライアント端末１０６」と総称する）と接続される。クライアント端末１０６は、スマートフォンなどの携帯端末であってもよいし、ラップトップＰＣなどの汎用コンピュータであってもよい。クライアント端末１０６とインターネット１１０は無線接続されるが、有線接続されてもよい。クライアント端末１０６のユーザ（被験者）には、あらかじめユーザＩＤが付与される。
【００１４】
病因分析装置１０２は、病気に影響を与える食品を特定する。詳細は後述するが、病因分析装置１０２は、多数の被験者の食事履歴（以下、「摂食情報」とよぶ）と被験者が罹患した病気の情報（以下、「罹患情報」とよぶ）を集積し、食事と病気の因果関係をニューラルネットワークによりモデル化する（以下、「病因モデル」とよぶ）。
【００１５】
図２は、病因分析装置１０２の機能ブロック図である。
病因分析装置１０２の各構成要素は、ＣＰＵ（Central Processing Unit）および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
病因分析装置１０２は、ウェブサーバを含む構成であってもよいし、クライアント端末１０６は、携帯型の通信端末と、これにインストールされたウェブブラウザを含む構成であってもよい。
【００１６】
病因分析装置１０２のユーザとしては、摂食情報および罹患情報に基づいて病因を探究する研究者が想定される。
病因分析装置１０２は、ユーザインタフェース処理部１２０、通信部１２４、データ処理部１２２およびデータ格納部１２６を含む。
ユーザインタフェース処理部１２０は、タッチパネル、マウス、キーボード等の入力インタフェースを介してユーザからの操作を受け付けるほか、画像表示や音声出力など、ユーザインタフェースに関する処理を担当する。通信部１２４は、インターネット１１０を介してクライアント端末１０６および病院１０８（病院１０８のシステム）との通信処理を担当する。データ格納部１２６は各種データを格納する。データ処理部１２２は、ユーザインタフェース処理部１２０や通信部１２４により取得されたデータ、データ格納部１２６に格納されているデータに基づいて各種処理を実行する。データ処理部１２２は、ユーザインタフェース処理部１２０、通信部１２４およびデータ格納部１２６のインタフェースとしても機能する。
【００１７】
ユーザインタフェース処理部１２０は、ユーザからの入力を受け付ける入力部１２８と、ユーザに対して画像や音声等の各種情報を出力する出力部１３０を含む。
【００１８】
通信部１２４は、データセット取得部１３６を含む。
データセット取得部１３６は、クライアント端末１０６から摂食情報、病院１０８から罹患情報を取得する。一人の被験者についての摂食情報と罹患情報をまとめて「データセット」とよぶ。摂食情報は、選択式のアンケートに対する被験者の回答から得る。
【００１９】
アンケートは、週１回から年１回程度、定期的に行われる。アンケートには２００種類の食品が表示される。ユーザは、食品ごとに、（Ｑ１）１週間あたり何回食べたか、（Ｑ２）１回の摂取量はどの程度かという２つの質問に回答する。質問（Ｑ２）は、「たくさん／普通／少しだけ」の３つから選ぶ。「たくさん」には「３」、「普通」には「２」、「少しだけ」には「１」が対応づけられる。全食品についての回答結果が摂食情報として病因分析装置１０２に提供される。アンケートは、病因分析装置１０２からクライアント端末１０６にウェブページとして提供されてる。このほかにも、アンケートを冊子として提供し、入力部１２８は被験者がマークシートに入力した回答からデータセットを取得してもよい。
【００２０】
病院１０８は、健康診断の診断結果を病因分析装置１０２に送信する。診断結果は病気ごとに「罹患している（真）」「罹患していない（偽）」の２値が示される。データセット取得部１３６は、この診断結果を罹患情報として取得する。なお、被験者は罹患した病気を自己申告により病因分析装置１０２に通知してもよい。罹患情報においては、脳卒中、心筋梗塞などのさまざまな病気が対象となる。病気の種類ごとに病因モデル（ニューラルネットワーク・モデル）が用意される。
【００２１】
データ処理部１２２は、入力設定部１０４、出力設定部１１２、モデル調整部１１４、影響値算出部１１６および寄与度算出部１１８を含む。
入力設定部１０４は、摂食情報に基づいて、各病因モデルの入力値を設定する。たとえば、被験者Ｐ１が食品Ａを１週間あたり４回摂取し、１回の摂取量が「少しだけ」であるとき、入力設定部１０４は食品Ａ（入力項目）の入力値を４×１＝４として算出し、病因モデルにおける食品Ａに対応する入力ノードに「４」を設定する。入力設定部１０４は、入力値を既知の方法により０〜１の範囲に正規化してもよい。
【００２２】
出力設定部１１２は、罹患情報に基づいて、各病因モデルの出力（教師データ）を設定する。たとえば、被験者Ｐ１が脳卒中に罹患しているときには、脳卒中に対応する病因モデルの出力ノードのうち「真（ＴＲＵＥ）」に対応する出力ノードに「１」、「偽（ＦＡＬＳＥ）」に対応する出力ノードに「−１」を設定する。このようにして、摂食情報と罹患情報が病因モデルの「教師データ」となる。モデル調整部１１４は、出力（罹患情報）に基づいて、病因モデルの重み係数を調整する。影響値算出部１１６は影響値を計算する。寄与度算出部１１８は寄与度を計算する。病因モデル、影響値および寄与度の詳細は後述する。
【００２３】
図３は、病因モデル１６０の概念図である。
本実施形態における病因モデル１６０は、ニューラルネットワークにより形成される。図３に示す病因モデル１６０は、入力層、出力層および２層の中間層１，２を含む。病因モデル１６０は病気ごとに用意されるが、以下においては脳卒中に対応する病因モデル１６０を対象として説明する。すなわち、図３に示す病因モデル１６０は、ある人の摂食履歴に基づいて、その人が将来的に脳卒中になる可能性を予測するためのモデルである。
【００２４】
入力層はｎ個のノード（以下、「入力ノード」ともよぶ）と１個のバイアス項１６２を含む。バイアス項１６２は、「１」を常時出力する調整用のノードである。入力ノードは「Ｘ」と表記する。中間層１はｎ１個のノード（以下、「第１中間ノード」ともよぶ）と１個のバイアス項１６２を含む。第１中間ノードは「Ｕ１」と表記する。中間層２はｎ２個のノード（以下、「第２中間ノード」ともよぶ）と１個のバイアス項１６２を含む。第２中間ノードは「Ｕ２」と表記する。また、入力ノードの出力値は小文字の「ｘ」にて表記する。中間ノードの出力値、出力ノードの出力値についても同様に小文字表記する。
【００２５】
出力層は２個のノード（以下、「出力ノード」ともよぶ）を含む。出力ノードは「Ｙ」と表記する。出力ノードＹ１は偽（脳卒中ではない）に対応し、出力ノードＹ２は真（脳卒中である）に対応する。出力ノードＹ１（偽）の出力値ｙ１が正、出力ノードＹ２（真）の出力値ｙ２が負のときは脳卒中になる可能性が低いという予想を示し、出力ノードＹ１（偽）の出力値ｙ１が負、出力ノードＹ２（真）の出力値ｙ２が正のときは脳卒中になる可能性が高いという予想を示す。出力ノードＹ１（偽）の出力値ｙ１と出力ノードＹ２（真）の出力値ｙ２が同符号またはゼロであるときには、判定不能を意味する。
【００２６】
入力ノードＸは入力項目（食品）に対応する。たとえば、入力ノードＸ１は「タマゴ」、入力ノードＸ２は「カップラーメン」に対応する。食品が２００種類あるときには、ｎは２００となる。入力設定部１０４は、上述の方法により、食品ごとの入力値を設定する。
【００２７】
重み係数ｗは、ノードとノードのつながりの強さ（結合度）を表現する可変数である。バイアス項１６２とノードの間の重み係数はｂと表記する。たとえば、重み係数ｗ２１，２は、第１中間ノードＵ１１と第２中間ノードＵ２２の結合度を示す。また、重み係数ｂ２３は、中間層１のバイアス項１６２と第２中間ノードＵ２３の結合度を示す。
【００２８】
各ノードの活性化関数ｆ（ｘ）は、下記の式（１）に示すＲｅＬＵ（Rectified Linear Unit）関数である。
【数１】
2018198027.tif 000003
式（１）のｘは、ノードに対する入力値の合計値を示す。たとえば、第１中間ノードＵ１１は、入力ノードＸ１〜Ｘｎおよびバイアス項１６２の合計（ｎ＋１）個のノードから入力値を取得する。第１中間ノードＵ１１のＲｅＬＵ関数は、この（ｎ＋１）個の入力値の合計値をその入力値ｘとして取得する。ＲｅＬＵ関数ｆ（ｘ）は、ｘ≧０のときｆ（ｘ）＝ｘとなり、ｘ＜０のときにはｆ（ｘ）＝０となる線形関数である。
【００２９】
ＲｅＬＵ関数を想定したとき、出力ノードＹ１（偽）の出力値ｙ１は、下記式（２）により表される。
【数２】
2018198027.tif 000004
【００３０】
式（２）のｕ２ｉ、すなわち、第２中間ノードＵ２の出力値を更に展開すると、下記式（３）となる。
【数３】
2018198027.tif 000005
【００３１】
式（３）のｕ１ｊ、すなわち、第１中間ノードＵ１の出力値を更に展開すると、下記式（４）となる。
【数４】
2018198027.tif 000006
【００３２】
式（４）は、最終的には、下記のような多項式（５）として表現される。
【数５】
2018198027.tif 000007
【００３３】
すなわち、出力値ｙ１は、入力項目１〜ｎそれぞれの影響度を累積させたものとして表現できる。式（５）のＥ１は、出力値ｙ１に対する入力項目Ｘ１（入力値ｘ１）の影響力を示す。以下、このような入力項目ごとの結果に対する影響力の大きさを「第１影響値」とよぶ。第１影響値は下記式（６）、バイアス項１６２の出力値ｙ１に対する影響値は下記式（７）として表現できる。
【数６】
2018198027.tif 000008
【数７】
2018198027.tif 000009
【００３４】
出力値ｙ２についても同様である。式（６）からも明らかなように、入力ノードＸｋ（入力項目ｋ）の出力値ｙ１に対する第１影響値Ｅｋは、「入力ノードＸｋの出力値ｘｋ」と「入力ノードＸｋから出力ノードＹ１へ至るすべての経路の重みの積和」を乗算することにより求められる。第１影響値Ｅｋは、入力項目ｋが結果ｙ１にどのくらいの影響を与えているかを示す。たとえば、入力項目ｋが「納豆」であれば、第１影響値Ｅｋは「脳卒中に罹患しない（結果ｙ１）」という事実に対して、「納豆」がどの程度の影響を与えているか、いいかえれば、納豆が脳卒中予防にどれだけ有効か、を定量的に示す。
【００３５】
あるノードのＲｅＬＵ関数が０を出力するときには、そのノードは病因モデル１６０の出力値に影響を及ぼさない。たとえば、第１中間ノードＵ1ｐが０を出力するときには第１中間ノードＵ1ｐに関わる影響経路（エッジ）は実質的に除外されることになる。
【００３６】
図４（ａ）は出力値ｙ１に対する第１影響値を示す図である。図４（ｂ）は出力値ｙ２に対する第１影響値を示す図である。
ユーザＩＤ＝Ｐ０１の被験者（以下、「被験者（Ｐ０１）」のように表記する）は、脳卒中の経験者である。このため、出力設定部１１２は学習に際して「偽」に対応する出力値ｙ１に「−１」、「真」に対応する出力値ｙ２に「＋１」を設定する。入力設定部１０４は、脳卒中の病因モデル１６０の各入力ノードに被験者（Ｐ０１）の摂食情報に基づいて入力値を設定する。これらが教師データとなる。
【００３７】
モデル調整部１１４は、既知の誤差逆伝播法により、各重み係数ｗを調整する。他の被験者についても同様であり、教師データとなるデータセットを設定し、重み係数を更に調整する。このようにして、多数の被験者、好ましくは、２０００名以上の被験者のデータセットに基づいて、重み係数を調整することにより、病因モデル１６０の判定精度を高める。図４（ａ）によれば被験者（Ｐ０１）の調整後の「偽」に対応する出力値ｙ１は「−０．３２」となり、図４（ｂ）によれば「真」に対応する出力値ｙ２は「０．２６」となる。すなわち、病因モデル１６０は、被験者（Ｐ０１）は、脳卒中に罹患する可能性が高いと判定している。被験者（Ｐ０１）は、実際には脳卒中の経験者であるから、病因モデル１６０はユーザ（Ｐ０１）が脳卒中に罹患する可能性を摂食情報から正しく判定可能できている。したがって、新たなユーザの摂食情報を病因モデル１６０に入力すれば、このユーザが将来的に脳卒中になるか否かを予測できる。
【００３８】
摂食情報は、ユーザのアンケートに対する回答に基づいて取得される。このため、十分な回答が得られない可能性もある。２００種類の食品それぞれに対して、ユーザがすべて回答するとは限らない。無回答の食品（入力項目）については、入力設定部１０４は入力値として「０」を設定する。
【００３９】
図５（ａ）は出力値ｙ１に対する第２影響値を示す図である。図５（ｂ）は出力値ｙ２に対する第２影響値を示す図である。
影響値算出部１１６は、更に、第１影響値Ｅを下記の方法により補正する。まず、下記の式（８）により、第１影響値Ｅｋ（１≦ｋ≦ｎ）から中間影響値Ｆｋを計算する。
【数８】
2018198027.tif 000010
式（８）は、入力項目ｋ（食品ｋ）の出力値ｙ１に対する中間影響値Ｆｋを示す。被験者（Ｐ０１）について取得された全入力項目について、第１影響値Ｅｋ（Ｐ０１）の絶対値を合計する。この合計値を「調整値」とよぶ。影響値算出部１１６は、調整値により第１影響値を除することで中間影響値Ｆｋを算出する。中間影響値Ｆｋは入力項目ｋの入力全体に占める「割合」を示す。たとえば、食品１，２，３のすべてをよく摂取している被験者の中間影響値Ｆｋは、食品１のみを偏食している被験者の中間影響値Ｆｋよりも小さくなる。中間影響値Ｆｋは、被験者の食生活全体に占める食品ｋの摂取率（偏食性・嗜好性）を考慮した上で、食品ｋの出力値ｙ１に対する影響度を指標化するものである。
【００４０】
調整値を第１影響値Ｅの単純合計ではなく、第１影響値Ｅの絶対値和としているのは、、合計時に第１影響値が正負相殺するのを防ぐためである。調整値は、このほかにも、すべての第１影響値の平方和として算出されてもよい。
【００４１】
ただし、食品１，２，３のうち、食品１については正規回答し、食品２，３については無回答だった被験者が食品２，３をまったく摂取していないと判断することは早計かもしれない。もしかしたら、この被験者は、単に、食品２，３を実際には摂取しているにも関わらず、回答を怠っただけなのかもしれない。すなわち、ある食品ｍについての第１影響値Ｅｍがゼロとなるのは、被験者が食品ｍをまったく摂取していない場合もあれば、食品ｍを摂取しているにも関わらず無回答になっている場合もある。後者の可能性は無視できないため、中間影響値に対して、更に、式（９）に示す補正係数を乗じる。
【数９】
2018198027.tif 000011
たとえば、２００種類の食品のうち、有効な回答がなされた食品（入力項目）の数が１５０のときには、補正係数は０．７５（＝１５０／２００）となる。中間影響値Ｆを補正係数により補正した後の値を「第２影響値」とよぶ。第２影響値Ｇｋは、アンケートに対する有効回答率を考慮した上で、食品ｋの出力値ｙ１に対する影響度を指標化するものである。第１影響値から中間影響値を経由して第２影響値を生成する処理のことを「影響値の正規化」とよぶ。第１影響値、中間影響値、第２影響値は、いずれも、ある被験者についての結果（脳卒中）に対する要因（食品）それぞれの影響力を示すものであり、被験者全体についての一般論ではない。影響値は、被験者ごとに計算される。
【００４２】
まとめると、ある食品ｋ（入力項目ｋ）の「脳卒中にかからない（偽）」に対応する出力値ｙ１への影響は、下記の各種条件により変動する。
（Ｃ１）脳卒中にかかっていない被験者が、食品ｋを多量に摂取しているとき、食品ｋは脳卒中に対してポジティブに影響する、いいかえれば、食品ｋの出力値ｙ１に対する第２影響値Ｇｋが高くなる。
（Ｃ２）脳卒中にかかっていない被験者が、食品ｋ以外の食品をあまり摂取していないとき、いいかえれば、食品ｋを偏食しているとき、第２影響値Ｇｋは高くなる。
（Ｃ３）脳卒中にかかっていない被験者が、食品ｋ以外の多くの食品について無回答であるとき、いいかえれば、アンケートにおける有効回答が少ないときには、第２影響値Ｇｋは高くなる。補正係数は、無回答または不正規回答が多いときに、この被験者からえられたデータセットの病因モデル１６０に対する影響力を抑制する。
【００４３】
図６は、第２影響値の計算過程を示すフローチャートである。
図６に示す処理は、被験者から新たなデータセットが取得されるごとに実行される。データセット取得部１３６は、ある被験者からデータセット（摂食情報と罹患情報）を取得する（Ｓ１０）。入力設定部１０４は、摂食情報から入力値を計算し、病因モデル１６０の入力ノードに設定する（Ｓ１２）。出力設定部１１２は、罹患情報に基づいて、病因モデル１６０の出力ノードに出力値（正解の値）を設定する（Ｓ１４）。
【００４４】
モデル調整部１１４は、上記入力および出力に基づいて、誤差逆伝播法により重み係数ｗを調整する（Ｓ１６）。影響値算出部１１６は、入力項目ごとに第１影響値を算出する（Ｓ１８）。影響値算出部１１６は、第１影響値を補正し、中間影響値を経由して、第２影響値を算出する（Ｓ２０）。
【００４５】
データセットが取得されるごとに、データセットに基づいて病因モデル１６０の修正が行われる。また、病因モデル１６０が修正されるごとに全ユーザについての影響値も再計算される。
【００４６】
図７は、結果に対する要因の寄与度を示す図である。
寄与度算出部１１８は、複数のデータセットについて、入力項目ごとに第２影響度Ｇの平均値を算出する。食品ｋの出力ｙ１に対する第２影響度Ｇｋ１の平均値を「第１寄与度Ｈｋ１」、食品ｋの出力ｙ２に対する第２影響度Ｇｋ２の平均値を「第２寄与度Ｈｋ２」とよぶ。寄与度は、複数の被験者についての結果（脳卒中）に対する要因（食品）それぞれの影響力を示すものである。
【００４７】
たとえば、図５によれば、入力項目３の出力ｙ１に対する第２影響度Ｇｋは、−１．７８、−３．９３、０、−１．１８・・・である。したがって、入力項目３の出力ｙ１に対する第１寄与度Ｈ３１は、これらの平均値である。ただし、寄与度算出部１１８は、被験者（Ｐ０３）の第２影響度Ｅ３＝０は平均値計算から除外する。被験者（Ｐ０３）については、食品３について有意なデータが得られていないためである。入力項目３の出力ｙ２についても同様である。
【００４８】
寄与度算出部１１８は、入力項目ｋについて、第１寄与度Ｈｋ１の絶対値と第２寄与度Ｈｋ２の絶対値の平均値を「寄与度」として算出する。寄与度は、正方向であれ負方向であれ、その入力項目が結果に及ぼす影響力を指標化したものである。たとえば、ある食品ｋが、脳卒中予防によく効く場合でも、脳卒中を引き起こしやすい場合でも寄与度は大きくなる。
【００４９】
図７は、脳卒中に対応した病因モデル１６０から算出された各種食品の寄与度を示す。図７によれば、食品１は第１寄与度（偽）が５．３６、第２寄与度（真）は−５．１９であるから、食品１は脳卒中予防に効果があることがわかる。食品１の寄与方向「偽」は、食品１が脳卒中（結果）に対して抑制的に働くことを意味する。
【００５０】
また、図７によれば、食品２は第１寄与度（偽）が−３．９５、第２寄与度（真）が３．４５であるから、食品ｋは脳卒中の原因になりやすいことがわかる。食品２の寄与方向「真」は、食品２が脳卒中（結果）に対して促進的に働くことを意味する。
【００５１】
寄与度算出部１１８は、２００種類の食品それぞれについて、第１寄与度、第２寄与度および寄与度を算出し、寄与度の大きさを順位付けする。通信部１２４または入力部１２８は、図７に示すリストをユーザに提示する。
【００５２】
以上、実施形態に基づいて病因分析システム１００を説明した。
病因分析装置１０２（要因分析装置）によれば、結果に対するさまざまな入力項目（要因）の寄与度を定量評価できる。結果に影響を及ぼす思わぬ要因を特定できる可能性がある。寄与度を計算することにより、入力項目を絞りやすくなる。回答対象となる食品数が多い場合、アンケートに答えて摂食情報を提供する作業が煩雑化する可能性がある。寄与度に基づいて、病気に影響しにくい食品をアンケート項目から外すことにより、アンケートの選択肢を合理的に削減できる。
【００５３】
影響値算出部１１６は、第１影響値を正規化するため、アンケートの回答不備にともなう分析への悪影響を抑制しやすくなる。大量のデータセットを分析することで寄与度を求めるときにも、不備のあるデータを計算対象から除外することにより、アンケートの回答不備にともなう悪影響を抑制できる。
【００５４】
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
【００５５】
病因モデル１６０は１種類である必要はなく、複数種類が用意されてもよい。たとえば、中間層の階層数が異なる複数種類の病因モデル１６０が用意されてもよいし、複数種類の活性化関数に対応した複数種類の病因モデル１６０が用意されてもよい。複数の病因モデル１６０のうち、もっとも予測精度の高い病因モデル１６０を採用すればよい。
【００５６】
病院１０８は、あるユーザＱの健康診断で異常値が検出されたとき、ユーザＱの罹患情報を病因分析装置１０２に送信してもよい。このとき、病因分析装置１０２は、ユーザＱの摂食情報と罹患情報に基づいて、病因モデル１６０を補正してもよい。
【００５７】
本実施形態における病因モデル１６０の活性化関数はＲｅＬＵ関数であるとして説明した。活性化関数はＲｅＬＵ関数以外であってもよいが、線形関数であることが望ましい。
【００５８】
影響値の正規化あるいは寄与度の算出においては、無回答の入力項目については計算対象から除外するとして説明した。このほかにも、所定範囲内に収まらない異常値が検出されるときには、非正規入力であるとして計算対象から除外してもよい。
【００５９】
一人の被験者から複数回のデータセットを得たときには、入力設定部１０４は入力値を平均処理してもよい。たとえば、ある被験者Ｒの１回目のアンケートでは「納豆」の入力値が１０であり、２回目のアンケートでは「納豆」の入力値が２０であれば、入力設定部１０４は被験者Ｒについての「納豆」の入力値を平均値の１５に設定すればよい。
【００６０】
病因モデル１６０は食品以外の入力項目に対応する入力ノードを有してもよい。たとえば、性別（男：１、女：２）、年齢（２０歳未満：１、３０代：２・・・）を入力値として設定してもよい。
【００６１】
本実施形態においては、病因モデル１６０は背反事象に対応する２つの出力ノードを備えるとして説明した。病因モデル１６０（ニューラルネットワーク・モデル）の出力ノードは１つであってもよいし、３以上であってもよい。
【００６２】
本実施形態においては、摂食情報と罹患情報の相関関係を病因モデル１６０により連結することで病因を探り、病気を予測するとして説明した。食事以外にも、心理テストなどにより判定される精神傾向（たとえば、ポジティブな性格とネガティブな性格）、身長や体重などの身体情報、性別、居住地域、人種、年齢、本人または親の病歴などを病因モデル１６０の入力データに含めてもよい。このような分析を行うことにより、たとえば、女性は肺がんにかかりにくい、温暖地方の居住者は脳卒中にかかりにくいなど、食事以外の病因についても分析が可能となる。
【００６３】
本実施形態に示した要因分析手法は、病因分析以外にも応用可能である。たとえば、野球チームの勝利には、防御率、チーム打率、１番バッターの出塁率などのさまざまな要因のうち、どの要因が寄与しているのかを探ることができる。自動車の売れ行きには、ディーラー数、価格、燃費など各要因がどの程度寄与しているかを探ることができるかもしれない。
【符号の説明】
【００６４】
１００  病因分析システム、１０２  病因分析装置、１０４  入力設定部、１０６  クライアント端末、１０８  病院、１１０  インターネット、１１２  出力設定部、１１４  モデル調整部、１１６  影響値算出部、１１８  寄与度算出部、１２０  ユーザインタフェース処理部、１２２  データ処理部、１２４  通信部、１２６  データ格納部、１２８  入力部、１３０  出力部、１３６  データセット取得部、１６０  病因モデル、１６２  バイアス項
【図１】
2018198027.tif 000012
【図２】
2018198027.tif 000013
【図３】
2018198027.tif 000014
【図４】
2018198027.tif 000015
【図５】
2018198027.tif 000016
【図６】
2018198027.tif 000017
【図７】
2018198027.tif 000018