「部分情報分解とは何か、そして特徴がどのように相互作用するのか」
部分情報分解の意味と特徴の相互作用について
ターゲット変数に関する情報が複数の特徴に分布している方法
ターゲット変数が複数の情報源に影響を受ける場合、各情報源が提供する全体的な情報への貢献度を理解することは重要です(そして簡単ではありません)。
この記事では、まず驚きの基本的な概念から始めて、次にエントロピーがランダム変数上に分散された平均驚きの量であること、そしてこれに基づいて相互情報量を定義する条件が得られることを説明します。その後、複数の情報源がある場合の部分情報分解について説明します。
驚きとエントロピー
情報の観点からエントロピーを定義するためのもっとも直感的な方法の一つは、まず驚きについて話をすることです。驚きの尺度は、予測しにくいイベントほど驚きが大きくなる一方、予測しやすいイベントは驚きが小さくなります。これらの特性を包括する数学的な定義は以下の通りです。
- 「データビジュアライゼーションを簡略化するためのスロープチャートの使用」
- 「SageMakerエンドポイントとしてカスタムMLモデルを展開する」
- エンターテイメントデータサイエンス:ストリーミングvs劇場
図1のグラフから、この定義が私たちが話した特性にかなり関連していることがわかります。あるイベントが発生する可能性が高い場合(pが1に近い場合)、驚きはゼロに近くなります。一方、あるイベントが非常に低い確率で発生する場合、その驚きは限りなく大きくなります。
では、エントロピーとは何の関係があるのでしょうか?エントロピーは、ランダム変数のすべての値に対して平均驚きとして定義されます。したがって、ランダム変数Xがあり、Xのすべての可能な結果の集合をA_Xと呼びます(これをXの「アルファベット」と呼びます)、エントロピーHは次のように定義されます。
素晴らしい。エントロピーを驚きと関連付けたので、エントロピーの有用な解釈の一つがわかります。
エントロピーは、無知の尺度です。
これはどういうことでしょうか?愚かな例で説明します。最終物理試験を受ける必要があると想像してください。これまでに開発した言語の中で、試験をランダム変数と考えて、可能な質問のアルファベットとします。さて、次の2つのシナリオを考えてみましょう:
- この試験のために一生懸命勉強し、試験にどのような質問が出るかを知っているので、平均的には試験にあまり驚かないでしょう。
- 実際には勉強せず、どのタイプの質問が試験に出るのかわからないので、試験全体で驚くことが多いでしょう。
したがって、平均的な驚きが大きい場合は、情報があまりないシナリオと完璧に一致します。
技術的な観点から言えば、ピークの高い分布(例:ある値が他の値よりも起こりやすい分布)は、より拡散した分布よりもエントロピーが低くなります。すべてのイベントが同じ確率で起こるような一様分布がエントロピーが最も高い分布であると言うのはそのためです。
エントロピーと(相互)情報
ランダム変数によって記述されたシステムにおける平均驚きの尺度(つまり、エントロピー)を確立したので、エントロピーと情報の関連を作ることができます。
エントロピーはあるシステムについての無知の尺度であるため、その欠如は…情報を表します。この意味で、相互情報と呼ばれる尺度を作ることは非常に自然です:それは、システムについてのある情報を知るときに得られる情報を測定します。
この定義によると、確率変数Xの平均的な驚きを取って、別の確率変数Yの結果を知っていると考える。前者から後者を引けば、Yについて知っていることでシステムXからどれだけ無知を取り除いたかがわかる。
シリーな例に戻ってみましょう:テスト内でどのような質問がされるか分からないとしましょう。これがXです。今度は、あなたの友人が同じ教師から1週間前に同じ科目のテストを受けたとしましょう。彼は彼のテストがカバーしていたすべてを話します(これが別の確率変数Yであることが偶然にもわかります)。あなたが言えることは、あなたのテストの無知が減少したということです。つまり、あなたのテストXと友人のテストYは情報を共有しているということです。
図2では、変数XとYのエントロピーと情報の共有の関係を示すわかりやすいベン図があります。
しかし、複数の情報源がある場合はどうでしょうか?
ここまで、1つの特徴Xと1つの目標変数Yがある場合についてしか話していませんが、これは一般化されないことは明らかです。したがって、モデルX_1、X_2、…、X_nのn個の特徴のそれぞれが提供する情報の量を知りたい場合を想像してみてください(例えば、分類モデルのターゲット変数としての目的変数)。X_1およびYとの間で共有される相互情報を計算し、次にX_2とYとの間で共有される相互情報を計算するだけで十分だと言えるかもしれません。しかし、現実世界では、特徴は相互作用し、非自明な関係を作り出すことがあります。一貫性のあるフレームワークを持ちたい場合は、これらの相互作用を考慮に入れる必要があります。
2つの入力信号X_1とX_2がある場合、これら2つの特徴と目標変数Yの間の相互情報を数量化したいとします。つまり、I(Y; {X_1, X_2})を計算したいです。部分情報分解フレームワークでは、この情報を4つの非負成分に分割できます:
- Syn(Y; {X_1, X_2}):2つの特徴のシナジー。これは、2つの特徴単独で提供されたYに関する情報量です。
- Rdn(Y; {X_1, X_2}):2つの特徴の冗長性。これは、X_1またはX_2だけで説明できるYに関する情報を示します。
- Unq(Y; X_1)とUnq(Y; X_2):ユニーク情報。これは、X_1だけが説明できるYに関する情報(Unq(Y; X_1))またはX_2だけが説明できるYに関する情報(Unq(Y; X_2))を測定します。
注意すべきは、Unq(Y; X_1)とUnq(Y; X_2)のみが特徴間の相互作用がない場合に対応するということです。したがって、相互情報I(Y; {X_1, X_2})は次の四つの成分に分解できます:
I(Y; {X_1, X_2}) = Syn(Y; {X_1, X_2}) + Rdn(Y; {X_1, X_2}) + Unq(Y; X_1) + Unq(Y; X_2)
先ほどと同様に、これらの量の依存関係を要約したすばらしいベン図を描くことができます。
これらの用語のそれぞれは、情報のアトムと呼ばれます。非アトム情報は、分解できないアトムの部分に分解できます。
このフレームワーク(および部分情報を計算する方法を提案した)は、最初にWilliamsとBeer[1]によって提案されました。これらの量を計算することは容易ではなく、それ自体の記事を書くに値するものです。部分情報分解の測定方法は複数あり、すべてが同じプロセスに従います。測定方法は、さまざまな「情報」と呼ばれる量が起こることを期待する一連の特性を満たす測定を想定する。これらの測定は、強みと弱みを持っており、素晴らしいライブラリである「dit」にうまく実装されています。次のセクションでは、いくつかの例を示すために「dit」ライブラリを簡単に紹介し、使用します。
部分情報分解の例とditライブラリ
これらの概念を結び付けるために、いくつかの例を見てみましょう。情報理論の概念に関しては、ditライブラリが優れたツールです。これは、カスタマイズされた確率分布を作成し、それらに対して測定を行うリブです。このライブラリ内にはさまざまな機能があり、それらはGithubまたは公式のドキュメンテーションページで見つけることができます。
今後のすべての例について、2つの特徴X_1とX_2を考えることができ、いずれもバイナリであり、対象変数Yは特徴とのブール演算です。部分情報を測定するすべての形式は、WilliamsとBeer [1]によるものですが、他の著者によって提案された形式もditに実装されています。
ユニークな情報
この例では、対象変数YがANDゲートであるとしましょう。図4を参照してください。出力は常に特徴X_1と等しいため、特徴X_2は完全に関係ありません。
そのため、X_1とX_2がYに提供する情報はX_1に完全に集中しています。これまでに開発した形式では、Yに関する情報はX_1にユニークです。
ditライブラリでは、次のように情報の種類をエンコードします:
- {0:1}:X_1とX_2のシナジスティック情報
- {0}:X_1が提供するユニーク情報
- {1}:X_2が提供するユニーク情報
- {0}{1}:X_1とX_2が提供する冗長な情報
出力からわかるように、X_1が提供する部分情報(「pi」列)のみが存在することがわかります。
冗長な情報
次の例は、冗長な情報を示すためのものです。ここでは、X_1、X_2、およびYが図5に示すように等しいため、X_1およびX_2が提供するYに関する冗長な情報は最大です。
dit
を使用すると、コードは次のようになります:
import dit # ditライブラリをインポートfrom dit.pid import PID_WB # 使用するPIDメジャーをインポート# 冗長な確率分布を作成dist_redundant = dit.Distribution(["000", "111"], [1/2, 1/2])print(PID_WB(dist_redundant))"""出力: +--------+--------+--------+| I_min | I_r | pi |+--------+--------+--------+| {0:1} | 1.0000 | 0.0000 || {0} | 1.0000 | 0.0000 || {1} | 1.0000 | 0.0000 || {0}{1} | 1.0000 | 1.0000 |+--------+--------+--------+"""
見ての通り、X_1とX_2によって提供されるYに関する情報は冗長であり、つまり、それぞれの両方によって提供されるということです。
相乗効果のある情報
相乗効果のある情報の典型的な例はXORゲートです。XORゲートのダイアグラムは図6に示されています。
この分布によってX_1とX_2を両方知りたい場合にのみ、目的変数Yを知ることができることに注意してください。X_1とX_2なしでYを知ることはできません。X_1の各値に対してYの両方の値があります。X_2でも同様です。コードではdit
を使用します:
import dit # ditライブラリをインポートfrom dit.pid import PID_WB # 使用するPIDメジャーをインポート# XORゲートの確率分布を作成dist_syn = dit.Distribution(["000", "011", "101", "110"], [1/4]*4)print(dist_syn)"""出力:+--------+--------+--------+| I_min | I_r | pi |+--------+--------+--------+| {0:1} | 1.0000 | 1.0000 || {0} | 0.0000 | 0.0000 || {1} | 0.0000 | 0.0000 || {0}{1} | 0.0000 | 0.0000 |+--------+--------+--------+"""
予想通り、X_1とX_2が伝えるYに関する情報は{0:1}だけであり、これが相乗情報です。
最終コメントと要点
最後に、変数間の相互作用は、相互情報量のみが利用可能な場合には困難な課題をもたらすことがわかります。情報の複数の源からの情報(およびこれらの情報源間の相互作用)を測定するためのツールが必要です。これはPartial Information Decomposition(PID)フレームワークにおける理想的な研究テーマです。
通常、この分野の測定は錯綜し、いくつかの形式的論理を含んでいます。これはこのトピックに関する別の詳細な記事のために取っておくことができますが、今のところはこれらのツールが重要であるだけでなく、情報アプローチから自然に生じる必要性があると言うことで十分です。
参考文献
[1] P. L. Williams and R. D. Beer, Nonnegative decomposition of multivariate information, arXiv preprint arXiv:1004.2515, 2010
[2] Shujian Yu, et al., Understanding Convolutional Neural Networks with Information Theory: An Initial Exploration, arXiv preprint arXiv:1804.06537v5, 2020
[3] A. J. Gutknecht, M. Wibral and A. Makkeh, Bits and pieces: understanding information decomposition from part-whole relationships and formal logic, arXivプレプリントarXiv:2008.09535v2、2022年
[4] James, R. G.、Ellison、C. J.、Crutchfield、J. P.、 dit: a Python package for discrete information theory、The Journal of Open Source Software、2018年
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles