ニューラルネットワーク
概要
ニューラルネットワーク?
脳内でニューロンからニューロンへの情報伝達をモデル化したもの。
ゲームAIに活用すると?
利点
- コーディングが単純だけど、複雑な動きができる
欠点
- 何をして、どのように結果に結びついたか分かりにくい
- 動作の予測が難しい
デバックが難しいので、実用に至る例はすくない。
アーキテクチャ

[入力層] [中間層] [出力層]
- ニューロンの数、層の数に制限はない
- 入力層以外のニューロンにはバイアスを入力する
入力
- ブール型、列挙型、連続型がある
- 実際のデータはFloatかInt
- 入力データはスケーリングして、範囲を均一にする
重み
- 各ニューロンからニューロンへの情報の伝達には重みがある
- この重みの決定が、ニューラルネットワークの学習または進化の対象になる
各ニューロンの最終的な入力値は、接続する全てのニューロンそれぞれの
入力値×重み+バイアス×重み の総和になる。これを最終入力と呼ぶ。
バイアス
- 入力層以外の全てのニューロンにかけられる
- 最終入力値を調整、しきい値を変更するために必要
- バイアスは通常は1または-1
- バイアスの重みは他の重みと同様学習によって調整される
活性化関数
- 最終入力から、そのニューロンの出力を決定する際にかける関数
- ロジスティック関数、シグモイド関数がよく使われる
出力
- 出力ニューロンは少ない方が、学習が早い
中間層
- 構造は様々。
- 中間層のニューロンは特徴を現すので、求めたい結果で数や構造が変わる
- 少なすぎると、ノイズだらけ。局所的な特性を逃す
- 多すぎると、変な局所的な特徴を拾う。計算が重たくなる
- 目安として、3層の場合、入力ニューロン数と出力ニューロン数の積の2乗が中間層のニューロンの数
学習
- 各ニューロン間、またはバイアスの重みを調整する
- 教師あり学習と教師なし学習がある
- 教師あり学習の方法に、バックプロパゲーション学習法がよく使われる
コーディング
- 最終更新:2011-06-19 00:10:09