人工知能(AI)の能力が人間を上回る領域が、より高度かつ複雑な方向へ拡大を続けている。2019年10月末には英ディープマインド(DeepMind)のAIが米ブリザードエンターテインメント(Blizzard Entertainment)のオンライン戦略ゲーム「StarCraft II」の対戦で大きな成果を上げたことが、欧米で話題となった。囲碁よりもオンライン戦略ゲームで人間に勝つことの方が、現実世界でのAI活用を目指す上で重要とされているためだ。
⇧ 地球外生命体が地球を侵略しに来るような事態が起こりえたとしても、AIが防衛してくれるっていうことですかね、夢広がりますね、どうもボクです。
ということで、「多層ニューラルネットワーク」とかが絡んでくる「深層学習(DL:Deep Learning)」なんかの「学習」の手法とかについて調べてみました。
レッツトライ~。
転移学習(TL:Transfer Learning)って?
Wikipediaさんに聞いてみる。
Transfer learning (TL) is a research problem in machine learning (ML) that focuses on storing knowledge gained while solving one problem and applying it to a different but related problem. For example, knowledge gained while learning to recognize cars could apply when trying to recognize trucks. This area of research bears some relation to the long history of psychological literature on transfer of learning, although formal ties between the two fields are limited. From the practical standpoint, reusing or transferring information from previously learned tasks for the learning of new tasks has the potential to significantly improve the sample efficiency of a reinforcement learning agent.
⇧ 超ザックリ捉えると、「学習」した結果を再利用して「学習」させていく感じみたいですね。「強化学習」にも影響を与えられる可能性があると。
「転移学習(TL:Transfer Learning)」の定義は、
The definition of transfer learning is given in terms of domains and tasks. A domain consists of: a feature space and a marginal probability distribution , where . Given a specific domain, , a task consists of two components: a label space and an objective predictive function . The function is used to predict the corresponding label of a new instance . This task, denoted by , is learned from the training data consisting of pairs , where and .
⇧ って感じで、まぁ、よく分からん感じなんだけど、
Given a source domain and learning task , a target domain and learning task , where , or , transfer learning aims to help improve the learning of the target predictive function in using the knowledge in and .
⇧「転移学習(TL:Transfer Learning)」 の目的って言うのは、「予測関数(おそらくく目的関数)」の「学習」を改善することですと。
「転移学習(TL:Transfer Learning)」のアルゴリズムは、
Algorithms are available for transfer learning in Markov logic networks and Bayesian networks.
⇧「Markov logic networks」と「Bayesian networks」のみで適応可能ってことですかね。
「転移学習(TL:Transfer Learning)」としては、
ドメイン適応(Domain Adaptation)は,転移学習(Transfer Learning)と呼ばれる学習手法の一種です.十分な教師ラベルを持つドメイン(Source Domain,ソースドメイン)から得られた知識を,十分な情報がない目標のドメイン(Target Domain, ターゲットドメイン)に適用することで,目標ドメインにおいて高い精度で働く識別器などを学習します(ここで、ドメイン(Domain)とは,データの集まりを指す言葉です).
⇧「ドメイン学習(Domain Adaptation)」って手法があるそうな、というか、それ以外にも手法があるのかもしらんが、調べ方が分からん...
⇧ 上記サイト様によりますと、「マルチタスク学習(Multitask Learning)」も「転移学習(TL:Transfer Learning)」ってことらしい。
Fine Tuningって?
Wikipediaさんに聞いてみるも、
In theoretical physics, fine-tuning is the process in which parameters of a model must be adjusted very precisely in order to fit with certain observations.
Although fine-tuning was traditionally measured by ad hoc fine-tuning measures, such as the Barbieri-Giudice-Ellis measure, over the past decade many scientists recognized that fine-tuning arguments were a specific application of Bayesian statistics.
⇧ とあるように、どうも「theoretical physics」における「Fine Tuning」についての言及であって、「機械学習(ML:Machine Learning)」や「深層学習(DL:Deep Learning)」についての「Fine Tuning」は言及してくれてない模様。
ネット検索してたら、
arXiv(アーカイヴ、archiveと同じ発音)は、物理学、数学、計算機科学、定量生物学、計量ファイナンス、統計学の、プレプリントを含む様々な論文が保存・公開されているウェブサイトである。論文のアップロード(投稿)、ダウンロード(閲覧)ともに無料で、論文はPDF形式である。1991年にスタートして、プレプリント・サーバーの先駆けとなったウェブサイトである。大文字の X をギリシャ文字のカイ(Χ)にかけて archive と読ませている。
現代(2019年)においてはこうした仕組みのサイトは特に珍しいものでもない。しかし、arXivの設立当初(1990年代初頭)においては、学術出版社や大学図書館を介さずに研究者同士がインターネットを介して直接に論文をやりとりできる場として、学術出版関係者に大きな驚きをもって受けとめられた。
2015年8月現在106万報以上の論文が保存されている。毎月8,000報を超える論文が追加されている。1991年、LANL preprint archiveという名称でロスアラモス国立研究所を運営元としてスタートし、1999年にarXiv.orgと改名。現在はコーネル大学図書館が運営元となっている。
⇧ って情報があって、
「CNN(Covolution Nueral Network)」の研究についてのPDFに「Fine Tuning」の説明があって、
Fine-tuning [6] modifies the parameters of an existing CNN to train a new task. The output layer is extended with randomly intialized weights for the new task, and a small learning rate is used to tune all parameters from their original values to minimize the loss on the new task. Sometimes, part of the network is frozen (e.g. the convolutional layers) to prevent overfitting.
⇧とあって、[6] は、
[6] R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation,” in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), June 2014.
⇧ ってあるから、2014年に開催された「IEEE」のカンファレンスの「Computer Vision and Pattern Recognition (CVPR)」の分野で定義された言葉ってことなんですかね?
で、「Fine Tuning」は、
Feature extraction and fine-tuning are special cases of Domain Adaptation (when old and new tasks are the same) or Transfer Learning (different tasks).
⇧ まさかの「Domain Adaptation」や「Transfer Learning」における特殊なケースのことである、って言っておりますね。
というか「Domain Adaptation」って「Transfer Learning」の一種じゃなかったのか...
「転移学習(TL:Transfer Learning)」と「Fine Tuning」の違いって?
で、結局のところ、「転移学習(TL:Transfer Learning)」と「Fine Tuning」の違いって何なのよ?
ファインチューニングとは、学習済みモデルの一部もしくはすべての層の重みを微調整する手法です。転移学習では、学習済みモデルの重みを固定して用いますが、ファインチューニングでは学習済みモデルの重みを初期値とし、再度学習によって微調整します。
⇧ 上記サイト様が分かりやすいです。
つまり、
- 転移学習(Transfer Learning)
学習済みモデルには手を加えず、学習を行い新たにモデルを作成 - Fine Tuning
学習済みモデルにも手を加えて、学習を行い新たにモデルを作成
ってことかと。
「学習済みモデル」をどう利用するかが異なるってことですかね。
学習済みモデルは公開されている
CNN(Convolution Nueral Network)のように「ニューラルネットワーク」の層が深いものになってくると、性能の良いモデルを一から作るには計算処理のための莫大なのリソースとかが必要になってくるため、大学や企業の研究チームなどが「学習モデル」を公開してくれています。
ちなみに、「深層学習(DL:Deep Learning)」なんかでは「CPU」よりも「GPU」によって処理することが多いらしいです。
「CPU」と「GPU」の違いについては、
⇧ 上記サイト様が詳しいです。
話が脱線しましたが、「画像分類」の「学習モデル」なんかは、
⇧ PyTorchの公式サイトで公開されてるっぽいです。
「PyTorch」が何なのかというと、
PyTorchはフリーでオープンソースのソフトウェアであり、修正BSDライセンスで公開されている。Pythonインターフェイスの方が洗練されており、活発に開発が行われているが、C++インターフェイスも存在する。
PyTorchは次の2つの高度な機能を備えている。
- 強力なGPUサポートを備えた(NumPyのような)テンソル演算ができる
- テープベースの自動微分システムの上に構築された深層ニューラルネットワークが利用できる
⇧ ということみたいね。
ちなみに、
⇧ 日本でも「産総研(国立研究開発法人産業技術総合研究所)」とかが、「学習モデル」を公開してくれてる模様。
「PyTorch 」 は、環境構築が非常に面倒くさそうなのですが、何とGoogleさんが「Google Colaboratory(Colab)」という無料で利用できる環境を用意してくれております!
ただし、
⇧ というように、時間制限があるところが要注意ですかね。
「Google Colaboratory(Colab)」は、Googleアカウントがあれば利用可能です。(Gmailとか使ってれば、Googleアカウントがあるということになるのですぐに使えますかね。)
モデルを学習させる方法がいろいろあって混乱しますかね...
毎度、モヤモヤ感がいっぱいですな...
今回はこのへんで。