2023年10月2日月曜日

MIDIファイルを入力とした分析:マルコフ過程としてのエントロピー計算結果

 1.はじめに

 これまで記事:MIDIファイルを入力とした分析の準備(3):状態遷移の集計手法の検討と集計結果の公開MIDIファイルを入力とした分析の準備(4):状態遷移の集計結果の公開(続き)およびMIDIファイルを入力とした分析の準備(6):状態遷移の集計結果の公開(補遺その2)にて、状態遷移の集計方法の検討、検討内容に基づいた集計結果を公開を行い、更に本格的な分析の予備作業として、状態遷移パターンの多様性についての確認と簡単な分析を行った結果を記事:後期マーラーの「挑戦」?:MIDIファイルを入力とした分析:状態遷移パターンの多様性に注目した予備分析において報告したあと、集計した状態遷移パターンの出現確率についての分析結果をMIDIファイルを入力とした分析:状態遷移パターンの出現確率に注目した予備分析で報告しました。

 そこではまず、マルコフ過程としてのエントロピーの計算の前に、和音の出現確率(状態遷移パターンとしてみた場合には深さ=0に相当)、状態遷移パターンの出現確率のエントロピーを計算した後、マルコフ過程としてみた場合のエントロピーの計算を行ったのでしたが、その過程で気づいたこととして、以下の2点が挙げられます。

  • 分析対象の系列の抽出条件の問題。計算対象として、移置・転回を区別しない3和音以上の和音(ピッチクラスの集合)のパターン(例えば「長三和音形」)のみを状態とし、休止・単音・重音の拍はスキップし、同じ和音パターンの連続もスキップした系列を用いており、機能的には異なる和声として区別されるべきものを区別しておらず、通常、楽曲分析において楽典の知識を有する分析者が抽出する和声進行とはかなり異なったものを対象としていることになります。
  • 吸収的状態の問題。マルコフ過程のエントロピーは状態遷移マトリクスの各行の状態の確率分布のエントロピーをその状態の定常状態における発生確率で乗じたものの総和として定義されますが、吸収的状態を含む場合、定常状態を計算すると吸収的状態に確率1で収束し、他の全ての状態の確率は0になるため、結果としてエントロピーは0になってしまうため、作品の特徴を分析するための手段としては意味がなくなってしまいます。なお吸収的状態以外でも、例えば最後に最初の状態に戻り、その間に各状態が一度だけ生じるような系列も、状態遷移の仕方は一通りに固定されることになるので、やはりエントロピーは0になってしまいます。

後者については、無限の系列の一部が観測されたものとしてサンプルを扱うマルコフ過程の前提が、決定した有限の長さの系列を持ち、特にその最後の系列に特徴を持ったパターン(「カデンツ」)が出現することも珍しくない過去の或る特定の文化的伝統に属する音楽作品にそぐわないという見方も可能で、その限りでは寧ろ本質的な問題ですが、技術的には吸収的状態を取り除いてエントロピーを計算することが可能です。一方前者に対しては、既に状態遷移の集計結果を報告している、移置や転回を区別したパターンの系列を対象とすることが考えられます。

 そこで本稿では分析対象の系列として、MIDIファイルを入力とした分析の準備(4):状態遷移の集計結果の公開(続き)で報告したもののうち、以下の条件で抽出したものを用いて単純マルコフ過程として見た場合のエントロピーの計算結果を報告します。

  • 各拍頭(A)/単音・重音は対象外(cdnz3)/移置を区別・転回は長短三和音のみ区別(tonic)
  • 各拍頭(A)/単音・重音を含む(cdnz)/移置を区別・転回は長短三和音のみ区別(tonic)
 なお、本稿についての分析結果を報告・公開することを優先させ、結果についての考察は今後の課題とさせて頂きます。

2.分析条件

上記を踏まえ、以下のようにレイアウトした分析を行うことにしました。

対象とするデータ:上記の通り、各拍頭(A)/移置を区別・転回は長短三和音のみ区別(tonic)で、単音・重音を対象とするか否かについては両方の系列を集計対象としました。ところでパターンのコーディングの検討の際に述べたように、移置は相対的なものであり、例えば基準の位置が異なっても同じように五度上に移る場合には同じパターンとして判定されすべきですが、そうなると状態遷移の前のパターンは移置の情報を含まず、後のパターンが相対的な移動量を表現することになり、正方行列でなくてはならない状態遷移マトリクスが構成できません。今回、マルコフ過程としてのエントロピーを計算する対象とするにあたり、この問題については以下のように対処しました。 
 例として深さ1のケースを取り上げると、状態遷移パターンは既報の集計では以下のようになります。

(現在のパターン)→(次のパターン+現在基準の移置の情報)

状態遷移マトリクスは

(現在のパターン+前基準の移置の情報)×(次のパターン+現在基準の移置の情報)

のように構成されるべきですが、既述の通り、現在の和音パターンは移置の情報を含まないため、このままでは状態遷移マトリクスが構成できません。そこで一つ深い、深さ=2の集計結果を用いて、以下のようにパターンを集計し直します。

(前のパターン1)→(現在のパターン+前基準の移置の情報)→(次のパターン+現在基準の移置の情報)
(前のパターン2)→(現在のパターン+前基準の移置の情報)→ (次のパターン+現在基準の移置の情報)
(前のパターンn)→(現在のパターン+前基準の移置の情報)→ (次のパターン+現在基準の移置の情報)

⇒(現在のパターン+前基準の移置の情報)→(次のパターン+現在基準の移置の情報)

つまり前の和音パターンの如何に依らず、現在のパターンの前基準の移置の情報のみに注目し、同じ移置により同じ和音パターンに遷移する遷移パターンを同一のパターンとして集計することにより、

(現在の和音パターン+前基準の移置の情報)×(次の和音パターン+現在基準の移置の情報)

という状態遷移マトリクスを構成できる状態遷移パターンを集計し直し、これを入力としてエントロピーの計算を行いました。

分析手法:エントロピー計算は、前回同様R言語でライブラリ(entropy)とマルコフ過程用のライブラリ(markovchain)を用いて対数の底は2(log2)の場合について計算しました。マルコフ過程のエントロピーの計算で必要となる定常分布の計算にはmarokovchainライブラリのsteadyStates関数を用いました。steadyStatesには状態遷移マトリクスを渡す必要がありますが、これは上記の対象とするデータの項に記載した集計結果から事前に計算したものを用いました。(本稿末で公開しているデータに含めてあります。)状態遷移マトリクスが吸収的状態を含む場合、定常状態は吸収的状態に収束してしまい、確率は吸収的状態のみ1で他の状態は0となって、結果としてエントロピーは1となり、意味のある計算ができなくなりますが、この場合には、吸収的状態を取り除いてエントロピーの計算を行いました。また既述の通り、今回入力として用いた状態遷移パターンはこれまでに報告したものとは異なりますので、参考までに状態遷移パターンの出現頻度のエントロピー及びパターン数の系列長に対する比率についても改めて計算し直しています。出現頻度のエントロピーの計算方法は前回と同様で、状態遷移パターンの出現頻度の配列をentropy関数に渡すだけです。

分析対象のデータ:これまでの分析で大まかな傾向が掴めてきたことから、マーラーの作品との対比にフォーカスし、分析対象を以下の30曲に絞り込みました。(括弧内は以下に示す分析結果におけるラベルを表します。)集計・分析は基本的には曲単位で行いました。

    • マーラー:第1~10交響曲、大地の歌(m1~10, erde)
    • ブラームス:第1,2,3,4交響曲(jb1,2,3,4)
    • ブルックナー:第5,7,8,9交響曲,第9交響曲フィナーレ断片つき(ab5,7,8,9,9f)
    • フランク:交響的変奏曲、交響曲 (cfsymvar,  cfsym)
    • ラヴェル:左手のための協奏曲、ピアノ協奏曲ト調、優雅で感傷的な円舞曲、ダフニスとクロエ第2組曲 (mr_lpc, mr_pc, mr_vns, mr_dcl)
    • シベリウス:第2,7交響曲、タピオラ (js2,7, jsTapiola)
    • タクタキシヴィリ:ピアノ協奏曲第1番 (ot)  


3.分析結果

(1)マルコフ過程として見た場合のエントロピー

比較対照のために、単音・重音を除き移置・転回を区別しない和音パターン(pcl)の系列を単純マルコフ過程と看做した場合のエントロピー(markov3_pcl0)、二重マルコフ過程と看做した場合のエントロピーを(markov3_pcl1)を今回用いた以下の系列2種とともにグラフ化したものを以下に示します。

  • 単音・重音を除き移置・転回(長短三和音のみ)を区別(markov3_tonic)
  • 単音・重音を含も移置・転回(長短三和音のみ)を区別(markov_tonic)


(2)マルコフ過程としてのエントロピーとパターンの出現頻度のエントロピーの対比
  • 単音・重音を除き移置・転回(長短三和音のみ)を区別(markov3_tonic)

  • 単音・重音を含み移置・転回(長短三和音のみ)を区別(markov_tonic)

(参考1)パターンと系列長の比率
  • 単音・重音を除き移置・転回(長短三和音のみ)の区別なし(深さ0~5)

  • 単音・重音を除き移置・転回(長短三和音のみ)を区別(深さ0~4)

  • 単音・重音を含み移置・転回(長短三和音のみ)を区別(深さ0~4)


(参考2)各系列のパターンと系列長の比率の深さ別比較(深さ0~4)





[付録] 公開データの内容
和音状態遷移_マルコフ過程_エントロピー.zip には以下のファイルが含まれます。

(A)入力データ

サブフォルダ cdnz_tonic_transition
  • *_A_cdnz_tonic.csv:各拍頭(A)/単音・重音を含む(cdnz)/移置・転回(長短三和音のみ)を区別する(tonic)条件の和音パターン系列を単純マルコフ過程として見た場合の状態遷移マトリクス
サブフォルダ cdnz3_tonic_transition 
  • *_A_cdnz3_tonic.csv:各拍頭(A)/単音・重音を含まず(cdnz3)/移置・転回(長短三和音のみ)を区別する(tonic)条件の和音パターン系列を単純マルコフ過程として見た場合の状態遷移マトリクス
サブフォルダ cdnz_tonic_frq
  • *_A_frq_tonic.csv:各拍頭(A)/単音・重音を含む(cdnz)/移置・転回(長短三和音のみ)を区別する(tonic)条件の和音パターン系列に出現する和音パターンの出現頻度の集計結果
サブフォルダ cdnz3_tonic_frq
  • *_A_frq3_tonic.csv:各拍頭(A)/単音・重音を含まず(cdnz3)/移置・転回(長短三和音のみ)を区別する(tonic)条件の和音パターン系列に出現する和音パターンの出現頻度の集計結果
サブフォルダ pcls_transition2
  • *_A_cdnz3_pcl2.csv:各拍頭(A)/単音・重音を含まず(cdnz3/移置・転回を区別しない(pcl)条件の和音パターン系列を二重マルコフ過程として見た場合の状態遷移マトリクス
(B)出力データ

サブフォルダ entropy
  • entropy_tonic.xlsx:マルコフ過程として見た場合の状態遷移マトリクスに基づくエントロピー計算結果
  • markov_entropy.jpg:マルコフ過程として見た場合のエントロピーの比較グラフ
    • 各拍頭(A)//単音・重音を含まず(cdnz3/移置・転回を区別しない(pcl)条件の単純マルコフ過程としてのエントロピーと二重マルコフ過程としてのエントロピー
    • 各拍頭(A)/単音・重音を含む(cdnz)/移置・転回(長短三和音のみ)を区別する(tonic)条件の和音パターン系列について単純マルコフ過程としてのエントロピー
    • 各拍頭(A)/単音・重音を含まず(cdnz)/移置・転回(長短三和音のみ)を区別する(tonic)条件の和音パターン系列について単純マルコフ過程としてのエントロピー
  • pattern_entropy.jpg:各拍頭(A)/単音・重音を含む(cdnz)/移置・転回(長短三和音のみ)を区別する(tonic)条件の和音パターン系列について単純マルコフ過程として見た場合と状態遷移パターン(深さ0~4)を比較したグラフ
  • pattern_entropy3.jpg:各拍頭(A)/単音・重音を含まず(cdnz3)/移置・転回(長短三和音のみ)を区別する(tonic)条件の和音パターン系列について単純マルコフ過程として見た場合と状態遷移パターン(深さ0~4)を比較したグラフ

サブフォルダ ratio
  • ratio_tonic.xlsx:和音パターンの出現頻度の集計結果に基づくパターンと系列長の比率の集計結果
  • pattern_ratio_pcl.jpg:各拍頭(A)/単音・重音を含まず(cdnz3/移置・転回を区別しない(pcl)条件の和音パターンと系列長の比率(深さ0~5)
  • pattern_ratio_tonic.jpg:各拍頭(A)/単音・重音を含む(cdnz)/移置・転回(長短三和音のみ)を区別する(tonic)条件の和音パターンと系列長の比率(深さ0~4)
  • pattern_ratio_tonic3.jpg:各拍頭(A)/単音・重音を含まず(cdnz3)/移置・転回(長短三和音のみ)を区別する(tonic)条件の和音パターンと系列長の比率(深さ0~4)
  • pattern_ratio[0-5].jpg:各条件の和音パターンと系列長の比率を深さ別に比較したグラフ
(2023.10.2公開)

[ご利用にあたっての注意] 公開するデータは自由に利用頂いて構いません。あくまでも実験的な試みを公開するものであり、作成者は結果の正しさは保証しません。このデータを用いることによって発生する如何なるトラブルに対しても、作成者は責任を負いません。入力として利用させて頂いたMIDIファイルに起因する間違い、分析プログラムの不具合に起因する間違いなど、各種の間違いが含まれる可能性があることをご了承の上、ご利用ください。


0 件のコメント:

コメントを投稿