深層学習

機械学習とモデル

基本的にいつも最新の領域の隅の方で好き勝手やってるスタイルが定着してきた。

“Deep Neural Network”と”Model”

もう今さら統計解析と機械学習を比較することへの興味は失せているけど、その一方でネットワークのアーキテクチャ(構造)を「モデル」と表記することには未だに抵抗がある。確かにそれはグラフィカルモデルという意味ではモデルなのだけれど、「変数間の関係性の記述」としてのモデルと考えるには隠れ層は少々暴力的すぎる。隠れ層やそこに存在するノードはあくまで表層同士を結合させるための変換器であり、隠れ層がどういう構造になっているかは精度を高めるという以外には極論どうでもいい。そういう、構造の変化が(工学的に興味を唆るという以外に)意味を持たないものにモデルという名をつけることに抵抗を禁じ得ないのだろうと思う。まあそれを言い出すと統計の論文でたまに”training data”とか出てくるのも嫌なんだけど。

僕は一昔前には常々「将来的にはClickstreamデータをそのままニューラルネットワークに食わせて行動予測したい」と言っていたが、そこまでいかないものの変な論文ができた。変なので学内に出す。

以下に最近の興味を列挙しておく。普段はまだ出していない論文のテーマに関わることは書かないようにしているんだけど、やりたい研究のためにこの仕事をしているんだということを忘れないためにも今回は書き残しておく。

・データの要約による情報の毀損が学習結果に与える影響

最近あまりにも様々なニューラルネットワークのアーキテクチャを勉強していたせいか、代表値を用いたデータの要約というところにまで懐疑的になってきてしまった(たとえばRFMは時系列的な次元圧縮だし、要約統計量はうまく使わないと横幅を潰す)。これは結局のところ、生データ(もしくはなるべく生データに近い、”軽い要約”しか行われていないデータ)からの特徴抽出と、既に人力で与えられたpredeterminedな特徴量ベクトルからの特徴選択のバランスの問題となる。backpropagationが画像認識における人力の特徴生成というタスクを破壊したのと同様に、行動ログデータからの特徴量の生成も生データを直接食わせてネットワーク側で特徴抽出させた方が効率が良くなる時代は確実にやって来る。近年の複雑なネットワークの多くが(当たり前だけど)エンコーダー デコーダー構造になっていることからもそれは言える。もちろん「説明可能性や意思決定に寄与するデータ分析」という観点ではまた違うんだけど。

ちなみに情報量という言葉は統計学においては全く異なる意味合いを持つのであまり使うべきではなく、どちらかというと情報理論における情報損失(information loss)などの言葉を使う方がまだ妥当な表現になるとは思う。

・ネットワークの分岐

ネットワークの分岐については、最近本当に意味もなく(それこそ未だにやってみた的なノリで)分岐させるものが(特にQiitaなんかに)多い。しかしニューラルネットワークの分岐は調整すべきパラメータの数を増やす上にブラックボックス性を高めることにも直結するので、構造としての役割(=意味合い)を考えずにやるべきではないと思う。複雑に見えるbidirectional LSTMやTransformerのアーキテクチャーですらちゃんと内部の各パートには意味を持たせている。

・マルチモーダル

お前まだマルチモーダル(multimodal)やってんのかって思われるかもしれないけどまだやっている。最近はマルチモーダルと呼ぶ人は減ったけど。

少なくともmultiple outputs系は(最適化の方法に依存はするものの)かなり簡単に実装できるようになったし、multiple inputsもバッチの送り方と隠れ層上のレイヤーの結合部分までの設計さえちゃんとできればそれなりに複雑なネットワークも組めるようになってきている。

まあそういう世の中だし、せっかく色々とデータもあるのでそういうのをこねくり回してやってみたいことがあるという話。