機械学習・自然言語処理の勉強メモ

学んだことのメモやまとめ

numpy

Negative Samplingの復習

はじめに 今更ですが、word2vecの高速化の計算手法である「Negative Sampling」について復習しました。 世は完全に「Transfomer」の趨勢ですが、勉強のために復習しました。前に「階層的ソフトマックス」を説明している論文を読んでいて、これってどう実装す…

gensimに依存しない単語の類似度計算

はじめに 前にgensimによる単語の類似度について書きました。 kento1109.hatenablog.com この手の記事はググればいっぱい出てくるので、gensimでモデルを作って単語の類似度を計算するのは難しくないと思います。ただ、LSTMなどで学習した後の単語の分散表現…

numpyの行列計算(tensor×matrix)

ベクトル同士、行列×ベクトルだとイメージしやすいが、テンソル(※)×行列は頭の中でイメージするのが難しい場合がある。 ※ここでは、3階以上の階数の行列を指す結論を先に書いておくと、 3階テンソル 行列 内積 m×n×k k×p m×n×p また、 行列 3階テンソル 内…

numpyで特異値分解

特異値分解は、行列を複数の行列の積に分解する方法。こんな感じで分解。 import numpy as np X = np.array([[3,4,1] ,[7,3,2] ,[5,4,2] ,[1,2,1] ,[2,3,2]]) U, s, V = np.linalg.svd(X, full_matrices=True) print s >> [ 12.12789287 2.81497791 0.995044…

学習データのシャッフル

学習データがカテゴリ順になっていて、それをランダムな順序に変更したい、 でも、X(学習データ),y(Xの各データに対応するラベル)の順序は維持したい場合の工夫。 import numpy as np X = np.array([[11, 12, 13], [22, 23, 26], [31, 33, 34], [40, 41, …