![MATLABで微分方程式を解いてみよう。 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/b81a8c9fdb680747f07f623d95f75d861e4b4efa/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9TUFUTEFCJUUzJTgxJUE3JUU1JUJFJUFFJUU1JTg4JTg2JUU2JTk2JUI5JUU3JUE4JThCJUU1JUJDJThGJUUzJTgyJTkyJUU4JUE3JUEzJUUzJTgxJTg0JUUzJTgxJUE2JUUzJTgxJUJGJUUzJTgyJTg4JUUzJTgxJTg2JUUzJTgwJTgyJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmcz1mODY2MjY4MjA4MjRiMzg5NGIxNDllMTU1Yjg3NzY3ZQ%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBhcmNhZGlhMTMmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTA4OGMyZjBmMzU1ODcyZjQwZjU5OGQwOGJlYmJlYzFk%26blend-x%3D142%26blend-y%3D486%26blend-mode%3Dnormal%26s%3Deeec1b9c5594c9f4f473b980baa01c68)
はじめに Transformerにおけるアテンションの計算式は、scaleを無視すると以下のように計算される[1]。 \text{output} := \text{softmax}(QK^\top) \tag{1}V この計算が数理的にどのような意味を持つのかについて考察する。 記法 以下の議論では、表記を簡単にするため、「Xの埋め込みベクトルのシーケンス」を単に「Xのシーケンス」と表現する。 考察 まず、式(1)の計算は以下の2つのパートに分割できる: アテンションスコアの計算 特徴量の選択 1. アテンションスコアの計算 \text{softmax}(QK^\top)の部分である。ここで、Q, Kはそれぞれ(n, d)次元のベクトルとする。nはシーケンス長で、dは埋め込みベクトルの次元である。すなわち、Q, Kの行方向はトークンのシーケンスを表し、列方向は埋め込みベクトルを表す。この時
\sum_{n}\lvert f_n \rvert^2,\ \sum_{n}\lvert f_n \rvert^2p_n,\ \int_{\mathbb{R}} \lvert f(x) \rvert^2 dx, \int_{\mathbb{R}} \lvert f(x) \rvert^2p(x)dx. 例えば, 平均二乗誤差や分散, $L^2$ 正則化, チェビシェフの不等式のように重要なところで出くわします. しかし, それらではこの積分そのものには特に深入りして説明してくれません. そのせいで計算の目的の理解を妨げられる人も多いと思います. 結論から言うとこの積分は $Y$ 軸方向 (縦軸) の重み付き積分 です. 下の図のようにグラフを縦に細分化してそれぞれのブロックに重みを掛けたものの積分の式に変形できます. この記事ではこの式変形の公式を一般化した $r$ 乗でお伝えいたします.
Sagemath を Latex 内で使うパッケージ SageTeX はメンテナンスが続いているようです. 軽微な修正でも動作に影響が出るため, パッケージのファイル群は Sagemath のdistribution から Latex のフォルダー内に配置し直す必要があります. SageMath-8.6 から SageMath-8.9 へのアップグレードでSageTeXのマイナーチェンジに遭遇 事象は Sagemath のアップグレードで SageTeX の再設定が必要になったことです. SageMath-8.9 の macOS 版のディスクイメージをダウンロードして, 早速マウントしました. 念のため, Terminal.app を開いて diff で /Applications/SageMath-8.9.app/Contents/Resources/sage/local/share/t
これは何? ちょっとやってみたら離散フーリエ変換(以下DFT)を代数的に定義できたので嬉しくなって書いただけの記事です。Sageを触って1時間くらいで書いた記事なのでSage自体には詳しく無いです。 Sageの処理系 Sage Cell Serverを使いました。 T=16のDFT変換行列の定義です。 ソースコード NthRootOfOne(n) = (-1)^(2/n) T = 16 w = NthRootOfOne(T) dft_matrix = Matrix([[w^(f*t) for t in range(0, T)] for f in range(0, T)]) dft_matrix # 表示用の値の評価 NthRootOfOne $1$の$N$乗根を求める関数です。$1$の$N$乗根とは、ここでは複素数平面上の単位円を$N$分割し、$(1,0i)$を起点として左に進んでいった時
この記事はデータ構造とアルゴリズム Advent Calendar 2021 11日目の記事です。 はじめに 桁dpというのは動的計画法の一種である。例えば 「$N$ 以下の非負整数で10進数表現に4と9を含まないものはいくつあるか?」や「$N$ 以下の非負整数で10進数表現の桁和が $M$ であるものはいくつあるか?」のような問題は桁dp によって演算回数 $O(\log N)$ で解くことができる。本稿では桁dp を代数的に解釈する方法を解説する。あまり桁dp に慣れていない人はよい導入になるかもしれない。既に桁dp を深く理解している人にとっては、新しく解ける問題が増える訳ではないが、機械的に見通しよく問題を解けるようになるかもしれない。 なお、桁数の対数時間で解けるタイプの問題(「$N$ 以下」という制約がなく、桁数だけが指定されているもの)に対するアルゴリズムを代数的に理解するた
Schnorrによる素因数分解アルゴリズムをYan et al.が改良したのをSageMathで実装してみたので、ここに適当に書いておく。 目次 1.数学的な道具の準備 2.格子用いた素因数分解法について 3.SageMathで実装してみた 4.実装結果 5.パラメータを変えてみた 6.参考文献 格子を用いた素因数分解法について まず、格子を用いた素因数分解法のアイデアについて紹介する前に幾つか数学的な道具を定義しておく。 数学的な道具たちの紹介 因子基底 $p_i$を$i\ge 1$番目に小さな素数、$p_0=-1$として$P_ \ell= \lbrace p_i~|~0\le i\le \ell \rbrace$を因子基底と呼ぶ。 平滑な関係対 整数$M\in \mathbb{Z}$が$P_\ell$の元だけで素因数分解可能であるとき、$M\in\mathbb{Z}$は$p_\ell$
概要 微分を数値的に計算するコンパクトスキームは,Padé(パデ)スキームと呼ばれることもある.なぜPadéスキームと呼ばれるのかをまとめた. 差分法による微分の計算 数値シミュレーションにおいて微分値が解析的に求められることは滅多にないため,計算機を用いて近似的に計算することになる.このような手続きを,数値的に微分を計算するという. $x$の関数$f(x)$がなめらかであれば,$f$の微分は次式で定義される. f'=\frac{\partial f}{\partial x}=\lim_{\Delta x \rightarrow 0} \frac{f(x+\Delta x)-f(x)}{\Delta x} 関数$f$に対して,$x$方向に$\Delta x$だけ離れた2点を考え,その2点の間隔を無限小に近づけた時の極限が$f$の勾配である.しかし,この無限小というのが曲者で,計算機では表現
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く