人工知能に関する断創録

このブログでは人工知能のさまざまな分野について調査したことをまとめています(更新停止: 2019年12月31日)

2016-01-01から1年間の記事一覧

2016年の振り返り

年末なので年始に立てた目標(2016/1/1)の振り返りでもしようかな。 ○ Deep Learning Tutorialの読破とTheanoでの実装を続ける △ パターン生成・コンテンツ生成(2015/12/30)に関する従来研究のサーベイ × 深層強化学習(Deep Reinforcement Learning)の…

Kerasによるデータ拡張

今回は、画像認識の精度向上に有効な データ拡張(Data Augmentation) を実験してみた。データ拡張は、訓練データの画像に対して移動、回転、拡大・縮小など人工的な操作を加えることでデータ数を水増しするテクニック。画像の移動、回転、拡大・縮小に対し…

KerasでCIFAR-10の一般物体認識

今回は、畳み込みニューラルネットを使ってCIFAR-10(2015/10/14)の一般物体認識をやってみた。以前、Chainerでやった(2015/11/8)のをKerasで再実装した。 これもKerasの例題に含まれている。このスクリプトでは、データ拡張(Data Augmentation)も使っ…

Kerasによる畳み込みニューラルネットワークの実装

前回(2016/11/9)はMNISTの数字認識を多層パーセプトロンで解いたが、今回は畳み込みニューラルネットを使って解いてみた。このタスクもKerasの例題に含まれている。ソースコードを見れば大体何をやっているかつかめそうだけどポイントを少しまとめておく。…

KerasでMNIST

今回は、KerasでMNISTの数字認識をするプログラムを書いた。このタスクは、Kerasの例題にも含まれている。今まで使ってこなかったモデルの可視化、Early-stoppingによる収束判定、学習履歴のプロットなども取り上げてみた。 ソースコード: mnist.py MNISTデ…

Kerasによる多クラス分類(Iris)

今回は、機械学習でよく使われるIrisデータセットを多層パーセプトロンで分類してみた(ありがち)。Irisデータセットのクラスラベルは3つ(setosa, versicolor, virginica)あるので前回までと違って多クラス分類になる。短いプログラムなので全部載せてポ…

Kerasによる2クラス分類(Pima Indians Diabetes)

Kerasのプログラミングは データのロード モデルの定義 モデルのコンパイル モデルの学習 モデルの評価 新データに対する予測 という手順が一般的。今回はもう少し実践的なデータを使ってこの流れをつかみたい。 ソースコード:pima.py 1. データのロード 参…

Kerasによる2クラスロジスティック回帰

まずはもっとも簡単な2クラスロジスティック回帰モデルをKerasで書いてみる。前にTheanoでやった(2015/5/19)のをKerasで書き換えただけ。ロジスティック回帰は、回帰とつくけど分類のアルゴリズムで、隠れ層がなく、活性化関数にシグモイド関数を使ったニ…

Kerasのインストール

こういうインストール関係の記事はすぐ時代遅れになるので詳細は省くけど、現在の自分の環境など簡単にまとめておきたい。 Ubuntu 16.04 Python 3.5 Anaconda 4.2.0 TensorFlow 0.11 Keras 1.1.0 1. Ubuntuの仮想マシンを作成 普段はWindowsマシンを使ってい…

Kerasはじめます

前回の更新(2016/3/18)からいろいろあってだいぶ間があいてしまいましたが、気を取り直してまた何か書いていこうと思います!しばらくは、Deep Learningのライブラリ Keras を使ってさまざまな実験をしていきます。Theanoでの実装(2015/4/29)はきついの…

深層学習ライブラリ Keras

ここ1年くらいDeep Learning Tutorialを読みながらTheanoというライブラリで深層学習のアルゴリズムを実装してきた。 深層学習の基本的なアルゴリズムならTheanoでガリガリ書くこともできたがより高度なアルゴリズムをTheanoでスクラッチから書くのはとても…

制限ボルツマンマシン (RBM) の導出 (2)

制限ボルツマンマシン (RBM) の導出 (1) (2016/3/20)のつづき。前回は可視層を固定したときの隠れ層の分布と隠れ層を固定したときの可視層の分布を導出した。今回は、RBMの対数尤度関数の導出とそのパラメータでの偏微分の式を導出していきたい。 深層学習…

制限ボルツマンマシン (RBM) の導出 (1)

ボルツマンマシン(隠れ変数あり)の導出(2016/3/12)のつづき。Deep Learningの基礎モデルとして有名な制限ボルツマンマシン(Restricted Boltzmann Machine: RBM)を導出したい。深層学習の2.7節に当たる。前回と同様に表記法はこの本に準拠する。 深層学…

ボルツマンマシン(隠れ変数あり)の導出

ボルツマンマシン(可視変数のみ)の導出(2016/3/11)のつづき。前回はボルツマンマシンを構成するノードがすべて可視変数(観測データが与えられる)ケースだったけれど今回は一部のノードが隠れ変数(観測データが与えられない)ケースのボルツマンマシン…

ボルツマンマシン(可視変数のみ)の導出

制限ボルツマンマシンのアルゴリズムの導出が難しかったので忘れないようにまとめておいた。今回から数回にわたって 可視変数のみのボルツマンマシンの導出(2.4節) 隠れ変数ありのボルツマンマシンの導出(2.5節) 制限ボルツマンマシンの導出(2.7節) の…

積層自己符号化器の性能評価

Theanoによる積層自己符号化器の実装(2016/1/22)の続き。 今回は、積層自己符号化器の事前学習(pretraining)の効果が本当にあったのか検証してみたい。ついでにもう一つTheanoによる雑音除去自己符号化器の実装(2015/12/9)で書いた雑音除去(denoising…

Theanoによる積層自己符号化器の実装

Theanoによる雑音除去自己符号化器の実装(2015/12/9)の続き。今回は自己符号化器を積み上げて積層自己符号化器を実装した。 多層パーセプトロンは隠れ層の数を増やす(Deepにしていく)とより複雑なモデルを表現できるようになるが、誤差が伝播されずに重…

2016年の目標

あけましておめでとうございます。 今年もいくつか目標を立てた。メインは去年と同じく深層学習(Deep Learning)の深耕にした。 機械学習・深層学習の深耕 Deep Learning Tutorialの読破とTheanoでの実装を続ける パターン生成・コンテンツ生成(2015/12/30…