Lightly 1.2 : Getting Started : 主要コンセプト (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 08/11/2022 (v1.2.25)
* 本ページは、Lightly の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
- Getting Started : Main concepts
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Web: www.classcat.com ; ClassCatJP
Lightly 1.2 : Getting Started : 主要コンセプト
自己教師あり学習
下の図は Lightly PIP パッケージにより使用される様々なコンセプトの概要とそれらがどのように相互作用するかのスキーマを示します。太字の表現は下で更に説明されます。
データセット
lightly では、データセットは lightly.data.dataset.LightlyDataset を通してアクセスされます。画像, 動画のフォルダから、または単純に torchvision データセットから LightlyDataset を作成できます。ここでこれについて更に学習できます :
Collate 関数
collate 関数は lightly が増強を適用する場所で、これは自己教師あり学習に対して重要です。事前定義された増強を使用するか独自のものを書くことができます。詳細は、Advanced Concepts in Self-Supervised Learning と lightly.data.collate.BaseCollateFunction を確認してください。
このチュートリアルで示すように、独自の増強を非常に簡単に追加できます :
Dataloader
dataloader については単純に PyTorch dataloader が利用できます。ただし、必ず LightlyDataset をそれに渡してください!
バックボーン・ニューラルネットワーク
自己教師あり学習のクールなことはアノテートされたデータの必要性なしにニューラルネットワークを事前訓練できることです。望むバックボーンが何であれプラグインできます!どこから始めれば良いか分からない場合、チュートリアルは lightly.models.resnet.ResNet からバックボーン・ニューラルネットワークを取得できる方法を示しています。
モデル
モデルはバックボーンを一つまたは複数のヘッドと、必要に応じて、最も一般的な自己教師あり学習フレームワークへの簡単に使用できるインターフェースを提供するモメンタム・エンコーダと組み合わせます。チュートリアルで更に学習してください :
- Tutorial 2: Train MoCo on CIFAR-10
- Tutorial 3: Train SimCLR on Clothing
- Tutorial 4: Train SimSiam on Satellite Images
損失
損失関数は自己教師あり学習で重要な役割を果たします。現在、lightly は contrastive (= 対照的) と類似度ベースの損失関数をサポートします。
Optimizer
lightly では、モデルを訓練するために任意の PyTorch optimizer を使用できます。
訓練
モデルは plain な PyTorch 訓練ループを使用するか PyTorch Lightning のような専用フレームワークにより訓練できます。lightly は貴方に最善のものを選択させます。サンプルについては チュートリアル・セクション を確認してください。
画像埋め込み
訓練の過程で、モデルは画像からコンパクトな埋め込みを作成することを学習します。表現と呼ばれることも多いですが、埋め込みは類似画像を識別したりデータから多様なサブセットを作成するようなタスクのために利用できます。
事前学習済みバックボーン
バックボーンは自己教師あり訓練の後に再利用できます。画像分類、オブジェクト検出とセグメンテーションタスクを含む、類似のネットワーク・アーキテクチャを必要とする任意の他のタスクにそれを転移できます。オブジェクト検出チュートリアルで更に学習できます :
能動学習
自己教師あり学習を通して学習された画像表現は下流タスクや最近傍探索に対してだけ利用できるわけではありません。表現間の類似性はまた画像間の相互情報に対する優れたプロキシーとしても機能します。この事実は、訓練の間に画像のもっとも情報量の多いサブセットを取得するために能動学習をおこなうときに利用できます。詳細は 能動学習 のセクションを確認してください。
Note : To use active learning you need a lightly version of 1.1.0 or newer! You can check the version of the installed package using pip list and check for the installed version of lightly.
以上