(57)【要約】【課題】遺伝子の組み合わせは膨大であり、全ての組み合わせから事象の原因となる遺伝子を精度よく効率的に推定することは困難であった。【解決手段】複数の説明変数の各々の値と、事象の発生有無とを対応付けたサンプルデータを複数取得する取得部と、複数の説明変数の中から選択説明変数のセットを並列に選択する複数の説明変数選択部と、複数のサンプルデータに基づいて、複数の選択説明変数のセットのそれぞれについて各選択説明変数の値から事象の発生有無を予測する予測モデルを並列に学習する複数の学習処理部と、異なる選択説明変数のセットに応じた複数の予測モデルのうち、評価がより高い予測モデルをより優先して選択するモデル選択部と、モデル選択部により選択された予測モデルに対応する選択説明変数のセットを原因説明変数セットとして決定する決定部と、を備える並列計算処理装置を提供する。【選択図】図１
2018077547.tif 000002
【特許請求の範囲】
【請求項１】
複数の説明変数の中から予め定められた事象の発生原因となる少なくとも１つの説明変数のセットである原因説明変数セットを特定する装置であって、
前記複数の説明変数の各々の値と、前記事象の発生有無とを対応付けたサンプルデータを複数取得する取得部と、
前記複数の説明変数の中から選択説明変数のセットを並列に選択する複数の説明変数選択部と、
複数の前記サンプルデータに基づいて、複数の前記選択説明変数のセットのそれぞれについて各選択説明変数の値から前記事象の発生有無を予測する予測モデルを並列に学習する複数の学習処理部と、
異なる前記選択説明変数のセットに応じた複数の前記予測モデルのうち、評価がより高い予測モデルをより優先して選択するモデル選択部と、
前記モデル選択部により選択された前記予測モデルに対応する前記選択説明変数のセットを前記原因説明変数セットとして決定する決定部と、
を備える並列処理装置。
【請求項２】
当該並列処理装置は、複数の遺伝子の中から前記事象の発現要因となる少なくとも１つの遺伝子のセットを特定するものである請求項１に記載の並列処理装置。
【請求項３】
前記説明変数選択部は、マルコフ連鎖モンテカルロ法により前記選択説明変数のセットを選択する請求項１または２に記載の並列処理装置。
【請求項４】
前記説明変数選択部は、
前記複数のサンプルデータにおいて、単独で前記事象の発生有無に寄与する度合いが予め定められた基準を満たす説明変数を初期の前記選択説明変数のセットに含める初期化部と、
マルコフ連鎖モンテカルロ法を用いて、初期の前記選択説明変数のセットから順次前記選択説明変数のセットを生成していく生成部と、
を有する請求項３に記載の並列処理装置。
【請求項５】
前記少なくとも１つの選択説明変数に応じて学習された前記予測モデルの評価が基準未満であることを条件として、前記初期化部は、新たな初期の前記選択説明変数のセットを決定し、前記生成部は、新たな初期の前記選択説明変数のセットから順次前記選択説明変数のセットを更に生成していく請求項４に記載の並列処理装置。
【請求項６】
生成された前記選択説明変数のセットに応じて学習された前記予測モデルの評価が基準未満であることを条件として、前記初期化部は、新たな初期の前記選択説明変数のセットをランダムに決定する請求項４または５に記載の並列処理装置。
【請求項７】
前記説明変数選択部は、
前記選択説明変数のセットをランダムに選択し、
ランダムに選択された前記選択説明変数のセットに応じて学習された前記予測モデルの評価が基準以上であることを条件として、マルコフ連鎖モンテカルロ法を用いる選択に切替える請求項３から６のいずれか一項に記載の並列処理装置。
【請求項８】
前記説明変数選択部は、前記選択説明変数のセットに応じて学習された前記予測モデルの評価に応じて、マルコフ連鎖モンテカルロ法における提案分布を変更する請求項３から７のいずれか一項に記載の並列処理装置。
【請求項９】
前記学習処理部は、
前記選択説明変数のセット内の各選択説明変数を変数として含み、分散を最大化するように選択された複数の関数を生成し、
前記複数の関数の中から前記複数のサンプルデータにおける前記事象の発生有無の判別に用いる少なくとも１つの関数を選択し、
前記少なくとも１つの関数のそれぞれの値を各次元とする多次元空間における位置に基づいて、前記事象の発生有無を予測する前記予測モデルを学習する
請求項１から８のいずれか一項に記載の並列処理装置。
【請求項１０】
複数の前記説明変数選択部、及び、複数の前記学習処理部は、
メニーコアＣＰＵ、コンピュータクラスタ、ＧＰＧＰＵ、並列化ＦＰＧＡ、及び、ネットワークを介してアクセスされる仮想マシンイメージの少なくとも１つ以上により実現される、
請求項１から９のいずれか１項に記載の並列処理装置。
【請求項１１】
コンピュータにより実行される、複数の説明変数の中から予め定められた事象の発生原因となる少なくとも１つの説明変数のセットである原因説明変数セットを特定する方法であって、
前記複数の説明変数の各々の値と、前記事象の発生有無とを対応付けたサンプルデータを複数取得する取得段階と、
前記複数の説明変数の中から少なくとも１つの選択説明変数のセットを並列に選択する説明変数選択段階と、
複数の前記サンプルデータに基づいて、複数の前記選択説明変数のセットのそれぞれについて各選択説明変数の値から前記事象の発生有無を予測する予測モデルを並列に学習する学習処理段階と、
異なる前記選択説明変数のセットに応じた複数の前記予測モデルのうち、評価がより高い予測モデルをより優先して選択するモデル選択段階と、
前記モデル選択段階で選択された前記予測モデルに対応する前記選択説明変数のセットを前記原因説明変数セットとして決定する決定段階と、
を備える並列処理方法。
【請求項１２】
コンピュータを、複数の説明変数の中から予め定められた事象の発生原因となる少なくとも１つの説明変数のセットである原因説明変数セットを並列処理により特定する並列化処理装置として機能させる並列化処理用プログラムであって、
実行されると当該コンピュータを、
前記複数の説明変数の各々の値と、前記事象の発生有無とを対応付けたサンプルデータを複数取得する取得部と、
前記複数の説明変数の中から少なくとも１つの選択説明変数のセットを並列に選択する複数の説明変数選択部と、
複数の前記サンプルデータに基づいて、複数の前記選択説明変数のセットのそれぞれについて各選択説明変数の値から前記事象の発生有無を予測する予測モデルを並列に学習する学習処理部と、
異なる前記選択説明変数のセットに応じた複数の前記予測モデルのうち、評価がより高い予測モデルをより優先して選択するモデル選択部と、
前記モデル選択部により選択された前記予測モデルに対応する前記選択説明変数のセットを前記原因説明変数セットとして決定する決定部と、
として機能させた並列化処理用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列処理装置、並列処理方法、および、並列化処理用プログラムに関する。
【背景技術】
【０００２】
遺伝子情報を高速に解読する次世代のＤＮＡシーケンサーの普及により人等の生物の膨大な遺伝子情報が得られるようになり、疾患等の生物学的事象の説明変数となる遺伝子を特定しようとする研究が進められている。生物学的事象は幾つかの遺伝子の組み合わせが原因となって生じることが多く、従来、このような遺伝子の組み合わせを推定する方法が知られている（例えば、特許文献１〜３）。
［特許文献１］  特開２００３−４７３９号公報
［特許文献２］  特表２００２−５２８０９５号公報
［特許文献３］  特開２０１１−２４８７８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、遺伝子の組み合わせの数は膨大であり、事象の原因となる遺伝子の組み合わせを効率的に精度よく推定することは依然困難であった。
【課題を解決するための手段】
【０００４】
本発明の第１の態様においては、複数の説明変数の中から予め定められた事象の発生原因となる少なくとも１つの説明変数のセットである原因説明変数セットを特定する装置であって、複数の説明変数の各々の値と、事象の発生有無とを対応付けたサンプルデータを複数取得する取得部と、複数の説明変数の中から選択説明変数のセットを並列に選択する複数の説明変数選択部と、複数のサンプルデータに基づいて、複数の選択説明変数のセットのそれぞれについて各選択説明変数の値から事象の発生有無を予測する予測モデルを並列に学習する複数の学習処理部と、異なる選択説明変数のセットに応じた複数の予測モデルのうち、評価がより高い予測モデルをより優先して選択するモデル選択部と、モデル選択部により選択された予測モデルに対応する選択説明変数のセットを原因説明変数セットとして決定する決定部と、を備える並列計算処理装置を提供する。
【０００５】
なお、上記の発明の概要は、本発明の特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
【図面の簡単な説明】
【０００６】
【図１】本実施形態の装置１０のブロック図を示す。
【図２】本実施形態の装置１０による処理フローを示す。
【図３】本実施形態に係るサンプルデータの一例を示す。
【図４】本実施形態に係る説明変数のセットの一例を示す。
【図５】初期化部１２２が選択説明変数のセットとして選択する選択確率を示す。
【図６】遺伝子ごとの事象の発生確率の一例を示す。
【図７】判別分析による予測モデルの学習の処理フローの一例を示す。
【図８】学習処理部１３０が生成する多次元空間の一例を示す。
【図９】最尤推定法による予測モデルの学習の処理フローの一例を示す。
【図１０】ベイズ法による予測モデルの学習の処理フローの一例を示す。
【図１１】最尤推定法又はベイズ法による判別の一例を示す。
【図１２】マルコフ連鎖モンテカルロ法による選択説明変数のセットの生成方法の一例を示す。
【図１３】説明変数選択部１２０によるＳ２００の処理フローの変形例を示す。
【図１４】生成部１２４によるマルコフ連鎖モンテカルロ法による選択説明変数のセット生成の変形例を示す。
【図１５】並列処理を実装した本実施形態の変形例に係る並列処理装置１２を示す。
【図１６】コンピュータ１９００のハードウェア構成の一例を示す。
【発明を実施するための形態】
【０００７】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【０００８】
図１は、本実施形態の並列処理装置の１ブロック分の装置１０ブロック図を示す。本実施形態の装置１０は、複数の説明変数の中から予め定められた事象の発生原因となる少なくとも１つの説明変数のセットである原因要因セットを特定する。例えば、装置１０は、複数の遺伝子の中から、疾病等の事象の発現要因となる少なくとも１つの遺伝子のセットを原因要因セットとして特定する。装置１０は、取得部１１０、説明変数選択部１２０、学習処理部１３０、モデル選択部１４０、及び、決定部１５０を備える。
【０００９】
取得部１１０は、複数の説明変数の各々の値と、事象の発生有無とを対応付けたサンプルデータを複数取得する。例えば、取得部１１０は、データベース２０から、遺伝子に関する値（一例として特定の構造遺伝子の有無、修飾又は発現量等）と疾病の有無とを対応付けた、複数の対象者についてのサンプルデータを取得する。取得部１１０は、取得したサンプルデータを説明変数選択部１２０に提供する。
【００１０】
説明変数選択部１２０は、複数の説明変数の中から少なくとも１つの選択説明変数のセットを選択する。例えば、説明変数選択部１２０は、サンプルデータに含まれる対象者が保有する複数の遺伝子の中から、選択説明変数のセットとして予め定められた数の遺伝子を含む遺伝子のセットを予め定められた方法（例えば、ブートストラップ法、又は、マルコフ連鎖モンテカルロ法）に基づいて選択する。説明変数選択部１２０は、初期化部１２２及び生成部１２４を有する。
【００１１】
初期化部１２２は、説明変数選択部１２０が原因説明変数の探索の初期に選択する選択説明変数のセットを決定する。例えば、初期化部１２２は、ランダムに選択した説明変数、複数のサンプルデータにおいて発生する頻度が高い説明変数、又は、複数のサンプルデータにおいて単独で事象の発生有無に寄与する度合いが高い説明変数を初期の選択説明変数のセットに含める。
【００１２】
生成部１２４は、説明変数選択部１２０が探索の初期以降に選択する選択説明変数のセットを生成する。例えば、生成部１２４は、マルコフ連鎖モンテカルロ法を用いて、初期の選択説明変数のセットから順次選択説明変数のセットを生成する。これにより、生成部１２４は、前回選択した選択説明変数のセットの組み合わせに近い組み合わせの選択説明変数のセットを生成する。
【００１３】
初期化部１２２及び生成部１２４は、以前に生成された選択説明変数のセットから得られた予測モデルの評価に基づいて、選択説明変数のセットを決定又は生成してよい。説明変数選択部１２０による処理の詳細は後述する。説明変数選択部１２０は、選択説明変数のセットを学習処理部１３０に供給する。
【００１４】
学習処理部１３０は、複数のサンプルデータに基づいて、選択説明変数のセット内の各選択説明変数の値から事象の発生有無を予測する予測モデルを学習する。例えば、学習処理部１３０は、サンプルデータ中の各対象者の選択説明変数のセット中の遺伝子の有無等から、疾病の発生有無を予測する予測モデルを学習する。これにより、学習処理部１３０は、選択された選択説明変数のセットごとに予測モデルを得る。学習処理部１３０の学習処理の具体的内容は後述する。
【００１５】
また、学習処理部１３０は、各予測モデルによる事象発生の予測精度についての評価を生成し、これを説明変数選択部１２０に供給する。例えば、学習処理部１３０は、各予測モデルに基づいてサンプルデータから事象の発生を予測した結果と、実際の事象の発生の有無とを対比し、その結果から評価を生成する。学習処理部１３０は、学習した予測モデルに対応する選択説明変数のセット及び評価をモデル選択部１４０に供給する。
【００１６】
モデル選択部１４０は、異なる選択説明変数のセットに応じて学習処理部１３０が学習した複数の予測モデルのうち、評価がより高い予測モデルをより優先して選択する。例えば、モデル選択部１４０は、最も評価の高い予測モデルを選択する。モデル選択部１４０は、選択した予測モデルを決定部１５０に供給する。
【００１７】
決定部１５０は、モデル選択部１４０により選択された予測モデルに対応する選択説明変数のセットを原因説明変数セットとして決定する。これにより、決定部１５０は、評価が高い、すなわち事象の発生を高精度で予測した予測モデルを与える選択説明変数のセットを、優先して事象の原因と特定することができる。
【００１８】
このように装置１０は、サンプルデータ中の複数の原因説明変数の候補から、選択説明変数のセットをマルコフ連鎖モンテカルロ法等により選択し、選択した選択説明変数のセットごとに予測モデルを学習し、評価の高い予測モデルに対応する選択説明変数のセットを原因説明変数として特定する。
【００１９】
図２は、本実施形態の装置１０による処理フローを示す。装置１０は、Ｓ１２０〜Ｓ２４０の処理を実行することにより、原因説明変数セットを特定する処理を実行する。
【００２０】
まず、Ｓ１２０において、複数の説明変数の各々の値と、事象の発生有無とを対応付けたサンプルデータを複数の対象について取得する。例えば、取得部１１０は、データベース２０から、複数の対象者について特定の遺伝子発現の有無等と大腸癌等の特定の疾病有無とを対応付けたサンプルデータを取得する。
【００２１】
図３は、サンプルデータの一例を示す。取得部１１０は、Ｍ人の対象者の各々がｎ個（例えば、数百万個）の遺伝子ｇ１〜ｇｎのそれぞれを発現するか否かの情報（遺伝子を発現していれば１、無ければ０等）と、疾病の有無等の生物学的事象と関連づけられた情報（疾病が生じていれば１、生じていなければ０等）をサンプルデータとして取得する。例えば、図３に示すサンプルデータは、対象者１が遺伝子ｇ１を発現し、遺伝子ｇ２を発現し、遺伝子ｇ３を発現せず、…遺伝子ｇｎを発現し、疾病が無いことを示し、対象者２が遺伝子ｇ１を発現せず、遺伝子ｇ２及び遺伝子ｇ３を発現し、…遺伝子ｇｎを発現し、疾病があることを示し、対象者Ｍが遺伝子ｇ１及び遺伝子ｇ２を発現し、遺伝子ｇ３を有さず、…遺伝子ｇｎを発現せず、疾病がないことを示す。
【００２２】
取得部１１０は、対象の遺伝子発現の有無に加えて／代えて、遺伝子の発現量の情報、遺伝子配列多型の位置情報、遺伝子変異の頻度、遺伝子修飾の種類及び部位、及び／又は、遺伝子修飾の程度の情報を取得してよい。また、取得部１１０は、遺伝子発現に関連する情報を取得してよい。例えば、取得部１１０は、遺伝子の発現及び翻訳により産生されたタンパク質の量、転写産物やタンパク質の修飾の種類及び部位、及び／又は、修飾の程度、産生されたタンパク質の機能発現の結果により産生された代謝物（例えば、（ａ）脂質、糖質、ビタミン、アミノ酸、核酸、その他のアルコール類、有機酸又はそれらのエステル類、その他のアミン類、又はその他の有機化合物、（ｂ）ミネラル又はそのイオン、又はその他の無機化合物（窒素化合物、硫黄化合物、含リン化合物、ハロゲン化合物等）又はそのイオン、又は（ｃ）それらの複合体、錯体、又はそれらの分解産物等）の種類及び／又は量の情報を含むサンプルデータを取得してもよい。取得部１１０は、取得したサンプルデータを説明変数選択部１２０に提供する。
【００２３】
次に、Ｓ１４０において、初期化部１２２は、選択説明変数の初期セットを決定する。例えば、初期化部１２２は、サンプルデータ中の全説明変数の中から、等確率でランダムに選択した予め定められたｓ個の説明変数を選択説明変数として含む、初期の選択説明変数のセットを決定してよい。
【００２４】
これに代えて、初期化部１２２は、複数のサンプルデータにおいて存在する頻度が高い説明変数を優先して初期の選択説明変数のセットに含めてよい。例えば、初期化部１２２は、サンプルデータ（又は自然界）において対象者が発現する頻度の高い遺伝子を初期の選択説明変数として決定する。一例として、初期化部１２２は、頻度の高い順番にｓ個の遺伝子を選択し、又は、頻度に応じた選択確率で互いに異なるｓ個の遺伝子を選択して、初期の選択説明変数のセットとしてよい。
【００２５】
図４及び図５を用いて、初期化部１２２の頻度による選択説明変数のセットの決定方法を説明する。図４は、本実施形態に係る説明変数のセットの一例を示す。ｎ個の説明変数ｇ１〜ｇｎの組み合わせから、それぞれがｓ個の説明変数を含むＮ個（Ｎ＝ｎＣｓ）の説明変数のセットＧ１〜ＧＮを生成することができる。図４の例は、ｓ＝３であり、セットＧ１はｇ１０、Ｇ４１、ｇ３０１、ｇ５１０を含み、セットＧ２はｇ１０、Ｇ４１、ｇ３０１、ｇ２８２を含み、…セットＧＮはｇａ、Ｇｂ、ｇｃ、ｇｄ（ａ，ｂ，ｃ，ｄ∈ｎ）を含む場合を示す。
【００２６】
図５は、初期化部１２２が各セットを初期の選択説明変数のセットとして選択する選択確率の一例を示す。グラフの横軸は並べられたＮ個の説明変数のセットＧ１〜ＧＮを示し、縦軸は説明変数のセットに対応する選択確率Ｐｓを示す。初期化部１２２は、選択確率Ｐｓに応じた確率で説明変数のセットを選択する。
【００２７】
図５において各説明変数のセットは、頻度順に並べられる。すなわち、グラフの一番左に配置される説明変数（すなわち遺伝子）のセットＧｘは、サンプルデータ（又は自然界）において最も高頻度で現れる（又は現れると予想される）遺伝子の組み合わせであり、セットＧｘの右隣りに配置されるセットＧｙはＧｘの次に高頻度で現れる遺伝子の組み合わせであり、…一番右に配置される説明変数のセットＧＺはサンプルデータ（又は自然界）において最も低頻度で現れる（又は現れると予想される）遺伝子の組み合わせである。図５において並べられる説明変数のセットに含まれる説明変数の種類は単一（例えば、３個）、又は、複数種類（例えば、２個〜５個）であってよい。
【００２８】
グラフの各説明変数のセットに対応する選択確率Ｐｓは当該説明変数の組み合わせの頻度に対応する大きさの値であってよい。これにより、初期化部１２２は、発生頻度が高い遺伝子のセットを優先的に選択することができる。
【００２９】
また、初期化部１２２は、これに代えて、複数のサンプルデータにおいて単独で事象の発生有無に寄与する度合いが予め定められた基準を満たす説明変数を初期の選択説明変数のセットに含めてよい。例えば、初期化部１２２は、サンプルデータから説明変数ごとの事象の発生率を算出する。一例として、遺伝子ｇ１を発現する１００００人の対象者のうち１１人が疾病を有する場合、初期化部１２２は、説明変数（遺伝子ｇ１）による事象（疾病）の発生有無に寄与する度合い（すなわち、遺伝子ｇ１の発現による疾病の発生率）が０．１１％であると算出する。
【００３０】
図６は、遺伝子ごとの事象の発生確率の一例を示す。図４によると、サンプルデータにおいて、遺伝子ｇ１を有する対象者の疾病発生率は０．１１％であり、遺伝子ｇ２を有する対象者の疾病発生率は０．１５％であり、遺伝子ｇ３を有する対象者の疾病発生率は０．７３％であり、遺伝子ｇｎを有する対象者の疾病発生率は０．０２％である。
【００３１】
ここで、初期化部１２２は、疾病の発生有無に寄与する度合いの高い遺伝子を初期の選択説明変数として決定する。一例として、初期化部１２２は、疾病の発生有無に寄与する度合いの高い順番にｓ個の遺伝子を選択し、又は、度合に応じた選択確率で互いに異なるｓ個の遺伝子を選択して、初期の選択説明変数のセットとしてよい。
【００３２】
次に、Ｓ１６０において、学習処理部１３０は、複数のサンプルデータに基づいて、直前の処理で決定された選択説明変数のセット内の各選択説明変数の値から事象の発生有無を予測する予測モデルを学習する。例えば、学習処理部１３０は、サンプルデータ中の各対象者の選択説明変数のセット中の遺伝子発現の有無等から、疾病の発生有無を予測する予測モデルを学習する。一例として、学習処理部１３０は、判別分析、機械学習（自己組織化マップ、サポートベクトルマシンなど）、最尤推定法、又は、ベイズ法等に基づいて予測モデルを学習する。
【００３３】
図７は、判別分析による予測モデルの学習の処理フローの一例を示す。学習処理部１３０は、Ｓ１６２〜Ｓ１７２の処理を実行することにより、判別分析を利用してＳ１６０の処理を実行してよい。
【００３４】
まず、Ｓ１６２において、学習処理部１３０は、直前の処理で決定された選択説明変数のセット内の各選択説明変数を変数として含み、サンプルデータ中の各対象の投影の分散を最大化するように選択された複数の関数を生成する。例えば、学習処理部１３０は、選択説明変数のセットに含まれるｓ個の遺伝子ｇｉｊの有無等を示すｓ個の変数ｘｉｊのベクトルｘ（ｘ＝｛ｘｉ１，ｘｉ２，…，ｘｉｓ｝）を含む関数ｆ（ｘ）を生成する。ｆ（ｘ）は、ベクトルｘの各要素の線形関数であってよい。
【００３５】
一例として、選択説明変数のセットに１０番目、２３番目、及び４５番目の遺伝子が含まれる場合を想定する。説明の便宜上、学習処理部１３０は、１０番目、２３番目、及び４５番目の遺伝子のそれぞれの発現量等を各軸とする３次元空間上に、各サンプルデータの対象者をプロットするものとする。例えば、学習処理部１３０は、ある対象者の１０番目の遺伝子ｇ１０の発現量が０．１で、遺伝子ｇ２３の発現量が０．３で、遺伝子ｇ４５の発現量が０．２である場合、当該対象者を３次元空間上で（０．１，０．３，０．２）の点にプロットすることを仮定する。
【００３６】
学習処理部１３０は、全対象者または所定の基準数以上の複数の対象者のプロットを完了した後に、３次元空間上の第１の線形関数ｆ１（ｘ）＝ａ１０ｘ１０＋ａ２３ｘ２３＋ａ４５ｘ４５＋ｃｏｎｓｔ１を生成する。ここで、学習処理部１３０は、該各対象者のプロットに対応する座標を第１の線形関数ｆ１（ｘ）に入力して各対象者に対応する複数の出力値を得た際に、当該複数の出力値の分散が最大になるように各遺伝子ｘｉｊに対応する各係数ａｉｊを最適化する。
【００３７】
次に、学習処理部１３０は、第１の線形関数ｆ１（ｘ）とは異なる別の第２の線形関数ｆ２（ｘ）を生成する。例えば、学習処理部１３０は、複数の出力値の分散が第１の線形関数ｆ１（ｘ）に次いで大きくなるように各遺伝子ｘｉｊに対応する各係数ａｉｊを最適化する。学習処理部１３０は、出力値の分散が大きくなる順番に更に第３の線形関数ｆ３（ｘ）以降の線形関数を生成していってよい。このように学習処理部１３０は、出力値の分散が大きくなる順に予め定められた個数の線形関数を生成する。
【００３８】
次にＳ１６４において、学習処理部１３０は、生成した複数の関数の中から、複数のサンプルデータにおける事象の発生有無の判別に用いる少なくとも１つの関数を選択する。ここで、学習処理部１３０は、各関数の出力値を各軸とする多次元空間に各対象者をプロットした場合に、事象の発生有無の境界がより明確に決定できる関数の組み合わせを決定する。例えば、生成した関数から一部の関数のみを選択する場合、学習処理部１３０は、各対象者の各線形関数の出力値と、対象者における事象の発生有無（又は事象の発生程度）との相関係数を算出し、相関係数の絶対値が大きい関数を１つ以上選択してよい。本説明では便宜上、学習処理部１３０が、Ｓ１６２で生成した第１の線形関数ｆ１（ｘ）及び第２の線形関数ｆ２（ｘ）を選択するものとする。
【００３９】
次にＳ１６６において、学習処理部１３０は、少なくとも１つの関数のそれぞれの値を各次元とする多次元空間を生成する。例えば、学習処理部１３０は、サンプルデータにおける複数の対象者の選択説明変数の遺伝子を選択された関数に入力し、得られた値を各関数に対応する軸を有する座標空間にプロットする。
【００４０】
図８は、学習処理部１３０が生成する多次元空間の一例を示す。ここでは、学習処理部１３０は、２個の関数により２次元空間を生成した例を示す。グラフ中の各プロットは、サンプルデータにおける各対象者に対応する。
【００４１】
例えば、学習処理部１３０は、各対象者の選択説明変数の遺伝子の発現量等を第１の関数ｆ１（ｘ）に入力して得られた出力値を軸ＬＤ１上の成分о１として含み、第２の関数ｆ２（ｘ）に入力して得られた出力値を軸ＬＤ２上の成分о１として含む点（о１，о２）を、疾病の発生結果とともに２次元空間上にプロットする。図８において点線及び実線の○は疾病が生じなかった対象者（すなわち、健常者）を示し、点線及び実線の×は疾病が生じた対象者（すなわち、非健常者）を示す。
【００４２】
次にＳ１６８において、学習処理部１３０は、選択説明変数から事象の発生有無を予測する判別関数を生成する。例えば、学習処理部１３０は、線形判別、二次判別、自己組織化マップ、及び、サポートベクトルマシン等の各種の判別手法に基づいて、健常者（疾病無し）と非健常者（疾病有り）を最も精度よく判別する判別関数を生成する。図８は、学習処理部１３０が線形判別関数ＴＨを生成した場合を示す。図８に示す線形判別関数ＴＨの上側にプロットされる対象者は非健常者と予測され、下側にプロットされる対象者は健常者と予測される。このように、学習処理部１３０は、判別関数を生成することにより、多次元空間における位置に基づいて、事象の発生有無を予測する予測モデルを学習する。例えば、学習処理部１３０は、第１の関数ｆ１（ｘ）及び第２の関数ｆ２（ｘ）を選択することにより、これらの関数の出力値を各軸とする２次元空間内で健常者及び非健常者を区別する明確な境界ＴＨを決定することができる。
【００４３】
次にＳ１７２において、学習処理部１３０は、学習した判別関数により予測モデルを評価する。例えば、学習処理部１３０は、判別関数による事象の発生の予測精度を評価する。図８の点線の○は判別関数で疾病が予測されたが実際には疾病がない対象者を示し、実線の○は判別関数で疾病が予測されずに実際にも疾病がない対象者を示し、点線の×は判別関数で疾病が予測されなかったが実際には疾病があった対象者を示し、実線の×は判別関数で疾病が予測され実際にも疾病があった対象者を示す。
【００４４】
一例として、学習処理部１３０は、各種の判別手法により生成した判別関数により、サンプルデータの複数の対象者の遺伝子発現から疾患の有無を予測した場合の感度（図８の全○中の実線の○の割合）及び特異度（全×中の実線の×の割合）の少なくとも一方、又は、両者の平均を、判別関数の評価として算出する。判別関数の評価は、判別関数に対応する予測モデルの評価となる。
【００４５】
このように学習処理部１３０は、分散を最大化する複数の関数に基づいて生成した多次元空間上にサンプルデータをプロットすることで、選択した複数の説明変数に基づき事象の発生の有無を判別できる可能性を高めた予測モデルを学習する。
【００４６】
図９は、最尤推定法による予測モデルの学習の処理フローの一例を示す。学習処理部１３０は、Ｓ２６２〜Ｓ２６６の処理を実行することにより、最尤推定法を利用してＳ１６０の処理を実行してよい。
【００４７】
まず、Ｓ２６２において、学習処理部１３０は、尤度関数を生成する。例えば、学習処理部１３０は、サンプルデータに基づいて、選択説明変数のセットに含まれる遺伝子ｇｉの有無又は発現量等を示す変数ｘｉを入力して事象発生の尤度θを出力する尤度関数ｌｉｋ（θ）＝ｆＤ（ｘｉ｜θ）を算出する。一例として、選択説明変数のセットが１０番目、２３番目、及び４５番目の遺伝子を含む場合、学習処理部１３０は、尤度関数ｌｉｋ（θ）＝ｆＤ（ｘ１０，ｘ２３，ｘ４５｜θ）を算出する。
【００４８】
次に、Ｓ２６４において、学習処理部１３０は、尤度関数に基づいてサンプルデータ中の各対象者の事象の発生有無を判別する。例えば、学習処理部１３０は、各対象者の選択説明変数のセットに含まれる遺伝子を対応する尤度関数に入力して、それぞれの対象者に疾病が発生する尤度を算出する。学習処理部１３０は、尤度が予め定められた基準（例えば、０．５）を下回る場合に疾病が生じないと判定し、尤度が基準以上となる場合に疾病が生じると判定する。
【００４９】
次に、Ｓ２６６において、学習処理部１３０は、尤度関数の精度を評価する。例えば、学習処理部１３０は、サンプルデータにおける各対象者の事象の発生有無と、尤度関数により各対象者の事象発生の有無を予測した結果とを対比する。一例として、学習処理部１３０は、Ｓ１７２による処理と同様に感度及び特異度により尤度関数を評価してよい。
【００５０】
図１０は、ベイズ法による予測モデルの学習の処理フローの一例を示す。学習処理部１３０は、Ｓ３６２〜Ｓ３６６の処理を実行することにより、ベイズ法を利用してＳ１６０の処理を実行してよい。
【００５１】
まず、Ｓ３６２において、学習処理部１３０は、サンプルデータにおいて、各対象が事象を生じる事後確率を算出する。例えば、学習処理部１３０は、図５で説明した説明変数のセットの頻度、又は、図６で説明した選択説明変数の事象の発生確率の積等を事前確率として用いてよく、図９の処理で生成した尤度関数を尤度として用い、事前確率及び尤度の積に基づき事後確率を算出してよい。また、学習処理部１３０は、メトロポリス・ヘイスティングス法等のマルコフ連鎖モンテカルロ法に基づくサンプリングアルゴリズムにより、事後確率を算出してよい。
【００５２】
次に、Ｓ３６４において、学習処理部１３０は、事象発生有無を判別する。例えば、学習処理部１３０は、各対象者の選択説明変数のセットに含まれる遺伝子に基づく事前確率と、各対象者の選択説明変数のセットに含まれる遺伝子を対応する尤度関数に入力した結果とに基づいて事後確率分布を算出する。学習処理部１３０は、事後確率（例えば、事後確率分布における事後確率の平均値、中央値、又は、最頻値等）が予め定められた基準（例えば、０．５）を下回る場合に疾病が生じないと判定し、事後確率が基準以上となる場合に疾病が生じると判定する。
【００５３】
次に、Ｓ３６６において、学習処理部１３０は、事後確率の精度を評価する。例えば、学習処理部１３０は、サンプルデータにおける各対象者の事象の発生有無と、事後確率により各対象者の事象発生の有無を予測した結果とを対比する。一例として、学習処理部１３０は、Ｓ１７２による処理と同様に感度及び特異度により尤度関数を評価してよい。
【００５４】
図１１は、最尤推定法又はベイズ法による判別の一例を示す。グラフのｘ１軸及びｘ２軸は、選択説明変数のセットが２個の遺伝子を含む場合のそれぞれの遺伝子の発現量等に対応し、ｚ軸は最尤推定法における尤度又はベイズ法における事後確率に対応する。グラフ中の各プロットは、サンプルデータにおける各対象者に対応する。図１１において点線及び実線の○は疾病が生じなかった対象者（すなわち、健常者）を示し、点線及び実線の×は疾病が生じた対象者（すなわち、非健常者）を示す。
【００５５】
例えば、学習処理部１３０は、各対象者について尤度又は事後確率が閾値ＴＨ（例えば０．５）以上の場合に当該対象者を非健常者と予測し、閾値ＴＨ未満の場合に当該対象者を健常者と予測する。図１１の点線の○は疾病が予測されたが実際には疾病がない対象者を示し、実線の○は判別関数で疾病が予測されずに実際にも疾病がない対象者を示し、点線の×は判別関数で疾病が予測されなかったが実際には疾病があった対象者を示し、実線の×は判別関数で疾病が予測され実際にも疾病があった対象者を示す。
【００５６】
一例として、学習処理部１３０は、尤度又は事後確率により、サンプルデータの複数の対象者の遺伝子から疾患の有無を予測した場合の感度（図１１の全○中の実線の○の割合）及び特異度（全×中の実線の×の割合）の少なくとも一方を評価として算出してよい。
【００５７】
このようにＳ１６０において、学習処理部１３０は、判別分析、機械学習（自己組織化マップ、サポートベクトルマシンなど）、最尤推定法、又は、ベイズ法等を利用して、選択説明変数のセットから事象発生有無を予測する予測モデルを学習する。学習処理部１３０は、これらに加えて／代えて、重回帰分析、主成分分析、及び、クラスタ分析等の多変量解析を用いて学習モデルを学習してもよい。また、学習処理部１３０は、予測モデルに対応する選択説明変数のセット、及び、各予測モデルの評価をモデル選択部１４０に供給する。
【００５８】
Ｓ１６０の次に、Ｓ１８０において、説明変数選択部１２０は、選択説明変数のセットの選択を継続するか判断する。例えば、説明変数選択部１２０は、予め定められた回数Ｓ１６０の学習処理を実行したこと、及び／又は、Ｓ１６０で予め定められた基準以上の評価の学習モデルを学習したことを条件に選択説明変数のセットの選択を終了し、処理をＳ２２０に進める。説明変数選択部１２０は、選択説明変数のセットの選択を終了しない場合は、処理をＳ２００に進める。
【００５９】
Ｓ２００において、説明変数選択部１２０は、初期化部１２２又は生成部１２４により、複数の説明変数の中から少なくとも１つの選択説明変数のセットを選択する。例えば、説明変数選択部１２０の初期化部１２２は、Ｓ１４０と同様の処理により、ランダムに複数の選択説明変数を含む選択説明変数のセットを選択してよい。ここで、初期化部１２２は、ブートストラップ法を採用して過去に選択した選択説明変数のセットと同一のセットを再度選択可能としてよく、又は、ジャックナイフ法を採用して過去に選択した選択説明変数のセットを選択しないようにしてよい。
【００６０】
初期化部１２２による選択に代えて、説明変数選択部１２０の生成部１２４が選択説明変数のセットを生成してもよい。例えば、生成部１２４は、マルコフ連鎖モンテカルロ法を用いて、初期の選択説明変数のセットから順次選択説明変数のセットを生成してよい。これにより、生成部１２４は、前回選択した選択説明変数のセットに近い選択説明変数のセットを生成する。
【００６１】
図１２は、マルコフ連鎖モンテカルロ法による選択説明変数のセットの生成方法の一例を示す。グラフの横軸は並べられたＮ個の説明変数のセットＧ１〜ＧＮを示す。図１２において、各説明変数のセットは組み合わせの近い順番に並べられる。例えば、Ｇ１に係る説明変数のセットが遺伝子ｇ１、ｇ２及びｇ３を含むものである場合、Ｇ１に隣接するＧ２に係る説明変数のセットは、遺伝子ｇ３のみが別のｇ３に近い遺伝子ｇ４に置き換えられた遺伝子ｇ１、ｇ２及びｇ４を含んで良い。
【００６２】
例えば、図１２において、遺伝子のセットの類似度（例えば、編集距離）及び／又は遺伝子自体の類似度等に基づいて、セット間の距離が類似度に応じたものとなるように、複数の説明変数が横軸に並べられてよい。図１２において並べられる説明変数のセットに含まれる説明変数数の種類は単一（例えば、３個）、又は、複数（例えば、２個及び３個）であってよい。なお、図１２では、説明のために複数のセットを１次元上に並べて示しているが、複数の説明変数のセットは多次元上に並べられるものとしてもよい。
【００６３】
また、図１２のグラフにおいて、Ｇｉは直前の選択説明変数の選択（Ｓ１４０又は前回のＳ２００の処理）において選択された選択説明変数のセットを示し、縦軸は各説明変数のセットを生成部１２４が選択する選択確率Ｐｓを示す。すなわち、Ｓ２００において、生成部１２４は、選択確率Ｐｓに応じた確率で説明変数のセットを選択する。
【００６４】
図１２に示すように、前回選択したセットＧｉに近い説明変数の組み合わせを有するセットが最も選択確率Ｐｓが高く、Ｇｉからの距離に応じて選択確率Ｐｓが漸減する。例えば、図１２は、Ｇｉをピークとする正規分布となる確率分布を示す。これにより生成部１２４は、前回選択したセットに近い説明変数の組み合わせを有する選択説明変数のセットを生成する。なお、生成部１２４は、前回選択したセットＧｉ又は過去に選択したことなるセットを重複して選択しないようにしてもよい。
【００６５】
図１３は、説明変数選択部１２０によるＳ２００の処理フローの変形例を示す。本例において、説明変数選択部１２０は、Ｓ２０２〜Ｓ２０６の処理を実行することにより、前回の選択説明変数のセットの評価に応じて、初期化部１２２又は生成部１２４のいずれかが選択説明変数のセットを選択する。
【００６６】
まず、Ｓ２０２において、説明変数選択部１２０は、前回選択した選択説明変数のセットの評価が予め定められた基準未満となるか否かを判定する。例えば、説明変数選択部１２０は、Ｓ１４０又はＳ２００の処理で生成された選択説明変数のセットについて、Ｓ１７２、Ｓ２６６又はＳ３６６の処理で生成された評価が基準未満となる否かを判定する。説明変数選択部１２０は、評価が基準未満と判断した場合に処理をＳ２０４に進め、そうでない場合は処理をＳ２０２に進める。
【００６７】
説明変数選択部１２０は、前回選択した選択説明変数のセットの評価を判定することに代えて、直近の予め定められた連続回数の評価が基準未満となるか否かを判定してもよい。例えば、説明変数選択部１２０は、直近１０回に生成した選択説明変数のセットの評価がいずれも基準値を下回る場合に処理をＳ２０４に進めてよい。
【００６８】
Ｓ２０４において、初期化部１２２は新たに初期の選択説明変数のセットを選択する。例えば、初期化部１２２は、Ｓ１４０と同様の処理を実行することにより、新たな初期の選択説明変数のセットをランダムに決定してよい。
【００６９】
Ｓ２０６において、生成部１２４は、マルコフ連鎖モンテカルロ法を用いて、初期の選択説明変数のセットから順次選択説明変数のセットを生成してよい。例えば、生成部１２４は、図１２において説明した手法により選択説明変数のセットを生成してよい。
【００７０】
このように本変形例によれば、初期化部１２２が選択した少なくとも１つの選択説明変数に応じて学習された予測モデルの評価が基準未満であること、及び、生成部１２４が生成した選択説明変数のセットに応じて学習された予測モデルの評価が基準未満であることを条件として、初期化部１２２は、新たな初期の選択説明変数のセットを決定する。これにより、説明変数選択部１２０は、高い評価の選択説明変数のセットが得られない場合に、マルコフ連鎖モンテカルロ法の起点となる選択説明変数のセットをリセットする。すなわち、説明変数選択部１２０は、ある領域において精度の良い予測モデルが得られない場合、その領域における説明変数セットの探索に見込みがないと判断し、別の領域での探索を開始することで、説明変数のセットの探索を効率化する。
【００７１】
その後、次回以降のＳ１６０〜Ｓ２００のループにおいて、生成部１２４は、新たな初期の選択説明変数のセットから順次選択説明変数のセットを更に生成していく。これにより、本変形例の装置１０は、優れた評価の選択説明変数のセット（すなわち、原因要因である可能性が高い説明変数のセット）の近傍で別の選択説明変数のセットの探索・評価を継続することができ、効率的に原因要因を探索することができる。
【００７２】
また、本変形例によれば、説明変数選択部１２０は、初期化部１２２により基準以上の評価が得られる選択説明変数のセットが得られるまで選択説明変数のセットをランダムに選択し、ランダムに選択された選択説明変数のセットに応じて学習された予測モデルの評価が基準以上であることを条件として、生成部１２４によるマルコフ連鎖モンテカルロ法を用いる選択に切替えることができる。
【００７３】
これにより、本変形例の装置１０によれば、ランダムに選択説明変数の組み合わせを試行し、選択説明変数のセットから一定以上の評価が得られたことに応じて、当該選択説明変数のセットの近傍で原因説明変数の組み合わせとして更に有望な選択説明変数のセットがないか探索することができる。
【００７４】
図１４は、生成部１２４によるマルコフ連鎖モンテカルロ法による選択説明変数のセット生成の変形例を示す。生成部１２４は、マルコフ連鎖モンテカルロ法による選択説明変数のセットを生成する際に、一定の分布の確率分布を用いてよく、これに代えて図１４で実線及び点線で示すような異なる分布形状の確率分布を提案分布として用いてよい。
【００７５】
例えば、生成部１２４は、選択説明変数のセットに応じて学習された予測モデルの評価に応じて、マルコフ連鎖モンテカルロ法における提案分布を変更する。一例として、生成部１２４は、Ｓ２０６で選択説明変数のセットを生成する際に、前回選択した選択説明変数のセットの評価と負の相関関係がある大きさの分散の分布（例えば、評価の値と反比例する分散の分布）を用いてよい。これにより、生成部１２４は、前回選択した選択説明変数のセットの評価が高くなるとより幅が狭い確率分布（例えば、図１４の点線の分布）から次の選択説明変数のセットを選択することとなるので、前回の選択説明変数のセットに対してより近い選択説明変数のセットを選択する確率が高くなる。これにより、装置１０は、効率良く評価の高い選択説明変数のセットを探索することができる。
【００７６】
Ｓ２００において、初期化部１２２又は生成部１２４が選択説明変数のセットを選択／生成後、説明変数選択部１２０は当該選択説明変数のセットを学習処理部１３０に供給し、処理をＳ１６０に戻す。
【００７７】
Ｓ２２０において、モデル選択部１４０は、異なる選択説明変数のセットに応じて学習処理部１３０が学習した複数の予測モデルのうち、評価がより高い予測モデルをより優先して選択する。例えば、モデル選択部１４０は、Ｓ１６０〜Ｓ２００のループ処理で生成した複数の予測モデルの中から、最も高い評価が得られた選択説明変数のセットに対応する予測モデルを選択する。また、モデル選択部１４０は、評価の値に応じた大きさの確率で選択説明変数のセットに対応する予測モデルを選択してもよい。モデル選択部１４０は、選択した予測モデルを決定部１５０に供給する。
【００７８】
次にＳ２４０において、決定部１５０は、モデル選択部１４０により選択された予測モデルに対応する選択説明変数のセットを原因説明変数セットとして決定する。これにより、決定部１５０は、評価の高い予測モデルを与える選択説明変数のセットを、事象の原因として特定することができる。これにより、例えば、決定部１５０は、疾病の発生の予測の精度が高い予測モデルが得られた複数の遺伝子のセットを、疾病の原因遺伝子として特定することができる。
【００７９】
図１５は、並列処理を実装した本実施形態の変形例に係る並列処理装置１２を示す。本変形例において、並列処理装置１２は第１処理部１０２と複数の第２処理部１０４を備え、複数の第２処理部１０４により並列処理を実行する点で装置１０と相違する。
【００８０】
第１処理部１０２は、取得部１１０、モデル選択部１４０、及び、決定部１５０の機能を有する。複数の第２処理部１０４は、それぞれが説明変数選択部１２０及び学習処理部１３０の機能を有する。
【００８１】
本変形例の取得部１１０は、取得したサンプルデータを複数の第２処理部１０４の説明変数選択部１２０に供給する。複数の第２処理部１０４において、複数の説明変数選択部１２０は、複数の説明変数の中から選択説明変数のセットを並列に選択し、複数の学習処理部１３０は複数の選択説明変数のセットのそれぞれに対する予測モデルを並列に学習する。この場合、並列処理装置１２は、Ｓ１６０〜Ｓ２００のループ処理を複数の説明変数選択部１２０及び複数の学習処理部１３０により並列に実行する。また、第１処理部１０２が説明変数選択部１２０を有し、第２処理部１０４は、学習処理部１３０のみを有し、並列処理装置１２は、学習処理部１３０の学習処理のみを並列化してもよい。この場合、並列処理装置１２は、Ｓ１６０の処理を複数の学習処理部１３０により並列に実行する。
【００８２】
複数の第２処理部１０４は、それぞれが独立して、ランダム又はマルコフ連鎖モンテカルロ法等により選択説明変数のセットを選択する。第２処理部１０４は互いに選択した選択説明変数のセット及びその評価の情報を通信し合い、互いに異なる選択説明変数のセットを選択してよい。また、複数の第２処理部１０４の１つで評価が基準よりも高い予測モデルが生成された場合に、他の第２処理部１０４を当該評価が高い予測モデルの選択説明変数のセットの近傍の探索に割り当ててよい。これにより、第２処理部１０４は、評価が高いと予想される予測モデルの探索を効率化することができる。
【００８３】
これにより、第２処理部１０４は、選択説明変数のセットの選択及び予測モデルの学習処理を多数の処理主体により並列処理し、処理効率を向上することができる。また、第１処理部１０２が複数の第２処理部１０４と選択説明変数のセットの情報等を通信し、第２処理部１０４の並列処理を制御してもよい。
【００８４】
第１処理部１０２は、例えば、汎用ＣＰＵにより実現されてよく、複数の第２処理部１０４のそれぞれは、汎用ＧＰＵ（ＧＰＧＰＵ）又は専用ＣＰＵ等により実現されてよい。汎用ＧＰＵの例として、ＮＶＩＤＩＡ社が開発したＣＵＤＡ（Ｃｏｍｐｕｔｅ  Ｕｎｉｆｉｅｄ  Ｄｅｖｉｃｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ）などが挙げられる。また、これに代えて、第１処理部１０２及び複数の第２処理部１０４は、並列化ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、多数の情報処理装置のクラスタ（コンピュータクラスタ）、ネットワークを介してアクセスされる複数の仮想マシンイメージ（クラウドサービスにより展開されるマシンイメージ等）、及び／又は、プロセッサ内の複数のコア（メニーコアＣＰＵ）により実現されてもよい。並列化ＦＰＧＡの例として、ＳｃｉＥｎｇｉｎｅｓ  ＧｍｂＨ社製、ＲＩＶＹＥＲＡモデルなどが挙げられる。メニーコアＣＰＵを搭載したサーバの例として、ヒューレット・パッカード製のＨＰ  ＰｒｏＬｉａｎｔ  ＤＬ９８０  Ｇ７（８０コアＣＰＵ）及びＨＰ  ＩｎｔｅｇｒｉｔｙＳｕｐｅｒｄｏｍｅ  Ｘ  Ｓｅｒｖｅｒ（２４０コアＣＰＵ）などが挙げられる。仮想マシンイメージの例としてアマゾンウェブサービスのＡＭＩ（Ａｍａｚｏｎ  Ｍａｃｈｉｎｅ  Ｉｍａｇｅｓ）などが挙げられる。また、複数の第２処理部１０４は、インメモリ並列分散処理により並列処理を実行してもよい。インメモリ並列分散処理技術にはＡｐａｈｃｅ  Ｓｐａｒｋなどが挙げられる。
【００８５】
本実施形態及び変形例等では、装置１０及び並列処理装置１２（装置１０等とする）が特定の遺伝子の有無又は発現量と疾病有無とを対応付けたサンプルデータを取得し、疾病の原因遺伝子を推定する例を説明したが、装置１０等の適用対象はこれに限られない。
【００８６】
例えば、装置１０等は、昆虫等の有害生物の薬剤抵抗性と、当該有害生物の遺伝子配列情報とを含むサンプルデータを取得し、薬剤抵抗性に寄与する遺伝子の組み合わせを特定してよい。
【００８７】
また、例えば、装置１０等は、複数の近縁生物種の遺伝子配列情報を含むサンプルデータを取得し、進化系統樹を作成する際に指標となる遺伝子の組み合わせを特定してよい。この場合、装置１０等は、選択した複数の選択説明変数のセット（遺伝子のセット）のそれぞれから分岐図パターンを生成し、各分岐図パターンが多数派及び少数派のいずれに属するかを決定する。装置１０等は、多数派に属する分岐図を与える選択説明変数のセットに高い評価を与え、少数派に属する岐図を与える選択説明変数のセットに低い評価を与える。
【００８８】
更に、装置１０等の適用対象は、遺伝子を選択説明変数として特定することに限られない。装置１０等は、複数の説明変数のうち一部が事象に寄与するあらゆる現象の原因説明変数を特定するために用いることができる。例えば、装置１０等は、購買行動の要因を特定すること、株価の変動原因を特定すること、ネットワークにおける情報伝播、又は、気象等の自然現象の原因等を特定するために用いることができる。
【００８９】
図１６は、装置１０等として機能するコンピュータ１９００のハードウェア構成の一例を示す。本実施形態に係るコンピュータ１９００は、ホスト・コントローラ２０８２により相互に接続されるＣＰＵ２０００、ＲＡＭ２０２０、グラフィック・コントローラ２０７５、及び表示装置２０８０を有するＣＰＵ周辺部と、入出力コントローラ２０８４によりホスト・コントローラ２０８２に接続される通信インターフェイス２０３０、ハードディスクドライブ２０４０、及びＣＤ−ＲＯＭドライブ２０６０を有する入出力部と、入出力コントローラ２０８４に接続されるＲＯＭ２０１０、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０を有するレガシー入出力部を備える。
【００９０】
ホスト・コントローラ２０８２は、ＲＡＭ２０２０と、高い転送レートでＲＡＭ２０２０をアクセスするＣＰＵ２０００及びグラフィック・コントローラ２０７５とを接続する。ＣＰＵ２０００は、ＲＯＭ２０１０及びＲＡＭ２０２０に格納されたプログラム（例えば、並列処理用プログラム）に基づいて動作し、各部の制御を行う。グラフィック・コントローラ２０７５は、ＣＰＵ２０００等がＲＡＭ２０２０内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置２０８０上に表示させる。これに代えて、グラフィック・コントローラ２０７５は、ＣＰＵ２０００等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
【００９１】
入出力コントローラ２０８４は、ホスト・コントローラ２０８２と、比較的高速な入出力装置である通信インターフェイス２０３０、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０を接続する。通信インターフェイス２０３０は、有線又は無線によりネットワークを介して他の装置と通信する。また、通信インターフェイスは、通信を行うハードウェアとして機能する。ハードディスクドライブ２０４０は、コンピュータ１９００内のＣＰＵ２０００が使用するプログラム及びデータを格納する。ＣＤ−ＲＯＭドライブ２０６０は、ＣＤ−ＲＯＭ２０９５からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。
【００９２】
また、入出力コントローラ２０８４には、ＲＯＭ２０１０と、フレキシブルディスク・ドライブ２０５０、及び入出力チップ２０７０の比較的低速な入出力装置とが接続される。ＲＯＭ２０１０は、コンピュータ１９００が起動時に実行するブート・プログラム、及び／又は、コンピュータ１９００のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ２０５０は、フレキシブルディスク２０９０からプログラム又はデータを読み取り、ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供する。入出力チップ２０７０は、フレキシブルディスク・ドライブ２０５０を入出力コントローラ２０８４へと接続するとともに、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ２０８４へと接続する。
【００９３】
ＲＡＭ２０２０を介してハードディスクドライブ２０４０に提供されるプログラムは、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５、又はＩＣカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、ＲＡＭ２０２０を介してコンピュータ１９００内のハードディスクドライブ２０４０にインストールされ、ＣＰＵ２０００において実行される。
【００９４】
コンピュータ１９００にインストールされ、コンピュータ１９００を装置１０等として機能させるプログラムは、取得モジュール、説明変数選択モジュール、初期化モジュール、生成モジュール、学習処理モジュール、モデル選択モジュール、及び、決定モジュールを備える。これらのプログラム又はモジュールは、ＣＰＵ２０００等に働きかけて、コンピュータ１９００を、取得部１１０、説明変数選択部１２０、初期化部１２２、生成部１２４、学習処理部１３０、モデル選択部１４０、及び、決定部１５０としてそれぞれ機能させてよい。
【００９５】
これらのプログラムに記述された情報処理は、コンピュータ１９００に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である取得部１１０、説明変数選択部１２０、初期化部１２２、生成部１２４、学習処理部１３０、モデル選択部１４０、及び、決定部１５０として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ１９００の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の装置１０等が構築される。
【００９６】
一例として、コンピュータ１９００と外部の装置等との間で通信を行う場合には、ＣＰＵ２０００は、ＲＡＭ２０２０上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス２０３０に対して通信処理を指示する。通信インターフェイス２０３０は、ＣＰＵ２０００の制御を受けて、ＲＡＭ２０２０、ハードディスクドライブ２０４０、フレキシブルディスク２０９０、又はＣＤ−ＲＯＭ２０９５等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス２０３０は、ＤＭＡ（ダイレクト・メモリ・アクセス）方式により記憶装置との間で送受信データを転送してもよく、これに代えて、ＣＰＵ２０００が転送元の記憶装置又は通信インターフェイス２０３０からデータを読み出し、転送先の通信インターフェイス２０３０又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
【００９７】
また、ＣＰＵ２０００は、ハードディスクドライブ２０４０、ＣＤ−ＲＯＭドライブ２０６０（ＣＤ−ＲＯＭ２０９５）、フレキシブルディスク・ドライブ２０５０（フレキシブルディスク２０９０）等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をＤＭＡ転送等によりＲＡＭ２０２０へと読み込ませ、ＲＡＭ２０２０上のデータに対して各種の処理を行う。そして、ＣＰＵ２０００は、処理を終えたデータを、ＤＭＡ転送等により外部記憶装置へと書き戻す。このような処理において、ＲＡＭ２０２０は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはＲＡＭ２０２０及び外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。
【００９８】
本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、ＣＰＵ２０００は、ＲＡＭ２０２０の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはＲＡＭ２０２０の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもＲＡＭ２０２０、メモリ、及び／又は記憶装置に含まれるものとする。
【００９９】
また、ＣＰＵ２０００は、ＲＡＭ２０２０から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、ＲＡＭ２０２０へと書き戻す。例えば、ＣＰＵ２０００は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすか否かを判断し、条件が成立した場合（又は不成立であった場合）に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
【０１００】
また、ＣＰＵ２０００は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第１属性の属性値に対し第２属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、ＣＰＵ２０００は、記憶装置に格納されている複数のエントリの中から第１属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第２属性の属性値を読み出すことにより、所定の条件を満たす第１属性に対応付けられた第２属性の属性値を得ることができる。
【０１０１】
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク２０９０、ＣＤ−ＲＯＭ２０９５の他に、ＤＶＤ又はＣＤ等の光学記録媒体、ＭＯ等の光磁気記録媒体、テープ媒体、ＩＣカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はＲＡＭ等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ１９００に提供してもよい。
【０１０２】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【０１０３】
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【符号の説明】
【０１０４】
１０  装置、１２  並列処理装置、２０  データベース、１０２  第１処理部、１０４  第２処理部、１１０  取得部、１２０  説明変数選択部、１２２  初期化部、１２４  生成部、１３０  学習処理部、１４０  モデル選択部、１５０  決定部
【図１】
2018077547.tif 000003
【図２】
2018077547.tif 000004
【図３】
2018077547.tif 000005
【図４】
2018077547.tif 000006
【図５】
2018077547.tif 000007
【図６】
2018077547.tif 000008
【図７】
2018077547.tif 000009
【図８】
2018077547.tif 000010
【図９】
2018077547.tif 000011
【図１０】
2018077547.tif 000012
【図１１】
2018077547.tif 000013
【図１２】
2018077547.tif 000014
【図１３】
2018077547.tif 000015
【図１４】
2018077547.tif 000016
【図１５】
2018077547.tif 000017
【図１６】
2018077547.tif 000018