C++ AMP を通して GPU 上で計算をしていると、TDR という仕組みによる例外が発生することがあります。
TDR とその対応については以下のページに詳しく解説されています。
C++ AMP を通して GPU 上で計算をしていると、TDR という仕組みによる例外が発生することがあります。
TDR とその対応については以下のページに詳しく解説されています。
産業技術総合研究所の一杉裕志氏のサイトで 氏は大脳皮質の計算論的モデル BESOM を提案しています。 それは4つの機械学習技術(自己組織化マップ、ベイジアンネット、独立成分分析、強化学習)を 組み合わせたもので、 すでにプログラムがありソースコードも公開されています。 その機能はもちろんまだ実際の人間の脳の機能からは程遠いとはいえ、 ここまで具体的な脳のモデルを既知の技術の組み合わせにより提示できるということが、 機械学習の進歩を物語っていると思います。
実際の脳にできることを考えてみると、脳の機能をコンピューター上で実現しようとするときの必要条件が見えてきます。
例えば
ここで思考実験として、脳のコネクショニスト(つまりニューラル・ネットを用いた)モデルを 人間の脳が持つ能力から逆算しながら構成するということを試みたいと思います。 つまり、知能の個体発生(認知の発達過程)をたどりながら、人間の脳が備えている能力と、 それをニューラル・ネットの手法によって実現する方法を考えていきます。
ニューラルネットをプログラムするときに、ランダムな置換 (ここでは $ 0 $ から $ n-1 $ までの数がランダムな順で並んだものと考えます)が 必要になることがあります。例えば、
ランダムな置換を得るには Knuth shuffles という便利なアルゴリズムがあります。これは $ 0, 1, \ldots, n - 1 $ という シーケンスに対し、$i$ 番目と、$ 0, \ldots, i $ からランダムに選んだ $j$ による $j$ 番目とを入れ替える、という操作を $i = 0, 1, \ldots, n-1$ について 繰り返すというものです。
変数の初期化も同時にやってしまうのが以下のコードです。
ニューラルネットによる文字認識プログラム CharRecog を GitHub にアップしました。
すぐに使えるよう 64 ビット版のバイナリもアップしています。 MNIST 画像セットを使って autoencoding や dropout などの実験が簡単におこなえます。
今後も気になる手法があればインプリメントしていく予定です。 また、画像認識や言語処理のための高速なNNエンジンとしても使えるようにしていきたい。
とても似た内容の二つの論文を読んでみました。 多層パーセプトロンのアクティベーション関数としてシグモイドや tanh のかわりに max を使うと文字認識などでの認識率が上がる、という話です。
二日がかりでようやく Github + Octopress のサイトを立ち上げました。