「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- 深層学習(deep learning)について纏める。
- 多層構造のニューラルネットワークを用いた機械学習
- ニューラルネットワークの多層化(特に3層以上のもの)に対し、
によるスパース・コーディング理論を
基にしたアルゴリズムが実装されたもの。
詳細 †
- 多層構造のニューラルネットワークに画像などのデータを入力すると、
情報が第1層からより深くへ伝達されるうちに、各層で学習が繰り返される。
- この過程で、画像や音声などのデータの
研究者、技術者が手動で設定していた特徴量が自動で計算される。
- この階層的な特徴量の学習が、深層学習が従来の機械学習と決定的に異なる点である。
- この技術は、画像認識や音声認識等の分野に活用される。
歴史 †
- 2012年には、Googleの開発したグーグル・ブレインが、猫の概念を学習することに成功した。
- 先駆的な概念・手法は1980年前後からあった。
- 2006年にニューラルネットワークの代表的な研究者であるジェフリー・ヒントンらの研究チームが
制限ボルツマンマシンによるオートエンコーダの深層化に成功し、発表した論文において深層学習(deep learning)という用語を使用した。
この研究成果が、現在の深層学習(deep learning)に直接繋がる技術的ブレイクスルーと見られている。
- 2012年からは急速に研究が活発になり、第三次人工知能ブームが到来したとされている。
第三次人工知能ブーム以後は、機械学習は単なる一時的な流行を超えて社会インフラとして広く定着して行っているようである。
技術的特異点に至るロードマップに関しても真面目に議論されるようになった。
- これはAI研究に関する大きなブレイクスルーであり、学習方法に関する技術的な革新である、とも指摘されている。
言語 †
Python †
- 本体部分は必要最小限に抑えられている。
- 豊富で大規模な文書
- さまざまな領域に対応する大規模な標準ライブラリやサードパーティ製の
ライブラリが提供され、本体にない機能はその都度呼び出して使用する。
- 多くのハードウェアとOSに対応(Linux版、Mac版、Win版、32/64bitが存在)
- 複数のプログラミングパラダイムに対応している。
- 動的型付け言語
- 参照カウントベースの自動メモリ管理(GC)を持つ。
- Pythonのリファレンス実装であるCPythonは、OSS。
バージョン †
- 2.x 系のバージョンと 3.x 系のバージョン(現時点では、Python 3.5)が存在。
- 2.x 系と3.x 系には互換性がない。
- Python 2.x はレガシー
- Python 3.0 が Python 言語の現在と未来
ディストリビューション †
- Anaconada
- Continuum Analytics社によって提供されているPythonのディストリビューションの一つ。
- Python 本体に加え、科学技術、数学、エンジニアリング、データ分析など、
よく利用される Python パッケージを一括でインストール可能
- conda
- パッケージ管理システム
- バージョン管理
- 仮想環境管理
ライブラリ †
- 数値計算を効率的に行うための拡張モジュール
- 効率的な数値計算を行うための型付きの多次元配列のサポートをPythonに加える。
- 多次元配列を操作するための大規模な高水準の数学関数ライブラリを提供する。
Matplotlib †
- プログラミング言語Pythonおよび
- その科学計算用ライブラリNumPy
のためのグラフ描画ライブラリ
- オブジェクト指向のAPIを提供しており、様々な種類のグラフを描画する能力を持つ。
- 描画できるのは主に2次元のプロットだが、3次元プロットの機能も追加されてきている。
- BSDスタイルのライセンスの下で配布されている。
フレームワーク †
Caffe †
Python, C++
TensorFlow? †
Python, C++
Chainer †
Python
Theano †
Python
ファースト・ステップ †
インストール †
参考 †
One Learning Theory †
- 脳科学の世界には「One Learning Theory(たった一つの学習理論)」と呼ばれる仮説がある。
- それは「視覚野」、「聴覚野」、「感覚野」など、大脳皮質の異なる領域が実は同一の認知機構に従って動作している、とする仮説である。
- これが正しければ、視覚野の認知機構に基づくスパース・コーディングは単に画像認識のみならず、例えば聴覚(つまり音声認識)など他の分野にも応用できる。
スパース・コーディング †
- 入力の一部または全体を、辞書に含まれる要素の組み合わせで表現しようというもの。
- スパースなデータ表現とは、データを表現するための辞書を用意し、その要素のできるだけ少ない組み合わせでデータを表現すること。
特徴量 †
- 問題の解決に必要な本質的な変数
- 特定の概念を特徴づける変数
である。
- この特徴量を発見できれば、
- あらゆる問題の解決につながったり、
- パターン認識精度の向上や、
- フレーム問題の解決につながったりする
と期待されている。