おいも貴婦人ブログ

生物系博士課程満期退学をしたAIエンジニアのブログ。

機械学習

続*6:2次元イジングモデル

現在、CUDAで2次元イジングモデルのプログラムを書いています。下記のgifは、プログラミングミスの結果ですが、面白かったので載せておきます。なんだかライフゲームみたいです。

続*5:2次元イジングモデル

前回、紹介しましたCheckerboard decompositionをC言語で実装しました。マジックナンバーがふんだんに盛り込まれています。(8,3)でCheckerboard decompositionしたのは、(0,1),(0,2),(0,3),(1,0),...,のように行列の要素を並べた時に、奇数番目と偶数番目に…

続*4:2次元イジングモデル

2次元イジングモデルでの各ステップでのアップデート方法に致命的な部分がありました...。 今までの2次元イジングモデルのアップデート方法(1) 2次元上のスピンをランダムに一つ選び、スピンを反転させる。 前状態とのエネルギー差を計算する。 メトロポ…

続*3:2次元イジングモデル

2015/11/13修正 def calcDeltaEの部分 return -2*dE def MCのエネルギー差の足し算部分 E+=dE 修正済みのコードは文中。 本文 今までのプログラムは、エネルギーを計算する際に全ての要素に対してエネルギーの再計算を行っていました。しかしイジングの場合…

続々:2次元イジングモデル

CUDAで下手くそなプログラミングを書いてみました。対象は前回から引き続き2次元イジングモデルです。2次元の行列サイズは1024x1024と2048x2048、ループ回数は1000です。コード中のMT.hは乱数を生成するためにメルセンヌツイスターを使用しているからです。…

続:2次元イジングモデル

前回の2次元イジングモデルのコードをCで書きなおしてみました。unixの標準コマンドtimeを使って、openmpありとなしの実行時間を計算してみます。2次元の行列サイズは1024x1024、ループ回数は1000です。コード中のMT.hは乱数を生成するためにメルセンヌツイ…

2次元イジングモデル

ホップフィールドネットワークのプログラムを書いたので、2次元イジングモデルのプログラムも書いてみました。イジングモデルは磁性体を表したモデルです。磁性体は磁石だと考えてもらって結構だと思います。磁石は、熱を与えるとその磁性を失います(つまり…

続:ホップフィールド(Hopfield Network)

大昔にHopfield Networks(HN:この略し方に一般性はありません。)についてのPythonプログラムを書いたが、あまりにも酷かったので書きなおしてみました。HNは連想記憶モデル、言い換えると、教師あり型のパターン認識方法の一種だと考えられます。教師あり型…

ホップフィールド(Hopfield)

Hopfieldはアメリカの物理学者J.J. Hopfieldによって提唱された。一種の連想記憶モデルであり、パターンを学習させると、そのパターンを再起するというものである。Hopfieldネットワークは相互結合型のネットワークで、1つのノードは他のすべてのノードとつ…

サモンのマップ化(Sammon mapping)

サモンのマップ化とは、高次元特徴ベクトルを持つデータを2次元にマッピングして、クラスタリングする方法です。誤差関数を以下のように定義する。 \(E=\frac{1}{\sum_i \sum_{j>i}d_{ij}} \sum_i \sum_{j>i}d_{ij} \frac{(d_{ij}-||{\bf r}_i -{\bf r}_j||…

レーベンシュタイン距離(WLD)

二つの文字列の非類似度を定義する。ある記号列str1とstr2がり、str2をa個入れ替えてb個挿入し、c個削除することでstr1が得られるとき、そのときのレーベンシュタイン距離は以下になる。 \( WLD(str1,str2) = min(p a+q b+r c) \) ここで、p,q,rは重みパラメ…

ニューラルネット(Python)

Newral network(NN)を組んでみました。統計学や機械学習の分野で有名なiris.dataを用い、NNの正当性を評価しました。iris.dataは150行からなり、1行ずつに、一つのアヤメの分類と特徴が書いてあります。アヤメは3種類に分類され、4つの特徴があります。行の…

PRML(PatternをRecognitionするために(1))

参考文献を文末に記載しています。 線形識別モデル