2019年12月 文献/技術記事解説
- 読んだ論文:9本
今更ながらPyTorchの論文を読んだのでざっとまとめます。面白かった。数ツイートになるかな。https://t.co/K1HK7DSiaa#PyTorch論文
— Teppei Kurita (@kuritateppei) 2019年12月16日
PyTorchはPythonicかつ命令型。最近のDNNライブラリはdefine-by-runが多いけど、Chainerみたいにパフォーマンスを犠牲にしてたり、DyNetは表現力を犠牲にしている。
— Teppei Kurita (@kuritateppei) 2019年12月16日
でもPyTorchはとても慎重に設計と実装を選択してったので、動的な実行をパフォーマンスを犠牲にすることなく実現できる。#PyTorch論文
PyTorchの設計哲学は4つで
— Teppei Kurita (@kuritateppei) 2019年12月16日
1. Pythonic
2. 研究者ファースト
3. 実用的なパフォーマンス
4. Worse is Better#PyTorch論文
1,2は良いとして、3は「速度の10%を犠牲にして記述がシンプルになるならそちらを選択する」という思想。
— Teppei Kurita (@kuritateppei) 2019年12月16日
4は内部構造をシンプルに保つことで、包括的だけど複雑で保守が困難な設計にするよりも、研究が発展してもすぐに追加の機能を実装して追いつけるよ、というこの分野ならではの姿勢。#PyTorch論文
GANとかを記述するとき仕様がカチコチのライブラリを使うと滅茶苦茶大変だけど、Pytorchだったらすごく簡単に書ける。Pythonとの互換性も協力にサポートしてて例えばTensorとnumpyの変換はとても簡単にできるけど、ほとんどのLibは高いパフォーマンスを達成するためにC++で書かれている。#PyTorch論文
— Teppei Kurita (@kuritateppei) 2019年12月16日
CUDAの仕様を最大限活用して、GPU上での演算を非同期に実行するように設計。これでPythonのようにオーバーヘッドがかなり高い言語使ってても、無駄なく高いパフォーマンスを達成できる。しかも、これらの動きは「全くユーザーには見えない」で、裏でライブラリが勝手にやってくれる。#PyTorch論文
— Teppei Kurita (@kuritateppei) 2019年12月16日
他ライブラリとのベンチマークでも、高いスループットを達成。特定のモデルでは負けていても、性能差は17%以内に収まる。
— Teppei Kurita (@kuritateppei) 2019年12月16日
arxivのDNN論文のうち2019年中盤からは50%弱はPyTorchのことに触れているよ(すごすぎ)。ICLRの296のPaperがPyTorchについて言及しているよ。#PyTorch論文
今後は速度とスケーラビリティを改良し続ける予定。最近はPyTorch JITの開発が優先度高い。PytorchのプログラムをPython外から叩けるように(コンパイルできるように)したもので、よりプログラムが最適化できるよ。
— Teppei Kurita (@kuritateppei) 2019年12月16日
[おわり]#PyTorch論文
https://t.co/ikwmo4Cxua
— Teppei Kurita (@kuritateppei) 2019年12月3日
「巻髪で卵型の顔で口髭がある」のような描写が詳細なテキストからGANで顔画像を生成する。キモはDatasetにテキストをアノテートするアルゴリズムも開発した事。マルチモーダル学習にはSOTAのGAN-CLSロスのDC-GANを利用。この技術が進めば証言から指名手配犯の顔を復元可能。
https://t.co/n1knvfL1sZ
— Teppei Kurita (@kuritateppei) 2019年12月3日
マイクロレンズ型のLight Fieldカメラは空間解像度が課題だけど、DNNの力でかなり補えるという話。キモは2ストリームのDNN(FCのAEと4DCNN)でコード化された2D画像から高解像度の4DLight Fieldを復元する所。全ての4DConvは3x3x3x3。26-32dBのPSNR、高速化、圧縮率を8%を達成。
https://t.co/J8Uq1LC02t
— Teppei Kurita (@kuritateppei) 2019年12月3日
マラリアなどの多くのバイオサンプルは透明で、光学顕微鏡で高精度に識別するのが困難。この研究ではLED照射パターンをCNNパイプラインに組み込み最適化している。最適化された照射パターンはサンプルの重要な特徴を強調し、従来の顕微鏡に比べ分類精度が5-10%良くなった。
https://t.co/pWSBpefKKc
— Teppei Kurita (@kuritateppei) 2019年12月3日
DNNの力があれば、フレネルレンズで超薄(120um)かつ広角(58°)の超攻めた光学設計をしても何とかなるという話。キモは空間的に一定なPSFを持つようにレンズ設計して、どんな像高・周波数でも少しでも信号値を残すようにして、上位レイヤーでコントラストを強調しやすくした所。
https://t.co/YJWn2Gu1Hc
— Teppei Kurita (@kuritateppei) 2019年12月2日
Kaggle発?のPaper。CT画像(Kaggleデータセット)からの肺がんの判定で精度72.2%を達成。キモは前処理画像にMarker Controlled watershedセグメンテーションをして特徴抽出するところ。色々な分類器を試したが、SVMが一番良かった。該当コンペは「Data Science Bowl 2017」。
https://t.co/DuW3xPdlCH
— Teppei Kurita (@kuritateppei) 2019年12月2日
DNNのBack Propagateでカメラのイメージセンサの配列と現像画像の同時最適化をする。キモは各画素での波長選択は微分可能じゃないのでSoft-Maxで代替操作にしてる所。普通のカメラのBayer配列よりも圧倒的に性能が高くなった。結果の配列みたけどランダム配列みたいな感じ。
https://t.co/HipMsX86ql
— Teppei Kurita (@kuritateppei) 2019年12月2日
CompressiveSensingつまり画素を間引いて画像を得てもDNNを使い従来の再帰的な最適化手法よりも高速(3倍)かつ復元性能で高いPSNRを達成、Adversarial Lossで更に改善。プロトタイプで実験し有効性を確認。最初のFC層がパラメータ多いのでcirculantレイヤーで代替し95%軽量化。
https://t.co/HiYXFkE8nV
— Teppei Kurita (@kuritateppei) 2019年12月2日
SPAD(Single Photon Avalanche Diode)での測距結果をDNNで高精度化している。同位置の輝度画像をモーダル情報として入力する
。ネットワークはセマセグのSOTAアーキと類似のマルチスケールアプローチ、出力は離散Depthへの分類問題としている。