takuroooのブログ

勉強したこととか

GWでやったこと

10連休中にやったことまとめたみた。

目次

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から読んでまとめてみようと思っています。

takuroooooo.hatenablog.com

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がまとまっているのでニューラルネットワークを勉強している人は一読をオススメします。

karpathy.github.io

今後やっていきたいこと

  • 論文読んでPyTorchで実装するというのは今後も続けていきたい。
  • 物体検出系の論文読んで実装したい。
  • もうすぐTensorFlow2.0が正式版になるようなので使ってみたい。
  • Keras Tuner使ってみたい。
  • Optunaの探索アルゴリズム勉強したい。
  • QuiverのPyTorch版作りたい。(フロントエンド、Flask、Reactあたり勉強する必要がありそう。)