科学・技術
手計算による離散フーリエ変換
Discrete Fourier Transform by Hand (byhand.ai)
要約
この記事は、信号処理における離散フーリエ変換(DFT)の数学的複雑さを、手計算可能な行列演算に分解して解説しています。DFTが、ニューラルネットワークと同様に、信号を周波数領域で分析する行列演算の連鎖であることを示し、その基本的な仕組みを理解することを目的としています。
全文翻訳
手計算による離散フーリエ変換 ✍️
手計算によるAI: 19 of 28
Prof. Tom Yeh
2024年6月24日 ∙ 有料
7538
共有
ライブラリ › 手計算によるAI ✍️
手計算による行列乗算 ✍️
手計算による多層パーセプトロン(MLP)✍️
手計算によるバックプロパゲーション✍️
手計算によるSVM✍️
手計算によるバッチ正規化✍️
手計算によるドロップアウト✍️
手計算によるリカレントニューラルネットワーク(RNN)✍️
手計算によるLSTM✍️
手計算によるディープRNN✍️
手計算による自己注意機構✍️
手計算によるTransformer✍️
手計算によるオートエンコーダー✍️
手計算による変分オートエンコーダー(VAE)✍️
手計算によるスパースオートエンコーダー(SAE)✍️
手計算による敵対的生成ネットワーク(GAN)✍️
手計算によるサンプリング ✍️
手計算による残差ネットワーク✍️
手計算によるU-Net✍️
手計算による離散フーリエ変換✍️
手計算によるグラフ畳み込みネットワーク(GCN)✍️
手計算によるCLIP✍️
手計算によるベクトルデータベース✍️
手計算による混合エキスパート(MoE)✍️
手計算によるスイッチトランスフォーマー✍️
手計算によるMambaのS6✍️
手計算によるSoraの拡散トランスフォーマー(DiT)✍️
手計算によるBitNet✍️
手計算による人間フィードバックによる強化学習(RLHF)✍️
信号処理において、離散フーリエ変換(DFT)は間違いなく最も重要な手法です。
しかし、その数学は非常に複雑で、文字通り、複素数項 e^(-iwt) の合計を含みます。ここで、eはオイラー数、iは虚数単位、wは角周波数、tは時間です。
この演習は、その複雑さの根底には、手計算できる行列乗算の連鎖があることを示すために開発されました。✍️
それを理解すれば、ニューラルネットワークも同様に行列乗算の連鎖であり、その間に活性化関数を挟むことで、信号を処理・分析するためにDFTを実行するように学習できることは驚くことではないはずです。
💡 学習済み vs. 固定: U-Netはデータからフィルターを学習して空間領域の信号を処理します。
DFTは古典的な反対であり、学習されるのではなく手で設計された固定変換であり、同じ信号を周波数領域でコサイン波の組み合わせとして表示します。
DFTはどのように機能しますか?
セットアップ
ステップ1/12: 与えられた信号 A、B、C を 🟧 周波数領域で示します。
A = cos(w) + 2cos(2w)
B = cos(w) + cos(3w) + cos(4w)
C = -cos(2w) + cos(3w)
各信号は、周波数1w、2w、3w、4wの4つのコサイン波の加重和です。
逆DFTを適用して信号を時間領域表現に変換し、その後、DFTが元の周波数領域表現に変換できることを示します。
信号 X を 🟩 時間領域で示します。
X は10個の時間点 1t、2t、…、10t でサンプリングされます。
X = [-2.5, -1.8, 3, -0.7, -1.0, -0.7, 3, -1.8, -2.5, 5]
X も同じ4つのコサイン波の加重和であると仮定しますが、その重みはまだわかっていません。
DFTを適用してそれらを発見します。
ステップ2/12: 周波数行列(F)
A、B、C の係数を行列 F として記述します。
各信号は行です。
各周波数は列です。
A → [1, 2, 0, 0]
B → [1, 0, 1, 1]
C → [0, -1, 1, 0]
ステップ3/12: コサイン → 離散
連続コサイン波を離散時間点1t、2t、3tから10tまでサンプリングします。
この投稿は有料購読者向けです。
購読する
既に有料購読者ですか?サインイン