タグ

ベクトルに関するt10471のブックマーク (3)

  • 劣勾配法(ヒンジ損失)書いたよ - kisa12012の日記

    ソースコード ソースコード 内容 劣勾配法の解説は,以下のブログ記事が詳しいです. 劣微分を用いた最適化手法について(3) | Preferred Research こちらでも劣勾配法について簡単に説明したいと思います. 多クラス分類問題を解く場合,ヒンジ損失関数は以下の式で定義することが出来ます. ここで,が現在の重みベクトル,が入力ベクトル,が正解ラベルです. ヒンジ損失関数では,正解ラベルのスコアと不正解ラベルのうち一番高いスコアとの差が重要な役割を果たします. このように定義したヒンジ損失関数を用いて,劣勾配法はデータが1つ与えられるたびに以下の更新式に従い重みベクトルを更新します. ここで,は,毎回の更新時にどの程度重みベクトルを動かすかを調節するステップ幅です. 多くの場合,ステップ幅はとなる値を用います.[Zinkevich, 2003] 以上が劣勾配法(ヒンジ損失関数)のア

    劣勾配法(ヒンジ損失)書いたよ - kisa12012の日記
    t10471
    t10471 2011/07/03
    読めてない・・・
  • 最近のバイナリハッシングをいくつかJavaで実装してみた - rubyu's blog

    去年の終わりから、バイナリハッシングを使った近似近傍検索をいろいろ調べていたのですが、ぼちぼち一段落したので、ひと通りまとめておきます。 バイナリハッシングとは。 個の 次元の点からなるデータセット で、元空間での近傍点を、類似したバイナリコードに関連づける技術。 要するに、実数ベクトルの検索をマトモにやるには、最近のデータは膨大すぎるのでお手上げ。なので、元空間での距離をなるべく保ったまま、バイナリコードに落としましょう。 そうすると、バイナリ一致か、1ビット違うか、2ビット違うか...と、捜索していくにしても、元空間のデータでやるより高速で、しかもストレージ容量を削減できるというわけです。 その ビットのバイナリコード を作るために、 個のハッシュ関数が使われる。 ハッシュ関数は と定義される。ここで、 はデータセット。 は射影ベクトル。 は閾値。 線形写像ベースのハッシングはシンプル

    最近のバイナリハッシングをいくつかJavaで実装してみた - rubyu's blog
  • 平面幾何におけるベクトル演算 » 直線と線分

    で求まります(ここで |x×y| は実数に対する絶対値, |x| はベクトルに対する絶対値と「絶対値」の意味が異なっている点に注意してください)。 コーディングは以下の通りです*1: // 点a,bを通る直線と点cとの距離 double distance_l_p(P a, P b, P c) { return abs(cross(b-a, c-a)) / abs(b-a); } 線分と点の距離 今度は線分と点の距離を考えてみましょう。 距離としてどのような値が欲しいのか,というのは問題依存なのですが, ここでは一般的な距離の定義に従って,点から「線分のどこか」への最短距離としてみます。 そうすると,線分 ab に垂直な直線で点 a を通る直線と点 b を通る直線に囲まれた領域(下図の左の赤色領域に相当)にある点であれば, 点から直線 ab への垂線が最短距離になります。 また,点 c がこ

  • 1