ニューラルネットワーク



概要

ニューラルネットワーク?

脳内でニューロンからニューロンへの情報伝達をモデル化したもの。

ゲームAIに活用すると?

利点
  • コーディングが単純だけど、複雑な動きができる
欠点
  • 何をして、どのように結果に結びついたか分かりにくい
  • 動作の予測が難しい

デバックが難しいので、実用に至る例はすくない。

アーキテクチャ


NN1.png
      [入力層]       [中間層]      [出力層]
  • ニューロンの数、層の数に制限はない
  • 入力層以外のニューロンにはバイアスを入力する

入力

  • ブール型、列挙型、連続型がある
  • 実際のデータはFloatかInt
  • 入力データはスケーリングして、範囲を均一にする

重み

  • 各ニューロンからニューロンへの情報の伝達には重みがある
  • この重みの決定が、ニューラルネットワークの学習または進化の対象になる


各ニューロンの最終的な入力値は、接続する全てのニューロンそれぞれの
入力値×重み+バイアス×重み の総和になる。これを最終入力と呼ぶ。

バイアス

  • 入力層以外の全てのニューロンにかけられる
  • 最終入力値を調整、しきい値を変更するために必要
  • バイアスは通常は1または-1
  • バイアスの重みは他の重みと同様学習によって調整される

活性化関数

  • 最終入力から、そのニューロンの出力を決定する際にかける関数
  • ロジスティック関数、シグモイド関数がよく使われる

出力

  • 出力ニューロンは少ない方が、学習が早い

中間層

  • 構造は様々。
  • 中間層のニューロンは特徴を現すので、求めたい結果で数や構造が変わる
  • 少なすぎると、ノイズだらけ。局所的な特性を逃す
  • 多すぎると、変な局所的な特徴を拾う。計算が重たくなる
  • 目安として、3層の場合、入力ニューロン数と出力ニューロン数の積の2乗が中間層のニューロンの数

学習

  • 各ニューロン間、またはバイアスの重みを調整する
  • 教師あり学習と教師なし学習がある
  • 教師あり学習の方法に、バックプロパゲーション学習法がよく使われる

コーディング



  • 最終更新:2011-06-19 00:10:09

このWIKIを編集するにはパスワード入力が必要です

認証パスワード