備忘録とか日常とか

学んだこととかを書きます。

python

k-Medoids Clusteringを実装した【python】

教師なし学習の非階層的クラスタリング手法としてk-Meansが一般的であるが、その拡張であるk-Medoidsを実装した。 動機 SIFT, SURFを使ったBOVWで何かできないかなーと考えていたが、特許の問題でSIFT, SURFが使えないと知った。(python2なら使えるのかも?)…

中古車購入に向けてのデータ分析をしてみたかった【python, scraping】

中古車を対象としたなんちゃってデータ分析をしてみた。以下の本を読んでなんか作ってみたくなったので。n番煎じなのは気にしない。 Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-作者: 加藤耕太出版社/メーカー: 技術評論社…

pathlibとかいう優秀すぎる標準ライブラリ(python)

自分は今までpythonでファイル操作を行うときはos.pathとかglobとかを使っていたが、pathlibという優秀なものがあると聞いて使ってみた。 python3.4以降なら使わない手はない。以下優れている点 os, glob の組み合わせで行ってきた操作が大体pathlib一つでで…

Deeplearningライブラリ「Keras」でつまずいたこと

DeeplearningライブラリのKerasを使っているときにはまったことをいくつかメモ。 ほぼ自分用かもしれない 今までTheanoを使ってアルゴリズムの勉強かついろいろ実験していたのだが、 勉強にはなるものの一から新しいアルゴリズムを実装するのはなかなかしん…

matlabとnumpy reshapeの違い その2(多次元配列)

以前もnumpy(python)とmatlabのreshapeという関数の仕様の違いについて書いた may46onez.hatenablog.com今度は多次元配列(3次元)で引っかかったのでメモしておく。 numpy.reshapeの仕様 numpyで一次元配列(ベクトル)から3次元の配列にreshapeすると以下のよ…

scikit-learnでsvm 基本的な使い方

今更だがsvmを使いたかったのでscikit-learnで使い方を調べた。 公式ドキュメントが整っているのでそっち見ただけでもわかる。 1.4. Support Vector Machines — scikit-learn 0.19.2 documentation 以下参考 Scikit-learnでハイパーパラメータのグリッドサー…

matlabとnumpy reshapeの違い

matlabは特に行列計算が容易に書けるが、ライセンスが有料なので気軽には使えなかった。そこで無料で導入できるpythonに、matlabのような使い勝手の良い数値計算ライブラリ(numpyとかmatplotlibとか)が開発されたわけである。機械学習を利用する上で便利な言…

Machine Learning: An Algorithmic Perspective 読んでいく(3)

完全に忘れてたけど前回の続き。 読んでいるのはこれMachine Learning: An Algorithmic Perspective, Second Edition (Chapman & Hall/Crc Machine Learning & Pattern Recognition)作者: Stephen Marsland出版社/メーカー: Chapman and Hall/CRC発売日: 201…

theano CNNで抽出した特徴をファイルに出力

タイトルの通り。 CNNで特徴抽出して、今まではそのままMLPで識別していた。だが抽出した特徴を使って別の手法を試す必要が出てきたので、特徴をファイルに出力する方法をメモしておく。CNNは畳み込みとプーリングの繰り返しにより、画像から自動的に特徴を…

theanoでLocal Response Normalization(LRN)を使う

Deeplearning Tutorialでtheanoによる実装、アルゴリズムを勉強中。 前回のLCNに引き続いて、LRNの正規化についても試す。今回はpylearn2内のコードがそのまま流用できるので、新しくコードを書いたりする必要はない。参考元は以下 pylearn2/normalize.py at…

theanoで局所コントラスト正規化(Local Contrast Normalization)を使う

Deep Learning Tutorial で theanoによる実装,アルゴリズムを勉強中。 研究では主にCNNをtheanoを使っているが、正規化層による効果はどんなものか試してみたくなったので実装する。theanoはあくまで数値計算ライブラリなので、はじめから正規化のための関…

Machine Learning: An Algorithmic Perspective 読んでいく(2)

前回に引き続いて、機械学習の本を読んでいく。 読んでいるのはこれですMachine Learning: An Algorithmic Perspective, Second Edition (Chapman & Hall/Crc Machine Learning & Pattern Recognition)作者: Stephen Marsland出版社/メーカー: Chapman and H…

Machine Learning: An Algorithmic Perspective 読んでいく(1)

機械学習に関する色んな書籍が世の中には出回っている。星の数ほどはないかもしれないけどかなりの数あると思う。 最近は「実装しながら説明していくよ!」という本も増えているそう。自分みたいなコーディングどへたくそな人間にとっては凄くありがたい(そ…

3次元配列の要素足しあわせとか numpy

忘れそうなのでメモ 3次元配列の足し合わせ 画像を局所領域ごとにA,B,Cの3クラス分類し、それぞれの確率をndarrayに格納する。(m,n,3)という形になる。 m * n個の各確率をそれぞれのクラスについて平均をとりたいとき、足し合わせる方法は以下のようにする。…

theano モメンタム項を導入する

theanoを使って色々実験中。 学習率の制約等に関してはまだ試してなかったのでやってみる。 参考元は以下 http://nbviewer.ipython.org/github/craffel/theano-tutorial/blob/master/Theano%20Tutorial.ipynb python - Clarification in the Theano tutorial…

画像を小領域に分割して学習 theano

Deep learningは十分な量のデータセットがあって初めて効果を発揮することは周知の事実である。対象がなんにせよ、初めからそこまで用意できないのであればわざわざそれを使うことなく、従来のような特徴量抽出でもって機械学習したほうが性能は出るはず。 …

theanoでGPU使ったときに出るMemoryErrorを回避

thenaoでDeep learningを勉強中。Tutorialを読みつつ色々いじっている。 今回はGPUを使用しているときにMemoryErrorに遭遇したので、それの回避方法をメモしておく。参考元はここ。 【追記】 データセットをgpuのメモリに載せる時点でのエラーを回避するだけ…

theanoのconv2dとmax_pool_2dが遅いので何とかする(2)

前回に引き続いてpylearn2のFilterActs()の使い方を書いてく。主にパラメータ。 参考元はここ。 partial_sum FilterActs()はpartial_sumという、メモリ使用量を調整するパラメータを持っている(当然使用量が増えれば速度性能は上がる)。cuda-convnetのドキュ…

theanoのconv2dとmax_pool_2dが遅いので何とかする(1)

Deep learningについて勉強中である。 ライブラリは数あれど、アルゴリズムとか細部の仕組みを理解するためにtheanoで書くことを選んだ。 Bengio先生率いるLISA labが出しているTutorialもあるのでそいつで勉強中。 あとここ Theanoの使い方 (1) シンボルと…

theanoに使う自前データセットの準備

DeepLearningTutorialで勉強中。 このチュートリアルではMNISTのデータセットで実験を行っているが、自前のデータセットを使うときに自分でcPickleする必要があるのでメモ。このページがtheanoの使い方をわかりやすく書いている。 Theano 入門 普段pythonで…