人工知能に関する断創録

人工知能、認知科学、心理学、ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。最近は、機械学習、Deep Learning、Kerasに関する記事が多いです。



機械学習

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

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

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

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

Theanoによる雑音除去自己符号化器の実装

この記事はDeep Learning Advent Calendar 2015の9日目です。 Theanoによる自己符号化器の実装(2015/12/3)の続き。 今回は自己符号化器を継承して雑音除去自己符号化器(Denoising autoencoder)を実装した。 ソースコード全体はここ。 自己符号化器は入力…

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

今回からしばらくさまざまな自己符号化器(Autoencoder)を検証していきたい。深層学習のメリットである特徴の自動学習の基礎になるところなのでしっかり理解しておきたいところ。

ChainerによるCIFAR-10の一般物体認識 (2)

ChainerによるCIFAR-10の一般物体認識 (1)(2015/11/8)のつづき。今回は畳み込みニューラルネットワークの畳込み層の数を変えたときにテスト精度がどのように変わるか調査した。前回と同じくCIFAR-10の一般物体認識をタスクとしている。 畳み込み2層(conv2…

ChainerによるCIFAR-10の一般物体認識 (1)

Chainerによる畳み込みニューラルネットワークの実装(2015/10/7)のつづき。今回はMNISTの数字画像認識ではなく、CIFAR-10(2015/10/14)という画像データを使った一般物体認識をやってみた。画像を10個のクラスに分類するタスク。実装にはChainerを使った。…

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

Chainerによる多層パーセプトロンの実装のつづき。今回はChainerで畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)を実装した。Theanoによる畳み込みニューラルネットワークの実装 (1)で書いたのと同じ構造をChainerで試しただけ。タス…

Chainerによる多層パーセプトロンの実装

今回は、最初ということでChainerに付属している多層パーセプトロンのコードを動かしてみるところから始めた。

Machine Learning with Scikit Learn (Part IV)

Machine Learning with Scikit Learn (Part III)(2015/9/8)のつづき。5.2節ではSupport Vector Machine (SVM)が詳しく取り上げられている。 5.2 In Depth - Support Vector Machines scikit-learnでは分類用のSupport Vector Classifierssklearn.svm.SVCと…

Machine Learning with Scikit Learn (Part III)

Machine Learning with Scikit Learn (Part II)(2015/8/26)のつづき。今回は、Part IIの動画の5.1節の内容を簡単にまとめた。書いてたら長くなったので5.1節だけ。 5.1 In Depth - Linear Models 回帰のための線形モデルの詳細が取り上げられている。線形…

Machine Learning with Scikit Learn (Part II)

Machine Learning with Scikit Learn (Part I)(2015/8/10)のつづき。今回は、後編のPartIIの動画の内容を簡単にまとめたい。 4.1 Cross Validation ラベル付きデータが少ないときに有効な評価法であるK-fold cross-validationについての説明。訓練データを…

Machine Learning with Scikit Learn (Part I)

今年の7月に開催されたSciPy2015の講演動画がEnthoughtのチャンネルで公開されている。今年も面白い講演が多いのでいろいろチェックしている。 今年の目標(2015/1/11)にPythonの機械学習ライブラリであるscikit-learnを使いこなすというのが入っているので…

Theanoによる畳み込みニューラルネットワークの実装 (2)

Theanoによる畳み込みニューラルネットワークの実装 (1)(2015/6/26)のつづき。今回は前回できなかった ConvLayerとPoolingLayerの分離 ReLUの導入 を試してみた。 ConvLayerとPoolingLayerの分離 Deep Learning Tutorialの実装では、LeNetConvPoolLayer()…

Theanoによる畳み込みニューラルネットワークの実装 (1)

Theanoによる多層パーセプトロンの実装(2015/6/18)のつづき。今回は、Deep Learning Tutorialの畳み込みニューラルネットワーク(Convolutional Neural Network: CNN, ConvNet)を実装してみる。 CNNは人間の視覚野を参考にした手法であり、画像認識に特化…

Theanoによる多層パーセプトロンの実装

Theanoによるロジスティック回帰の実装(2015/5/26)のつづき。今回は、Deep Learning Tutorialの多層パーセプトロン(Multilayer Perceptron)を実装してみる。タスクは前回と同じMNISTの手書き数字認識。多層パーセプトロンはこれまでも何回か実装してきた…

Theanoによるロジスティック回帰の実装

Theanoによる2クラスロジスティック回帰の実装(2015/5/19)のつづき。 今回からDeep Learning Tutorialの内容にそって実装していく。このチュートリアルのコードやデータはGithub上で公開されているのでcloneしておいた。 git clone https://github.com/lis…

Theanoによる2クラスロジスティック回帰の実装

Theanoの使い方 (2) 自動微分(2015/5/18)のつづき。今回は、前回までの知識を使ってTheanoで2クラスロジスティック回帰の実装をしてみたい。 Deep Learning Tutorialの最初に紹介されるアルゴリズムもロジスティック回帰なのだが、こちらはMNISTの数字認識…

Theanoの使い方 (2) 自動微分

Theanoの使い方 (1) シンボルと共有変数(2015/5/9)のつづき。 今回はTheanoの自動微分を試してみる。ロジスティック回帰やニューラルネットなど勾配降下法を使うアルゴリズムではパラメータの更新式にコスト関数(誤差関数) の微分が必要になる。 通常、…

Theanoの使い方 (1) シンボルと共有変数

今回からしばらくの間、Deep Learningの各種アルゴリズムをスクラッチから実装していきたい。Pylearn2などDeep Learningのアルゴリズムを実装したPythonライブラリもあるのでスクラッチから実装する意味はほとんどないのだけれど、今回はアルゴリズムの詳細…

Deep Learning リンク集

乗るしかないこのビッグウェーブに Deep Learning(深層学習)に関連するまとめページとして使用する予定です。Deep Learningに関する記事・スライド・論文・動画・書籍へのリンクをまとめています。最新の研究動向は全然把握できていないので今後研究を進め…

TheanoをWindowsにインストール

Deep Learningを実装するのによく使われるTheanoというPythonライブラリをWindowsマシンにインストールしたのでそのときの記録。ただ使うだけだったらPythonとnumpy/scipyをインストールした後にpip installs Theanoで普通に使えていた。実際、GPUが貧弱なMa…

重点サンプリング (5)

重点サンプリング (4)(2014/10/11)のつづき。今回は、Rによるモンテカルロ法入門のテキストの例3.5を解いてみたい。 の積分を重点サンプリングで計算しろというもの。似たような積分は (1)~(3) までですでに取り上げてきた。そこでは、標準正規分布からの…

重点サンプリング (4)

重点サンプリング (3)(2014/10/2)のつづき。今回は、Rによるモンテカルロ法入門のテキストの例題をPythonで解いてみたい。まずは、練習問題3.4から。 fを標準正規分布 とし、 を として期待値 を計算せよ。 という問題。 標準正規分布 からサンプリングす…

重点サンプリング (3)

重点サンプリング (2)(2014/9/21)のつづき。前回からけっこう日があいてしまったが、予定どおり重点関数をいろいろ変えたときにモンテカルロ積分の収束性がどのように変わるか検証した。 対象とする積分は下の式。通常のモンテカルロ積分では、平均0、標準…

重点サンプリング (2)

重点サンプリング (1)(2014/9/20)のつづき。今回は重点サンプリングを実装して、前回うまく計算できなかった積分が正しく計算できるか確認したい。 重点サンプリング 重点サンプリングの導出は、従来のモンテカルロ積分の式から簡単にできる。新しく重点関…

重点サンプリング (1)

Pythonによるモンテカルロ法(2014/6/20)のつづき。今回は、重点サンプリング(importance sampling)の実験をしてみたい。重点サンプリングは、PRMLの11章にも出ている。重点サンプリングを使うと期待値のモンテカルロ積分をより効率的に(=少ないサンプ…

人工知能を実現する学習アルゴリズムに必要な能力

今年は、Deep Learningを研究する予定(2014/1/4)だったのだけれど、多層パーセプトロンまで到達した(2014/2/5)ところで少々(?)足踏みしている。Deep Learningの構成要素であるボルツマンマシンを理解するのに手間取っているためだ。ボルツマンマシン…

モンテカルロ積分の収束テスト

モンテカルロ積分 (2)(2014/8/20)のつづき。 前回の正規・コーシー-ベイズ推定量の積分のサンプリング方法には2通りの方法があった。コーシー分布からサンプリングする場合と正規分布からサンプリングする場合だ。どちらでもサンプリング数を多くすればほ…

モンテカルロ積分 (2)

モンテカルロ積分(2014/7/28)のつづき。今回は、Rによるモンテカルロ法入門の例3.3と練習問題3.1のモンテカルロ積分の例を検証した。 例3.3 例3.3は簡単な積分の問題。 これも前回と同じように確率分布 p(x) が明示的にないため一様分布を追加する。積分区…

モンテカルロ積分

Pythonによるモンテカルロ法入門(2014/6/20)のつづき。3章のモンテカルロ積分について実験した。 モンテカルロ積分 モンテカルロ積分を使うと統計や機械学習で頻繁に出てくる期待値を求める積分が乱数生成で簡単に計算できる。期待値を求める積分とは下の…