人工知能とか犬とか

人工知能と犬に興味があります。しょぼしょぼ更新してゆきます。

2019年11月の機械学習関連記事まとめ

2019年11月にはてブをつけた記事に関する振り返りです。

ICCV2019関連

10月末に、韓国ソウルにてICCV2019が行われました。 ICCVは、CV系の国際学会で、CVPRとかECCVなどと並んで世界トップクラスの研究が集まる学会です。

ICCV 2019 open access

そのICCVの論文を集めたページがこのページです。 ある程度オープンな国際学会では、こういう論文一覧ページが公開されるので、毎回楽しみにしています。

openaccess.thecvf.com

もっとも、論文の数が多すぎて、タイトルを一通り見るというのだけでも一苦労です。 自分の場合は、興味のあるキーワードがタイトルに含まれているものに絞ったり、Best Paperとして選出された論文に絞ったりしたうえで、abstractを読んで更に絞る、という手順で読むものを決めることにしています。

tamarott/SinGAN

ICCV2019でBest Paperに選ばれた論文の公式実装がgithubで公開されています。 単一の画像から生成モデルを作成するという手法で、様々なアプリケーションに使える、という非常に面白い論文でした。 このような形ですぐに実行できる形で公開してくれるというのは、本当にありがたいことです。

github.com

ICCV 2019 Tutorial: Everything You Need to Know to Reproduce SOTA Deep Learning Models

論文だけでなく、ワークショップやチュートリアルも、学会の見どころです。 このチュートリアルでは、SOTAの深層学習モデルのような、大規模な訓練が必要なときに、どのようにやれば良いのか、というノウハウが学べるようです。

iccv19.mxnet.io

私自身は、長くてもシングルGPUで4,5日程度訓練する程度までしかやったことがないので、こういうものをちゃんと読んで、もっと大規模な訓練もできるようになりたいなあ、と思っています。

素敵なジョークプログラム

今月印象に残ったジョークプログラムというか、ジョークプロジェクトを2つ挙げておきます。

Booksby.ai

AIによる、AIのための本屋さん、というジョークサイト。

booksby.ai

すべての本がAIによって生成され、すべてのレビューがAIによって書かれているという笑えるサイトです。 レビュアーの顔写真も生成された画像を使っています。 これらの本はamazon.comでペーパーバックとして実際に買うことすらできるようになっています。

裏でどういう手法やデータを使っているのかは、作者のブログで公開されています。

GitHub - gahjelle/pythonji: 🐍 - Write Python with Emojis

Pythonでは、スクリプト中でemojiを使うことができない、ということをネタにしたジョークライブラリです。

github.com

例えば、以下のようなかわいいコーディングが可能になります。

import pandas as 🐼

中身はどうなっているのかな、と確認してみると、emoji部分を適当な文字列に置き換えてcompile, execしているという感じで、まあそうだろうなという印象です。 このリポジトリ自体はジョークですが、READMEに記載してあるとおり、Pythonunicode対応が不足しているというのは案外重要な指摘なのかなとも思います。

以下のような日本語によるコーディングは可能なわけですから、emojiも使えるようになるべきではないか、という気もします。

import pandas as パンダ

その他の気になった記事

Baidu製DeepLearningフレームワーク:Paddle

github.com

Baiduが発表した、新しいDeepLearningのフレームワークです。 今更新しいDeepLearningのフレームワーク? という印象を最初は持ったのですが、公式のドキュメントがガッツリ中国語になっていて、国内の開発者たちがコミュニティを作りやすいフレームワークを用意したんだな、と理解しました。

機械学習の標準パフォーマンス計測フレームワーク:MLPerf

mlperf.org

前からあったようなのですが、機械学習のtrainingやinferenceのパフォーマンスを計測する標準のフレームワークのようです。 定期的に報告書が出されているようなので、毎回確認したいところです。

多言語QAデータセット:MLQA

github.com

Facebook AI Researchは、MLQAという本文抽出型の質問応答タスク用データセットを公開し、論文も公開しました。面白いのは、Cross Lingualを表明していることで、いくつかの言語に関するパラレルな質問応答のデータセットになっているという点です。日本語の質問応答システムを作るために、日本語の質問応答データセットを用意せずに、英語のデータセットを活用してモデルを訓練したい、といった課題を解決するための、ベンチマークとして使われることを想定しているようです。

Pyroが1.0になった

github.com

PyTorchベースの確率的プログラミングのライブラリPyroが1.0になりました。 以前PyMCなどのライブラリは使ったことがあって、非常に使いやすかったのですが、CPUでの計算を行っていたのでそこそこ複雑なベイズモデルを作ろうとするとなかなか結果が出るのに時間がかかっていました。 Pyro自体も前々から存在は知っていましたが、そもそもベイズモデルを構築する機会が無くて、なかなか試してみる機会を設けられませんでした。いい機会なので、今度触ってみたいと思います。

アンカーフリーの物体検出手法:RepPoints

arxiv.org

物体検出の新しい手法RepPointsがMicrosoft Researchから発表されていたようです。Ng先生のThe Batchで知りました。 物体検出の手法といえば、事前に定義したアンカーにGroundTruthのバウンディングボックスを関連付けるという手法がメインなわけですが、この手法は、そのようなアンカーを使用しない手法なのだそうです。ざっくりと、クラスラベルに特徴的な見た目のfeatureを学習し、その領域(を代表する点)を囲むバウンディングボックスを生成することで検出結果にするという手法だと理解しているのですが、詳細はまだ確認できていないので、今月読んでみようと思っています。

pandasのバックエンドを高速化する:modin

github.com

pandasのDataframeの高速化のために、通常のpandasとは異なるバックエンドとしてRayやDaskを使用するというmodinというフレームワークの存在を知りました。 ドキュメントを見ると、Rayをバックエンドとする際の解説は詳しめですが、Daskをバックエンドとする際の解説はまだありません。最終的には、pandas風のAPIだけではなく、sqlite風のAPIも扱えるようにすることを目指しているみたいです。

新しい時系列データライブラリ:adtk

github.com

新しい時系列データの異常検知ライブラリが公開されていました。 ドキュメントが充実しており、これを読むだけでも時系列異常検知についてある程度理解ができるようになりそうです。Seasonalityがある場合や、Multivariateの場合などにも対応しつつ、独自にカスタムした異常検知関数も設定できるなど、一通りの機能が揃っているみたいです。

Facebook AI Researchの強化学習ライブラリ

github.com

FAIR製で、内部でも使用されているという強化学習と(Contextual)Banditアルゴリズムのためのライブラリです。 基礎的な手法や前処理などが予め用意されているみたいです。また、プラットフォームとしての機能も入っているようです。

githubの方のドキュメントはただの手順書で、どういう思想のライブラリなのか今ひとつ把握できませんでした。ホワイトペーパーもあるものの図などが無くてちょっと近寄りがたい雰囲気です。 公式ブログの記事が一番どのように使えば良いのかを説明してくれているような気がします。プラットフォームとしては、オンラインで教師データを収集しつつ、オフラインで訓練したモデルを適宜オンラインで使用するモデルとしてデプロイするというワークフローを比較的簡単に組める、ということなのでしょうか。これって、強化学習に限った話ではないと思っているので、どこまで汎用的に使えるのか、そもそも使いやすいのかなどを確認してみたいと思います。

今回はこのへんで。