機械学習の詰め合わせ

機械学習周りで考えたことやインプットしたことをまとめる場所。

バイアスパラメータは重み減衰させるべきか?

「Biasパラメータはweight decayの対象から除外すべき」という意見[1]がある。 典拠 これの根拠について明示的に議論した論文は見つけられなかったが、Pytorch Forum[1]で言及されているように、NFNetの論文[2]において「biasとgain(どちらもscalar)のパラ…

バッチサイズと学習率の関係について

「学習率をバッチサイズに比例して増やす」(ルール1) という慣例があるが、これの根拠について説明する。 典拠 まず、このアイデアの出所は論文[1]だと思われる。 この論文では「学習率をバッチサイズに比例して増やす」というルールを適用すると幅広いバ…

StratifiedGroupKFoldの実装を読んだ

有名なアルゴリズムの実装を読む シリーズの第二回。 今回はscikit-learnのStratifiedGroupKFoldの元のなったKaggle Notebookの実装を読んだ。といっても43行のとても短いコードである。 表記 n_fold: フォールド数 n_groups: ユニークなグループ数 n_labels…

scikit-learn-extraのKMedoidsの実装を読んだ

概要 scikit-learn-extraのKMedoidsの実装を読んだので備忘録として残しておく。 KMedoidsとは KMeansと同種のクラスタリングアルゴリズムで、クラスタの代表点としてクラスタの重心(centroid)でなくメドイド(medoid)を使う。メドイドは1次元における中央値(…

8日目: 決意表明

100日後にCompetition Masterを目指す 今後のコンペ参加方針について 100日後にCompetition Masterを目指す Ottoコンペは残念ながらメダル争いの圏外だった。 とはいえ良い事もあって、GBRの時のように燃え尽き症候群が発生していない。 精神的にも体力的に…

6日目: Ottoコンペの振り返り

11月から参加していたKaggleコンペOTTO – Multi-Objective Recommender System(通称Otto)の期間中にあった出来事について振り返っておく。 全体の感想 CVのリークについて データ設計について 共通の設計 学習スキーム(candidate generator; 1段目) 学習…

1日目: Kaggleをやる動機

はじめに Kaggleをやる動機 1. 自分が「どの程度頑張れる人なのか」を確認する 2. 公開ノートブックやディスカッションから刺激を得るため 3. 問題解決プロセスの訓練の場として まとめ はじめに ブログが続かないので、何かテーマを決めて書き始めることに…

『はじめて学ぶバイナリ解析』本の非公式実行環境を作った

『はじめて学ぶバイナリ解析』実行環境(非公式) 『はじめて学ぶバイナリ解析』本1の非公式実行環境をDockerで作成し、MITライセンスで公開しました。公式では実行環境をVirtualBoxで提供していますが、資材が1.7GBと軽いのが特徴です。 github.com 作った…

Kaggle Notebook実行環境と仮想環境の運用について

概要 今回作ったKaggle Notebook実行環境の構成の紹介と、機械学習の実験環境におけるpython仮想環境の運用方法について書く。 経緯 これまでAnacondaでpytorch, tensorflowなどと主要なフレームワークごとに仮想環境を作り、複数のプロジェクトで使い回す運…

自宅のマシンに外部からSSH接続する各種パターンについて

概要 自宅に構築したPC/サーバに、外部のネットワークからSSH接続する場合の構築パターンについてまとめる。 前提条件 自宅の回線は通信事業者が提供する一般家庭向きの回線を想定。したがってIPアドレスは可変。 自宅マシンは基本的にCLIで操作する(GUIは…

data poisoningがモデルに与える影響について

はじめに 多クラス分類における判別境界 毒入りサンプルによる特徴ベクトルの分布への影響 毒入りサンプルによる判別境界への影響 おまけ: 判別境界の可視化方法について 線形多クラス分類モデルの判別境界 多次元特徴空間上の判別境界を2次元に可視化する方…