#author("2021-05-14T06:23:56+00:00","default:mizutu","mizutu")
[[AI推進準備室]] > AIrepVol2
* 「私的AI研究会」レポート VOL.2 [#m7ef1b10]
#contents
RIGHT:&size(12){※ 最終更新:2021/05/14 };

** ディープラーニング覚書 [#ue361183]
*** ニューラルネットワークとディープラーニングの違い [#f99a0343]
 ニューラルネットワークを多層化して、特徴量を自動的に決定する手法がディープラーニング。~
 ニューラルネットワークがベースの手法であり、ニューラルネットワークを応用した手法がディープラーニング。~

*** フレームワークとライブラリとの違い [#v8376397]
- フレームワークは、プログラムを作るひな形。ライブラリはプログラムを作るのに適宜必要とされる道具のようなもの。~
自動車で例えると言うと、タイヤやハンドルにあたるのがライブラリ。一から作ることはできるが、専門店などで買った市販のタイヤを使う方が簡単。~

- ライブラリは、その都度必要なものを追加で使っていくが、フレームワークの場合は、一つのフレームワークを使ってプロダクトを作ることが多く、どのフレームワークを使うかの選定は重要。~

*** 代表的なフレームワーク [#g53a4e2f]
|CENTER:|LEFT:260|LEFT:|c
|名称|概要|特徴|h
|TensorFlow|Google Brainチームによって2015年に開発され、ディープラーニングフレームワークの中で現在最も人気のあるフレームワーク。GmailやGoogle翻訳などに使われているフレームワーク。|・C++とPythonで書かれている&br;・ドキュメンテーションが充実している&br;・iOSやAndroidなどのモバイルのプラットフォームでも利用できる&br;・Tensorboardと呼ばれる、訓練過程を観察できる機能がついている|
|PyTorch|Facebookの人工知能グループによる開発からスタートし、2016年にリリース。TensorFlowの人気に最も近い。|・構文がわかりやすい&br;・研究者の間で人気(論文で発表されたモデルの実際のコードは、PyTorchで書かれたものが比較的見つかりやすい)&br;・pdbやPyCharmなどのデバッガーが使える&br;動的な計算グラフ(学習速度は落ちるものの、柔軟なモデルの構築が可能)|
|Keras|Francois Chollet氏(現在はGoogleのエンジニア)を中心として2015年に開発。現在はTensorFlowに取り込まれ、tf.kerasの形で使われるのが一般的。|・モデルの構築がとても簡単で、初心者にとってもわかりやすい&br;・素早く実装できるので、プロトタイプの作成時に便利&br;・TensorFlow、CNTK、Theanoという複数のバックエンドをサポート|
|Caffe|Yangqing Jia氏が、カリフォルニア大学バークレー校の博士課程在学中に始めたプロジェクト。同校のBAIR(Berkeley Artificial Intelligence Research)を中心に開発が行われ、2017年にリリースされた。|・画像認識などの処理が得意&br;・開発コミュニティが活発&br;・動作が速い|
|Microsoft Cognitive Toolkit|マイクロソフトによって開発されたMicrosoft Cognitive Toolkitは、元々CNTKという名前で2016年にリリースされたが、同年10月に現在の名前に変る。Skypeなどにも使われている。|・リソース効率が良い&br;・ONNXフォーマット(ディープラーニングモデルを異なるフレームワーク間で交換するためのフォーマット)を初めてサポート&br;・巨大データセット処理時のパフォーマンス低下を最小化するためのアルゴリズムが組み込まれているので、複雑マシンで巨大データセットを扱える&br;・コミュニティはそこまで発展していない|
|MxNet|CMU(カーネギーメロン大学), NYU(ニューヨーク大学), NUS(シンガポール国立大学), MIT(マサチューセッツ工科大学)など、様々な大学からの研究者が協力して開発され、2016年にAWS(Amazon Web Service)によるサポートが発表された。|・高いスケーラビリティ&br;・モバイルデバイスも対応可&br;・Python, R, Scala, JavaScript, C++など多くの言語に対応&br;・研究者の間での人気はあまり高くなく、コミュニティもそこまで発達していない&br;・命令的プログラムと宣言的プログラムの併用が可能|
|Chainer|日本のベンチャー企業である、PFN(Preferred Networks)によって開発。2019年12月に開発を終了し、PyTorchへ移行されることが発表さたが、define-by-runというアプローチを他のフレームワークに先駆けて提唱するなど、後に続くフレームワークにも少なからず影響を与えた。|・国内での人気が高い&br;・TensorFlowのように計算グラフを定義してから計算を実行するのではなく、計算と同時に計算グラフを定義するので、モデルの再構築が楽(これがPyTorchなどの動的計算グラフにつながる)|

*** AI エッジ・コンピューティング [#a26dbd97]
 それぞれのフレームワークは、「学習フェーズ」「推論フェーズ」酔いう2段階のプロセスで処理を行っている。~
学習フェーズについてはその処理の重さからエッジ処理は難しい。どのフレームワークを使っても「学習フェーズ」で得られた学習済みモデルを使って、エッジコンピュータでは「推論フェーズ」の処理を実装している。~
※ OpenVINO は「学習フェーズ」は実行できないが、「推論フェーズ」の処理をフレームワークの違いを吸収して実行できるメリットがある。~

*** AI 入門 [#ib48ddf0]
 下記のNTTデータ先端技術株式会社の「(コラム) 人工知能の過去、現在、未来」が解りやすい。
- [[第1回 人工知能(AI) 入門の入門>+https://www.intellilink.co.jp/column/ai/2018/111400.aspx]]~
- [[第2回 人工知能(AI) ニューラルネットワークと深層学習>+https://www.intellilink.co.jp/column/ai/2019/022500.aspx]]~
- [[第3回 人工知能(AI) ディープラーニング(深層学習)の仕組み>+https://www.intellilink.co.jp/column/ai/2019/031400.aspx]]~
- [[第4回 ディープラーニング(深層学習)のブラックボックス問題と課題>+https://www.intellilink.co.jp/column/ai/2019/041100.aspx]]~
- [[第5回 ニューラルネットの調整と強化学習>+https://www.intellilink.co.jp/column/ai/2019/100700.aspx]]~

** 更新履歴 [#d4edf536]
- 2021/05/14 初版

* 参考資料 [#p4ab5ac8]
- [[まとめて解説!機械学習・深層学習で使われるフレームワーク7選>+https://ainow.ai/2020/08/07/224868/]]~

#br