機械学習ぼっち論文読み

一人ぼっちで論文の読み会をするブログ

論文読んだ記録の記録 1

最近,Tumblrで自分が読んだ論文の記録を付けています https://aokn-kytjp.tumblr.com/

それなりに良かったか悪かった論文をピックアップして(暇な時に)記録していこうと思います

https://aokn-kytjp.tumblr.com/post/168710527072/he-xiangnan-et-al-neural-collaborative

行列分解とNNの出力を並べてベクトルにしてもう一層NNくっつけるみたいな感じのようです.なんか今日見たツイート

と根本は同じっぽく,流行ってる(流行ってた)んですかね.くっつけただけでは?という気もしなくもないですが,行列分解とNNで違う特徴をcaptureできるのでくっつけると良いそうです.とにかくくっつけると良い.どんどんくっつけていきましょう.

https://aokn-kytjp.tumblr.com/post/168678092462/chen-huang-et-cnns-are-globally-optimal-given

これは主張が強い割に言ってることショボい感じがあって少しイラッとした論文でした.巧妙に答えを与えていってる感じがある.論文の書き方は見習わないといけない・・・.

https://aokn-kytjp.tumblr.com/post/168634535127/rene-vidal-et-mathematics-of-deep-learning

これはTwitterで回ってきて読みました.サーベイ論文です.読み物としては面白かったですが,この界隈に詳しいっぽいアメリカ人っぽい人に割と辛辣なコメントされてました.話題が古いらしい.学習理論とか必要ないので(証明とかも無いですが)1年ぐらい前までやられてた研究を俯瞰するには良さそう.この論文のセカンドオーサーのRene Vidal先生?はCVPR2017にニューラルネットのGlobal optimalityについての論文を出してます:

https://aokn-kytjp.tumblr.com/post/168697192577/haeffele-benjamin-d-and-rené-vidal-global

個人的にはこっちのほうが面白かった.さっき紹介したarXivでのサーベイ論文の文献30番です.証明ちゃんと読んでないけど,いくつかの仮定の下で局所最適解が大域最適解であることをバシッと証明したっぽいので重要な気がする.ただ,こんなに簡単に議論できるのかが未だに信じられない.正しいにせよ間違ってるにせよ,重要な論文であると認識してる人はそれなりにいるっぽくて,ググったら日本人のslideshareとかも出てくるんで読んでみると良いかもしれません.

https://aokn-kytjp.tumblr.com/post/168536597757/jaderberg-max-et-al-decoupled-neural

これはNNの学習の論文です.NNの学習にNNを使うっぽく,AIがAIを産んだとかなんとかかっこいいこと言ってる人を最近どっかで見た気がする.これのことを言ってたんだろうか? AIはAIを産んでません.これはarXivで2016年に出てたやつですが,ICML2017に出るまで時間あったっぽくてそれの理論もICML2017に出てました

https://aokn-kytjp.tumblr.com/post/168603786262/czarnecki-wojciech-marian-et-al-understanding
やっぱりDeepMindすごいですね.

ニューラルネットの算数: 第1回

最近,というか数年前からニューラルネットがアツいです.世界史はよく知りませんが,第3次ブームだそうです.きょうびニューラルネットを無視して線形で何かをやろうとすると,すぐ非線形がどうとかディープとの比較がどうとか言われてボコボコにされます.実際影響力はすごくて,ひたすら分散分析を繰り返すニッチな統計家にでもならなければ流れを無視することはもう無理です.

実際のところ自分は学部の時の輪読でMLPを勉強した経験だけでニューラルネット,ひいてはDLがわかった(ことになっている)ニワカで,このままだと間違いなく破滅するので,最近,ニューラルネットに関する算数をお勉強しています.雑にまとめていきつつ皆さんにコメントをいただければと思っております.

なお,以下では,変数のboldたとえば\boldsymbol xはベクトルを,関数のbold\boldsymbol fはベクトルの各要素に関数を適用したベクトル値関数を意味します.

雑な導入ですが,まず,線形モデルというものがあります.何かの入力\boldsymbol x \in \mathbb{R}^pとパラメータ \boldsymbol \theta \in \boldsymbol \Thetaがあったとき,

(線形モデル)  f(\boldsymbol x;\boldsymbol \theta):=\boldsymbol \theta_1 \boldsymbol x + \theta_1' \in \mathbb{R}

となるようなモデルです.実際にはこれは\boldsymbol xに関して線形変換ではなくアフィン変換ですが,入力値を \tilde{\boldsymbol x}:=(\boldsymbol x^{\top},1)^{\top}とかすれば線形になるので気持ちは線形です.納得がいかなければ切片は無視しましょう.

線形モデルは線形回帰とかいろいろな問題に使われますし,理論も簡単なので理論屋の話に頻出しますが,モデルの表現能力が低いことがよく指摘されます.自分はとにかく単細胞でだいたいどんな理論でもすんなり計算できる線形モデルが大好きですが,今どきは非線形化しないとあんまり許してもらえません.非線形化にもいろいろあって,かつては(いまも)カーネル化が猛威を振るってましたが,最近はやっぱり

(ニューラルネット)  f(\boldsymbol x;\boldsymbol \theta):=\sigma(\boldsymbol \theta_3 \boldsymbol \sigma( \boldsymbol \theta_2 \boldsymbol \sigma(\boldsymbol \theta_1 \boldsymbol x + \boldsymbol \theta_1') + \boldsymbol \theta_2' )+\theta_3') \in \mathbb{R}

 が使われます.\sigma()の中身を「層」と言って,上の関数は3層のニューラルネットワーク(NN)と呼ばれます.ニューラルネットの層をたくさんにしたものはDeep NN (DNN)とか呼ばれています.どれくらいならディープなのかは意見の分かれるところで,うかつなことは言えません.

 \sigma(x)は活性化関数と呼ばれるもので, \sigmaには例えばシグモイド関数 (1+\exp(-x))^{-1}とか \tanh(x)とかが使われます.最近はRectified Linear Unit (ReLU)  \max\{0,x\}がよくつかわれるそうです.Weaky ReLU?とか亜種もあったらしいですが意味なかったので最近は消えました(と聞きました). \sigma(x)=xつまり恒等関数を活性化に使うとNNは線形モデルに縮退します.なので,NNは線形モデルを非線形に拡張したモデルと言えます*1

 ニューラルネット(NN)の何が凄いのかというと,真っ先に紹介しなければならないのはCybenkoの1989年の論文*2です.彼(彼女?)は若干関数解析チックな感じの技法を使って「2層のNNはパラメータ数を無限に増やせば任意の連続関数を近似できる」*3ということを証明し,NNのは最強のモデルであることを証明しました.

このあたりの時代にはなんか怪しい証明が散見されたらしく,Kolmogorovの表現定理を使ってNNの表現力の説明をしようとした人がいたり,それに対してブチ切れている人*4もいたそうです.昔話を現代の視点から見るのは面白いですね.

閑話休題,NNは最強のモデルだ!!!ということでみんなNNを使いましょう,という感じになったんですが,実際にやってみるとモデルが複雑すぎるしパラメータの推定がうまくいってるのかもよく分からないみたいな問題が生じました.このあたりはいまだ研究されまくっている超ホットトピックで,様々な理論が作られています.この件については次回以降書いていきたいと思っています.

表現定理はまぁ凄い定理なんですが,ちゃんと読んでみると実は「 \sigma(x)有界関数であるとする」という仮定がついています.先ほど紹介しましたが,最近は活性化関数にReLU (x):=\max\{0,x\}がよくつかわれていて,NNを勉強する皆さんは一度は「ReLUはどう見ても有界じゃない」という点が気になったことがあるかと思うんですが,そのあたりの表現定理も最近いろいろ研究されているようです.最近読んだ論文には,「分子と分母が多項式関数で構成された分数関数はReLUで任意の精度で近似できる」ということが書いてありました.宣伝をかねて自分のTumblrの記録を張っておきます.

https://aokn-kytjp.tumblr.com/post/168355970402/telgarsky-matus-neural-networks-and-rational

現状では分数関数までの表現定理が作れたっぽいですが,連続関数までは拡張できてないっぽいですね.なので,ReLUネットワークを使う際は「任意の関数を近似できる!」という強い言葉を使わずちゃんと「任意の分数関数を近似できる」と言いましょう.(次回に続く)

 

追記(12/20): 任意の連続関数は多項式関数で近似できるので,素子数を無限大にしていいならReLUでも任意の連続関数を任意の精度で近似できますね・・・.謹んでお詫びします.

 

*1:数学系の人はとにかく一般化するのが大好きなので

*2:Cybenko, George. "Approximation by superpositions of a sigmoidal function." Mathematics of Control, Signals, and Systems (MCSS) 2.4 (1989): 303-314.

*3:正しいステートメントは論文を読んでください.

*4:Girosi, Federico, and Tomaso Poggio. “Representation properties of networks: Kolmogorov’s theorem is irrelevant.” Neural Computation 1.4 (1989): 465-469.