yiskw note

機械学習やプログラミングについて気まぐれで書きます

Weekly Digest #1


最近忙しく、ブログなどを更新する余裕がなく、アウトプットの量がめっきり減ってしまいました。
このままでは良くないと思い、週一回のペースを目標に細々とアウトプットできればと思っております。
そこで簡単ではあるのですが、その週に自分が読んだ記事や論文、本などについて、 週末にまとめて記事にしていこうと思います。

トピックとしては、機械学習pythonが主になるかと思いますが、 それ以外の気になったトピックについても取り入れていこうと思います。

ML Papers

Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions

引用: [1711.08141] Shift: A Zero FLOP, Zero Parameter Alternative to Spatial Convolutions

空間方向の情報を捉えるのに畳み込みをするのではなく、 上図のように、特徴量を縦・横・斜めにシフトすることで空間情報を捉える Shift というモジュールを提案している論文。

Shiftはパラメーターフリーなので、畳み込みと比較して高速に処理が可能とのこと。
point-wise convolution + Shiftを用いることで、計算量を削減しつつ、ResNetよりも高性能を達成したと報告されています。

TSM: Temporal Shift Module for Efficient Video Understanding

引用: [1811.08383] TSM: Temporal Shift Module for Efficient Video Understanding

先程紹介した Shift モジュールを時間方向に拡張して、動画認識での有効性を示した論文。

TIDE: A General Toolbox for Identifying Object Detection Errors

ECCV2020の論文で、物体検出のエラーの原因を詳細に分析できるツールTIDEを提案した論文。
下記のような感じで、エラーの内容を詳細に分析できます。

引用: dbolya/tide: A General Toolbox for Identifying Object Detection Errors

こちらのツールは、GitHubで公開されており、簡単に扱うことができます。
dbolya/tide: A General Toolbox for Identifying Object Detection Errors

こちらの解説スライドも非常に参考になりました。

A Straightforward Framework For Video Retrieval Using CLIP

Mexican Conference for Pattern Recognition (MCPR) 2021で発表された、動画検索の論文。
手法は非常にシンプルで、動画の各フレームに対して学習済みCLIPを用いて特徴抽出したものを、
時系列方向にaverage poolingしたものを動画の特徴量として使用しています。
MSR-VTTやMSVDにて、当時のSoTAとなる精度を残しています。

同時期に提案された論文として、CLIP4Clip: An Empirical Study of CLIP for End to End Video Clip Retrievalがありますが、
CLIP4Clipの論文では、average pooling以外の特徴の集約方法についても検証しています。

Camera View Adjustment Prediction for Improving Image Composition

引用: [2104.07608] Camera View Adjustment Prediction for Improving Image Composition

撮影時に最適な写真の構図を予測する手法を提案した論文。
従来の研究では、画像の最適なクロップの予測について取り組んだものは存在ありましたが、撮影時に最適な構図を提案するような手法やデータセットはありませんでした。
そこで、画像クロップ予測用のデータセットを流用して、画像の構図予測の学習を行いました。
また、半教師あり学習の手法も提案していて、これによって教師あり学習を上回る結果を残しています。

Development

Streamlit + PySide = standalone data app | by Stef Smeets | Oct, 2022 | Medium

引用: Streamlit + PySide = standalone data app | by Stef Smeets | Oct, 2022 | Medium

Streamlitで作成したweb appを、PySideを用いてstandalone appとして起動する方法を紹介した記事。
※記事では PySide2を使用していますが、Python3.9の環境ではPySide2のインストールがうまくいかず、PySide6をインストールすることで解決しました。

Pythonのコードでダイアグラムが記述できる Diagrams

以下のように、Pythonのコードでダイアグラムを作成することができるライブラリ。

from diagrams import Diagram
from diagrams.aws.compute import EC2
from diagrams.aws.database import RDS
from diagrams.aws.network import ELB

with Diagram("Grouped Workers", show=False, direction="TB"):
    ELB("lb") >> [EC2("worker1"),
                  EC2("worker2"),
                  EC2("worker3"),
                  EC2("worker4"),
                  EC2("worker5")] >> RDS("events")

引用: Examples · Diagrams

The Skyline Problem - LeetCode

引用: The Skyline Problem - LeetCode

面白かったLeetCodeの問題です。
このような区間を扱う問題は、始点と終点を切り分けて考えると、扱いやすくなることがあるようです。

以下の解説動画が非常にわかりやすかったです。

LeetCode 218. The Skyline Problem - YouTube

Books

※以下のリンクはアフィリエイトリンクになっています。嫌な方はご自身で書籍を検索いただければと思います。

Vision Transformer入門

Vision Transformer (通称ViT)について、理論や実装だけでなく、 派生モデルや様々なタスクでの応用などについて幅広く紹介している書籍。
引用されている論文が膨大で、読むだけで分野を俯瞰することができます。
また、解説も非常に丁寧で、大変読みやすかったです。

Others

The Most Effective Creatives Maximize Leverage, Not Hours Worked | by Samuel Flender | Sep, 2022 | Towards Data Science

効率よく成功するために、leverageを向上させるためのテクニックについて紹介している記事。

近年のコロナウイルスの流行によって、人々は人生の在り方を再考するようになり、家族や自分の時間を大切にしたいと考えるようになっています。
その流れを受けて、Quiet Quitting (熱心に仕事をするのではなく、必要最低限の労働のみを行うようになること。参考)という言葉が流行っていますが、Quiet Quittingするのではなく、より効率的に働くことによって、同じよう自分や家族の時間を確保できると述べています。
またそのための方法として、Context Switchingを減らすこと、新しいツールを学び続けること、早い段階でアイデアの有効性を確かめることの重要性、などについても解説しています。

ポモドーロテクニック用のwebアプリ Pomofocus.io

ポモドーロテクニック(参考)のための時間管理用のwebアプリ。
まだ使いこなせていませんが、時間管理だけでなく、タスクの管理などもできるようです。

ブラウザとは独立したChromeアプリとして設定しておけば、他のページに埋もれることなく、Pomofocus.ioを使うことができます。

Chromeアプリの設定方法は、以下が参考になります。

Chrome アプリを追加して開く - Chrome ウェブストア ヘルプ

まとめ

自分が今週勉強した内容を雑多にまとめてみました。
時間の関係で全ての論文や記事を扱うことは難しいのですが、今後も細々と続けていければと思っています。
何か不備や質問などがあれば、遠慮なくコメントいただけると幸いです。