タグ

ブックマーク / aidiary.hatenablog.com (10)

  • ラングトンの自己複製オートマトン - 人工知能に関する断創録

    ついにやった!ループが自己複製をしている。 ラングトンの日記(1979/10/26) ラングトンの自己複製オートマトンは、ラングトン・ループ(Langton's Loops)と呼ばれます。ライフゲームと同じ二次元のセル・オートマトン空間上でループが増殖していきます。下が増殖の様子を撮影した動画です。もっとよくみたいときは後で掲載するPythonスクリプトを実行してみてください。 この自己複製するループは、クリストファー・ラングトン(Christopher Langton)という人が提案しました。ラングトンは、人工生命(Artificial Life)という研究分野の創始者です。 こういう複製はトップダウンでルールを与えれば簡単にできます。たとえば、腕を10ピクセル伸ばしたら左に90度曲げるを繰り返し、ループが完成したら切り離す。でもこれではまったく面白くない!ラングトンのループのすごいとこ

    ラングトンの自己複製オートマトン - 人工知能に関する断創録
  • 遺伝的アルゴリズムの紹介 - 人工知能に関する断創録

    2001年の勉強会で発表した遺伝的アルゴリズムの紹介資料です。HDDをあさってたら見つけたので一応記録。ほんのさわりです。最近の研究ではどこまで進展したんでしょうね?遺伝的アルゴリズムって複雑系と人工生命の文脈で捕らえるのが面白いのに、研究だとただの探索アルゴリズムになっちゃうのが悲しかった。 はじめに 遺伝的アルゴリズム(Genetic Algorithm:GA)とは、生物進化(自然選択、突然変異)から着想を得た汎用的な探索手法です。探索というのは、たくさんの解の候補がある中から、最も良い解を探すことです。つまり、GAとは解の候補から最もよいものを探すのが目的と考えられます。 歴史的背景 GAは、1975年、Hollandによって初めて導入されました。当時は、「なぜ進化のような何十億年もかかるプロセスの真似をするのか?」という反応が多かったらしいです。しかし、その後のGoldbergの研

  • テキストからWikipedia見出し語を抽出 - 人工知能に関する断創録

    WindowsでMeCab Pythonを使う(2010/11/21)のつづきです。形態素解析を使ってると単語が変なところで切れていたり、未知語が多かったりと不満点が出てきます。また、応用によっては、形態素ではなく、複合語単位で抽出したいということもしばしばあります。たとえば、 人工知能は、コンピュータに人間と同様の知能を実現させようという試み、あるいはそのための一連の基礎技術をさす。 人工知能という名前は1956年にダートマス会議でジョン・マッカーシーにより命名された。 現在では、機械学習、自然言語処理、パターン認識などの研究分野がある。(Wikipedia人工知能』を改変)という文章をMeCabで形態素解析して名詞のみ取り出すと、 人工 知能 コンピュータ 人間 同様 知能 実現 試み ため 一連 基礎 技術 人工 知能 名前 1956 年 ダート マス 会議 ジョン マッカーシー

    テキストからWikipedia見出し語を抽出 - 人工知能に関する断創録
  • パーセプトロン - 人工知能に関する断創録

    今回は、4.1.7のパーセプトロンアルゴリズムを実装します。パーセプトロンは、2クラスの識別モデルで、識別関数は式(4.52)です。 パーセプトロンは、下の条件を満たすような重みベクトルwを学習します。教師信号は、クラス1のとき教師信号+1、クラス2のとき-1(0じゃない)なので注意。 上の条件をまとめるとxnが正しく分類されているときは、 を満たします。この条件はあとでプログラム中で使います。パーセプトロンは、正しく分類されているパターンに対してはペナルティ0を割り当て、誤分類されたパターンにペナルティ を割り当てます。上の式の値はxnが誤分類されたデータの場合、必ず正になるので注意。なのでパーセプトロンの誤差関数(パーセプトロン基準)は、 で与えられます。ここで、Mは誤分類されたパターンの集合です。この誤差関数は誤分類のパターンが多いほど値が大きくなるので誤差関数を最小化するようなwを

    パーセプトロン - 人工知能に関する断創録
  • フィッシャーの線形判別 - 人工知能に関する断創録

    今回は、4.1.4のフィッシャーの線形判別を試してみました。これは、他の手法と少し毛色が違う感じがします。まず、D次元の入力ベクトルxを(4.20)で1次元ベクトル(スカラー)に射影します。ベクトル同士の内積なので結果はスカラーで、wはxを射影する方向を表します。 フィッシャーの線形判別は、射影後のデータの分離度をもっとも大きくするようなデータの射影方向wを見つけるという手法だそうです。 クラス1のデータ集合C1の平均ベクトルとクラス2のデータ集合C2の平均ベクトル(4.21)をw上へ射影したクラス間平均の分離度(4.22)を最大にするwを選択するのが1つめのポイントのようです。式(4.22)の左辺はスカラーです(フォントの違いがわかりにくい)。 wは単位長であるという制約のもとで(4.22)を最大化するようにラグランジュ未定乗数法で解くと、 という解が得られます(演習4.4)。これは、ベ

    フィッシャーの線形判別 - 人工知能に関する断創録
  • ロジスティック回帰 - 人工知能に関する断創録

    今回は、ロジスティック回帰です。この方法はPRMLで初めて知りましたが、統計学の方では一般的な方法のようです。回帰という名前がついてますが、実際は分類のためのモデルとのこと。ロジスティック回帰では、クラス1の事後確率が特徴ベクトルの線形関数のロジスティックシグモイド関数として書けることを利用しています。 ここで、σ(a)は式(4.59)のロジスティックシグモイド関数です。 訓練データ集合 {x_n, t_n} (今度は、クラス1のときt_n=0, クラス1のときt_n=1なので注意)からパラメータwを最尤推定で求めます。尤度関数は、 と書けるので、誤差関数(尤度関数の負の対数)は、 となります。誤差関数を最小化するようなwを求めたいってことですね。で、普通だったら今までのようにwで偏微分して0とおいてwを解析的に求めるところですが、yにロジスティックシグモイド関数が入っているせいで解析的に

    ロジスティック回帰 - 人工知能に関する断創録
  • 非線形SVM - 人工知能に関する断創録

    今回は、非線形サポートベクトルマシンを試してみます。線形SVM(2010/5/1)は、カーネル関数に線形カーネル(ただの内積)を使いましたが、これを多項式カーネル(A)やガウスカーネル(B)に変更します。 カーネル関数は元のベクトルxを非線形写像によって高次元空間に写像した特徴ベクトルφ(x)の内積(C)で定義されます。 一般に特徴ベクトルφ(x)は高次元空間(無限次元空間でもOK)になるので普通にやってたら内積の計算量が非常に大きくなります。そこで、特徴ベクトルφ(x)の内積を計算せずに多項式カーネル(A)やガウスカーネル(B)の計算で置き換えるテクニックをカーネルトリックと呼ぶとのこと。多項式カーネルやガウスカーネルを使うとφ(x)を陽に計算する必要がなくなります。ただ、元の空間xでの内積は必要なんですよね・・・最初は、カーネルトリックのありがたみがよくわからなかったのですが、「入力空

    非線形SVM - 人工知能に関する断創録
  • ソフトマージンSVM - 人工知能に関する断創録

    前回(2010/5/2)のハードマージンSVMでは、データに重なりがある場合、下のようにちゃんと分類境界を求められませんでした。今回は、重なりのあるクラス分布に対応できるように拡張してみます。このようなSVMはハードマージンSVMに対してソフトマージンSVMと呼ばれます。別名としてC-SVMとも呼ばれるようです。 PRMLの7.1.1にあるように、データの誤分類を許すようにSVMを修正します。ハードマージンSVMでは、データ点がマージン内(-1 < y < 1)に絶対に入らないことを前提にしていましたが、ソフトマージンSVMでは「入ってしまったものは仕方ない、だがペナルティを与える!」と少し条件を緩めます。 まず、スラック変数ζ(ゼータ)をデータごとに導入します。スラック変数は、データが正しく分類されかつマージン境界上または外側にある場合は0、正しく分類されているがマージン内に侵入してしま

    ソフトマージンSVM - 人工知能に関する断創録
  • 最尤推定、MAP推定、ベイズ推定 - 人工知能に関する断創録

    1.2.5 曲線フィッティング再訪 1.2.6 ベイズ曲線フィッティング のところを実装してみます。前回は、最小二乗法で曲線フィッティングをしたけど、ベイズ的な方法で解こうって話のようです。この2つの節では、 最尤推定 最大事後確率(MAP)推定 ベイズ推定 という3つのパラメータ推定方法が曲線フィッティングという具体例で説明されてます。他の教科書では抽象的に定式化されていて違いがよくわからなかったけど、この章では曲線フィッティングという具体例に基づいて説明されているのでわかりやすいと感じました。 最尤推定 まず、最尤推定のプログラムです。実は、最尤推定で対数尤度(1.62)を最大化することは、最小二乗法の二乗和誤差関数E(w)の最小化と等価なのでwの求め方は最小二乗法(2010/3/27)とまったく同じです。 最尤推定では、目標値tの予測分布を求めるためもう1個予測分布の精度パラメータ(

    最尤推定、MAP推定、ベイズ推定 - 人工知能に関する断創録
  • 類似画像検索システムを作ろう - 人工知能に関する断創録

    C++版のOpenCVを使ってカラーヒストグラムを用いた類似画像検索を実験してみました。バッチ処理などのスクリプトはPythonを使ってますが、PerlでもRubyでも似たような感じでできます。 指定した画像と類似した画像を検索するシステムは類似画像検索システムと言います。GoogleYahoo!のイメージ検索は、クエリにキーワードを入れてキーワードに関連した画像を検索しますが、類似画像検索ではクエリに画像を与えるのが特徴的です。この分野は、Content-Based Image Retrieval (CBIR)と呼ばれており、最新のサーベイ論文(Datta,2008)を読むと1990年代前半とけっこう昔から研究されてます。 最新の手法では、色、形状、テクスチャ、特徴点などさまざまな特徴量を用いて類似度を判定するそうですが、今回は、もっとも簡単な「色」を用いた類似画像検索を実験してみます

    類似画像検索システムを作ろう - 人工知能に関する断創録
  • 1