【ディープラーニング 転移学習】深層学習の計算コストを下げれる「転移学習」とは?転移学習で使う「学習済みモデル」の代表例とその入手方法とは?【機械学習 転移学習】

ディープラーニング 深層学習 機械学習 転移学習 学習済みモデル Inception ResNet Xception VGG16 VGG19 ModelAssetExchange 2 人工知能

「ディープラーニング(深層学習)」は、人工知能技術の1つです。

画像認識の精度を大きく高めることができたり、

人間に近い翻訳を可能にしたりと、

最近の人工知能ブームの牽引役となっています。

 

ディープラーニングのディープは、

「Deep 深い」という意味です。

ディープラーニングでは、

ニューラルネットワークの層が重なってできています。

層がいくつにも重なっている様子を、”深い”と表現します。

層が深いほど、複雑な特徴やパターンを表現できるメリットがあります。

 

つまり、ディープラーニングでは、

各層にそれぞれ多数のニューロン(を模したノード)があり、

加えて、それらの層が、複数重なってできているわけです。

 

その結果(詳細は別にまとめる予定ですが)

  • 計算量が膨大

になります。

 

どのくらい膨大かというと、

みなさんが使っているPCのCPUを100%使って計算をさせたとして、

深さやデータ量によって

数日から1週間、1ヶ月以上かかる

くらいの計算量になります。

 

これでは、ディープラーニングをやりたい!と思っても、気軽にできないですよね。

 

そこで本記事では、

ディープラーニングの計算量を抑えながら、

よい性能も出せる学習方法

  • 転移学習

についてサクッとご説明し、転移学習で使える

  • 学習済みモデル

の代表的なものをサクッと示します。

加えて、

  • 学習済みモデルを集めたオープンなサイト・プロジェクト

についてサクッとご紹介します。

あなたのタスクに最適の学習済みモデルが入手できるのではないでしょうか。

 

本記事の概要

【ディープラーニング 転移学習】深層学習の計算コストを下げれる「転移学習」とは?転移学習で使う「学習済みモデル」の代表例とその入手方法とは?【機械学習 転移学習】

転移学習(Transfer Learning)とは?

転移」とは、何かを移すことを言います。

何を移すかというと、ズバリ、学習済みの結果です。

ディープラーニングの学習は、

  • 重みの決定

と言い換えることができます。

1つのディープラーニングモデルの中に、

重みは数十のものから、数百万のものなど様々なものがあります。

データをもとにして、重みを決定するのがディープラーニングと言えます。

 

では、あるディープラーニングモデルを計算して、

学習を完了したものがあるとします。

そのデータでの最適な重みがわかっている状態です。

 

例えば、犬、猫を分類する画像認識をディープラーニングで実現したとします。

学習後には、犬、猫を分類できる「重み」が得られています。

この重みを使うことで、新しい犬や猫の入力画像が、犬か猫のどちらかを分類することができます。

ここまでは普通のディープラーニングの分類問題になります。

 

 

 

 

では、転移学習ではどう考えるのでしょうか?

転移学習では、

犬、猫で学習した特徴は、

他の動物の分類にも使えるんじゃないの?

という発想があってもいいですよね。

犬猫で学習した重みには、

他の動物の違いを表現する情報も(部分的には)含んでいる

とみなすこともできます。

これが「転移学習」のアイデアになります。

 

つまり、「転移学習」では、

すでに学習済みのモデル(重み)を使い、

新しいタスクについての重みを

「そのまま使う」

もしくは

「再調整」する

ということが行われます。

 

重みやディープラーニングのネットワーク構造について、

ゼロから計算したり検討する必要がないので、

計算コストを大きく下げることが可能です。

 

 

 

以上から、転移学習で必要になるのは、

  • 学習済みのモデル

ということになります。

そこで次は、私たちが手に入れることのできる

学習済みモデルの代表的なものについて、

サクッとご紹介します。

学習済みモデルを使うことで、

あなたのディープラーニングが大きく加速するはずです。

学習済みモデルの代表例とは

InceptionV3

2014年の画像認識コンペ(ILSVRC)の分類部門で優勝したモデルになります。

1000種類ものラベルについて分類するタスクで好成績を収めています。

Inceptionモデルの初期モデルは、GoogLeNetと呼ばれます。

その名の通り、Googleが出した学習済みモデルになります。

この学習済みモデルに、新しい画像を入力すると、

入力画像の特徴が学習されていれば、

適切な分類結果をサクッと得られることになります。

 

 

Xception

こちらはInceptionモデルの改良モデルです。

ディープラーニングのフレームワーク「Keras」の作者でもあるFrancois Cholletが提案したモデルになります。

畳み込み計算の効率化を検討したモデルになっています。

 

 

ResNet50

2015年の画像認識コンペ(ILSVRC)の分類部門、物体検知部門で優勝したモデルになります。

Residualブロックを使い、より深い構造を実現しています。

こちらは、Microsoftが出した学習済みモデルになります。

 

 

VGG16, VGG19

オックスフォード大学が出した学習済みモデルで、

ILSVRCでも優秀な結果を残したモデルになります。

16層(VGG16)、19層(VGG19)などがあります。

 

 

といった感じで、

様々な学習済みモデルが公開されており、

私たちはこれらをスタートにして、

転移学習することで、効率的にディープラーニングを行うことができます。

 

 

とはいっても、上で示した学習済みモデルは、

どれも画像認識用のものでした。

ディープラーニングには、その他にも、

  • 自然言語処理
  • 音声認識

などの他のタスクでも活用されています。

 

画像認識だけじゃなく、

自然言語処理や音声認識でも使える

学習済みモデルはないの?

と思われる方も多いかと思います。

 

実は、ディープラーニングの学習済みモデルを集めたサイトがあり、

オープンな学習済みモデルをサクッと探し、ラクに活用することができます。

学習済みモデルを気軽に検索・活用できる「Model Asset Exchange(MAX)」とは

Model Asset Exchange(MAX)」とは、

学習済みのディープラーニングモデルを集めたサイトです。

誰でもサクッと使えるオープンなもの

を集めています。

サイトはこちらになります。

 

上で紹介した画像認識用のモデルだけでなく、

音声認識、自然言語処理に関する学習済みモデルなど、30種類まとめられています。

中には少しマニアックなものもあるようですが、

うまく活用されていくことで、

ディープラーニングの裾野が広がっていくのではないかと思います。

(こちらについては、別記事で詳しくまとめる予定です。SNSなどフォローしておいてもらえると見逃さないかと思います。)

 

 

というわけで、本記事では、

ディープラーニングの計算量を抑えながら、

よい性能も出せる学習方法

  • 転移学習

についてサクッと説明しました。

また、転移学習で使える

  • 学習済みモデル

の代表的なものをサクッと示しました。

最後に、学習済みモデルを集めたオープンなサイト

  • Model Asset Exchange(MAX)

についてサクッとご紹介しました。

 

 

 

こちらもございます↓

 

 

 

 

こちらもございます↓

「機械学習」に関する記事のまとめ(目次)はこちらからどうぞ

 

 

「画像処理」や「画像認識」に関する記事の一覧(目次)はこちらです

 

 

「Python」に関する記事の一覧はこちらです

 

 

「数学」の記事一覧をこちらにまとめました 』

 

 

↓こちら無料で読めます

(Kindle Unlimited にご登録ください)