DAW悪戦苦闘記

DAWやMIDIを通じてちまちまとDTMを楽しむ記録+MIDI検定1級到達記

Courseraの機械学習入門講座雑感 (2)

前回記事の続き。今回は講義の中身に関して具体的な気づきなどを書いておこうと思う(ややマニアックです)。

daw-jones.hatenablog.com

講義内容に関して気になったところなど

Back Propagation

これが難解だという感想はよく見かけるのだが、要は計算がややこしいだけであって、基本的な考え方自体は割と単純だと思う。合成関数の偏微分が幾重にも入れ子になっている関係上数式の処理がやたらに煩雑なだけではなかろうか。

これは本講座ではきれいに整理された結果を簡潔明瞭に提示してくれているので、プログラミング課題ではその結果通りにコーディングすれば問題はなく、また実務レベルでは導出過程まで逐一なぞる必要はなかろう。結果の導出が気になる人は以下の資料などが参考なると思う:

Machine Learning Cheatsheet — ML Cheatsheet documentation

SVM

SVMの基本コンセプトそれ自体は大変わかりやすい解説がなされるが、その一方で kernel trick の説明はやや不十分に感じた。非線形性対応のための高次元写像というkernel関数の役目と援用理由についてちょっと説明不足で、一体何をやろうとしているのか趣旨がよくわからない、という印象を受ける。

ここは実務上それほど深く掘る必要はないとは思うが(通例使用するkernel関数は概ね決まり切っているので)、他の教科書をあたるか、またはネット上にわんさか転がっているチュートリアル動画や入門資料等を参照する必要がある。たとえば、以下のQuoraの資料などが参考になった:

What is the kernel trick?

PCM(主成分分析)

本講座では共分散行列から変数合成のためのウェイト・ベクトルを導出する方法が提示されており、これを特異値分解 (SVD; singular value decomposition) と呼んでいる。しかし他の教材では、共分散行列を経ずに元の特徴変数行列Xを直接分解して求める方法をSVDと呼称し、共分散行列のUV行列分解を固有値分解と呼ぶような例もある(こちら方が一般的であろうか)。ここは他書をあたるときにややもすれば混乱する可能性があると感じた。

あと、行列の添字とかタイポらしき混乱が少々あって、特徴変数行列Xの値を次元縮約して変換する数式の説明が若干わかりにくい。UV分解の結果、行列Uからk列抜き出してウエイト行列Wとして解釈すると X*W で新しい合成変数が m x k 行列として求まることがわかれば問題ないのだが。

なお、主成分分析が固有値問題に帰着することの証明・解説は割愛しているので、その辺をもう少し深掘りしたい人は別の資料をあたって理解する必要がある。個人的には以下の記事が参考になった:

blog.aidemy.net

異常値検知 (anomaly detection)

ここでは正規分布確率密度関数上の各一点をあたかも確率値のごとく解釈した使い方があり、ちょっと違和感を覚えたのだが実務的には問題ないということだろうか。本来確率は積分値で与える(定義される)はずなので、理論的に正当化できるのかどうか私にはわからず。この辺は一般的な統計仮説検定と分布の考え方や使い方が異なるように思う。

今後学習すべき領域(本コースでは足りないところ)

機械学習の基本理解と土台は本講座で十分過ぎるぐらい十分だと思う。ニューラルネットについてもいわゆる多層パーセプトロンまではカバーされるので、もっと高度なディープ・ラーニング手法を学習する出発点としてふさわしいレベルと内容である。

とは言うものの、一方で割とよく使われる方法・ツール等で割愛されたものも少なくない。これらは必要に応じて別の講座や教科書などで補足学習する必要があろうかと思う。

Pythonプログラミング

Octaveは研修やプロトタイピングならばともかくも、今日では実務で使われることはまずないようで、どういうパッケージを使うかも含めてPythonコーディングによる機械学習の実践演習が別途必要になってくる。

古典的な機械学習アルゴリズムやデータの前準備処理などについては scikit-learn が定番で、ディープ・ラーニングについては Keras を使用したプログラミングが標準的かと思う*1

Naive Bayes

ナイーブ・ベイズは非常に単純でひょっとしたら小中学生でも理解できるんじゃないかと思うぐらいだが(言い過ぎか)、テキスト解析ではいまだによく使われると聞いたことがある。

ベイズはさらに掘り下げるとベイズ統計学の広大な領域に踏み込むことになるが、データ・サイエンス一般では必須科目かもしれない。PyMC3 などのパッケージを使ったプログラミング講座があれば是非受講してみたいものである。

決定木 (Decision Tree)

特にその発展形でもあるアンサンブル学習の random forest は実務では頻繁に使われるようなので、実務家は勉強しておく必要はあろう。個人的にも非常に興味がある分野ではある。

ニューラルネットの発展とディープ・ラーニング

現在の花形であることは言わずもがな。音楽においても、MIDIデータのみならず音声・オーディオ解析でいろいろ応用の余地があるところでとても興味深い。

周知の通り、昨年夏に試用した Magenta の土台にもなっている。時系列データへの応用に適した RNN (Recurrent Neural Network) は Magenta でも使われており、音楽データの解析では盛んに使われているようである。

*1:バックエンドは Tensorflow とか CNTK などが代表的なものである。Theanoもバックエンド対象ではあるが、開発終了で命脈を断たれてしまったので今後の新規開発では依存しない方がよい。

Courseraの機械学習入門講座雑感 (1)

昨年夏に Magenta を試用するなどして機械学習を援用した楽曲制作の一端に触れる機会があったせいもあり、今後ますます音楽との接点が増えるであろう機械学習それ自体にも興味が湧いてきた。

daw-jones.hatenablog.com

もう少し掘り下げて勉強せねばと思いつつ、その後MIDI検定2級試験の準備などに時間を取られて遠ざかっていたが、機械学習入門のMOOCの中では最も定評のある Machine Learning by Andrew Ng (Coursera) の聴講を6月末より始め、ちょうどMIDI検定1級試験の本番を迎える直前頃に完走したので、ここで改めて振り返ってみることにしたい(ややマニアックな話です)。

ja.coursera.org

なお、本コースはさすが人気があるだけあって、受講体験記や感想記事の類をネット上で多数見かけるのだが(私もある程度参考にさせていただいた)、ここではなるべく他であまり指摘されていない点を中心に、屋上屋を架さぬよう簡潔にまとめようと思う。今後受講される方の参考になれば幸いである。

受講にあたっての前提知識について

数学

高校数学で十分との指摘はよく見かけるものの、私の感触では大学教養課程レベルの線型代数微積の素養はあった方が無難だと思った(特に線型代数)。偏微分と高次元行列・ベクトルの操作を扱うからである。高校数学といっても理数系でないと苦しいかもしれない。

これに加え、確率・統計学の基礎も一応はあった方がよい。少なくとも正規分布ぐらいは知っていた方が捗る。いずれも昔やったというレベルで問題ないと思う(私自身数学が得意というわけではなかったので)。しかしこの辺の土台がまったくないと、数式にアレルギー反応を起こしたり、プログラミング課題をクリアできない可能性が高まる。

プログラミング

Octaveは非常に簡便簡潔な言語なので、他の言語経験がなくともすぐに習得できると思うが、肝となる vectorization (行列演算化)に関しては R または Python (Numpy/Pandas) の使用経験があるとスムーズに移行できるはずである。

なお、このvectorizationは線型代数の理解と表裏一体であるから、ここで数学に拒否反応を示すとやはり前に進めなくなってしまう。

Octaveについて

学習言語としての適否

本コースは人気講座ではあるものの、プログラミング課題においてPython (+ Jupyter Notebook) ではなくOctaveMATLABを含む)を用いている点がしばしば批判と不満の対象になっている。

しかし、プログラミングの経験をほとんど問わない入門講座という位置づけを考えると、私個人はOctaveが結局のところベスト・フィットではないかと感じた。行列を多用した数式をそのままコードに落とし込んでサクッとプロトタイプを作り上げるには便利な言語環境だからだ。

インストール方法など

OctaveMacへのインストールに関しては、受講経験者のほとんどがHomebrewを使う方法を書いているようだが、実はOctave公式(?)サイトからIDE込みのバイナリー*1が提供されているので、私はそちらを強く推奨する。というのも、使用するMacの環境によってはHomebrewで入れようにもビルドに失敗して上手くインストールできない場合があるからである(私もなぜかそうだった)。

Octave for macOS - Octave

またOctaveの実行に際しては、ターミナルからではなくIDEを使った方がはるかに効率がよい。シンタックス・ハイライトをしてくれるエディター付きなので、コードの編集・修正も非常にスムーズである。ただし、現行バージョンでは Control + C による実行中断や、コピペなどのショートカット・キーが効かないという不具合がある。

ちょっと長くなったので、講義内容については稿を改めることにしたい。

*1:私が入れたのはSourceforgeからダウンロードできるv4.0.3のもの。

T7が無償開放へ (Tracktion)

Just a quick note だが、旧Tracktionシリーズの最終版にあたるT7が昨日より無償版として提供されるようになった模様である。

www.tracktion.com

合わせて現行主力製品であるWaveformへの乗り換えキャンペーンも実施中のようだが、Tracktion社としてはユーザを早期にWaveformへ移行させたい意図が透けて見える。

www.tracktion.com

T7はオーディオ編集の機能が拡充されて Studio One のPro版と遜色ないレベルに到達していると思われる。MIDI検定1級試験真っ最中の私はまだ試していないので、後日注目すべき点などがあれば試用レポートでも書いてみたいと思う。

明日よりMIDI検定1級試験の本番

いよいよ明日10日より第10回MIDI検定1級試験がスタートする。何を隠そう私も今回受験者の一人である。

1級は会場試験はなく自宅制作のみとなり、今回は8月20日が消印有効の提出期限となる。過年度課題曲演習を踏まえた私の経験では、概ね丸5日程度の制作時間を確保できればなんとか対応できると思われる。もっとも、ドラムまたはリズム・セクションの制作を伴わないクラシック風楽曲の場合は若干負担が軽くなる傾向がある。しかし、今回どのような楽曲で攻めてくるかは神のみぞ知る状況で、まったくのぶっつけ本番であることは言うまでもない。

当然ながら試験期間中は課題曲に関するコメントは差し控えるが、試験期間終了後に落ち着いたら受験体験記がてらに本年度課題曲を振り返ってみたいと思う。なんとか1回でパスしたいものだが...。

 

興味深かったMPC特集

ライムスター宇多丸師匠のTBSラジオ帯番組である「アフター6ジャンクション」で、先頃7月30日の放送回が非常に興味深く、私のようなDTM愛好家にとっては新たな知見の宝庫であった。

www.tbsradio.jp

AKAI MPC (MIDI Production Center / Music Production Controller)*1がヒップホップ業界に与えた影響やモデルごとの微妙な音質等の違いを特集したマニアックな回であったが、このようなロングセラーのハード機材によってMIDIがヒップホップに貢献している歴史的経緯に少々驚きを禁じ得なかった。ストリーミングで聴けるので是非。

AKAI Professional Keys & Pads

AKAI MPC SPECIAL – Let's make track together.

AKAI professional - Wikipedia

Akai MPC - Wikipedia

80年代に音楽業界を席巻した LinnDrum が製品デザインの礎になったという歴史も感慨深い。同社倒産後に Roger Linn 氏が AKAI に拾われてMPC製作の任に当たったとのこと。UIデザインの影には盲目である Stevie Wonder の影響もあったという。こういった紆余曲折の変遷は楽器業界の常で、Moog とか Sequential Circuits 社などの例に見られるに、イノベーターとなった創業会社は倒産か身売りで表舞台から去ったケースが少なくない。この点は日本の大手楽器メーカーによる攻勢の影響が大だが、なお皮肉なことにはAKAI社自体も経営危機に伴う身売りを何度か繰り返している。

本番組ではMPCサウンドのオーディオ解析により、特に根強い人気を誇る MPC3000 の魅力を探っている。

www.vintagesynth.com

ここで明らかにされるのは、MPC3000 の発音タイミングが前のめりではなくむしろ微妙に遅れて発する鳴りの特徴である。これが多くの音楽家が求めてやまない、正確さより 「(ズレではなく)ユレ、ゆらぎ」とマッチしている、ということらしい。ここはDAWでのMIDI打ち込みリズム制作においても、適度なヒューマナイズ加工編集が潜在的なノリの効果を生み出す可能性を示唆しているように思う。

音質面では、ビット深度が大きい後継モデルである MPC4000 との比較により、 MPC3000 の方が太い感じのサウンドを出す点がヒップホップ業界で好まれているという側面に焦点が当てられた。ややくすんだ、温かみがあるという表現もなされているが、これはDAW上のエフェクターだとサチュレーターを掛けるような効果が入っている、ということであろうか。

私が聴いた感じでも MPC4000 の方が高音の伸びが良い印象はあったのだが、プロの現場では高域の伸びが良いことが必ずしも優れた楽曲の条件ではない、という核心を突いていたように思う。言い換えれば、やはり低域重視が現代的な楽曲の条件であるようにも感じた次第である。

*1:簡潔に言えば、サンプラーとドラムマシンおよびMIDIシーケンサーを合体させたパフォーマンス機材。

便利なパターン編集とMIDIデータ (Studio One 4)

以下記事の続きで、Studio One 4 (Prime版) のもう一つのエディター新機能であるパターン・モードについて簡単に検証してみたい。

daw-jones.hatenablog.com

なお、本機能の概要については、例えば以下の解説動画がとても参考になるのでそちらを参照してもらうとして*1、個人的に重要と思われるポイントを以下に書き記す。

www.youtube.com

パターン・イベントの挿入

ショートカットのキー操作 Command + Shift + P (Macの場合)で挿入するやり方が簡単。

レーンの並び替え

上記動画でも解説されているように、パターン編集画面中の各レーン(各楽器パーツまたは音程に相当)は上下順を任意に並び替えることができる。したがって、たとえばドラム譜に合わせてレーンを並び替えると譜面との照合が容易になり、打ち込みミスの防止に役立つと思われる。

同一パターン中のバリエーション

同じパターン中に類似バリエーションを定義し、Dキー操作によるコピー先でバリエーションを切り替えることができる。リズムパターンの作成・編集・分類が整理されてかなり見通しよくなると思われる。

f:id:daw_jones:20180728192417p:plain

バリエーションの定義はパターンのインスペクターを開いて追加・削除できる。

f:id:daw_jones:20180728192557p:plain

パターンの複写

パターン・イベントをDキーで複写すると共有複写となる。シフト・キーを押下しなくてもDキー単独で共有複写モードになっている。

したがって、複写元・先パターンのどれか一つを編集すると、その変更は複写共有関係にあるすべてのパターンに波及する点は要注意である。

ユニークなRepeatとProbability

パターン・イベントでは通常の Velocity に加え、Repeat と Probability という非常にユニークなノート制御パラメータがある。これについては下記の解説動画が詳しい。使い方次第で自分が想像もしなかったオリジナルな効果を生み出す可能性を秘めていると思う。リズム系音色のみならず、シンセのコード音色にも適用すると面白い効果が出る。

www.youtube.com

MIDIデータの生成

私が確認したところ、ソングをSMF保存してもパターン・イベントの箇所はMIDIデータが作成されないので要注意である。

MIDIに変換したい場合、該当のパターン・イベントを選択し、Event > Merge Events を適用すると、MIDIイベントに変換される(その逆は無理です)。ショートカットの G キー一発でも変換可能である。ここは少々わかりにくいかもしれない。

*1:パターン・モードは3:40あたりから解説される。

クロマティック・サークル

たまたま以下の記事を読んだら、いわゆるクロマティック・サークル (chromatic circle) に初めて遭遇。私は今まで五度圏サークルしか知らなかったもので、単純だがこういう模式図が和声学習の一助になるとは些か驚きであった。

音を幾何的に見ると将来の可能性がわかる (Objective Subjectivism)

クロマティック・サークルに関してはWikipediaにも結構詳細な解説記事が上がっているので、そちらを参照してもらった方が理解が速いだろう。

Chromatic circle - Wikipedia

原理は非常に単純で、平均律の各12音を円周上に等間隔に配置しただけのことであるが、和音を構成する音程同士の距離が視覚的に明白になることで各和音の類似性または特異性を把握しやすい。

たとえば、3全音 (tritone) とか増5度和音などの特徴をよく認識できると思う。増5度和音(C augなど)は展開形でも構成音同士の距離が4半音で変化しない、といった事実も一目瞭然となる*1

なお、上記記事中で引用・紹介されていたクセジュ文庫の名著「和声の歴史 (文庫クセジュ 448)」は是非とも読んでおきたいものだが、版元では品切れ、Amazonでは中古本しか入手できないようだ。一度ジュンク堂など近隣の大型店舗を回って探してみようかと思う。

Q448 和声の歴史 - 白水社

追記 (2018-08-05)

上記のクセジュ文庫「和声の歴史」を大阪梅田の丸善ジュンク堂紀伊國屋書店で探してみたが、いずれも在庫なしの状態だった。都内大型書店ではどうか知らないがおそらく既に在庫切れと思われる。もともと初版が1969年の大変古い本なので想定はしていたが。ひょっとしたら大きな図書館には置いているかもしれない。Amazonで中古本を購入する手段は残されてはいるものの、こういう本こそ電子化してほしいものである。

*1:この展開形の話はMIDI検定2級1次試験でも出題される。