数理コンサルタントの備忘録

あなたの悩みを数理で解決する

粒子群最適化

群知能に属するアルゴリズム 粒子群最適化を実装する.

f:id:guitartakahiro:20170519171145p:plain

f:id:guitartakahiro:20170519171130p:plain

 

このSphere functionと Rosenbrock functionに粒子群最適化を適用する.

 

粒子群最適化

これは多次元空間において位置と速度を持つ粒子群でモデル化される。これらの粒子はハイパー空間を飛びまわり、最善な位置を探す。位置の評価は適応度関数で行う。群れのメンバーは良い位置について情報交換し、それに基づいて自身の位置と速度を調整する。このコミュニケーションは主に次の二種類の方法でなされる。

最も良い位置にいる粒子が全体に通知される。

ローカルなベストの位置にいる粒子が近傍の粒子群に通知される。位置と速度の更新は以下の式で行われ、これが繰り返される。

 

  • x\leftarrow x+v
  • v\leftarrow wv+c_{1}r_{1}({\hat  {x}}-x)+c_{2}r_{2}({\hat  {x}}_{g}-x)
    • w は、慣性定数。多くの場合 1 より若干小さい値が最適である。
    • c_{1}c_{2} は群のうちで良い位置に向かう粒子の割合。1 に近い値が多くの場合最適である。
    • r_{1}r_{2}[0,1] の範囲の値をとる乱数。
    • {\hat {x}} は、その粒子がこれまでに発見したベストな位置
    • {\hat  {x}}_{g} は群全体としてこれまでに発見したベストな位置。これをローカルなベスト {\hat  {x}}_{l} にすれば、上記の後者の方法(近傍への通知)になる。

アルゴリズム

  • 各粒子について xv をランダムに初期化。値の範囲は問題の設定に依存する。

 

  • {\hat {x}} を現在位置に初期化。
  • {\hat  {x}}_{g} を群全体で最も良い適応度を持つ粒子の位置に初期化。
  • {\hat  {x}}_{g} での適応度がしきい値より小さく、かつループ回数が事前に設定した回数に達していないうちは、以下を繰り返し実行する。
    • 各粒子について、以下を実行する。
      • 上述の式に従って x を更新する。
      • 新たな位置での適応度を計算する。
      • {\hat {x}} での適応度よりも良い値が得られたら、{\hat {x}} を置き換える。
      • {\hat  {x}}_{g} での適応度よりも良い値が得られたら、{\hat  {x}}_{g} を置き換える。
      • 上述の式に従って v を更新する。

 

 

 

Linuxの勉強日記 & top500

Linuxでは

cat /proc/cpuinfo

でPCのスペックを確認できたが, macはunuixベースなので

system_profiler -listDataTypes

で表示させる.

 

top500:

世界で最も高速なコンピュータシステムの上位500位までを定期的にランク付けし、評価するプロジェクトである。1993年に発足し、スーパーコンピュータのリストの更新を年2回発表している。ハイパフォーマンスコンピューティング(HPC)における傾向を追跡・分析するための信頼できる基準を提供することを目的とし、LINPACKと呼ばれるベンチマークによりランク付けを行っている。リストの作成はマンハイム大学テネシー大学ローレンス・バークレイ米国立研究所の研究者らによる。毎年6月のInternational Supercomputing Conference(ISC)および11月のSupercomputing Conference(SC)の開催に合わせて発表されている。(wiki調べ)

 

ベンチマーク

コンピュータシステムのハードウェアやソフトウェアの性能を測定するための指標

 

LINPACK:

システムの浮動小数点演算性能を評価する

 

lubuntu CUI

lubuntuをCUI起動オンリーに変更した。

 

ランレベル1 (シングルユーザモード) sytemctl set-default rescue.target
ランレベル3(CUI マルチユーザモード) systemctl set-default multi-user.target ランレベル5(GUI マルチユーザモード) systemctl set-default graphical.target

 

画面のサイズがおかしいので、

以下のサイトで解像度変更

https://forums.ubuntulinux.jp/viewtopic.php?pid=44052

 

カーソルがチカチカして目が痛いので

setterm -blink off

とするも解決せず...

 

とりあえず

setterm -cursor off

でカーソル消した。

Lubuntu導入 + 雑メモ

Lubuntu 16.10をvista, win10に導入しようとするもそれぞれ,クリック不能, 画面がバグって落ちるという謎現象に見舞われ失敗.

 

懲りずにLubuntu 16.04で再試行.

 

結果は...

win10 → 成功

Vista   → 画面汚くなって終了

 

 

LTS

:Long Term Support

 

 

pythonによる機械学習

 

pythonによる機械学習(P.70~)を下記の本で学習.

データサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)

データサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)

 

 

3種類(setosa, versicolor, virginica)のあやめの

蕚片(Sepal), 花弁(Petal)のそれぞれ長さと幅が記載されいてるデータを使用.

 

f:id:guitartakahiro:20170505135342j:plain

fig.1 3種類のあやめ 

 

f:id:guitartakahiro:20170505135518p:plain
fig.2 蕚片(Sepal)と花弁(Petal)

 

イメージを沸かしたかったので画像も拾ってきた.

 

    今日の備忘録

シェルスクリプト

:Unixコマンドなどを並んで実行する

 

bash

:UNIXで使用するシェルのひとつで、GNUプロジェクトによるプロダクトのひとつである

 

サーバーエンジニア

:サーバーとは、ネットワーク上において他のパソコンにさまざまな機能やサービスを提供するコンピューターのことを指します。このサーバーを構築・運用する 職種が、サーバーエンジニアです。

 

pip

:pythonのパッケージ管理システム

 

中2から使っているVista仮想マシンVMVirtualboxにUbuntu14.04をインストールした.

ずっとmac OSを使っていたので, たまにはLinuxにも挑戦したくなった.

 

f:id:guitartakahiro:20170505194007j:plain

ついでに

ASUS

プロセッサ:Intel(R) Atom(TM) CPU Z3735F @ 1.33GHz 1.33GHz

実装RAM :2.00GB

 

にもVM VirtualVoxを入れて, こちらにはelementary OS 0.3 Freyaを導入.

 

 

Guest Additionsを追加
これを追加するとフルスクリーンのサイズも可能
上部のメニューからDevices -> Insert Guest Additions CD Image を選択
(これでCDROMのデータをパソコンにマウント)
左上のアプリケーションからFilesをクリックしてエクスプローラーを表示
左のデバイスの項目のところにVBOXADDITIONSというのが表示されていればマウント成功
データは/media/ユーザー/VBOXADDITIONSバージョン/ ディレクトリにある
$cd /media/ユーザー/VBOXADDITIONSバージョン/ に移動して次のコマンドを実行
$sudo sh VBoxLinuxAdditions.run
管理者で実行
再起動するとディスプレイに最適化された解像度になる