More Related Content
Similar to Jubatusにおける機械学習のテスト@MLCT (20)
Jubatusにおける機械学習のテスト@MLCT
- 19. 雰囲気だけ・・・
19
void normal_herd::update(
const common::sfv_t& sfv, float margin, float variance,
const string& pos_label, const string& neg_label) {
for (common::sfv_t::const_iterator it = sfv.begin(); it != sfv.end(); ++it) {
// 中略略
storage_->set2(feature, pos_label,
storage::val2_t(pos_val.v1 + (1.f - margin) * val_covariance_pos
/ (val_covariance_pos * val + 1.f / C),
1.f / ((1.f / pos_val.v2) + (2 * C + C * C * variance) * val * val)));
if (neg_label != "") {
storage_->set2(feature, neg_label,
storage::val2_t(neg_val.v1 + (1.f - margin) * val_covariance_neg
/ (val_covariance_neg * val + 1.f / C),
1.f / ((1.f / neg_val.v2) + (2 * C + C * C * variance) * val * val)));
}
}
}
この中に⼀一箇所だけ+と−を間違えています
- 23. 正直すまんかった
@@ -38,7 +38,7 @@ void PA::train(const sfv_t& sfv, const
string& label) {"
if (sfv_norm == 0.f) {"
return;"
}"
- update_weight(sfv, loss / sfv_norm, label,
incorrect_label);"
+ update_weight(sfv, loss / (2 * sfv_norm), label,
incorrect_label);"
}"
"
string PA::name() const {
23
- 33. ハイパーパラメータは所詮ハイパーパラメータ
l λ が正しいか 1/r が正しいかの議論論は不不⽑毛
l いずれにせよ、ハイパーパラメータチューニン
グで最適化するものであるから、いずれかが間
違いとは⾔言えない
l 利利⽤用者側の観点でみると、考えるべきは論論⽂文と
の整合性よりも使い勝⼿手(⼀一貫性)
33
- 34. 直しました
--- a/src/classifier/arow.cpp"
+++ b/src/classifier/arow.cpp"
@@ -40,7 +40,7 @@ void AROW::train(const sfv_t& sfv, const
string& label){"
if (margin >= 1.f) {"
return;"
}"
- float beta = 1.f / (variance + config.C);"
+ float beta = 1.f / (variance + 1.f / config.C);"
float alpha = (1.f - margin) * beta; // max(0, 1-
margin) = 1-margin"
update(sfv, alpha, beta, label, incorrect_label);"
}
34