学習する天然ニューラルネット

主に機械学習に関する覚書や情報の整理

自動化で\のの/ラッシュを攻略 (毎週!いちかの超BEMANIラッシュ2020)

ののラッシュとは

これ。KONAMIリズムゲームのイベント。 カードを引くだけというカードバトルをする。 本田圭佑より勝てる。

p.eagate.573.jp

カード引くのめんどくさすぎ問題

このイベントでは1日1回、特定の時間にブラウザ上で操作が必要。 いや、普通に忘れるしめんどくさいわ。

SeleniumによるWeb操作の自動化

面倒な繰り返し操作はPythonにやらせる。 やることは前回の記事と一緒。

aotamasaki.hatenablog.com

書いたプログラムがこちら。

github.com

これを実行すると、特定の時間に勝手にwindowが開き、勝手にカードバトルをしてくれる。

使い方などは上記のリンク先に書いてあるので使いたい方がいましたらご自由に。

イメージとしてはこんな感じに動作します。 (いちかじゃんけんのときの動画の使いまわし)

f:id:aotamasaki:20200630210806g:plain

こうしてほっとくだけで楽曲を解禁できるようになったのであった。

バグ報告などはgithubのissuesからお願いします。

予言

じゃんけん、カードバトル、と来たので次のイベントはコイントスでしょう。本田圭佑に負けた分を取り返したい。

Mo's algorithm のPython実装 (コピペ用)

この記事はなに?

Mo's algorithmについてPythonでの実装が検索に引っかからなかったので、(自分のメモも含めて)ここに実装をおいておく。

コンテストに向けてコピペで済むように心がけた。

Mo's algorithmとは?

このブログにたどり着いてる時点で多くを語る必要はないと思うので以下の画像一枚で。

f:id:aotamasaki:20200804225915p:plain

詳細な解説は偉大な先駆者たちのブログを参照していただきたい。

続きを読む

自動化でいちかジャンケン2020を攻略

summary

これ作った。

f:id:aotamasaki:20200630210806g:plain

いちかジャンケンとは

これ。KONAMIリズムゲームのイベント。本田圭佑より勝てる。

p.eagate.573.jp

じゃんけんするのめんどくさすぎ問題

このイベントでは一日三回、特定の時間にブラウザ上でじゃんけんすることが必要。

2020/06/29時点では毎日以下の時間帯に操作する必要がある(逃した操作は取り戻せない)。

  • 1回目:10:00~15:00
  • 2回目:15:00~20:00
  • 3回目:20:00~10:00

いや、普通に忘れるしめんどくさいわ。

SeleniumによるWeb操作の自動化

面倒な繰り返し操作はPythonにやらせる。 プログラムをガーッっと書き。

続きを読む

蟻本Python回答集 中級前編 (P127~P187)

はじめに

AtCoder青を目指しつつデータ構造など勉強するため、プログラミングコンテストチャレンジブック [第2版] (通称、蟻本)を解くことした。 せっかくなのでPythonでの解答をここに記録する。

Pythonで解答してる人のブログを漁っても初級編の途中(DPとか)で挫折してる人が多そうだったので誰かの助けになれたらと思う。

著作権保護のため本の内容をすべて公開するわけではないので、解説などは本を見てほしい。 一方、変数名の説明なしにコード例が書いてある問題もいくつかあり、そういう問題はコードのコメントに意味合いを補足した。

この本の購入に関してはmynavi booksからPDFを購入するのがおすすめだ。ノートアプリを使っていろいろ書き込むことができる。

初級編はこちら

aotamasaki.hatenablog.com

続きを読む

蟻本Python回答集 初級編 (~P126)

はじめに

とうとうAtCoder水色になれた(過去問精進と夜活コンテストのおかげ)。さらなる高みを目指すべく、プログラミングコンテストチャレンジブック [第2版] (通称、蟻本)を解くことした。 せっかくなのでPythonでの解答をここに記録する。

Pythonで解答してる人のブログを漁っても初級編の途中(DPとか)で挫折してる人が多そうだったので誰かの助けになれたらと思う。

著作権保護のため本の内容をすべて公開するわけではないので、解説などは本を見てほしい。 一方、変数名の説明なしにコード例が書いてある問題もいくつかあり、そういう問題はコードのコメントに意味合いを補足した。

この本の購入に関してはmynavi booksからPDFを購入するのがおすすめだ。ノートアプリを使っていろいろ書き込むことができる。

book.mynavi.jp

続きはこちら

aotamasaki.hatenablog.com

続きを読む

Confident Learningは誤った教師から学習するか? ~ tf-idfのデータセットでノイズ生成から評価まで ~

概要

現実の判別問題において教師が完璧であることは珍しい。ラベリング作業において、知識不足や勘違いなどで引き起こされるヒューマンエラーはデータセットを汚染する。

このような間違った教師のことを、noisy label (corrupted label や polluted labelとも)という。誤った教師を用いると学習はうまく行かず判別性能は下がってしまう。近年ではこれに対処しようという研究が増えている。

ICML2020に Confident Learning: Estimating Uncertainty in Dataset Labels という論文が投稿された。しかも、よく整備された実装cleanlabまで提供されていた。

今回はRCV1-v2という文章をtf-idf(特徴量)にしたデータセットを用いて、Confident Learning (CL)が効果を発揮するのか実験を行った。またcleanlabを用いた実装を公開する。

結論としては、CLを用いると確かにnoisy labelなデータセットでも判別性能がよくなった。更にpseudo-labelingと組み合わせるともっと良くなるという結果が得られた。

目次

  • 概要
  • 目次
  • Confident Learning (CL)
  • 実験計画
    • 1. ML:clean
    • 2. ML:noisy
    • 3. CL:without noises
    • 4. CL:pseudo for noises
    • 5. CL:pseudo for noises and test
  • データセットと実験設定
  • 実験結果
  • cleanlabの一部機能の解説
    • 学習に関して
    • データ生成に関して
    • 今回の実験の実装
  • まとめ
  • 参考
続きを読む

Confident Learning -そのラベルは正しいか?-

これは何?

ICML2020に投稿された Confident Learning: Estimating Uncertainty in Dataset Labels という論文が非常に面白かったので、その論文まとめを公開する。

論文 [1911.00068] Confident Learning: Estimating Uncertainty in Dataset Labels

超概要

  • データセットにラベルが間違ったものがある(noisy label)。そういうサンプルを検出したい
  • Confident Learningという方法を提案。現実的な状況下でSOTAを達成
  • PyPIに実装を公開済みですぐに使用可能(pip install cleanlab)

GitHub - cgnorthcutt/cleanlab: Find label errors in datasets, weak supervision, and learning with noisy labels.

目次

  • これは何?
  • 超概要
  • 目次
  • 私感
  • 論文の概要
  • Class-conditional classification Noise Process
  • Confident Learningの概要
    • 入力
    • 出力
    • CLの処理
  • 同時分布Qの推定
    • Cを作るカウント方法
    • Qへの正規化
  • データクリーニング
  • 実験結果
    • 同時分布Qをうまく推定できているか
    • Noisy Labelを検出できているか
    • 他手法との比較
  • まとめ
  • 参考
続きを読む