こんにちはtatsyです。非常に長くなったNormalizing Flow入門も今回が最終回です。 今回はNeurIPS 2018でベストペーパーを獲得した論文であるNeural Ordinary Differential Equations (Neural ODE)[1]と、それを利用したNormalizing Flowの位置手法であるFree-form Jacobian Of Reversible Dynamics (FFJORD)[2]についてご紹介したいと思います。 Neural Ordinary Differential Equation Neural ODEはその名前にもある通り、ニューラルネットワーク ...
こんにちはtatsyです。Normalizing Flow入門(?)の第6回です。 今回はNormalizing Flowの中でも逆関数が計算可能なニューラルネットワークのレイヤーを使うInvertible Residual Network[1]と、その発展系であるResidual Flow[2]について見ていきたいと思います。 個人的に、この論文は論理の運び方に無駄がなく、学部生レベル+αくらいの線形代数の知識があれば全体 ...
こんにちはtatsyです。Normalizing Flow入門の第5回です。だんだん、入門なのかどうか分からなくなってきました。 今回は、Bijective Couplingの考え方を改良したAutoregressive Flowについてご紹介したいと思います。 今回の記事の中で紹介する2つの手法、Inverse Autoregressive Flow (IAF)[1]とMasked Autoregressive Flow (MAF)[2]は考え方はほとんど同じであるにも関わらず、 ...
こんにちはtatsyです。Normalizing Flow入門の第4回です。 今回は前回紹介したBijective Couplingに基づく手法でありながらも、いくつかの工夫により表現力を向上させたGlow[1]についてご紹介したいと思います。 Glow 今回紹介するGlowはReal NVPをベースにしており、スケーリングと平行移動を組み合わせた変数変換 (Affine Coupling)に加えてActnormとInvertib ...
こんにちはtatsyです。Normalizing Flow入門の第3回です。 今回はNormalizing Flowの代表格であるReal NVP[1]などで使われており、その表現力を上げる上で重要なアイディアの一つであるBijective Couplingについてご紹介したいと思います。 ニューラルネットのヤコビアン 前回の記事では、Planar Flowを例にとって、最尤推定によって正規分布を目的の確率分布に ...
こんにちはtatsyです。今回も前回に引き続きNormalizing Flowの技術について紹介します。 前回はNormalizing Flowの応用例の一つである変分推論を取り上げて、Normalizing Flowがどのように応用しうるのかについて紹介しました。 今回はこのような応用で用いるためにNormalizing Flowが満たすべき条件について議論し、最も基礎的なNormalizing Flowの一 ...
こんにちはtatsyです。今回は最近興味をもっているNormalizing Flowの技術について紹介したいと思います。 Normalizing Flowという言葉はRezendeらによって2015年に発表された以下の論文で一般的に使われるようになった言葉です。 Rezende et al. 2015, “Variational Inference with Normalizing Flows”, ICLR 2015. [arXiv] この論文のタイトルにある通り、Normalizing Flowという技術はVariational Inference、すなわち変分推論の技術の一 ...
こんにちはtatsyです。 私はDeep Learningのフレームワークは主にTensorFlowを使っているのですが、今回GoogLeNetのInception-v3というモデルをImageNet以外のデータで学習させた時に少しハマったので、解決策を共有しておきます。 ここで有名モデルと言っているのはAlexNetやVGG, GoogLeNet, ResNetといったILSVRCという画像認識コンテストで良い成績を獲得し ...
2022年1月に加筆を行って記事を書き直しました! こんにちはtatsyです。 畳みこみニューラルネットを0から実装する記事の第2回です。前回の第1回ではMNISTから画像とラベルのデータを読み込みました。第1回の記事のご確認は以下のリンクからお願いします。 畳みこみニューラルネットを0から実装する (第1回) 第2回の記事の内容 第2回となる今回はシグモイド関数を使った通常のニューラルネットを対象に、学習パ ...
2022年1月に加筆を行って記事を書き直しました! こんにちはtatsyです。 今、いろいろな分野でディープ・ラーニング(Deep Learning)が大流行しています。 最近ではディープ・ラーニングを使うだけなら、Theanoであったり、Caffeであったりといったライブラリなどが充実しており、0からこれを実装する必要性は薄いです (2015年当時、2022年にはどちらも使われておらず、TensorFlo ...