2025-01-01から1年間の記事一覧
自分用メモ brew install global cp /opt/homebrew/share/gtags/gtags.conf ~/.globalrc .globalrcに対して、 common:\ :skip= ... の最後に mypy_cache/,ruff_cache/,*.pyc,venv/: など、タグづけにあたりスキップしたいディレクトリや拡張子を追記 python…
はじめに 前回記事から引き続き、本記事も「正弦波のパラメタ推定シリーズ」である。 今回は、高分解能な周波数推定手法のひとつであるESPRIT (Estimation of Signal Parameters via Rotational Invariance Techniques) アルゴリズムについて解説し、Python …
以下のリポジトリより, github.com このコマンドでインストールする. pip install numpy scipy --extra-index-url https://urob.github.io/numpy-mkl 体感で倍速になった気がする(固有値分解,特異値分解).
Mac でのログ。変換対象のmarkdownはlatexによる数式が混じった文章である(github)。 pandoc はbrewでインストールする Eisvogel のページからテンプレートをダウンロード https://github.com/Wandmalfarbe/pandoc-latex-template/releases テンプレートを…
はじめに 本記事は最近のマイブームとなっている「正弦波のパラメタ推定シリーズ」のうちの一つである。 今回は、高分解能な周波数推定手法の一つである MUSIC (MUltiple SIgnal Classification) 法 [1-5] について、2つのバリエーションである spectral-MUS…
Markdown-modeを前提として,まず,これを書いている. (setq markdown-command "pandoc") pandocコマンドはレンダラとして優秀である.見た目をgithubに近づけたいときは,以下のブログ記事を参考にして,cssファイルを適当な場所において (setq markdown-c…
Emacsのeglotは,当該のディレクトリに .git があれば、自動的にプロジェクトのルートとして認識してくれる。 これがない場合に、下層のディレクトリにあるファイルは全て、ディレクトリ単位で別プロジェクトとして認識し 、サーバーと接続してしまうので困…
pyproject.tomlには、最低限こんな感じで書いている。 [tool.basedpyright] typeCheckingMode = "recommended" extraPaths = ["/path/to/site-packages/"] reportAny = "none" reportUnusedCallResult = "none" pythonVersion = "3.13" # for override decor…
はじめに 前回までの記事で、正弦波制約微分方程式(SCDE)に基づくパラメータ推定法について、その拡張を含めて紹介してきた。これまでのモデルは単一の音源を前提としていたが、多くの実用的な場面では、複数の音源が混在した信号を扱う必要がある。ピアノ…
はじめに これまでの記事では、正弦波制約微分方程式(SCDE)に基づく周波数推定法と、その拡張を紹介した。特に前回記事では、重み付き最小二乗法(WLS)を導入することで、ノイズ耐性が向上することを確認した。 正弦波制約微分方程式(SCDE)に基づくピッ…
はじめに 過去に正弦波制約微分方程式(SCDE)に基づくピッチ推定法の再現実装に関する記事を書いた。 正弦波制約微分方程式(Sinusoidal Constraint Differential Equation; SCDE)によるピッチ推定法をPythonで実装した - 備忘録 本記事はSCDE法を少しだけ…
はじめに 本記事は前々回記事、前回記事の続きである。 従来のピッチ推定手法、特にDFTをベースとする手法では、時間分解能と周波数分解能のトレードオフが本質的な課題であった。短時間の信号から近接した複数の周波数を分離・推定することは依然として困難…
Introduction Conventional frequency estimation methods like FFT (Fast Fourier Transform) and autocorrelation functions are widely used. However, these methods share a common challenge: it is difficult to accurately estimate the frequency w…
はじめに 本記事は前回記事の続編である。前回は微分方程式の性質を利用して音の周波数を推定する手法「SCDE(Sinusoidal Constraint Differential Equation)」を紹介した。SCDEは、FFTベースの手法では困難であったわずか数ミリ秒という極めて短い信号から…
はじめに 従来のピッチ推定手法として、FFT(高速フーリエ変換)や自己相関関数などが広く使われている。しかし、これらの手法には共通の課題があった。それは、「短い時間(例えば数十ミリ秒)の信号から、複数の音が同時に鳴っている場合のピッチを正確に…
はじめに カーネルロジスティック回帰による学習の導入によって、ホップフィールドネットワークの記憶容量が大きく改善されるという主旨の論文を書いていた。それが前回記事の話である。記憶容量の増大に伴い、想起過程に関するアトラクタの挙動がどのように…
はじめに 以前の記事にて、ロジスティック回帰とリッジ回帰の学習アルゴリズムによって、Hopfield モデルの記憶容量を改善する試みを紹介した。これらをカーネル法によって拡張することにより、さらなる容量の改善を図ったということ。 論文 現時点で論文は…
はじめに 先日公開した記事では、記憶容量改善の一つのアプローチとして、ロジスティック回帰の枠組みを導入した。そこでは、記憶パタンを {0, 1} の目標値に対応させ、各ニューロンが他のニューロンの状態から自身の状態(0 or 1)を予測する確率をモデル化…
はじめに 総ニューロン数に対して約14%を超える記憶パタンを学習させると、Hopfieldモデルはパタンを正確に記憶できなくなり、想起性能が低下する現象が知られている。このニューロン数に対する記憶パタン数の上限は「記憶容量」(あるいは単に容量)と呼ば…
YouTubeにあったので、メモ。 www.youtube.com
はじめに 前回の記事ではC言語でHopfieldモデルの想起過程を実装していた。 tam5917.hatenablog.com 当然、Pythonでも実装可能なので、その実装を紹介するのが本記事の主旨である。 実装 以下に置いた。Enjoy! hopnet_dynamics.py 実装している機能そのもの…
はじめに 甘利先生らは、ホップフィールドネットワーク(以降 Hopfieldモデル)について、想起過程のダイナミクスをかつて研究されていた [1]。 甘利先生の著書 [2] にもまた、想起過程の計算機シミュレーションの図が示されている。 先日、Hopfieldモデルを…
調べると見つかるのだけど,ここにも書いておく. <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-AMS_CHTML.js"> </script> MathJax公式のconfigはこちら Combined Configurations — MathJax 2.7 documentation はてなブログの設定は 「デザイン→カスタマイズ→ヘッダ→ブログタイトル下」のところに上記のスクリプトを置けばOK.
設定ファイルは .clangd である。 こんな感じで、-Wallをつけるのがよい。すると、例えば unused variable をコンパイル前に検出してくれたりする。 CompileFlags: Add: [-Wall, -I/opt/homebrew/opt/gsl/include] -I からはじまるものは、他のライブラリ(…
はじめに 擬似逆行列の計算をC言語で実装する必要に迫られた。手段を探すと、GNU Scientific Library (GSL) が便利に使えそうだった。 そこで、簡単に使えるようにしたサンプルコードを公開するのが本記事の主旨である。 準備:GSLのインストール Ubuntuなら…
はじめに 前回の記事でホップフィールドネットワークのPythonを実装を書いたのだった。 tam5917.hatenablog.com プログラムを高速実行させたく、今回C言語で書き直したということ。 実装 以下に置いた。Enjoy! hopnet_1d.c · GitHub main関数における処理の…
はじめに Pythonでホップフィールドネットワークを書いた記事はいくつか見つかる [1-3]。参考記事 [1] で紹介されている実装では、2次元のビットパターン画像を記憶・想起する仕様になっている。しかし、ホップフィールドネットワークの本質的な動作原理を理…
はじめに Psuedo-Likelihood (PL) はRBMの学習の進行を測定するための指標として使われている。scikit-learnの BernoulliRBM クラスには PLを計算するための score_samples メソッドが実装されている。 scikit-learn.org さてscikit-learnで計算可能ならば、…
はじめに 前回の記事でRBMを実装した。 tam5917.hatenablog.com この実装では、RBMの損失関数は Contrastive Divergence (CD) アルゴリズムを考慮すると,損失関数はvisible層v0から計算される自由エネルギー(F0)と、再構成されたvisible層vkから計算され…
はじめに 先日、RBMの記事を見かけた。 zenn.dev RBM自体は昔からある有名なモデルであり実装の経験もあったのだが、PyTorchでキレイに書いたことはなかったので、書いてみたということ。 実装 以下に置いた。Enjoy! train_rbm.py · GitHub train_rbm2.py · …