タグ

algorithmとcalendarに関するslay-tのブックマーク (3)

  • EMアルゴリズム徹底解説 - Qiita

    ステップ2 $r_{nk}$を固定して$J$を$\mu_k$で偏微分して最小化します。 式変形をすると、 クラスタ$k$の最適なCentroidは上記のように、クラスター$k$に所属しているデータの平均であることがわかりました。 上記より最初のデモンストレーションで行っていたアルゴリズムは損失関数$J$の最適化によって導出されたものを適用していたことがわかります。 2−3. 実装 上記で示した2ステップを計算して、イテレーションを回すだけのシンプルなプログラムです。最後に更新前のmuと更新後のmuの差を取り、それがある程度小さくなったら収束したと判断し、イテレーションを止めるようにしています。 下記はアルゴリズム部分の抜粋です。プログラムの全文はコチラにあります。 for _iter in range(100): # Step 1 =============================

    EMアルゴリズム徹底解説 - Qiita
  • fastTextを使って単語じゃないものの分散表現を獲得する - Qiita

    ※ 2017/1/16に追記しました Retty Advent Calendarで穴が空きそうになったとき用に記事用意してたんですが、ちゃんとみんな埋めてくれたみたいです。良かった。 で、用意した記事が無駄になってももったいないので普通の記事として公開しちゃいます。 皆さんfastTextって知ってますか? Facebookが公開している自然言語処理用のツールです。GPU使わないのに超速いのでありがたく使ってます。 単語の分散表現を学習させたり文章の分類とかができるんですが、分散表現の学習の仕組みって語彙にID振ってone-hot vectorにして、それを次元圧縮してるんですよね?(適当) じゃあ、ID列で表せる何かならなんでも分散表現にできるんじゃね?って思いません? 思いついたらやってみましょう。 用意するもの fastText Rettyユーザーのお店詳細ページの閲覧履歴 やること

    fastTextを使って単語じゃないものの分散表現を獲得する - Qiita
  • 競技プログラミング特有の変な実装テク - ichyo.jp

    初めに この記事はCompetitive Programming Advent Calendar 2014の15日目の記事です. 競技プログラミングでは,アルゴリズムをひらめく力や,数学やアルゴリズムの知識量などが強さを決める大きな要素ではありますが, もちろん,プログラミングを使った競技である以上は,コードの実装力が勝敗を分けることもあります. 例えば,ICPC系のコンテストでは,アルゴリズムを考える能力よりも,実装量の多いプログラムをいかにバグなく高速に実装するかが重要な 問題セットが与えられることが時々あります. 競技プログラミングと無縁なプログラマーは,実装力と聞くと, クラスの構造をうまく設計したり,変更に強い美しいコードを実装する能力だと想像する人がいるかもしれません. ですが,プログラミングコンテストに必要な実装力は,そうした保守性や拡張性ではなく, 「目的の処理をシンプルな

  • 1