特許第6818275号(P6818275)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社教育ソフトウェアの特許一覧

<>
  • 特許6818275-要因分析装置 図000011
  • 特許6818275-要因分析装置 図000012
  • 特許6818275-要因分析装置 図000013
  • 特許6818275-要因分析装置 図000014
  • 特許6818275-要因分析装置 図000015
  • 特許6818275-要因分析装置 図000016
  • 特許6818275-要因分析装置 図000017
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6818275
(24)【登録日】2021年1月5日
(45)【発行日】2021年1月20日
(54)【発明の名称】要因分析装置
(51)【国際特許分類】
   G06N 20/00 20190101AFI20210107BHJP
   G06N 3/02 20060101ALI20210107BHJP
【FI】
   G06N20/00 130
   G06N3/02
【請求項の数】7
【全頁数】16
(21)【出願番号】特願2017-103337(P2017-103337)
(22)【出願日】2017年5月25日
(65)【公開番号】特開2018-198027(P2018-198027A)
(43)【公開日】2018年12月13日
【審査請求日】2019年12月6日
(73)【特許権者】
【識別番号】512018542
【氏名又は名称】株式会社教育ソフトウェア
(74)【代理人】
【識別番号】110002273
【氏名又は名称】特許業務法人インターブレイン
(72)【発明者】
【氏名】鈴木 颯太
【審査官】 渡部 博樹
(56)【参考文献】
【文献】 特開平07−064945(JP,A)
【文献】 特開平10−063632(JP,A)
【文献】 特開平04−133164(JP,A)
【文献】 特開2002−092683(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00−99/00
(57)【特許請求の範囲】
【請求項1】
出力値および複数の入力値を含むデータセットを取得するデータセット取得部と、
前記データセットに含まれる前記複数の入力値をニューラルネットワーク・モデルの複数の入力ノードに設定する入力設定部と、
前記データセットに含まれる前記出力値を前記ニューラルネットワーク・モデルの出力ノードに設定する出力設定部と、
前記出力値および前記複数の入力値に基づいて、前記ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整するモデル調整部と、
前記重み係数の調整結果に基づいて、前記出力値に対する複数の入力項目それぞれの影響値を算出する影響値算出部と、
複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの出力に対する寄与度を算出する寄与度算出部と、を備え、
前記影響値算出部は、前記複数の影響値それぞれの絶対値を合計することにより調整値を算出し、前記複数の影響値それぞれを前記調整値で除することにより前記複数の影響値を補正することを特徴とする要因分析装置。
【請求項2】
前記影響値算出部は、非正規入力または無入力の入力項目の数に応じた補正係数により、前記影響値を更に補正することを特徴とする請求項1に記載の要因分析装置。
【請求項3】
出力値および複数の入力値を含むデータセットを取得するデータセット取得部と、
前記データセットに含まれる前記複数の入力値をニューラルネットワーク・モデルの複数の入力ノードに設定する入力設定部と、
前記データセットに含まれる前記出力値を前記ニューラルネットワーク・モデルの出力ノードに設定する出力設定部と、
前記出力値および前記複数の入力値に基づいて、前記ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整するモデル調整部と、
前記重み係数の調整結果に基づいて、前記出力値に対する複数の入力項目それぞれの影響値を算出する影響値算出部と、
複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの出力に対する寄与度を算出する寄与度算出部と、を備え、
前記寄与度算出部は、入力項目ごとに、前記複数のデータセットそれぞれから得られた影響値の平均値を前記寄与度として算出することを特徴とする要因分析装置。
【請求項4】
前記寄与度算出部は、非正規値またはゼロとなる影響値を平均値計算から除外することを特徴とする請求項3に記載の要因分析装置。
【請求項5】
出力値および複数の入力値を含むデータセットを取得するデータセット取得部と、
前記データセットに含まれる前記複数の入力値をニューラルネットワーク・モデルの複数の入力ノードに設定する入力設定部と、
前記データセットに含まれる前記出力値を前記ニューラルネットワーク・モデルの出力ノードに設定する出力設定部と、
前記出力値および前記複数の入力値に基づいて、前記ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整するモデル調整部と、
前記重み係数の調整結果に基づいて、前記出力値に対する複数の入力項目それぞれの影響値を算出する影響値算出部と、
複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの出力に対する寄与度を算出する寄与度算出部と、を備え、
前記データセット取得部は、前記複数の入力値とともに互いに背反する第1の出力値および第2の出力値を取得し、
前記出力設定部は、前記第1および第2の出力値を前記ニューラルネットワーク・モデルの第1および第2の出力ノードに設定し、
前記モデル調整部は、前記複数の入力値と前記第1および第2の出力値に基づいて、前記ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整し、
前記影響値算出部は、前記重み係数の調整結果に基づいて、前記第1および第2の出力値それぞれについて、複数の入力項目それぞれの影響値を算出し、
前記寄与度算出部は、前記第1の出力値に対する入力項目ごとの第1寄与度と、前記第2の出力値に対する入力項目ごとの第2寄与度を算出することを特徴とする要因分析装置。
【請求項6】
前記寄与度算出部は、前記第1寄与度の絶対値と前記第2寄与度の絶対値の合計値に基づいて、入力項目ごとの寄与度を算出することを特徴とする請求項5に記載の要因分析装置。
【請求項7】
出力値および複数の入力値を含むデータセットを取得する機能と、
前記データセットに含まれる前記複数の入力値をニューラルネットワーク・モデルの複数の入力ノードに設定する機能と、
前記データセットに含まれる前記出力値を前記ニューラルネットワーク・モデルの出力ノードに設定する機能と、
前記出力値および前記複数の入力値に基づいて、前記ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整する機能と、
前記重み係数の調整結果に基づいて、前記出力値に対する複数の入力項目それぞれの影響値を算出する機能と、
複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの出力に対する寄与度を算出する機能と、をコンピュータに発揮させ、
前記複数の入力値とともに互いに背反する第1の出力値および第2の出力値を取得し、
前記第1および第2の出力値を前記ニューラルネットワーク・モデルの第1および第2の出力ノードに設定し、
前記複数の入力値と前記第1および第2の出力値に基づいて、前記ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整し、
前記重み係数の調整結果に基づいて、前記第1および第2の出力値それぞれについて、複数の入力項目それぞれの影響値を算出し、
前記第1の出力値に対する入力項目ごとの第1寄与度と、前記第2の出力値に対する入力項目ごとの第2寄与度を算出することを特徴とする要因分析プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ニューラルネットワークに関する。
【背景技術】
【0002】
ニューラルネットワークは、生物のニューロンの仕組みを応用することにより、コンピュータに推論機能を持たせる技術である。ニューラルネットワークの研究は1940年代に始まり、ブームと停滞を繰り返し、現在、3度目のブームにあるといわれる。
【0003】
ニューラルネットワークにおいては多数の「ノード」が設定される。まず、複数の入力項目それぞれに入力ノードが対応づけられる。入力ノードは、入力値を活性化関数により処理し、その出力値を複数の中間ノードに伝播させる。各中間ノードも同様の処理を実行する。最後に、出力ノードが処理結果を「判断」として出力する。判断に誤りがあればノードの「つながり」が修正される。このような処理を繰り返しながら、ニューラルネットワークは入力に基づく推論方法を学習していく(特許文献1参照)。
以下、入力項目に設定される値を「入力値」とよび、複数の入力値の集合を「入力」、出力ノードの処理結果を「出力値」、1以上の出力値の集合を「出力」または「結果」とよぶ。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2006−43007号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
ニューラルネットワークの目的は、未知の入力を与えられたとき、学習経験を活かして正しい推論(結果)を出力することである。いいかえれば、入力から適切な結果を求めることに主眼が置かれている。
【0006】
結果には多種類の入力項目(要因)が影響する。結果に大きく影響する要因もあれば、ほとんど影響しない要因もある。従来、結果に対して各要因がどの程度影響しているかを分析する方法については、あまり提案がなされていないのが現状である。
【0007】
本発明は、上記課題認識に基づいて完成された発明であり、その主たる目的は、ニューラルネットワークの学習結果に基づいて、結果に影響する要因を定量的に探る技術、を提供することにある。
【課題を解決するための手段】
【0008】
本発明のある態様における要因分析装置は、出力値および複数の入力値を含むデータセットを取得するデータセット取得部と、データセットに含まれる複数の入力値をニューラルネットワーク・モデルの複数の入力ノードに設定する入力設定部と、データセットに含まれる出力値をニューラルネットワーク・モデルの出力ノードに設定する出力設定部と、出力値および複数の入力値に基づいて、ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整するモデル調整部と、重み係数の調整結果に基づいて、出力値に対する複数の入力項目それぞれの影響値を算出する影響値算出部と、複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの出力に対する寄与度を算出する寄与度算出部と、を備える。
【0009】
本発明の別の態様における要因分析装置は、互いに背反する第1および第2の出力値と、複数の入力値とを含むデータセットを取得するデータセット取得部と、データセットに含まれる複数の入力値をニューラルネットワーク・モデルの複数の入力ノードに設定する入力設定部と、第1および第2の出力値をニューラルネットワーク・モデルの第1および第2の出力ノードに設定する出力設定部と、第1および第2の出力値および複数の入力値に基づいて、ニューラルネットワーク・モデルに含まれる複数のノードの重み係数を調整するモデル調整部と、重み係数の調整結果に基づいて、第1および第2の出力値それぞれについて、複数の入力項目それぞれの影響値を算出する影響値算出部と、複数のデータセットに基づいて算出された影響値に基づいて、複数の入力項目それぞれの第1の出力値に対する第1寄与度および第2の出力値に対する第2寄与度を算出する寄与度算出部と、を備える。
影響値算出部は、複数の影響値それぞれの絶対値を合計することにより調整値を算出し、複数の影響値それぞれを調整値で除することにより影響値を補正した後、非正規入力または無入力の入力項目の数に応じた補正係数により前記影響値を更に補正する。
寄与度算出部は、非正規値またはゼロとなる影響値を除外した上で、入力項目ごとに、複数のデータセットそれぞれから得られた影響値の平均値を第1寄与度および第2寄与度として算出し、第1寄与度の絶対値と第2寄与度の絶対値の合計値に基づいて、入力項目ごとの出力に対する寄与度を算出する。
【発明の効果】
【0010】
本発明によれば、結果に及ぼす要因を定量分析しやすくなる。
【図面の簡単な説明】
【0011】
図1】病因分析システムのハードウェア構成図である。
図2】病因分析装置の機能ブロック図である。
図3】病因モデルの概念図である。
図4(a)】出力値(偽)に対する第1影響値を示す図である。
図4(b)】出力値(真)に対する第1影響値を示す図である。
図5(a)】出力値(偽)に対する第2影響値を示す図である。
図5(b)】出力値(真)に対する第2影響値を示す図である。
図6】第2影響値の計算過程を示すフローチャートである。
図7】結果に対する要因の寄与度を示す図である。
【発明を実施するための形態】
【0012】
以下、ニューラルネットワークにおいて、複数の入力項目(要因)それぞれの結果に対する影響の大きさを定量分析する方法について説明する。本実施形態においては、病気(出力)に対する複数の食品(入力)の影響を分析する病因分析装置102(要因分析装置)を対象として説明する。
【0013】
図1は、病因分析システム100のハードウェア構成図である。
病因分析システム100において、病因分析装置102は、インターネット110を介して、病院108および複数のクライアント端末106a、106b・・・106n(以下、まとめて言うときや特に区別しないときには「クライアント端末106」と総称する)と接続される。クライアント端末106は、スマートフォンなどの携帯端末であってもよいし、ラップトップPCなどの汎用コンピュータであってもよい。クライアント端末106とインターネット110は無線接続されるが、有線接続されてもよい。クライアント端末106のユーザ(被験者)には、あらかじめユーザIDが付与される。
【0014】
病因分析装置102は、病気に影響を与える食品を特定する。詳細は後述するが、病因分析装置102は、多数の被験者の食事履歴(以下、「摂食情報」とよぶ)と被験者が罹患した病気の情報(以下、「罹患情報」とよぶ)を集積し、食事と病気の因果関係をニューラルネットワークによりモデル化する(以下、「病因モデル」とよぶ)。
【0015】
図2は、病因分析装置102の機能ブロック図である。
病因分析装置102の各構成要素は、CPU(Central Processing Unit)および各種コプロセッサなどの演算器、メモリやストレージといった記憶装置、それらを連結する有線または無線の通信線を含むハードウェアと、記憶装置に格納され、演算器に処理命令を供給するソフトウェアによって実現される。コンピュータプログラムは、デバイスドライバ、オペレーティングシステム、それらの上位層に位置する各種アプリケーションプログラム、また、これらのプログラムに共通機能を提供するライブラリによって構成されてもよい。以下に説明する各ブロックは、ハードウェア単位の構成ではなく、機能単位のブロックを示している。
病因分析装置102は、ウェブサーバを含む構成であってもよいし、クライアント端末106は、携帯型の通信端末と、これにインストールされたウェブブラウザを含む構成であってもよい。
【0016】
病因分析装置102のユーザとしては、摂食情報および罹患情報に基づいて病因を探究する研究者が想定される。
病因分析装置102は、ユーザインタフェース処理部120、通信部124、データ処理部122およびデータ格納部126を含む。
ユーザインタフェース処理部120は、タッチパネル、マウス、キーボード等の入力インタフェースを介してユーザからの操作を受け付けるほか、画像表示や音声出力など、ユーザインタフェースに関する処理を担当する。通信部124は、インターネット110を介してクライアント端末106および病院108(病院108のシステム)との通信処理を担当する。データ格納部126は各種データを格納する。データ処理部122は、ユーザインタフェース処理部120や通信部124により取得されたデータ、データ格納部126に格納されているデータに基づいて各種処理を実行する。データ処理部122は、ユーザインタフェース処理部120、通信部124およびデータ格納部126のインタフェースとしても機能する。
【0017】
ユーザインタフェース処理部120は、ユーザからの入力を受け付ける入力部128と、ユーザに対して画像や音声等の各種情報を出力する出力部130を含む。
【0018】
通信部124は、データセット取得部136を含む。
データセット取得部136は、クライアント端末106から摂食情報、病院108から罹患情報を取得する。一人の被験者についての摂食情報と罹患情報をまとめて「データセット」とよぶ。摂食情報は、選択式のアンケートに対する被験者の回答から得る。
【0019】
アンケートは、週1回から年1回程度、定期的に行われる。アンケートには200種類の食品が表示される。ユーザは、食品ごとに、(Q1)1週間あたり何回食べたか、(Q2)1回の摂取量はどの程度かという2つの質問に回答する。質問(Q2)は、「たくさん/普通/少しだけ」の3つから選ぶ。「たくさん」には「3」、「普通」には「2」、「少しだけ」には「1」が対応づけられる。全食品についての回答結果が摂食情報として病因分析装置102に提供される。アンケートは、病因分析装置102からクライアント端末106にウェブページとして提供されてる。このほかにも、アンケートを冊子として提供し、入力部128は被験者がマークシートに入力した回答からデータセットを取得してもよい。
【0020】
病院108は、健康診断の診断結果を病因分析装置102に送信する。診断結果は病気ごとに「罹患している(真)」「罹患していない(偽)」の2値が示される。データセット取得部136は、この診断結果を罹患情報として取得する。なお、被験者は罹患した病気を自己申告により病因分析装置102に通知してもよい。罹患情報においては、脳卒中、心筋梗塞などのさまざまな病気が対象となる。病気の種類ごとに病因モデル(ニューラルネットワーク・モデル)が用意される。
【0021】
データ処理部122は、入力設定部104、出力設定部112、モデル調整部114、影響値算出部116および寄与度算出部118を含む。
入力設定部104は、摂食情報に基づいて、各病因モデルの入力値を設定する。たとえば、被験者P1が食品Aを1週間あたり4回摂取し、1回の摂取量が「少しだけ」であるとき、入力設定部104は食品A(入力項目)の入力値を4×1=4として算出し、病因モデルにおける食品Aに対応する入力ノードに「4」を設定する。入力設定部104は、入力値を既知の方法により0〜1の範囲に正規化してもよい。
【0022】
出力設定部112は、罹患情報に基づいて、各病因モデルの出力(教師データ)を設定する。たとえば、被験者P1が脳卒中に罹患しているときには、脳卒中に対応する病因モデルの出力ノードのうち「真(TRUE)」に対応する出力ノードに「1」、「偽(FALSE)」に対応する出力ノードに「−1」を設定する。このようにして、摂食情報と罹患情報が病因モデルの「教師データ」となる。モデル調整部114は、出力(罹患情報)に基づいて、病因モデルの重み係数を調整する。影響値算出部116は影響値を計算する。寄与度算出部118は寄与度を計算する。病因モデル、影響値および寄与度の詳細は後述する。
【0023】
図3は、病因モデル160の概念図である。
本実施形態における病因モデル160は、ニューラルネットワークにより形成される。図3に示す病因モデル160は、入力層、出力層および2層の中間層1,2を含む。病因モデル160は病気ごとに用意されるが、以下においては脳卒中に対応する病因モデル160を対象として説明する。すなわち、図3に示す病因モデル160は、ある人の摂食履歴に基づいて、その人が将来的に脳卒中になる可能性を予測するためのモデルである。
【0024】
入力層はn個のノード(以下、「入力ノード」ともよぶ)と1個のバイアス項162を含む。バイアス項162は、「1」を常時出力する調整用のノードである。入力ノードは「X」と表記する。中間層1はn1個のノード(以下、「第1中間ノード」ともよぶ)と1個のバイアス項162を含む。第1中間ノードは「U1」と表記する。中間層2はn2個のノード(以下、「第2中間ノード」ともよぶ)と1個のバイアス項162を含む。第2中間ノードは「U2」と表記する。また、入力ノードの出力値は小文字の「x」にて表記する。中間ノードの出力値、出力ノードの出力値についても同様に小文字表記する。
【0025】
出力層は2個のノード(以下、「出力ノード」ともよぶ)を含む。出力ノードは「Y」と表記する。出力ノードYは偽(脳卒中ではない)に対応し、出力ノードYは真(脳卒中である)に対応する。出力ノードY(偽)の出力値yが正、出力ノードY(真)の出力値yが負のときは脳卒中になる可能性が低いという予想を示し、出力ノードY(偽)の出力値yが負、出力ノードY(真)の出力値yが正のときは脳卒中になる可能性が高いという予想を示す。出力ノードY(偽)の出力値yと出力ノードY(真)の出力値yが同符号またはゼロであるときには、判定不能を意味する。
【0026】
入力ノードXは入力項目(食品)に対応する。たとえば、入力ノードXは「タマゴ」、入力ノードXは「カップラーメン」に対応する。食品が200種類あるときには、nは200となる。入力設定部104は、上述の方法により、食品ごとの入力値を設定する。
【0027】
重み係数wは、ノードとノードのつながりの強さ(結合度)を表現する可変数である。バイアス項162とノードの間の重み係数はbと表記する。たとえば、重み係数w21,2は、第1中間ノードU1と第2中間ノードU2の結合度を示す。また、重み係数b2は、中間層1のバイアス項162と第2中間ノードU2の結合度を示す。
【0028】
各ノードの活性化関数f(x)は、下記の式(1)に示すReLU(Rectified Linear Unit)関数である。
【数1】
式(1)のxは、ノードに対する入力値の合計値を示す。たとえば、第1中間ノードU1は、入力ノードX〜Xおよびバイアス項162の合計(n+1)個のノードから入力値を取得する。第1中間ノードU1のReLU関数は、この(n+1)個の入力値の合計値をその入力値xとして取得する。ReLU関数f(x)は、x≧0のときf(x)=xとなり、x<0のときにはf(x)=0となる線形関数である。
【0029】
ReLU関数を想定したとき、出力ノードY(偽)の出力値yは、下記式(2)により表される。
【数2】
【0030】
式(2)のu2、すなわち、第2中間ノードU2の出力値を更に展開すると、下記式(3)となる。
【数3】
【0031】
式(3)のu1、すなわち、第1中間ノードU1の出力値を更に展開すると、下記式(4)となる。
【数4】
【0032】
式(4)は、最終的には、下記のような多項式(5)として表現される。
【数5】
【0033】
すなわち、出力値yは、入力項目1〜nそれぞれの影響度を累積させたものとして表現できる。式(5)のE1は、出力値yに対する入力項目X(入力値x)の影響力を示す。以下、このような入力項目ごとの結果に対する影響力の大きさを「第1影響値」とよぶ。第1影響値は下記式(6)、バイアス項162の出力値yに対する影響値は下記式(7)として表現できる。
【数6】
【数7】
【0034】
出力値yについても同様である。式(6)からも明らかなように、入力ノードX(入力項目k)の出力値yに対する第1影響値Ekは、「入力ノードXの出力値x」と「入力ノードXから出力ノードYへ至るすべての経路の重みの積和」を乗算することにより求められる。第1影響値Ekは、入力項目kが結果yにどのくらいの影響を与えているかを示す。たとえば、入力項目kが「納豆」であれば、第1影響値Ekは「脳卒中に罹患しない(結果y)」という事実に対して、「納豆」がどの程度の影響を与えているか、いいかえれば、納豆が脳卒中予防にどれだけ有効か、を定量的に示す。
【0035】
あるノードのReLU関数が0を出力するときには、そのノードは病因モデル160の出力値に影響を及ぼさない。たとえば、第1中間ノードU1pが0を出力するときには第1中間ノードU1pに関わる影響経路(エッジ)は実質的に除外されることになる。
【0036】
図4(a)は出力値yに対する第1影響値を示す図である。図4(b)は出力値yに対する第1影響値を示す図である。
ユーザID=P01の被験者(以下、「被験者(P01)」のように表記する)は、脳卒中の経験者である。このため、出力設定部112は学習に際して「偽」に対応する出力値yに「−1」、「真」に対応する出力値yに「+1」を設定する。入力設定部104は、脳卒中の病因モデル160の各入力ノードに被験者(P01)の摂食情報に基づいて入力値を設定する。これらが教師データとなる。
【0037】
モデル調整部114は、既知の誤差逆伝播法により、各重み係数wを調整する。他の被験者についても同様であり、教師データとなるデータセットを設定し、重み係数を更に調整する。このようにして、多数の被験者、好ましくは、2000名以上の被験者のデータセットに基づいて、重み係数を調整することにより、病因モデル160の判定精度を高める。図4(a)によれば被験者(P01)の調整後の「偽」に対応する出力値yは「−0.32」となり、図4(b)によれば「真」に対応する出力値yは「0.26」となる。すなわち、病因モデル160は、被験者(P01)は、脳卒中に罹患する可能性が高いと判定している。被験者(P01)は、実際には脳卒中の経験者であるから、病因モデル160はユーザ(P01)が脳卒中に罹患する可能性を摂食情報から正しく判定可能できている。したがって、新たなユーザの摂食情報を病因モデル160に入力すれば、このユーザが将来的に脳卒中になるか否かを予測できる。
【0038】
摂食情報は、ユーザのアンケートに対する回答に基づいて取得される。このため、十分な回答が得られない可能性もある。200種類の食品それぞれに対して、ユーザがすべて回答するとは限らない。無回答の食品(入力項目)については、入力設定部104は入力値として「0」を設定する。
【0039】
図5(a)は出力値yに対する第2影響値を示す図である。図5(b)は出力値yに対する第2影響値を示す図である。
影響値算出部116は、更に、第1影響値Eを下記の方法により補正する。まず、下記の式(8)により、第1影響値Ek(1≦k≦n)から中間影響値Fkを計算する。
【数8】
式(8)は、入力項目k(食品k)の出力値yに対する中間影響値Fkを示す。被験者(P01)について取得された全入力項目について、第1影響値Ek(P01)の絶対値を合計する。この合計値を「調整値」とよぶ。影響値算出部116は、調整値により第1影響値を除することで中間影響値Fkを算出する。中間影響値Fkは入力項目kの入力全体に占める「割合」を示す。たとえば、食品1,2,3のすべてをよく摂取している被験者の中間影響値Fkは、食品1のみを偏食している被験者の中間影響値Fkよりも小さくなる。中間影響値Fkは、被験者の食生活全体に占める食品kの摂取率(偏食性・嗜好性)を考慮した上で、食品kの出力値yに対する影響度を指標化するものである。
【0040】
調整値を第1影響値Eの単純合計ではなく、第1影響値Eの絶対値和としているのは、、合計時に第1影響値が正負相殺するのを防ぐためである。調整値は、このほかにも、すべての第1影響値の平方和として算出されてもよい。
【0041】
ただし、食品1,2,3のうち、食品1については正規回答し、食品2,3については無回答だった被験者が食品2,3をまったく摂取していないと判断することは早計かもしれない。もしかしたら、この被験者は、単に、食品2,3を実際には摂取しているにも関わらず、回答を怠っただけなのかもしれない。すなわち、ある食品mについての第1影響値Emがゼロとなるのは、被験者が食品mをまったく摂取していない場合もあれば、食品mを摂取しているにも関わらず無回答になっている場合もある。後者の可能性は無視できないため、中間影響値に対して、更に、式(9)に示す補正係数を乗じる。
【数9】
たとえば、200種類の食品のうち、有効な回答がなされた食品(入力項目)の数が150のときには、補正係数は0.75(=150/200)となる。中間影響値Fを補正係数により補正した後の値を「第2影響値」とよぶ。第2影響値Gkは、アンケートに対する有効回答率を考慮した上で、食品kの出力値yに対する影響度を指標化するものである。第1影響値から中間影響値を経由して第2影響値を生成する処理のことを「影響値の正規化」とよぶ。第1影響値、中間影響値、第2影響値は、いずれも、ある被験者についての結果(脳卒中)に対する要因(食品)それぞれの影響力を示すものであり、被験者全体についての一般論ではない。影響値は、被験者ごとに計算される。
【0042】
まとめると、ある食品k(入力項目k)の「脳卒中にかからない(偽)」に対応する出力値yへの影響は、下記の各種条件により変動する。
(C1)脳卒中にかかっていない被験者が、食品kを多量に摂取しているとき、食品kは脳卒中に対してポジティブに影響する、いいかえれば、食品kの出力値yに対する第2影響値Gkが高くなる。
(C2)脳卒中にかかっていない被験者が、食品k以外の食品をあまり摂取していないとき、いいかえれば、食品kを偏食しているとき、第2影響値Gkは高くなる。
(C3)脳卒中にかかっていない被験者が、食品k以外の多くの食品について無回答であるとき、いいかえれば、アンケートにおける有効回答が少ないときには、第2影響値Gkは高くなる。補正係数は、無回答または不正規回答が多いときに、この被験者からえられたデータセットの病因モデル160に対する影響力を抑制する。
【0043】
図6は、第2影響値の計算過程を示すフローチャートである。
図6に示す処理は、被験者から新たなデータセットが取得されるごとに実行される。データセット取得部136は、ある被験者からデータセット(摂食情報と罹患情報)を取得する(S10)。入力設定部104は、摂食情報から入力値を計算し、病因モデル160の入力ノードに設定する(S12)。出力設定部112は、罹患情報に基づいて、病因モデル160の出力ノードに出力値(正解の値)を設定する(S14)。
【0044】
モデル調整部114は、上記入力および出力に基づいて、誤差逆伝播法により重み係数wを調整する(S16)。影響値算出部116は、入力項目ごとに第1影響値を算出する(S18)。影響値算出部116は、第1影響値を補正し、中間影響値を経由して、第2影響値を算出する(S20)。
【0045】
データセットが取得されるごとに、データセットに基づいて病因モデル160の修正が行われる。また、病因モデル160が修正されるごとに全ユーザについての影響値も再計算される。
【0046】
図7は、結果に対する要因の寄与度を示す図である。
寄与度算出部118は、複数のデータセットについて、入力項目ごとに第2影響度Gの平均値を算出する。食品kの出力yに対する第2影響度Gkの平均値を「第1寄与度Hk」、食品kの出力yに対する第2影響度Gkの平均値を「第2寄与度Hk」とよぶ。寄与度は、複数の被験者についての結果(脳卒中)に対する要因(食品)それぞれの影響力を示すものである。
【0047】
たとえば、図5によれば、入力項目3の出力yに対する第2影響度Gkは、−1.78、−3.93、0、−1.18・・・である。したがって、入力項目3の出力yに対する第1寄与度H3は、これらの平均値である。ただし、寄与度算出部118は、被験者(P03)の第2影響度E3=0は平均値計算から除外する。被験者(P03)については、食品3について有意なデータが得られていないためである。入力項目3の出力yについても同様である。
【0048】
寄与度算出部118は、入力項目kについて、第1寄与度Hkの絶対値と第2寄与度Hkの絶対値の平均値を「寄与度」として算出する。寄与度は、正方向であれ負方向であれ、その入力項目が結果に及ぼす影響力を指標化したものである。たとえば、ある食品kが、脳卒中予防によく効く場合でも、脳卒中を引き起こしやすい場合でも寄与度は大きくなる。
【0049】
図7は、脳卒中に対応した病因モデル160から算出された各種食品の寄与度を示す。図7によれば、食品1は第1寄与度(偽)が5.36、第2寄与度(真)は−5.19であるから、食品1は脳卒中予防に効果があることがわかる。食品1の寄与方向「偽」は、食品1が脳卒中(結果)に対して抑制的に働くことを意味する。
【0050】
また、図7によれば、食品2は第1寄与度(偽)が−3.95、第2寄与度(真)が3.45であるから、食品kは脳卒中の原因になりやすいことがわかる。食品2の寄与方向「真」は、食品2が脳卒中(結果)に対して促進的に働くことを意味する。
【0051】
寄与度算出部118は、200種類の食品それぞれについて、第1寄与度、第2寄与度および寄与度を算出し、寄与度の大きさを順位付けする。通信部124または入力部128は、図7に示すリストをユーザに提示する。
【0052】
以上、実施形態に基づいて病因分析システム100を説明した。
病因分析装置102(要因分析装置)によれば、結果に対するさまざまな入力項目(要因)の寄与度を定量評価できる。結果に影響を及ぼす思わぬ要因を特定できる可能性がある。寄与度を計算することにより、入力項目を絞りやすくなる。回答対象となる食品数が多い場合、アンケートに答えて摂食情報を提供する作業が煩雑化する可能性がある。寄与度に基づいて、病気に影響しにくい食品をアンケート項目から外すことにより、アンケートの選択肢を合理的に削減できる。
【0053】
影響値算出部116は、第1影響値を正規化するため、アンケートの回答不備にともなう分析への悪影響を抑制しやすくなる。大量のデータセットを分析することで寄与度を求めるときにも、不備のあるデータを計算対象から除外することにより、アンケートの回答不備にともなう悪影響を抑制できる。
【0054】
なお、本発明は上記実施形態や変形例に限定されるものではなく、要旨を逸脱しない範囲で構成要素を変形して具体化することができる。上記実施形態や変形例に開示されている複数の構成要素を適宜組み合わせることにより種々の発明を形成してもよい。また、上記実施形態や変形例に示される全構成要素からいくつかの構成要素を削除してもよい。
【0055】
病因モデル160は1種類である必要はなく、複数種類が用意されてもよい。たとえば、中間層の階層数が異なる複数種類の病因モデル160が用意されてもよいし、複数種類の活性化関数に対応した複数種類の病因モデル160が用意されてもよい。複数の病因モデル160のうち、もっとも予測精度の高い病因モデル160を採用すればよい。
【0056】
病院108は、あるユーザQの健康診断で異常値が検出されたとき、ユーザQの罹患情報を病因分析装置102に送信してもよい。このとき、病因分析装置102は、ユーザQの摂食情報と罹患情報に基づいて、病因モデル160を補正してもよい。
【0057】
本実施形態における病因モデル160の活性化関数はReLU関数であるとして説明した。活性化関数はReLU関数以外であってもよいが、線形関数であることが望ましい。
【0058】
影響値の正規化あるいは寄与度の算出においては、無回答の入力項目については計算対象から除外するとして説明した。このほかにも、所定範囲内に収まらない異常値が検出されるときには、非正規入力であるとして計算対象から除外してもよい。
【0059】
一人の被験者から複数回のデータセットを得たときには、入力設定部104は入力値を平均処理してもよい。たとえば、ある被験者Rの1回目のアンケートでは「納豆」の入力値が10であり、2回目のアンケートでは「納豆」の入力値が20であれば、入力設定部104は被験者Rについての「納豆」の入力値を平均値の15に設定すればよい。
【0060】
病因モデル160は食品以外の入力項目に対応する入力ノードを有してもよい。たとえば、性別(男:1、女:2)、年齢(20歳未満:1、30代:2・・・)を入力値として設定してもよい。
【0061】
本実施形態においては、病因モデル160は背反事象に対応する2つの出力ノードを備えるとして説明した。病因モデル160(ニューラルネットワーク・モデル)の出力ノードは1つであってもよいし、3以上であってもよい。
【0062】
本実施形態においては、摂食情報と罹患情報の相関関係を病因モデル160により連結することで病因を探り、病気を予測するとして説明した。食事以外にも、心理テストなどにより判定される精神傾向(たとえば、ポジティブな性格とネガティブな性格)、身長や体重などの身体情報、性別、居住地域、人種、年齢、本人または親の病歴などを病因モデル160の入力データに含めてもよい。このような分析を行うことにより、たとえば、女性は肺がんにかかりにくい、温暖地方の居住者は脳卒中にかかりにくいなど、食事以外の病因についても分析が可能となる。
【0063】
本実施形態に示した要因分析手法は、病因分析以外にも応用可能である。たとえば、野球チームの勝利には、防御率、チーム打率、1番バッターの出塁率などのさまざまな要因のうち、どの要因が寄与しているのかを探ることができる。自動車の売れ行きには、ディーラー数、価格、燃費など各要因がどの程度寄与しているかを探ることができるかもしれない。
【符号の説明】
【0064】
100 病因分析システム、102 病因分析装置、104 入力設定部、106 クライアント端末、108 病院、110 インターネット、112 出力設定部、114 モデル調整部、116 影響値算出部、118 寄与度算出部、120 ユーザインタフェース処理部、122 データ処理部、124 通信部、126 データ格納部、128 入力部、130 出力部、136 データセット取得部、160 病因モデル、162 バイアス項
図1
図2
図3
図4
図5
図6
図7