kntty.hateblo.jp

ここに何か書く。

Retentive Networkについてのメモ

Microsoft Researchから、Retentive Network が提案された(2023年7月)。 興味深いので、その意義についてざっくり理解したことを、つらつらとメモしておく。 (諸々正確でない点は、ご容赦いただきたい。) [1] Yutao Sun et al., Retentive Network: A Succ…

docopt は、docopt-ng として生き続けている、という話

Pythonでコマンドラインパーサと言ったら何を思い浮かべるだろう。 標準ライブラリ argparse の他、clickやfire などいろいろ選択肢があるが、私は docopt をずっと気に入って使っている。 で、docoptの(元祖)サイトを見に行くと、更新が止まっていてどうし…

100 / (100+α) みたいな割り算の手計算を、近似でラクする

100や1000などのキリの良い数を、「それプラスちょっと」の数で割る、という手計算を迫られる場面が、 少なからず(少なからず?)ある。 ぱっと浮かぶ例としては、税込金額における税別金額の比率を求める、とか。 100 / 108 = ? (※食品テイクアウトは、い…

tf.Kerasの事前学習済みモデルに、正則化を加える正しい方法

TensorFlow(2系)の、 tf.keras.applicationsの学習済みモデルに、L2等の正規化を加える方法。 次の記事[1]で解決した。簡単にその要約を記す。 [1] Silva TS. How to Add Regularization to Keras Pre-trained Models the Right Way. 2019. sthalles.github.…

Transformerを理解するまでに私が陥った、3つの勘違い

自然言語処理でお馴染み、他の分野も席巻しつつあるTransformerについて、 やっと自分の理解が追いついてきた。 Transformerとは何か、については、良い記事がたくさんあるのでそちらを参照されたい。 念のため、最小限の説明をすると、次のような感じ。 入…

Attentionと、全結合・畳み込みとの関係

Transformerに使われるAttentionと、FFN(Position-wise Dense)、全結合(Dense)、畳み込み(Convolution)の 関係を俯瞰するために、お絵描きを試みたので、ここに載せる。 もしかしたら不正確な表現があるかもしれないが、ご容赦いただきたい。 なお、図…

<s>Transformerを理解するために、早く知っておきたかったこと(メモ)</s>

2021.7.16 書き直しました。新しい記事の方を参照ください。

指数移動平均

指数移動平均(Exponential Moving Average; EMA)を得るためのテクニックの話。 以前、確か、Temporal Ensembling [1]の論文を読んだときに、なるほどー、と思ったときのメモ書きが出てきたので、文字に起こしておく。 [1] Laine S, Aila T. Temporal Ensembl…

分散と不偏分散と標準偏差と標準誤差と

それぞれどちらを使うべきか、時々混乱するので、整理する。 分散と不偏分散の定義 以下、手元に$n$個のサンプル $x _ i$ があって、その平均が $ m $ であるとする。 (通常の)分散: $ σ ^ 2 _ P = \frac {1}{n} \sum _ i {(x _ i - m)} $ 不偏分散: $ σ ^…

t-SNEやUMAPで、裾の広い分布を使う理由(混雑問題)

UMAPの記事で、距離ではなく「近さ」という言葉を使った。 単純に「距離」を当てはめるのでは上手くいかない理由の1つが、混雑問題(Crowding Problem)である。 混雑問題とは、「高次元で"同じ距離"を表せる範囲が、低次元では極端に狭くなる」(という解釈…

UMAPの仕組み ── 低次元化の理屈を理解してみる

1. はじめに 非線形の高次元データを低次元化して可視化する道具として、t-SNEに代わってUMAPが主流になってきている。 McInnes L, Healy J, Melville J. UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction. 2018. UMAPの仕組み…

数式を表示してみるテスト

katexで数式を表示してみるテスト。 7shiさんの参考記事、ありがたや。 https://7shi.hateblo.jp/entry/2018/07/28/231859 スカラー: $f _ n (\alpha)$、ベクトル: $\mathbf{b _ f}$. \left|\int_α^β (x-α)(x-β) dx\right| = \frac{1}{6}|β-α|^3

ブランク

アウトプットしたいものが出来たので、諸々の理由でここにアカウント作るかー、と思ったら、6年前に既に作ってた。 記憶から消失していたし、しっかり三日坊主してる。

operator()でCSVパーサ

boost::program_optionsの operator()の使い方に触発されて、 CSVパーサを実装。 #include <fstream> #include <boost/tokenizer.hpp> #include <boost/algorithm/string.hpp> #include <boost/lexical_cast.hpp> typedef boost::char_separator<char> separator; typedef boost::tokenizer<separator> tokenizer; // CSVパーサクラス class CsvParse…</separator></char></boost/lexical_cast.hpp></boost/algorithm/string.hpp></boost/tokenizer.hpp></fstream>

初投稿

気になるコードや技術などを、メモしていく、かもしれません。