えんじにあのじゆうちょう

勉強したことを中心にアウトプットしていきます。

Tensorflow Probabilityを使ってガウス過程を体感してみた

はじめに

最近は確率統計が面白いなぁと思っているのですが、まだまだ素人で理解できないこともとても多いのですが、Gaussian Processのいい記事を読みまして、なんとなく雰囲気だけ掴めた気になったので、とりあえず一回自分で動かしてみるか、という感じで試したものを書いておきます。
はっきり言って私が説明できるレベルではないので、雰囲気ブログになることをご了承ください。

やってみた

とりあえず、前々から気になっていたTensorflow Probabilityを使ってやってみることにしました。

TensorflowでGaussianProcessを扱うにはGPflowなんていうのもあるみたいです。

この手のライブラリはあまり詳しくないので、正直良し悪しはわかりません。

以下公式ドキュメントにあるGaussianProcessRegressionのデモを以下の点いじって「回帰の自信度合い」がわかるように実行してみようと思います。

ちなみに実行環境ですが、僕はJupyterの環境はDockerコンテナで実行することが気に入っています。理由は前回記載の通り。

ただし、今回はjupyter/tensorflow-notebookを使っています。


gisteb5435e81fadc2ce9c0bc5a8912d2757

最後のグラフ描画だけスクリーンショットを抜粋します。

f:id:marufeuillex:20200315055436p:plain

データのあるところはサンプルも収束していて、データのないところはぼやっと「たぶんこんな感じじゃないの、しらんけど」という感じの自信のない感じになっていることがよくわかります。

まとめ

今回はあっさりとガウス過程回帰を試してみる”だけ”やってみました。
現実のデータに対してもこのようにガウス過程を適用することで、どの予測をどの程度信用できるか(モデルそのものというより区間的に)がわかると思うので、判断のときにとても役立ちそうです。
自分の知識だとまだまだ解説しきれないので、そういうのを解説できるようになるレベルを目指したいと思いながらがんばります。

参考

参考にしたのはこちらの記事です。なんとなくで最近かじっていたガウス過程の利点がとてもわかりやすく、自分でもやってみようという気持ちになりました。
qiita.com