情報処理

形式文法による文章生成

「形式文法」について調べてみると、その厳密な定義やオートマトンと組み合わせた判定・解釈の話が多くて、具体的な文章生成に関する説明が見当たらない。 ここでは、形式文法によって文章を作り出す方法について、簡単な具体例を使って説明してみる。 ■ は…

ApacheログからのReferer集計

Webページのアクセスが増えたときなどに、アクセス元(こちらにリンクしているサイト)の情報を知りたいことがある。 Apacheのアクセスログから、Refererを集計して、アクセス数の多い順に並べられるといい。これは、Linuxのcut sort uniq コマンドを次のよ…

全脳アーキテクチャ勉強会

人工知能について調べていてたどりついたページ。■ 全脳アーキテクチャ解明に向けて https://staff.aist.go.jp/y-ichisugi/brain-archi/j-index.html上記のページでは、昨年12月に開催された「第1回 全脳アーキテクチャ勉強会」の発表資料が公開されている…

人工知能の考え方が人間の理解を超えたとき

人工頭脳が代ゼミ東大模試で偏差値約60達成 〜「ロボットは東大に入れるか」数学チーム http://pc.watch.impress.co.jp/docs/news/20131125_624993.html上記の記事の中で紹介されていた「東ロボの東大模試の答案用紙」が衝撃的だった。この答案用紙に記述さ…

グラフカット(Graph Cut)

ここで説明するグラフカットは、画像の領域抽出などで使用される手法の1つ。■ 用途たとえば、写真画像から背景と前景物を分離したいとか http://www.insight-journal.org/browse/publication/777CT画像 から臓器の領域だけ取り出したい、という用途で使用さ…

ガボール・フィルタ(Gabor Filter)

ここで説明するガボール・フィルタは、画像処理で用いられる各種画像フィルタの1つ。■ 画像フィルタって?画像を構成する各画素の値に、特定の処理を施すことで、画像の処理を行うもの。 詳しくは、こちらがわかりやすい。・フィルター処理 http://www.gifu-…

ボイヤー・ムーア法

文字列の検索アルゴリズムとして、ボイヤー・ムーア法と呼ばれる有名なものがある。詳しくはWikipediaの「ボイヤー-ムーア文字列検索アルゴリズム」を見てもらうとして、直観的に理解するには次のページの図がわかりやすい。■ [ITpro http://itpro.nikkeibp.…

機械学習(教師有学習と教師無学習)

■ 教師有学習届いたメールが、「迷惑メール(スパム)」なのか、そうではなくて「通常のメール」なのかをコンピュータに判定させたい。どのようにしてコンピュータに「迷惑メール」と「通常のメール」の違いを教えたらいいだろうか。「○○や××のキーワードを…

数値計算ライブラリ

■ FADBAD++ http://www.fadbad.com/fadbad.htmlC++言語のテンプレートを活用した微分計算ライブラリ。オープンソース。 最適化計算では、目的関数の微分値を求める必要が生じるけど、それを自分で実装するのは手間がかかる。 FADBAD++では、目的関数を記述す…

Rで行列を扱う

統計ソフト R で行列を扱うことができる。直接要素を指定する場合には、次のようにする。 matrix(c(0,1,2,3,4,5,6,7,9), 3, 3) 配列cに指定した値は、行列の左上から列方向下に向かって順番に格納されるので注意。 例えば、次のようになる。 > a <- matrix(c…

gnuplot で点の座標を直接指定する

gnuplot では、テキストファイルからデータを読み込んでグラフを表示することが一般的だけど、直接座標を指定したいこともある。 その場合は plot "-" と入力すればよい。 後に続けて、x座標とy座標をカンマで区切って入力する。(カンマの次に半角空白を入…

Mathematicaの中身

数学の研究は、紙と鉛筆と人間の頭脳だけで進められていると思いがちだけど、 最近は、数式処理を行うソフトウェアを活用する例も多いらしい。特にWolfram Mathematicaは秀逸で、大学などでも広く使われている。Mathematicaのオンライン版とも言える、Wolfra…

B-Spline 近似

2次元の点列をB-Spline曲線で近似する方法の紹介。 一般的に「B-Spline補間」などをキーワードとして出てくる話は、関数f(x)のグラフの補間だったりするけれど、そうではなくて下の図のような2次元の自由曲線の表現の話。 例えば、マウスドラッグで描いた凸…

フーリエ変換

フーリエ変換とは、ある波形を正弦波のような性質の良くわかっている波形の重ねあわせで表しましょう。というもの。そうすると、[周波数、振幅]という値の集合(デジタルデータ)で任意の波形を表すことができて、無視して構わないような高周波成分を省略し…

疑似コード

過去のエントリ「論文での疑似コードの書き方」へのアクセスが多いので、少し追加してみる。疑似コードの書き方について、最初に言ってしまうと、 書き方は千差万別決まったルールはなく、アルゴリズムの内容を伝えることが目的。特定の言語の文法に依存せず…

サポートベクターマシン

サポートベクターマシン。名前だけ見るとちょっとカッコイイ。Support Vector Machineの頭文字をとって SVM とも呼ばれる。 画像中のパターン認識の分野でよく使われる。簡単に言ってしまうと次のようなもの。・データ群を2つのグループに分類するために使用…