ブックマーク / nowokay.hatenablog.com (2)

  • おとうさん、ぼくにもYコンビネータがわかりましたよ! - 2009-04-09 - きしだのはてな

    やっと、Yコンビネータが何を意味するものなのか、どういう意義があるのかがわかりました。 名前を使わず再帰ができますよ!というだけのものじゃなかったのですね。 まずλありき 関数の話をしたいのです。 そのとき、いちいち hoge(x) = x * 2 としてhogeを・・・、とか名前をつけて話を進めるのがめんどうなので、関数を値としてあらわすと便利ということで、λという値を定義するのです。 そうすると、上のhoge関数なんかはλ(x)(x*2)などとあらわせますが、引数をあらわすのに()を使うといろいろまぎらわしいので、 λx.x*2 のように表記します。 というのがλ。 このとき、λになにかわたされたら、引数としてあらわされる部分を単純におきかえます。 (λx.x*2)y とあったら、xの部分をyでおきかえて (λx.x*2)y → y * 2 となります。λの引数部分を与えられた引数で置

    おとうさん、ぼくにもYコンビネータがわかりましたよ! - 2009-04-09 - きしだのはてな
    harupiyo
    harupiyo 2009/04/12
  • サポートベクターマシンであいさつbotを作るためのカーネル関数 - きしだのはてな

    Twitterの発言に、「おはよう」かどうかのフラグをつけてSVMにわせると、その発言が「おはよう」かどうか判定できるようになるので、「おはよう」判定したら「おはよ〜」と返すようにするとあいさつbotのできあがり。 というときに問題になるのが、カーネル関数をどうするかということ。文字列カーネルというのがあるようなんだけど、詳しいことがわからなかったのと、ちゃんと調べて実装するのもめんどかったので、とりあえず2文字ずつを比べてみるようなカーネル関数を考えてみた。 2文字の頻度=√(2文字の出現回数/全体の長さ) としておいて 一致度=Σ(発言1での頻度 * 発言2での頻度) とするようなカーネル関数を作成。完全に一致すると1、まったく一致しないと0になるはず。これがカーネル関数として使えるかどうかわかんないけど、内積の計算っぽいから大丈夫なはず。 そう。計算としては超高次元の内積を計算して

    harupiyo
    harupiyo 2008/08/12
  • 1