タグ

ブックマーク / blog.unnono.net (2)

  • Statistical Semantics入門の発表をしました

    先週のPFIセミナーで、Statistical Semantics入門という発表をしました。 主に分布仮説をベースにした、単語の意味を文脈の分布で表現する研究を纏めました。 LSIから始まって、PLSI、LDAと続く言語モデル系、NMFなどの行列分解系、そしてNNLM、RNNLMと来て昨年流行したニューラルネット系の3つでまとめるという形をとっています。 あまり専門的になりすぎず、過去からの歴史や流れを踏まえ、一方で実用面や研究テーマのココロ、問題意識を重視するような内容になるように心がけたつもりではあります。 当初、他の「いわゆる意味論」との比較みたいなスライドもあったのですが、変なコト言うと刺されると思ったので消しましたw ところで、応用の観点でこれらの話をどう考えているか、というような点について触れるのを忘れたな、と思ったのでこちらに書いてみます。 基的に私見ですが。 私自身は、単

    mEGGrim
    mEGGrim 2014/02/12
  • 動的型情報で仮想関数呼び出しを速くできるか

    C++は抽象化と高いパフォーマンスを両立させるにはtemplateを使うのがセオリーでした。そのため、標準ライブラリはtemplateを使っています。一方のJavaは、積極的に仮想関数を使っています。しかし、Javaは動的型情報を使った実行時インライン展開ができるため、C++と違って疎結合のまま高いパフォーマンスを出すことが出来ました。しかし、よく考えれば、C++でも実装クラスが限定されるなら、Javaと同様なことをハードコードすることでC++の仮想関数を高速ができるのではと思って試してみました。 結論から言うと、一応速くなりました。でも、インライン展開を抑制しなければいけないほどの効果が出るのは、かなり限定的のようです。 さて、順を追って説明します。 まず、C++では仮想関数を使うと遅くなるというはなし。C++で仮想関数を使うと、仮想関数テーブルが作られます。そして、関数呼び出しが起こる

  • 1