人工知能とか犬とか

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

2020年2月の論文・実装リスト

2020年2月の論文と実装のリストです。

これから読むつもりの論文、実装するつもりの手法についても少し書いています。

論文読解

2月は、先月に引き続き単眼深度推定モデルの読解をしつつ、まえまえから気になっていた論文を読んでみました。 実際には、仕事で使うために別のテーマの論文も漁っているのですが、ここでは挙げません。全体合わせると10本くらいは読めたかなという感じです。

Depth Prediction Without the Sensors: Leveraging Structure for Unsupervised Learning from Monocular Videos

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

単眼深度推定手法では、映っている物体の動きに対する処理が雑なものが多かったところを、事前に物体領域をInstance Segmentationで切り出しておき、個別に動きも推定することで丁寧にやろうよ、という手法です。

また、推論時にオンラインでパラメータを更新することで、深度推定の精度を上げられるということも示しているのが特徴的です。

Depth from Videos in the Wild: Unsupervised Monocular Depth Learning from Unknown Cameras

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

自分が読んだ限りでは最新の単眼深度推定の最新の論文です。

これまでの多くの深度推定手法が、学習の過程でカメラの内部パラメータを事前に知っておく必要があったのに対して、本手法では、内部パラメータも推定するということを特徴にしています。これにより、きっちりキャリブレーションされたカメラで撮影された動画だけでなく、YouTubeなどにアップロードされた野良動画(Videos in the Wild)も教師データとして使うことができるようになっています。

これまで読んできた深度推定の論文が、ある意味で無味乾燥なKittiデータセットを使っていたのに対し、上図に示したような様々なシーンでの深度推定ができているのを比べると、とてつもない進歩を感じる手法です。

手法としては、オクルージョンへの対処を厳密に行っていること、オプティカルフローを推定するためのFlowNetベースの構造をつかって動く物体の運動を算出しているといった点が特徴的です。

Single Headed Attention RNN: Stop Thinking With Your Head

良くも悪くも話題になったSHA-RNNという、言語モデル手法に関する論文です。この論文が話題になったのは、提案手法そのものではなく、論文のスタイルにありました。 一般的な学術論文のスタイルを無視し、かなりくどい文章で書かれています。

私個人は英語の読解があまり得意ではないので、こういう自由な英語を読むのはとても苦労しました。そして本論文を読むのは時間の無駄だと判断し、全体を読むのは断念しました。

ただ、この論文のメッセージ自体は重要なことだと思いました。 技術の発展というのは、みんなで一つの方向に向かっていては成し遂げられない可能性がある、ということは技術で食っていく人間は肝に命じておくべきでしょう。そもそも、ニューラルネットワーク自体が数年前までは微妙な立ち位置だったわけですから。

Transformerをベースとした各種Pretrainedモデルの勢いは凄まじいものがありますが、RNN系の研究も地道に続けられています。RNN系の手法が将来NLPで重要な役割を果たす可能性は、まだ捨てきれないわけです。

EfficientDet: Scalable and Efficient Object Detection

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

物体検出のEfficientなアーキテクチャを考えてみたよ、という論文です。Efficientという名称からわかるように、EfficientNetをベースのネットワークとして使っています。

もっとも、主要な提案点はそこではなく、複数の解像度の特徴マップをブレンドしてFeature Pyramidを構築する新しいアーキテクチャであるBiFPNにあります。 個人的に面白いと思ったのは、特徴マップのブレンド方法を最適化するNAS-FPNというNeural Architecture Searchの手法が少し前に提案されていたのですが、 本手法では人手構築したネットワークによってそれを上回っているという点です。

NAS系の手法はどうしても探索空間の定義次第では「漏れ」が生じてしまうので、あまり過信しすぎるのもどうかな、と前々から思っていたので、そのような事例が出てきてよかった、と思いました。

Neural Tangent Kernel: Convergence and Generalization in Neural Networks

通称NTKと呼ばれる理論的な枠組みを提案している論文なのですが、さっぱりわからない。というわけで日本語解説記事を読んだりしていました。

medium.com

理論の肝となる部分は超ざっくりと、理解したつもりになれましたが、こういう道具をつかって色々と研究している人たちがいるんだなあと、いう超ぼんやりとした感想を抱いた次第です。

ベストペーパー読解

HighLife: Higher-arity Fact Harvesting

先月に引き続き、WebConf2018のベストペーパーを読んでいました。

www2018.thewebconf.org

そして先程、その読解感想記事をあげました。

takoroy-ai.hatenadiary.jp

YAGO: A Core of Semantic Knowledge Unifying WordNet and Wikipedia

上記の論文で、ナレッジベースに関する前提知識が必要な箇所があったのですが、そこらへんは適当に読み流していました。 でも、もう理解を深めたいなと思ったので、来月以降は、上記論文と同じ学会でTest of Time Awardを受賞したYAGOと呼ばれるナレッジベースに関する論文を読んでみたいと思っています。 2007年のWebConfで提案され、その後の研究に大きな影響を与えた、つまり時の試練に耐えた研究ということで評価されています。

まだアブストを読んだ程度なので、中身についてはこれからです。

実装

SfMLearner

今月は、先月実装したSfMLearnerをチューニングしていました。論文で示されていたsmoothingに関するハイパーパラメータだと出力結果が過剰にぼやけるということが判明し、それなりの結果を得るまでに結構苦労しました。

結果は以下のようになりました。精度とかは特に算出していません。

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

SfMLearnerの後続論文で、いくつか実装しやすい改善点が提案されているので、今後そこらへんを盛り込んで見ようかなと思っていますが、とりあえず来月はおやすみにしようと思います。

RepPoints

来月は、アンカーフリーの物体検出手法であるRepPointsを実装してみようかなーと考えています。RepPointsについては、以前Qiitaに解説記事を書きました。

qiita.com

torchvisionで正式にDeformableConvが使えるようになったので、その応用例としてRepsPointsを実装してみよう、という思い立ったためです。

Deformable Convolutionは、前々からC++ Extentionの勉強も兼ねて自分でスクラッチで実装しようかなと思っていたのですが、その前にtorchvisionで公式サポートされてしまいました。どんどんC++を書くモチベーションが下がっていっている今日このごろです。