SimpleNet.java の forward() 計算で、bias を使用しないというバグがあったため、JCudaNNKernel.cu とともに修正しました。ただ、bias があってもなくても正答率に目立った変化はないようです。
JCuda 版ニューラルネットのソースコード解説は、現在作成中です。完成にはあと2〜3日かかると思いますので、好ご期待。
AutoEncoder 系のライブラリも作成中ですが、まだ動きません。
気ままな技術者生活から人生について考える
SimpleNet.java の forward() 計算で、bias を使用しないというバグがあったため、JCudaNNKernel.cu とともに修正しました。ただ、bias があってもなくても正答率に目立った変化はないようです。
JCuda 版ニューラルネットのソースコード解説は、現在作成中です。完成にはあと2〜3日かかると思いますので、好ご期待。
AutoEncoder 系のライブラリも作成中ですが、まだ動きません。
隠れ層のある場合のニューラルネットにおける逆誤差伝搬法の数式が間違っていたのを修正しました。
また、 の微分評価式が間違っていたのを修正しました。
正しくは となります。
以上訂正した記事をアップロードしました。
JCuda の記事として、デバイスメモリの使い方〜カーネルの記述までを追加しました。
preparePtxFile() は JCuda というよりは JCudaDriverSample の機能なので、敢えて解説していません。
次はいよいよ JCuda を使ってニューラルネットを構築します。
JCuda ライブラリの利用方法を説明するためのプロジェクト JCudaSimple をGitHubにアップロードしました。
中身はほとんど JCudaDriverSample と同じですが、Java8 風に書き換えてあります。外部 JAR として jcuda, jcuda-natives を参照しているので、ここだけ各自の環境にあったファイル名に書き換えてください。
解説記事は一両日中に書きたいと思います。
このホームページを拡張してサブフォルダを作ってみたり、他のサイトを参照したりした結果、scrayping.py がエラーを出力するようになりました。
このバグを修正した版を GitHub に上げておきました。
意外に修正が難しかった。
GitHub.com に検索エンジンのソースコードを追加しました。
まだ N-gram ベースのプログラムしかありませんが、おいおい他のテクノロジーベースのエンジンも収録していきたいと思っています。
詳細はそのうちホームページに記述したいと思いますが、プログラムは以下のような構成になっています。
なお、前の記事にも書いたとおり、まだ And/Or 検索条件が書けません。
N-gram ベースの検索エンジンが動くようになりました。結局、索引ファイルの作成は python3 で、検索エンジンは php で組んでみました。
索引ファイルはここでは作成できないので、別のマシンで随時作成したものをアップロードします(ちょっとださい)。
なお、検索対象はホームページ側の記事のみで、ブログ記事は検索されません。ブログを検索したい場合はブログの中で検索をかけてください。
And/Or 検索も実装されていませんが、そのうち実装したいと思います。
しかし、たったこれだけ実装するのに1日かかるとは、コーディングの実力が落ちたもんだ。。。
しばらく前から Google のサイト内検索を使うサイトばかりになって、自力で検索エンジンを組み立てることがなくなった。
しかし、Google だと正確な and/or 検索をさせることができなくってしまったので、自前のエンジンが欲しいことがある。
どうせヒマになるし、また作ってみることにした。今度は転置行列は C で記述するが、検索は PHP で行うことを目標とする。(このサイトがユーザコマンドの実行を許していないようだという事情もある。)
ちょっとまだるっこしいが、ページが増える度に外からクローリングしてページを収集し、転置行列を生成して戻すというやり方でやってみることにする。
ようこそ、TeqStock の小部屋へ!
このブログでは、主にソフトウェア技術(一部ハードウェアもあり)について、自分が見聞したことについての感想や考察をランダムに上げていきたいと思っています。
ある程度内容がまとまったらホームページに整備するかもしれません。