人工知能とか犬とか

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

【私的まとめ】2019年12月の機械学習関連記事

2019年も残すところあと一日、といったタイミングで、今月面白かった記事をまとめておきます。

2019年面白かった論文リスト@Reddit

毎年この時期になると、2019年面白かった論文に関するスレッドがRedditで挙がります。 基本的に論文の調査は各国際学会の掲載ページで行うことが多いのですが、 普段見過ごしているジャンルの論文にも触れることができるので、毎年このリストを見るのが楽しだったりします。

www.reddit.com

Weight Agnostic Neural Networks

weightagnostic.github.io

ニューラルネットワークの形状それ自体によって、重みの学習なし(Weight Agnostic)に様々なタスクをどの程度解くことができるのかを実験している論文です。 ネットワークの構造が持っている事前知識(Prior)が存在することは、みんななんとなくわかっているわけですが、それだけでどこまでできるのか、という問題設定はなかなかチャレンジングです。

公式のプロジェクトページがインタラクティブになっていて、見ているだけでも楽しめます。

参考: [DL輪読会]Weight Agnostic Neural Networks

The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks

arxiv.org

いわゆる「宝くじ仮説」の論文。巨大なニューラルネットワークの精度が良いのは、ランダムなパラメータの中から「アタリ」を見つけやすくなるから、というざっくりとした理解です。 概要だけはふわっと知っていたのですが、改めてざっと眺めてみると、パラメータの初期化やプルーニングなどにも示唆がありそうな論文です。

参考: The Lottery Ticket Hypothesis: Finding Small, Trainable Neural Networ…

Reconciling modern machine learning practice and the bias-variance trade-off

arxiv.org

バイアス-バリアンストレードオフといえば、機械学習のどんな教科書にも載っている基本的な原理ですが、それに対する疑いを投げかけている論文です。 深層学習で使われる多くのパラメータを持つモデルは、教師データに正確に適合するように訓練され、通常はこのようなモデルは過剰適合とみなされますが、それでもテストデータの精度が高くなることがあります。 この論文では、そのような特性を"double descent curve"として示し、従来のバイアス-バリアンストレードオフとの接合を図っています。

f:id:wanchan-daisuki:20191230131103p:plain
二重降下曲線

参考: www.youtube.com

ImageNet-trained CNNs are biased towards texture; increasing shape bias improves accuracy and robustness

arxiv.org

ImageNetで学習したCNNは、形状よりはテクスチャを優先して判断するようなバイアスが掛かっているよ、という指摘をしている論文です。 スタイル変換した画像で訓練すればテクスチャの影響が減って形状側にバイアスをかけられるよ、という当たり前といえば当たり前の解決方法が提案されています。

参考: 論文紹介: ImageNet-trained CNNs are biased towards texture; increasing shape bias improves accuracy and robustness - Qiita

2019年のPythonパッケージ10選の中から3つ

毎週楽しみにしているPyCoder's Weeklyというニュースレターで紹介されていたTop 10 Python libraries of 2019を読んで、自分のアンテナの悪さを感じたので、機械学習に関係あるものを3つほどピックアップしておきます。NetflixのMetaFlowも気になるには気になるのですが、あまり内容を把握していないので、この記事では取り上げません。

FastAPI

fastapi.tiangolo.com

API機械学習エンジニアの成果物になることはよくあることだと思いますが、FastAPIはその道程を極限まで短縮してくれます。 今までFlask+Flask-RESTPlusという構成で作成していたAPIを、一気に簡略化できるという代物です。 pydanticでtypingを使った入出力スキーマを定義し、それに沿ったエンドポイントを作成してあげると、即座にRestfulなAPIが作成され、Swagger UI(APIのドキュメント)も自動で生成されます。

Streamlit

streamlit.io

以前の記事でも紹介しましたが、どんどん改良を重ねているStreamlit。前はWindows環境で起動するとHello worldアプリケーションが落ちたりと、いろいろとまずい感じだったのが、もう解消されています。 機械学習モデルを構築したあとにどういうふうに見せるか、という点に特化したフレームワークは、意外と今までなかったので、個人的には仕事でバリバリ使っており、とても重宝しています。 転職活動などをする方は、機械学習まわりのポートフォリオとしても使用できるのではと思います。

Transformers

github.com

トップの顔文字が印象的なhuggingface/transformersは、最近資金調達をして本格的にTransformerベースのNLPモデルの整備に乗り出す模様です。 TensorFlow 2.0とPyTorchの両対応というところもすごいと思いますが、最近公開されたパイプライン機能もすごい。 以下のようなQuestionAnsweringが一瞬でできるというのは、圧倒的進歩を感じさせます。

f:id:wanchan-daisuki:20191230135502p:plain

今月は以上です。