見出し画像

転移学習完全理解!

みなさん、おはようございます!

もう5月ですね!

自粛疲れもあるかと思いますが、もう少し頑張りましょう!

今日のnoteは、深層学習の転移学習というトピックをご説明します。(300円、6800文字以上)

目指すのはもちろん完全理解です!笑

では早速始めましょう!

スライド1

前提知識

これから転移学習(Transfer Learning)の話をしますが、その前にまず前提知識を確認しましょう。

転移学習は深層学習の仕組みを利用しますので前提知識としては、まずニューラルネットワークの理解と、深層学習(例えば畳み込みニューラルネットワーク)の理解が不可欠です。

ニューラルネットワークと畳み込みニューラルネットワークの詳細な解説も以前noteを出しましたので、初めての方、あるいはそのトピックを再確認したい方は、ぜひ合わせてお読みいただければ幸いです。

また余談ですが、このマガジンで一番人気の記事もよかったら読んでください。きっと機械学習、深層学習の書籍選びに役に立つと思います。

では始めましょう!

転移学習とは

スライド2

まず、一番最初に転移学習の概念を簡単に表現しました。後ほどまた詳細に砕けて説明しますが、まず概要を頭に入れてみましょう。

転移学習は、学習済のニューラルネットワークを再利用して、少量のデータでターゲット課題を高精度で実現する手法です。

上の図にあるように、「学習済ニューラルネットワーク」、「再利用」、「少量のデータ」、「高精度」がここの注目すべきキーワードです。

・学習済ニューラルネットワーク:ここでは特に大量の良質なデータを使って学習したニューラルネットワークです。

・再利用は、中古の品物の再利用というようなニューアンスよりは、take advantage of、活かす、活用するという意味合いの方が近いかと思います。また、何を再利用するかというと、ニューラルネットワークの構造をほぼそのまま利用することと、学習済のパラメータもそのまま再利用するという意味合いです。

・少量のデータというのは、取り込む新しい課題ではなかなか良質なデータを大量に集められないとき、少量のデータを使うしかない状況です。

・高精度:これからも説明しますが、本来は少量のデータで高精度になる学習はほとんどできませんが、転移学習という手法を利用すると、少量のデータをそのまま学習するよりは高い精度を達成できます。

これから詳しく説明していきます。

転移学習を利用しない場合

CNNモデルの例を見てみましょう。

スライド3

例えば、上の図のように、学習済のCNN(畳み込みニューラルネットワーク)があるとします。

このCNNでは、大量の高品質のデータを使って学習しました。

例えばImageNetの画像データを使って学習する深層学習のニューラルネットワークはよくこの話題に出てきますが、これらは大体1000種類の物体を分類することができます。

ImageNetの大量(数百万枚の画像データ)のデータを使って、かつ深層(数十、数百層のニューラルネットワーク)を重ねて、学習した結果、非常に高い精度を達成できます。

下の図のように2017年の時点で、機械(深層学習の手法を利用した)の分類精度はすでに、人間よりエラー率が低くなっています。(SENetは02.3%のエラー率、人間は5.1%のエラー率)

スライド47

引用先:http://image-net.org/challenges/talks_2017/ILSVRC2017_overview.pdf

また、レントゲン写真で乳がんの診断で、医師より高い正解率で乳がんの検出ができるという論文も出ています。

しかし、一方で、現実世界ではいざデープラーニングのプロジェクトを初めて、やろうとすると、往々にして良質なデータを大量に集めるのがなかなか大変です。

おそらく読者の中にもこういう苦い経験をお持ちでしょう。実際によくあるシナリオですね。


スライド4

みなさんご存知の通り、ニューラルネットワークも深層学習の威力を発揮するには、大量のデータが必要です。少量のデータでは、なかなか高い分類精度を出せません。

ここから先は

5,187字 / 5画像

¥ 300

株式会社虹賢舎 CEO 著書:https://amzn.to/39KwlE4 技術ブログ:https://kokensha.xyz 機械学習 深層学習 Python /JS IoT Raspberry Pi ロボット TOEIC950 https://gosen.world