Posts
日本語版Image Captioningの学習・推論コードを提供する
· ☕ 1 min read
ひょんなことから最近Image Captioning(画像キャプション生成)を触っている だが, ググってもググっても日本語でImage Captioningしてる人があまりに居ない… コードを検索してもヒットしたのはこの子だけ…🤔 (しかもChainer …) https://github.com/yuyay/chainer_nic 日本語での画像キャプション生成界隈はプレイヤ ...


【論文メモ】Can Neural Nets Learn the Same Model Twice? Investigating Reproducibility and Double Descent from the Decision Boundary Perspective
· ☕ 4 min read
はじめに CVPR22 決定境界を描画し, 再現性と汎化性について定量的に考察した論文 決定境界の描画 (領域の決定) 如何に決定境界を描画するかが重要になってくる その上でまず, データ多様体 $\mathcal{M}$の近傍(on-manifold)を取るのか, $\mathcal{M}$から離れた領域(off-manifold)を取るのかを考 ...


【相関係数】Pearson・Spearman・Kendallの使い分け
· ☕ 1 min read
ピアソン $$ r_{xy} = \frac{\sum(x_{i}-\overline{x}) \sum(y_{i}-\overline{y})}{\sqrt{\sum(x_{i}-\overline{x})^{2}}\sqrt{\sum(y_{i}-\overline{y})^{2}}} $$ データ(X,Y)が連続で正規分布に従っていることが前提 なので外れ値に弱い スピアマン $$ \rho_{xy} = \frac{\sum_{i=1}^{n}(R(x_i) - \overline{R(x)})(R(y_i) - \overline{R(y)})} {\sqrt{\sum_{i=1}^{n}(R(x_i) - \overline{R(x)})^{2}\cdot\sum_{i=1}^{n}(R(y_i)-\overline{R(y)})^{2}}} = 1 - \frac{6\sum_{i=1}^{n}(R(x_i) - R(y_i))^{2}}{n(n^{2} - 1)} $$ $R(x)$は $x$の順位 順位をそのままピアソンの式に当てはめるイメージ 正規分布・連続という仮定がない分使い勝手が良い ケンドール $$ \tau_{xy} = \frac{n_c - n_d}{n_c + n_d} = \frac{n_c - n_d}{n(n-1)/2} $$ データ $(x_i,y_i ...

【論文メモ】Test-Time Training with Self-Supervision for Generalization under Distribution Shifts
· ☕ 2 min read
PMLR20 trainとtestで分布が違う場合の再学習手法TTT(Test-Time Training)を提案 まずは普通に学習 次にモデルを前半(A)と後半(B)に分けて, 元のA + 新しいB’ のモデルで自己教師あり学習を行う headを取っ替えるイメージ (B→B') このとき, testサンプルを使用して自己教師あり学習を行う ...

【論文メモ】Energy-Based Learning for Scene Graph Generation
· ☕ 3 min read
はじめに Energy Based Modelを用いて画像からscene graphを生成する手法(フレームワーク)を提案 既存手法は次のようにクロスエントロピーでscene graphを生成する $$\log p(SG|I) = \sum_{i \in O} \log p(o_i| I) + \sum_{j \in R} \log p(r_j | I).$$ このとき, object $O$とrelation $R$が互いに独立に計算されている ここが問題で, 本来なら互いに弱い依存性があるはず し ...


【TeamViewer】sshでパスワードを変更する
· ☕ 1 min read
TeamViewerでパスワードがわからなくなった どうやらsshで入れるならパスワードを変更できるらしい sudo teamviewer passwd [password] で任意のパスワード[password]に変更可 1 2 3 teamviewer info sudo teamviewer passwd [password] teamviewer info ...

【ray】@remoteがメモリを大量に食う時はray.put()を使おう
· ☕ 2 min read
はじめに rayとは → https://github.com/ray-project/ray 分散並列処理を簡単に書けるフレームワーク ray.remoteは怖い @ray.remoteが付された関数が使用するオブジェクトは, 呼び出される都度内部でray.put()が呼ばれ, データがメモリ上に展開される 若干この仕様が厄介で, ray.get()なんかを使うと, 同じオブジェクトを何度もメモリ上に展 ...

pycocoevalcapのMETEORがバグる (self.meteor_p.stdin.flush)
· ☕ 1 min read
なぜかpycocoevalcapでMETEORの計算が止まる問題 どうやらself.meteor_p.stdin.flush() あたりで止まっているらしい 結論から言えば, 俺の場合キャプションに\nが入っていたせいだった そもそもCOCO captions のキャプション自体結構汚いので注意 変な改行入ってたり, キャプションがなぜか6つあったり ...


Stochastic Gradient Langevin Dynamicsを理解する
· ☕ 4 min read
はじめに MCMCの一種 目標: ある分布 $\pi(x)$からのサンプリングを行いたい Metropolis-Hastingsアルゴリズム (MH) Hamiltonian Monte Carlo (HMC) Langevin Dynamics (Metropolis-adjusted Langevin Algorithm) Stochastic Gradient Langevin Dynamics (SGLD) の順に見ていくと理解しやすい Metropolis-Hastings Metropolis-Hastingsについては既知のもとする 提案分布 $q(z)$を元に判定関数を用いて受容・棄却を行うMCMC cf. ...

ハミルトニアン
· ☕ 1 min read
解析力学において, ハミルトニアンとは「系のエネルギーを座標と運動量で表したもの」 系のエネルギー自体を表すため, 時間変化せず時間 $t$に依存しない $\mathcal{K}$を運動エネルギー、 $\mathcal{U}$をポテンシャルエネルギーとして $$H := H(q,p;t) =\mathcal{K}(p)+\mathcal{U}(q)$$ ハミルトニアンの正準方程式 運動ベクトル $p_r$と座標ベクトル $q_ ...

必要なものだけpip freezeする方法
· ☕ 1 min read
pipreqsという非常に便利なライブラリが存在する pipreqs . だけでimportされているライブラリだけを出力してくれる マジで便利 例 pipreqsを使えばこれが出力される 1 2 3 4 5 6 7 8 9 10 11 12 ❯ pipreqs . && cat requirements.txt colored_traceback==0.3.0 h5py==3.7.0 matplotlib==3.5.3 nltk==3.7 numpy==1.23.2 Pillow==9.2.0 pycocoevalcap==1.2 skimage==0.0 torch==1.8.2+cu111 torchvision==0.9.2+cu111 tqdm==4.64.0 pip freeze だとこれ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 ...

「AのB」問題
· ☕ 1 min read
名詞句「AのB」は意味が多い・曖昧すぎて, 非常に解析しにくい NLP界隈では「AのB」の怖さを徹底的に叩き込まれるらしい 先生曰く, 読み方は ✅ 「エー→のビー」 ❌「エー⤵のビー」 らしい KNPを作った京大黒橋研の論文 国語辞典を用いた名詞句「AのB」の意味解析 名詞に必須格の考え方を持ち込み, 国語辞典から「AのB」の解析=分類を試 ...

【論文メモ】Your classifier is secretly an energy based model and you should treat it like one
· ☕ 1 min read
分類問題について, 生成モデルで用いられるEnergy Based Modelに基づいた学習手法を提案 一般的な学習 あるNNを $f_\theta(x)$とすると, 出力の $y$番目を $f_\theta(x)[y\rbrack$として, softmaxは以下のように表される $$p_{\theta}(y|{\bf x}) = \frac{\exp{\left(f_{\theta}({\bf x})[y\rbrack \right)} } { \sum_{y^{\prime}}\exp{\left(f_{\theta}({\bf x})[y^{\prime}\rbrack \right)} }$$ ここで, Energy Based Modelでは $$p_{\theta}(\boldsymbol{x},y) = \frac{\textrm{exp}(-E_{\theta}(\boldsymbol{x},y))}{Z_{\theta}}$$ と定義される ...