覚え書きブログ

読者です 読者をやめる 読者になる 読者になる

Tensorflow v1.0.0への移行

Tensorflow v1で、v0.12で書いたコードを実行すると下記のようなモジュールにpackが無いとか、Splitのsplit_dimの入力がおかしいなどのエラーがでる。 AttributeError: 'module' object has no attribute 'pack' TypeError: Input 'split_dim' of 'Split' Op…

シーケンスGAN

AAAI-17にて、Lantao YuらによるGAN(Generative Adversarial Net)のフレームワークで、強化学習のpolicy gradientを学習し、テキストや音楽などのシーケンスを生成する方法に関する論文が発表される。 SeqGAN: Sequence Generative Adversarial Nets with …

Deep Learning覚え書き(TensorflowのWindows版0.12rc1のインストール)

前回インストールしたWindows版のTensorflow0.12rc0では、tensorboardが正しく動かない(ブラウザからアクセスするとwebcomponentsjsがnot found)問題があった。その後リリースされた0.12rc1ではTensorboardの問題が解消されているらしいので早速インストー…

Deep Learning覚え書き(TensorflowのWindows版インストール)

ついに、Tensorflowのバージョン0.12.0rc0でWindowsに対応したので、早速インストールしてみた。 https://www.tensorflow.org/versions/r0.12/get_started/os_setup.html#pip-installation-on-windows 1)まず、CUDA8(cuda_8.0.44_win10.exe)とCUDNN5.1を…

Deep Learning覚え書き(WindowsでTensorflow GPU編)

前回はwindowsでCPU用のdockerでTensorflowを動かしてみた。 hirotaka-hachiya.hatenablog.com今回は、GPU上でTensorflowを動かすために、GPU版のイメージを使ってdockerコンテナを起動する。 > docker run -it gcr.io/tensorflow/tensorflow:latest-devel-g…

Deep Learning覚え書き(WindowsでTensorflow)

前回インストールしたDocker上でTensorflowをインストールしてみた。Tensorflowでは、4種類のDocker用のイメージを提供している。 gcr.io/tensorflow/tensorflow: CPU版イメージ gcr.io/tensorflow/tensorflow:latest-devel: CPU版イメージ+ソースコード g…

Deep Learning覚え書き(Binary化)

Deep Learningのパラメータをバイナリ―化(-1と1にエンコード)することにより、必要なメモリ容量を抑え検出を高速化する方法がある。 有名なバイナリ―化方法としては、下記の2つが知られている。1)BinaryConnect:パラメータ自体は連続値で持っておいて、…

Deep Learning覚え書き(Batch Normalization)

Deep Learningの各階層の入力データの分布は、学習の過程において、下位層のパラメータが更新されることにより変化する。各階層の勾配は、ミニバッチ内で平均をとることにより推定しているが、この分布の変化により推定に、ミニバッチごとに異なるバイアスが…

Deep Learning覚え書き(Chainerで複数ネットワークの切り替え)

chainer1.9.1のMNISTのサンプルコードに、回帰およびCNNのネットワーク構造を追加し、引数で切り替えられるようにしてみた。 現時点での最新のChainerのバージョンは、1.12.0で、MNISTのサンプルコードは大分変っている。Chainer1.9.1は下記からダウンロード…

Deep Learning覚え書き(chainerでネットワーク構造の可視化)

ChainerのMNISTのサンプルコード(examples\mnist\train_mnist.py)を実行すると、第1epochの第1ミニバッチでネットワーク構造をgraph.dotファイルに出力(下記のスクリプト)する。 if epoch == 1 and i == 0: with open('graph.dot', 'w') as o: variabl…

Deep Learning覚え書き(convolutionとpoolingの出力サイズ)

初歩的なことだが、convolution層とpooling層の出力サイズについてメモっておく。 Caffeのprototxtでは、各層の定義において前の層を設定すれば、自動的に入力数が決定するようになっていたが、Chainerでは各層の入力数を手動で設定しなければならない。つま…

Deep Learning覚え書き(WindowsへのChainerのインストール)

前回、CUDA7.5をインストールしたWindowsに、chainerをインストールしてみた。 hirotaka-hachiya.hatenablog.com環境としては、 Windows10 64bit + GTX980 CUDA Toolkit 7.5 Anaconda 2.4.1 (Python 2.7.11) である。とりあえず、pipでchainerをインストール…

CUDA7.5+cuDNNのインストール

Windows10にCUDA7.5をインストールしようとしたら、下記のようなエラーがでた。 サポートしているVisual Studioが入っていないとのこと、2015 communityおよび2013 expressが入っているが駄目なようだ。。。 調べてみたところ、CUDA7.5は、VS2010、2012、201…

Deep Learning覚え書き(ChainerでDQN)

以前インストールしたChainerで、Deep Q Network(DQN)を動かしてみたのでメモっておく。 hirotaka-hachiya.hatenablog.com DQNの論文については、以下参照。 hirotaka-hachiya.hatenablog.com以下、ATARIでDQNを学習するまでの手順である。 1)RL-Glueの…

強化学習の覚え書き(アルファ碁と入門書)

2016年3月に、グーグル・ディープマインド社の囲碁の人工知能「アルファ碁」が、世界で最も強い棋士である韓国の李セドル氏に4勝1敗の大差で勝利した。このニュースは、人工知能・機械学習分野に限らず多くのメディアでも取り上げられていたので、一般の人で…

Deep Learning覚え書き(フィルタの可視化編)

前回のCaffenetのblobの可視化に続き、filterを可視化してみた。 hirotaka-hachiya.hatenablog.comCaffeのNetクラスには、blobsの他にparamsメソッドがあり、 pythonからは、重み係数とバイアスとにそれぞれ、次のようにアクセスできる。 >>> net.params['co…

Deep Learning覚え書き(Chainerのインストール編)

PFNがChainerという新しいDeep Learningのフレームワークを公開したので、早速インストールしてみた。 http://chainer.org/chainer.orgインストールは、git cloneを使えば簡単にできる。 > git clone https://github.com/pfnet/chainer.git 次に、MNISTのサ…

Deep Learning覚え書き(Gradient vanishing問題)

多階層のニューラルネットワークの勾配法を用いた教師あり学習では、下位層のパラメータは出力までにシグモイド関数が何重にもかかるため、勾配がほぼ0になってしまう問題がある。この問題は、最近ではGradient vanishing「勾配消滅」問題と呼ばれている。…

Deep Learning覚え書き(ネットワーク構造の可視化編)

Caffeのprototxtで設定されているネットワーク構造を可視化してみた。 以下のサイトを参考にした。 http://iamrobotandproud.hatenablog.com/まず、pipでgraphvizとpydotモジュールをインストール。 > sudo pip install graphviz > sudo pip install pydot次…

Deep Learning覚え書き(Ubuntu14.04へのCaffeのインストール編)

前回CUDA7が無事インストール出来たので、今回はCaffe本体をインストールする。hirotaka-hachiya.hatenablog.comまずは、BLASをインストールする。 > sudo apt-get install libatlas-base-dev 次に、Caffeに関連するパッケージをインストールする。 > sudo a…

Deep Learning覚え書き(CUDA7のインストール編)

先日導入したGTX980マシンに、CUDAをインストールしてみた。OSはUbuntu14.04である。現在開催されているGTC(GPU Technology Conference) 2015に合わせて、先日NVIDIAがCUDA7をリリースした。また、CaffeのページでもCUDA7が推奨されているので、最新バージョ…

GTX980マシン

Deep learningなどの機械学習アルゴリズムの実験をするために、ビデオボードGTX980を搭載したデスクトップPCを購入した。スペックは、以下の通り。 CPU: Core i7-4790(3.6GHZ、8Mキャッシュ、8コア、Haswell-Refresh) メモリ: 16GB ハードディスク: 2TB GP…

Deep Learning覚え書き(Caffenetのfine-tuning)

Caffenetの学習済みモデル(bvlc_reference_caffenet.caffemodel)を、Flickrの画像を使ってfine-tuningしてみた。基本的には、caffeのチュートリアルを参考にした。まずは、Flickrから画像をダウンロード。 > python examples/finetune_flickr_style/assemb…

Deep Learning覚え書き(Caffenetの可視化編)

CaffenetによるIrish terrier(アイリッシュ・テリア)の分類時の各層の特徴マップを可視化してみた。 まず、http://nbviewer.ipython.org/github/everpeace/caffe/blob/master/examples/cifar10_full.ipynbを参考にし、関数plot_imagesを次のように定義する…

Deep Learning覚え書き(Caffenetによる画像分類編)

今回は、Caffenetで、画像分類をしてみる。Caffenetとは、ImageNet Large Scale Visual Recognition Challenge 2012で分類タスクで優勝したAlexNetに、normalizationとpoolingの順番を変えるなどの変更を加えたものである。まず、ImageNet2012の訓練データで…

Deep Learningの覚え書き(VirtualBoxへのCaffeのインストール編)

Deep Learningの開発環境の主流となっているCaffeをインストールした。 Caffeは、Google ResearchのYangqing Jia博士がUniversity of California, Berkeley在学時に開発し、下記のサイトにて提供されている。C++のcaffeライブラリに加え、PythonとMatlabのイ…

Deep Learning覚え書き(概要編)

Deep Learningは、日本語では深層学習と呼ばれている機械学習の研究分野の一つで、データを高次に抽象化するための多階層なモデルを学習する技術の総称である。機械学習の枠組みには、大きく分けて教師あり学習、教師なし学習、半教師あり学習および強化学習…

Deep Learning覚え書き(DQN論文)

DQN論文をPlaying Atari with Deep Reinforcement Learning, V. Mnih, K. Kavukcuogl et al.を読んでみた。 http://arxiv.org/pdf/1312.5602.pdf DQNは、行動価値関数(Q関数)を、Convolutional Neural Network(CNN)によりモデル化し、強化学習の反復アルゴ…

NIPS2014でDeep Learningに関連しそうな論文の一覧

機械学習のトップレベルの国際会議NIPS(Neural Information Processing Systems)が、2014年12月8日から11日まで、カナダのモントリオールで開催される。NIPSは、「Neural」という単語から始まるだけあって、昨今何かと話題のDeep Learningに関連の論文が多…

Deep Learningの覚え書き(Theanoのインストール編)

最近何かと話題のdeep learningのpython用ライブラリtheanoをインストールし、MNISTデータセットを用いてテストしてみた。 基本的には、Theanoのインストールガイドhttp://deeplearning.net/software/theano/install.htmlに従ったが、GPUがないのでだいぶ省…