サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
画力アップ
chrofieyue.hatenadiary.org
やりたいこと 動く PRML シリーズ、第2回は変分混合ガウス分布 (variational Bayesian Gaussian mixture model, VB-GMM) です。 はじめに、前回の繰り返しになりますが、反復繰り返し型の機械学習アルゴリズムを理解するためには、大きく分けて二つのステップがあることを再確認します。一つ目はもちろん、 更新式を導出すること。 反復アルゴリズムの理論的性質はすべて更新式の形に反映されています。従って、この更新式を自力で導出することはとても勉強になります。 そして、二つ目は、 各イテレーションの内容をグラフにプロットし、実際の挙動を体感すること。 更新式には確かに必要なこと全てが記されていますし、熟練の研究者であれば、更新式の形から、その実際の挙動をある程度予測することが可能です。 しかし、それは楽譜だけを見てオーケストラを聴き取るようなものではな
あらすじ boost-python を使用して、Python と C 言語両方を活用する方法を説明しています。 本記事では、boost::multi_array を Python 側にエクスポートする方法を解説します。 こんなものがつくりたい Python でデータを読み込み、C で計算を行い、Python で途中経過を出力し、Python で結果を出力するプログラムを目標とします。 これは、たとえば次のようなコードになります。 import mylib, wrap from matplotlib import pyplot as pl from scipy import array, float64 # データを読み込む x = array(..., dtype = float64) # boost::multi_array 配列を確保 # x は入力、y は出力とします wrap_x
こちらもどうぞ - 動く混合ガウス分布(導出編) 実装には python, SciPy と matplotlib を使います。 テストデータには Old Faithful 間欠泉データを使います。 データの読み込み Old Faithful 間欠泉データを PRML のホームページからダウンロードし、作業ディレクトリに置きます。保存したデータは、SciPy の loadtxt 関数で読み込みます。 from scipy import loadtxt def faithful(): return loadtxt('faithful.txt') 適当に正規化します。 from scipy import sqrt def faithful_norm(): dat = faithful() dat[:, 0] -= dat[:, 0].mean() dat[:, 1] -= dat[:, 1].m
20 世紀の音楽を創り上げてきたあれやこれやの電子楽器が、あまり知られていないようなのでまとめてみました。 おまけとして、日本メーカー各社の最新モデルも載せました。 半世紀を通して、ハモンドやローズなど、物理的な発音システムの音をアンプで大きくするものから、真空管や IC で音を組み立てていくシンセサイザーへの移行が進んでいきます。アナログシンセについては、挙げ始めるとキリがないので、ちょっとだけ載せました。 ※動画ごとに音量がバラバラなので、注意して聴いてください。 ※それぞれの動画に関する権利は、各動画の著作者に帰属します。 Hammond Organ 1940 年代のロックシーンで爆発的人気を誇ったハモンドオルガンとレスリースピーカー。このスピーカーは、ツイーターとウーファーそれぞれが回転するようになっていて、鍵盤左手に取り付けられたハーフムーンスイッチを切り替えることで回転数を変化
あらすじ boost-python を使用して、Python と C 言語両方を活用する方法を説明しています。 前記事では、C 言語で Hello world を出力する関数を作成し、これを Python から呼び出す方法を説明しました。 本記事では、ふたつの言語の間で簡単なデータを受け渡す方法について解説します。 プリミティブの受け渡しは簡単 渡したいデータが文字列や数値である場合は、何も気兼ねする必要がありません。 hello.cpp #include <string> #include <boost/python.hpp> using namespace boost::python; double increment(int x) { return x + 1; } std::string add_txt(std::string x) { return x + ".txt"; } B
はじめに Python は、機械学習の分野で広く使用されるスクリプト言語です。SciPy や matplotlib といった、科学計算に特化したライブラリが多数提供されているのが特徴です。 いっぽう、弱点もあります。for ループの速度が遅いこと、並列処理が苦手なことなどです。これらの目的には、C 言語が適しています。 そこで、本記事では、Python と C の相互連携を可能にする boost-python ライブラリを使用して、大規模科学計算を効率的に解く方法を紹介します。題材には混合ガウス分布を使用します。 動作テストは、Fedora 環境で行なっています。Ubuntu でも動くと思います。 準備 はじめに、SciPy、matplotlib、boost ライブラリをインストールしてください。 boost-devel とか色々インストールした記憶がありますが、忘れました… Hello,
はじめに 混合ガウス分布 (Gaussian Mixture Model, GMM) は、多次元の特徴量を持つデータ点の集合を機械学習により分類するための重要な手法です。特に、GMM は応用範囲が広く、様々な手法の基礎となっているため、自ら更新式を導出するなどして特性をよく理解することが重要です。 本記事ではこれに加え、GMM の長所と短所を視覚的に確認する方法を提案し、実装します。GMM の更新式は「どう動くか」の説明にはなりますが、「長所と短所は何か」を直接教えてはくれません。たとえば、 どんな初期値から、どんな収束値が得られるのか。(初期値に対する特性) 変な初期値を与えるとどうなるのか。(局所解頑健性) どれぐらいの速さで収束するのか。(収束性能) といった疑問にこたえるためには、EM アルゴリズムの各イテレーションでの中間状態をグラフにプロットし、アニメーションとして見る必要があ
こちらもどうぞ - 動く変分混合ガウス分布(導出編) 実装には python, SciPy と matplotlib を使います。 テストデータには Old Faithful 間欠泉データを使います。 また、データの読み込み、プロットは混合ガウス分布の際に実装したものを再利用しますので、こちらからダウンロードしておいてください。 必要な関数の読み込み はじめに、必要な関数を読み込みます。 from gmm import faithful_norm, init_figure, preview_stage from scipy import arange, array, exp, eye, float64, log, maximum, ones, outer, pi, rand, zeros from scipy.linalg import det, inv from scipy.maxent
CUDA の kernel 関数からの戻り値を毎回 cudaMemcpy したくない時につかう template<class T> class CudaValue { private: T* ptr; public: CudaValue() { cudaMalloc(&ptr, sizeof(T)); } ~CudaValue() { cudaFree(ptr); } operator T() { T ret; cudaMemcpy(&ret, ptr, sizeof(T), cudaMemcpyDeviceToHost); return ret; } CudaValue& operator=(const T& rhs) { cudaMemcpy(ptr, &rhs, sizeof(T), cudaMemcpyHostToDevice); return this; } T* get() {
このページを最初にブックマークしてみませんか?
『Next MIDI Project』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く