「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
深層学習(deep learning)について纏める。
によるスパース・コーディング理論を
基にしたアルゴリズムが実装されたもの。
特徴 †
- 多層構造のニューラルネットワークに画像などのデータを入力すると、
情報が第1層からより深くへ伝達されるうちに、各層で学習が繰り返される。
- この過程で、画像や音声などのデータの
研究者、技術者が手動で設定していた特徴量が自動で計算される。
- この階層的な特徴量の学習が、機械学習と決定的に異なる点。
- この技術は、画像認識や音声認識等の分野に活用される。
歴史 †
言語・ライブラリ †
言語 †
R言語 †
ライブラリ †
フレームワーク †
Caffe †
Yangqing Jiaら当時Berkeleyのメンバーが中心に2013年頃
開発したオープンソースのディープラーニングフレームワーク
- Convolutional Architecture for Fast Feature Embedding.
- 前身はDeCAF (Deep Convolutional Activation Feature)
言語 †
Python, C++
特徴 †
- コードを書かなくても設定ファイルだけで動かせる
- 容易に拡張できるコード設計
- PythonとMatlabからも使える
- 高速(C++実装、GPUをシームレスに使い分け)
- Githubの活発な開発コミュニティ
- 画像認識向き
参考 †
TensorFlow? †
- Googleによって開発された。
- 現在は、Googleのサービスの研究と生産に使用されており、
クローズドソースのDistBelief?の役割をほぼ置き換えている
言語 †
Python, C++
特徴 †
人間が用いる学習や論理的思考と似たように、
パターンや相関を検出し解釈する
ニューラルネットワークを構築、訓練の要求を満たす。
参考 †
Chainer †
- 株式会社Preferred Networks(PFN)からリリース。
- 2019年12月5日、PyTorchに順次移行すると発表。
言語 †
Python
特徴 †
特⻑:様々なNNを直感的に記述可能
- NNの構築をPythonのプログラムとして記述
- CuPy?によるCPU/GPU agnosticなコード記述
- 動的なNN構築(Define-by-Run)
参考 †
Theano †
言語 †
Python
特徴 †
Numpyのように計算手続きを記述するのではなく, 数式そのものを記述.
- このことによって, 計算対象となる行列等の実体のプログラム内での
引き回しを考える事なく, 最適化やGPUによる高速化の恩恵が受けられる.
- また, 微分を (数値的ではなく) 解析的に実行する事が出来る.
参考 †
PyTorch? †
- Facebookの人工知能研究グループ(FAIR)により開発された。
- 修正BSDライセンスで公開されている。
- 様々なソフトウェアに利用されている。
言語 †
インターフェイス
- Pythonインターフェイス
洗練されており、活発に開発が行われている。
特徴 †
- 強力なGPUサポートを備えた(NumPyのような)テンソル演算ができる
- テープベースの自動微分システムの上に構築された深層ニューラルネットワークが利用できる。
参考 †
ONNX †
Open Neural Network Exchange (ONNX)
概要 †
- オープンソースの機械学習や人工知能のモデルを表現する為の代表的なフォーマット
- 機械学習フレームワーク間において相互運用を可能にする為の取り組み
参考 †
ファースト・ステップ †
開発環境 †
インストール †
アルゴリズム †
参考 †
Wikipedia †
One Learning Theory †
- 脳科学の世界には
「One Learning Theory(たった一つの学習理論)」
と呼ばれる仮説がある。
- それは「視覚野」、「聴覚野」、「感覚野」など、大脳皮質の異なる領域が、
実は同一の認知機構に従って動作している、とする仮説である。
- これが正しければ、視覚野の認知機構に基づくスパース・コーディングは、
単に画像認識のみならず、例えば聴覚(つまり音声認識)など他の分野にも応用できる。
スパース・コーディング †
- 入力の一部または全体を、辞書に含まれる要素の組み合わせで表現しようというもの。
- スパースなデータ表現とは、
- データを表現するための辞書を用意し、
- その要素のできるだけ少ない組み合わせでデータを表現すること。
特徴量 †
- 問題の解決に必要な本質的な変数
- 特定の概念を特徴づける変数
である。
- この特徴量を発見できれば、
- あらゆる問題の解決につながったり、
- パターン認識精度の向上や、
- フレーム問題の解決につながったりする
と期待されている。
ゼロから作るDeep Learning †
https://www.oreilly.co.jp/books/9784873117584/
サンプル †
https://github.com/oreilly-japan/deep-learning-from-scratch