タグ

javaと機械学習に関するSuperAlloyZZのブックマーク (3)

  • 粒子群最適化 - Wikipedia

    粒子群最適化(りゅうしぐんさいてきか、Particle Swarm Optimization、PSO)とは、群知能の一種。 昆虫の大群や魚群において、一匹がよさそうな経路を発見すると(すなわち、料を発見したとか安全であるという場合)、群れの残りはどこにいても素早くそれに倣うことができる。 これは多次元空間において位置と速度を持つ粒子群でモデル化される。これらの粒子はハイパー空間を飛びまわり、最善な位置を探す。位置の評価は適応度関数で行う。群れのメンバーは良い位置について情報交換し、それに基づいて自身の位置と速度を調整する。このコミュニケーションは主に次の二種類の方法でなされる。 最も良い位置にいる粒子が全体に通知される。 ローカルなベストの位置にいる粒子が近傍の粒子群に通知される。 位置と速度の更新は以下の式で行われ、これが繰り返される。 は、慣性定数。多くの場合 1 より若干小さい値が

  • JavaCVで機械学習する

    OpenCV には機械学習の実装がいくつか(単純ベイズ、k 近傍、SVM、決定木…)用意されていて、画像処理に限らず汎用目的で便利に使うことができます。実装ごとにクラス化されていて、学習(train)→ 予想(predict)という似たようなメソッドが用意されているため、学習結果がイマイチなら他に切り替える、ということも比較的簡単にできるようです。 この便利な機能は、Java 版ラッパーである JavaCV にもポーティングされています。そこで、とりあえず 5 次元ベクトル群を 2 つのクラスに分類するコードを書いてみました。下の画像では、5 次元中 2 次元を可視化しています。他のパラメタで実行してみた画面キャプチャやコード全体は記事末尾にあります。JavaCV のインストールなどに関しては前の記事「OpenCVJava から使う」をどうぞ。 準備 // Parameters fo

    JavaCVで機械学習する
  • 試すのが難しい―機械学習の常識はMahoutで変わる

    ビッグデータ時代―なぜ、いま機械学習なのか Apache Hadoop(以下、Hadoop)の登場で、今まで捨てていたデータ、貯めるだけで処理しきれなかったデータを活用できるようになりました。 活用手段として最近とみに注目されている技術が「機械学習」であり、Hadoopの強みを生かし簡単に機械学習を行うためのライブラリが、「Apache Mahout」(以下、Mahout)です。 稿ではMahoutを動かしてみることで、機械学習の常識を身に付けます。 そもそも、機械学習とは? 機械学習とは、一定のデータをコンピュータ・プログラムに「学習」させ(すなわち、そのデータに潜むパターンや規則性を表す「モデル」を自動的に構築させ)、他のデータにそのモデルを適用すれば、あたかも人間のように複雑で柔軟な判断が行えるようにするという試みです。 機械学習をビジネスに活用した例は、レコメンド(ユーザーや商品

    試すのが難しい―機械学習の常識はMahoutで変わる
  • 1