はじめまして、駆け出し 機械学習 エンジニアの佐野です。
2018年の7月からAvintonジャパンに入社し、現在は物体検出のプロジェクトに携わっています。
Deep LearningのComputer Visionは、技術の変化が非常に激しいです。1年でそこまで進むの?と思うくらい日々技術が進化しています。
その進化にどうしてもついていこうと思い9月から本格的に、論文を読みはじめました。1か月論文を読むことにチャレンジしてみての感想や読んだ論文のようやくなどをシェアできればと思います。
また駆け出しの機械学習エンジニア、Webエンジニアから機械学習エンジニアになって日々戦っている方々、これから機械学習エンジニアになろうとしている方々の励みになれば幸いです。
【目次】
・自分のスキルセット
・1か月どんなことした
・読んだ機械学習論文のまとめ
・論文を読んでみての感想
【自分のスキルセット】
英語
英語は前職で使っていて、日常会話であれば問題なくしゃべれるレベルです。リーディングに関しては、英語の記事は長くなければ問題なく読めるくらいのレベルです。
論文
全く読んだこともなければ、日本語の論文ですら読んだことがありませんでした。
【1か月どんなことしたか】
1か月で合計12本くらい論文を読んでみました。週3本くらいの計算です。目標としては、計算式はわからなくても、自分の口でこの論文の趣旨を説明できるくらいまで読み込みました。時間としては毎日2時間くらいこれに費やしていました。
読んだ 機械学習 論文のまとめ
VGG
畳み込み13層と全結合3層の合計16層で構成されているモデルです。(19層もあります)
KerasやPyTorchでは、モジュールとしてVGGが実装されているので、簡単に使用することができます。
最近の論文では、VGGを基礎モデルとして使用していることが多いので、理解しておくことは必須です。
ResNet
152層で構成されているモデル
層が深くなると、勾配消失という問題が起きるのですが、このモデルでは残差関数というものを用いて、その問題に対応することできています。
これもVGGと同じく最新の論文で基礎のモデルとして頻出なので、このモデルも理解することは必須です。
図:モデル構造【参考論文】
SSD
物体検出でよくつかわれるモデルの一つで、Single Shot MultiBox Detector の略です。画像や動画の物体検出で使用されています。
自分もプロジェクトで使用しており、大変お世話になってます。
図:モデル構造【参考論文】
Image Captioning
CNNとRNNを組み合わせることで、入力の画像に対して、その画像の説明文を返すというものです。CNNとRNNをつなぎ合わせる部分には、Embedding layerを使い、RNNでも受け取れる情報であるベクトルに変換しています。
最近では、ここからさらに発展して、画像と質問文を入力として渡すと文章で答えが返ってくるというVQA(Visual Question Answering)という技術も発展してきています。
図:文字が出力されるまでの流れ【参考論文】
U-Net
医療用のセグメンテーションを行うのに適しているモデルです。
プーリング層などを通すと物体の位置情報が不明確になるのですが、アップサンプリングという技術を使うことで、物体の境目をはっきりさせることができます。
ちなみに、モデルを図で見ると「U」に見えることから、U-Netと呼ばれているみたいです。
図:モデル構造【参考論文】
Mask R-CNN
物体検出、セグメンテーション、ポーズ推定などいろいろできるモデルです。
モデルは、Faster R-CNNをベースに構築されており、RoI Alignを使うことで、Faster R-CNNのRegion Proposal Networkで問題になっていたピクセルレベルのズレを解消することができるようになっています。
図:出力するまでの流れ【参考論文】
Clique Net
唯一今年の論文です。
情報の流れを最適化するために、すべての層がinputとoutput両方を兼ね備えています。
通常のCNNとは異なった仕組みで、成果を出しています。今後は、このような一風変わった構造のCNNが出てくるのかもしれません。
図:出力するまでの流れ【参考論文】
【論文を1ヶ月読んでみての感想:論文を読むことはおもしろい】
論文を1ヶ月読んでみての感想は、「論文を読むことはおもしろい」です。
もちろんはじめはつらいですが、知識がついてくると興味の幅も自然と広がります。
「論文を読む」ということに対して、難しいという印象を持っている方が多いと思いますが、
「どんなことをこの論文では試したのか」「筆者の主張はなんなのか」くらいはどなたでも理解できると思います。
もちろん、細かいところの数式や引用をすべて把握することになるともっと時間がかかると思いますし、専門性もあがりますのでそこは難しいです。
機械学習エンジニアにとっては、論文を読んで、実装できることは一つの技術になると思うので、最初の一歩をぜひ踏み出してください!!ご一読ありがとうございました!
あなたも、Avintonでこのような最先端技術を習得し活用してみませんか?
社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?