PyTorchにおける画像認識のための機械学習モデルの概要
torchvision.modelsとは
訓練済み機械学習モデルとは
すでに膨大な学習データで訓練させた結果が配布されている機械学習モデル
自分で機械学習モデルをゼロから訓練するには膨大なデータセットと膨大な計算リソースが必要となるが、その必要がない
訓練済みのデータをダウンロードするだけですぐに使える
訓練済み機械学習モデルをファインチューニングという手法で、ゼロから訓練するよりは少ない計算リソースで、特定の用途にカスタマイズすることもできる 結論
ResNet50は、訓練済みモデルの容量が小さくて、計算量も少なくて、精度も高い 以下を見るべし
https://gyazo.com/8a3112c0789fd41b96a841b59d1d4cdd
画像認識機械学習モデルについて知ったかぶりするための最低限の知識
以下を見るべし
torchvision.models.segmentation.fcn_resnet50
torchvision.models.segmentation.fcn_resnet101
torchvision.models.segmentation.deeplabv3_resnet50
torchvision.models.segmentation.deeplabv3_resnet101
torchvision.models.detection.fasterrcnn_resnet50_fpn
torchvision.models.detection.retinanet_resnet50_fpn
torchvision.models.detection.maskrcnn_resnet50_fpn
torchvision.models.detection.keypointrcnn_resnet50_fpn
とはいえ
とりあえずResNet50が最優先候補であるものの、用途によっては別のモデルのほうが良かったりもするので、 torchvision.modelsで使える訓練済み機械学習モデルを一通り説明します(親切)
torchvision.modelsで使える訓練済み各機械学習モデルの概要
AlexNet
VGG
ResNet
SqueezeNet
DenceNet
Inception v3
GoogLeNet
ShuffleNet v2
MobileNet v2
ResNeXt
Wide ResNet
MNASNet
ニューラルネットワークの層数を増やすことで性能が上がることを示したモデル
vggは画風変換、画風ベクトル検索などに有用であることが知られている
vggの中間ベクトルが、画像の「画風に関する情報」(どの色が頻繁に用いられているか等)を特徴ベクトルとして保持していると考えられる
別の機械学習モデルでもできるのでは?という気がするもののそうした事例は知らない
以下の派生モデルがある
vgg11
vgg11_bn
vgg13
vgg13_bn
vgg16
vgg16_bn
vgg19
vgg19_bn
ニューラルネットワークの層数を増やしすぎると性能が悪化するという問題を突破したモデル
現状、resnet50が計算量、訓練済みモデルのサイズ、精度のバランスが最も良い
リアルタイム物体検出のBackboneアルゴリズムとして採用されていることが多い
以下の派生モデルがある
resnet18
resnet34
resnet50
resnet101
resnet152
AlexNetと同程度の性能を保ちつつ学習データを極めて小さくしてメモリ消費量を減らすことを目指して作られたモデル 以下の派生モデルがある
squeezenet1_0
squeezenet1_1
ResNetと同様に、ニューラルネットワークの層数を増やしすぎると性能が悪化するという問題を突破する別のアイデアで作られたモデル 以下の派生モデルがある
densenet121
densenet169
densenet161
densenet201
SqueezeNet同様、モバイル端末などリソースの限られた状況でも高性能・高精度で動くことを目指して作られたモデル 以下の派生モデルがある
shufflenet_v2_x0_5
shufflenet_v2_x1_0
shufflenet_v2_x1_5
shufflenet_v2_x2_0
SqueezeNet同様、モバイル端末などリソースの限られた状況でも高性能・高精度で動くことを目指して作られたモデル 以下の派生モデルがある
resnext50_32x4d
resnext101_32x8d
以下の派生モデルがある
wide_resnet50_2
wide_resnet101_2
以下の派生モデルがある
mnasnet0_5
mnasnet0_75
mnasnet1_0
mnasnet1_3