人工生命Tierra: 目次
(「Tierraの仕組みについて」追加。記事の順番修正。)
人工生命Tierra2: Tierraの仕組みについて [new]
人工生命Tierra6: 強い遺伝子による下剋上_個体数の変遷
[2019/5/10初稿]
モバイルSuicaエラー対処方法:F3-162-002、F3-003-002
①端末(携帯、スマホ)再起動
②おサイフケータイ起動、ログイン
③モバイルSuica起動
これで行けました。
■経緯
・クレジットカードからチャージ。
・処理中に改札タッチして入れずにエラー
・以来モバイルSuicaアプリを起動してもエラー文が表示され起動できず。
端末再起動しても変わらず。
モバイルSuicaサポートセンターに問い合わせるよう記載されている。
・エラーコードは
F3-162-002
F3-003-002
■モバイルSuicaサポートセンター
・ググると、エラーコード別の対処法が書いてあるが、
F3-162-002
F3-003-002
については詳しくは書いておらず、F始まりのコードはモバイルSuica原因ではなくおサイフケータイ関連のエラーとのこと。
・おサイフケータイアプリを起動してもエラーで起動できず、端末再起動するよう記載されている。
・端末再起動しておサイフケータイアプリを開くと正常に起動できた。
・その後モバイルSuicaアプリを開くと無事に起動でき、ログインもできた。
「作業場 or エンジニアバー」9/21(月)13-17時 1日バーテン
9/21(月)にイベントバーエデン池袋本店様で1日バーテンをさせていただきます!
いつもとは違う場所でご自身の仕事や作業を落ち着いてしたい方や
エンジニアの方がいらっしゃいましたら 良ければご来店ください
「作業場 or エンジニアバー🖌️💻」9/21(月) 13-17時
— kei@人工生命Tierra開発 (@skill33657910) 2020年9月19日
9/21(月)にイベントバーエデン本店様で1日バーテンをさせていただきます!🍹🧋🍻
いつもとは違う場所でご自身の仕事や作業を落ち着いてしたい方や
エンジニアの方がいらっしゃいましたら 良ければご来店ください🙇♂️@Eventbar_Eden pic.twitter.com/M31yyl4UfS
【Python, bokeh】 軸に文字列を使用する → 「x_range」を使用する
1. コード
2. 結果
人工生命Tierra2: Tierraの仕組みについて
Tierraとは、生命個体を模擬したプログラムから成り立つ人工生命のシステムです。
各個体プログラムは、自己増殖を繰り返しながら、時間をかけて代々その形を変え進化していきます。
自己増殖するだけなのになぜ進化が起きるのか、それは突然変異の仕組みによるものです。
Tierraシステムの仕組みについて記載いたします。
- 1. 生命個体プログラムが活動する場所「スープ」
- 2. 初期生命個体(先祖種)の作成、動作
- 3. 突然変異
- 4. 進化種
畳み込みニューラルネットワーク(CNN)、C++、配列サイズ動的、メモリ動的確保
・配列の要素数の宣言に変数を使いたい。
下記のように
int num = 5;
int a[num];
・C++では上記のようにはできない。
・new演算子を使う方法がある。
int num = 5;
int* a = new int[num];
・num個のint型の配列を
メモリに割り当てて
そのメモリの先頭のアドレスを
ポインタ変数aに入れる。
・new演算子を使った後はdeleteで消さなければならない。
・newで確保したメモリはいつまでも(プログラムが終わるまで)残ってしまうため。
int num = 5;
int* a = new int[num];
delete[] a;
変数や配列の動的な生成
http://ext-web.edu.sgu.ac.jp/koike/semi/VC2005/c16.html
・2次元配列を同様にしようとしたがエラーとなる。
int num1 = 5;
int num2 = 5;
int** a = new int[num1][num2]; //NG
・newで確保できるのは1次元までなので、1次元ずつ確保していく。
int num1 = 5;
int num2 = 5;
int** a = new int*[num1];
for(int i=0; i<num1; i++) a[i] = new int[num2];
・削除も1行ずつ。
for(int i=0; i<num1; i++) delete[] a[i];
delete[] a;
ニューラルネットワークの作成 [C++][MNIST手書き数字画像データ][縮小MNISTデータ]
ニューラルネットワークをMNISTデータで実装していたが、認識率が向上せずむしろ劣化する結果となっていた。
原因を解析するためにより単純な状態を作ろうとして、最近は28*28のMNIST画像を縮小した9*9のミニMNISTデータを作成し、それでニューラルネットワークを実装したが、これでも同様に認識率が向上せずむしろ劣化した。
初期認識率が90%から開始しても10%から開始しても、学習を繰り返すと10%程度=10クラスなのでランダム認識率と一緒になっていた。
本を読み返していると、学習率について「0.01や0.001」「大きすぎても小さすぎても良い結果にならない」と書いてあった。
学習率を0.1や0.5で実行してしまっていたため、0.01にして実施してみると、初期認識率10%から50%へと向上した。
学習を繰り返せば更に改善するだろう。
割と長く詰まってしまっていたため非常に嬉しい。