10連休中にやったことまとめたみた。
目次
- FCNの論文まとめた
- U-Netの論文まとめた
- DeepLabv3+の論文まとめた
- U-Net実装した
- Optuna使ってみた
- Quiver使ってみた
- A Recipe for Training Neural Networksを読んだ
- 今後やっていきたいこと
FCNの論文まとめた
論文は昔に読んだことあったけど、読んで実装しただけで終わっていたので内容をまとめてみた。古い論文だけど、全結合層なしのモデルをsemantic segmentationに使うとかskip architectureで低層の特徴マップを高層にバイパスするとか最近のモデルで標準的に使われている手法をいち早く使っている論文になっている。色々重要な試みをされている論文なのでオススメです。
takuroooooo.hatenablog.com
U-Netの論文まとめた
U-NetはQiitaの記事で読んだ程度だったが、色々な記事でよく見かけるので論文を読んでみた。医療画像系のタスクで使われたモデルで、医療画像の学習データが少ない中どうやって精度を出すかという課題に対する取り組みも書かれている。モデルはFCNの改良版という印象。 takuroooooo.hatenablog.com
DeepLabv3+の論文まとめた
Papers With Code : Semantic SegmentationでBestMethodになっていたので読んでみた。この論文以前にDeepLabv1,DeepLabv2,DeepLabv3と3つの論文があるようで、それらを全て読まずにDeepLabv3+の論文を読んだので消化不良になっている箇所がいくつかあるのでv1から読んでまとめてみようと思っています。
U-Net実装した
論文読むだけでは物足りないのでPyTorchで実装してみた。 github.com
Optuna使ってみた
ハイパーパラメータ自動探索ツールは使ったことがなく、Optunaは前々から気になっていたので触ってみた。自動で探索してくれるのですごく楽だけど、探索方法の概要とか知らないとなんとなく気持ち悪いのでOptunaの探索アルゴリズムも勉強していきたい。 optuna.org
Quiver使ってみた
Kerasの層の出力特徴マップを可視化できるツール。GUIで入力画像と層を指定するとその入力画像をいれたときの特徴マップが見れる。UIがシンプル。 github.com
A Recipe for Training Neural Networksを読んだ
これはただ記事を読んだだけだけど内容が良かったので書いておく。OpenAIのエンジニアのブログでニューラルネットワークの学習で気をつけることが書かれている。特に共感したのは以下の部分。
What we try to prevent very hard is the introduction of a lot of “unverified” complexity at once, which is bound to introduce bugs/misconfigurations that will take forever to find (if ever).
ニューラルネットワークを学習するとき、バグのなどの原因になるから未検証なことを一気に突っ込むなという意味だと思っているけど、この通りだと思う。色々な変更入れた結果、動作がおかしくなると何が原因なのかが特定しにくいのはニューラルネットワークの学習に限らない話なのであらゆる仕事に共通する決まりごとだと思う。
また以下の箇所はニューラルネットワークの学習ではなく、コードの書き方のアドバイスだけどすごく勉強になった。
I like to write a very specific function to what I’m doing right now, get that to work, and then generalize it later making sure that I get the same result.
いきなり汎用的な関数書くと難しくてバグりやすいから特定のことしかできない関数を書いてからそれを徐々に汎用的な関数に修正していくのが好きとのこと。
他にもためになるTipsがまとまっているのでニューラルネットワークを勉強している人は一読をオススメします。
今後やっていきたいこと
- 論文読んでPyTorchで実装するというのは今後も続けていきたい。
- 物体検出系の論文読んで実装したい。
- もうすぐTensorFlow2.0が正式版になるようなので使ってみたい。
- Keras Tuner使ってみたい。
- Optunaの探索アルゴリズム勉強したい。
- QuiverのPyTorch版作りたい。(フロントエンド、Flask、Reactあたり勉強する必要がありそう。)