「deep learning」カテゴリーの記事一覧
やっていたのはRNNだった
ディープラーニングで相場の動きを予測しようと独学で研究したきたが,今日参考文献を読んでみて私がシコシコ作ってきたディープラーニングはRecurrent Neural Networkであることが分かった.相場は時系列データを利用するから自然にこうなった.世の中的には画像系の応用が多く,それはCNN(=Convolutional Neural Network)が使われるそうだ.なるほどねえ.
参考文献を使わずに研究するとは無駄な回り道をしているだって?いや,その方が物事を深く理解できるんだよ.
何十年かぶりに計算が終わるのを待ったよ
アマゾンで1位の”ゼロから作るDeep Learning“を読んでいる.プログラムを手で打ち込んで走らせると理解が深まるとの方針のもと,さまざまなプログラムが載っていて,それを走らせながらDeep Learningを学んでいく.最初は軽いプログラムだったが,学習関係のプログラムは行数こそ少ないが重くなってきた.勾配(損失関数の重みによる偏微分)の計算をPythonインタープリターで走らせたら,1分たってもプロンプトが返ってこない.CPUロードをみると4なので計算しているみたいだ.いちおうXEON 3.8GHzのデュアルなんだけど.こんなことは久しぶりだ.Z80のマイコンでWICSコンパイラで書いたシミュレーションプログラムを走らせていた頃以来だ.フリーズしたのかなとちょっと不安になったが,珈琲を入れに行っている間にプロンプトが返ってきた.勾配はちゃんと計算されていた.これくらい時間がかかるとコンピューターを使って良かったと思えるなあ.
オブジェクト指向プログラミング言語は読みにくい
Pythonで書かれたプログラムを読んでいる.classの記述が出てくるととたんに読みにくくなる.C++でもクラスが出てくると読みにくくなっていた.オブジェクト指向プログラミング言語で読みやすかったのはsmalltalkだけだった.なぜだろう.私だけか?それとも一般的なことか?
私だけでないのだとしたら,オブジェクト指向プログラミングは生産性を上げるなんて大間違いで,その逆ということになる.本当のところはどうなのだろう.オブジェクト指向プログラミング言語で開発された市販のソフトウェアに多くのバグが入っていると考えると,後者じゃないのか.私はオブジェクト指向は使うべきではないように思う.アセンブラ言語で書いていた頃はそんなにバグは出なかったように思う.
Pythonの3にはexecfile()がない
Pythonのコマンドプロンプトから,xxx.pyを実行したかったんだが,Python3.6.1にはexecfile()が無かった.ネットをさまよったら,やっと方法が分かった.こんな基本的なこと,入門本に書いて欲しかったよ.
pythonでmatplotlibをimportでエラー
import matplotlib.pyplot as pltとやるとエラーになる.Tkが入ってないからだ.
apt-get install tk-dev
をやってpythonを再インストール(しないとダメだった)
pyenv uninstall 3.6.1
pyenv install 3.6.1
CSLAIERでTensorFlow
CSLAIERにはTensorFlowも選べる.ドキュメントによるとTensorFlowのバージョンは0.11までとなっている.しかし,TensorFlowのサイトにあるバージョンは今は0.12~1.2だけだ.ダメもとで1.2を入れてみた.
sudo pip install tensorflow
CSLAIERでTensorFlowを選んで走らせてみると,やっぱりエラーになった.CSLAIERは古すぎて使えないというのが結論だ.deep learningで遊ぶのなら他の遊び方を考えた方がよさそうだ.
CSLAIERでChainer
CSLAIERでChainer2.0.0を動かしていたんだが,学習が終わらない.ソースの変更が間違っているのじゃないかという気がしてきた.Chainerをversion1に戻してやり直し.GPUを持っていないのでまたしばらく待つことになる.
$sudo pip uninstall chainer
$sudo pip install chainer==1.8.1
でバージョンが1に戻る.