ホップフィールドネットワークの記憶容量を改善する試み:リッジ回帰に基づく学習アルゴリズム

はじめに 先日公開した記事では、記憶容量改善の一つのアプローチとして、ロジスティック回帰の枠組みを導入した。そこでは、記憶パタンを {0, 1} の目標値に対応させ、各ニューロンが他のニューロンの状態から自身の状態(0 or 1)を予測する確率をモデル化…

ホップフィールドネットワークの記憶容量を改善する一つの試み:ロジスティック回帰に基づく学習アルゴリズムの実装

はじめに 総ニューロン数に対して約14%を超える記憶パタンを学習させると、Hopfieldモデルはパタンを正確に記憶できなくなり、想起性能が低下する現象が知られている。このニューロン数に対する記憶パタン数の上限は「記憶容量」(あるいは単に容量)と呼ば…

『ホップフィールドモデルとその後の展開』という講演動画

YouTubeにあったので、メモ。 www.youtube.com

ホップフィールドネットワークの想起過程のPython実装

はじめに 前回の記事では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の設定に書いたもの

設定ファイルは .clangd である。 こんな感じで、-Wallをつけるのがよい。すると、例えば unused variable をコンパイル前に検出してくれたりする。 CompileFlags: Add: [-Wall, -I/opt/homebrew/opt/gsl/include] -I からはじまるものは、他のライブラリ(…

GNU Scientific Library (GSL) を使って擬似逆行列(pseudo-inverse)を計算するサンプルコードを書いた

はじめに 擬似逆行列の計算をC言語で実装する必要に迫られた。手段を探すと、GNU Scientific Library (GSL) が便利に使えそうだった。 そこで、簡単に使えるようにしたサンプルコードを公開するのが本記事の主旨である。 準備:GSLのインストール Ubuntuなら…

ランダムビットパターン系列を連想記憶するホップフィールドネットワークをC言語で書いてみた

はじめに 前回の記事でホップフィールドネットワークのPythonを実装を書いたのだった。 tam5917.hatenablog.com プログラムを高速実行させたく、今回C言語で書き直したということ。 実装 以下に置いた。Enjoy! hopnet_1d.c · GitHub main関数における処理の…

ランダムビットパターン系列を連想記憶するホップフィールドネットワークをPythonで書いてみた

はじめに Pythonでホップフィールドネットワークを書いた記事はいくつか見つかる [1-3]。参考記事 [1] で紹介されている実装では、2次元のビットパターン画像を記憶・想起する仕様になっている。しかし、ホップフィールドネットワークの本質的な動作原理を理…

Psuedo-LikelihoodをRBMの損失関数として使ったら学習はうまくいくのか

はじめに Psuedo-Likelihood (PL) はRBMの学習の進行を測定するための指標として使われている。scikit-learnの BernoulliRBM クラスには PLを計算するための score_samples メソッドが実装されている。 scikit-learn.org さてscikit-learnで計算可能ならば、…

RBMの学習アルゴリズムと損失関数について

はじめに 前回の記事でRBMを実装した。 tam5917.hatenablog.com この実装では、RBMの損失関数は Contrastive Divergence (CD) アルゴリズムを考慮すると,損失関数はvisible層v0から計算される自由エネルギー(F0)と、再構成されたvisible層vkから計算され…

Restricted Boltzmann Machine (RBM) をPyTorchで実装してみた

はじめに 先日、RBMの記事を見かけた。 zenn.dev RBM自体は昔からある有名なモデルであり実装の経験もあったのだが、PyTorchでキレイに書いたことはなかったので、書いてみたということ。 実装 以下に置いた。Enjoy! train_rbm.py · GitHub train_rbm2.py · …

『今更ながらVAEって(以下略)』におけるアフィン変換に対応した潜在変数の操作により画像生成を制御できた話

はじめに 以前の記事にて、PyTorch実装の公開および定式化を示していたのだった. 『今更ながらVAEってこんなに凄かったの?ってなった話』をPyTorchで実装して結果の再現に成功した話 - 備忘録 『今更ながらVAEって(以下略)』の定式化を清書する - 備忘録…

『Griffin–Lim Like Phase Recovery via Alternating Direction Method of Multipliers』に基づく位相復元手法をPythonで再実装した話

はじめに 2019年に(モノラル)音声の位相復元に関する以下の論文が出版されている. Yoshiki Masuyama, Kohei Yatabe and Yasuhiro Oikawa, "Griffin–Lim Like Phase Recovery via Alternating Direction Method of Multipliers," in IEEE Signal Processin…

iPALM-based mel-spectrogram inversionを活用してMFCCからの音声復元を試してみた

はじめに 前回記事の続きである. tam5917.hatenablog.com ところでlibrosa には mfcc_to_audio という関数が用意されている. librosa.org この関数はMFCC(音声認識では定番の特徴量)を音声に復元する機能を実装している.処理の具体的な中身は mfcc_to_m…

iPALM-based mel-spectrogram inversion (ICASSP 2023) をPythonで実装しメルスペクトログラムからの音声復元を試してみた

はじめに 前回記事の続きである。 tam5917.hatenablog.com その記事では以下の論文で提案されたアルゴリズムを実装していた。 Yoshiki Masuyama, Natsuki Ueno, and Nobutaka Ono, "Mel-Spectrogram Inversion via Alternating Direction Method of Multipli…

『Mel-Spectrogram Inversion via Alternating Direction Method of Multipliers』に基づくメルスペクトログラムからの音声復元手法をPythonで実装してみた

はじめに 最近,以下の論文がarXivで見つかった: Yoshiki Masuyama, Natsuki Ueno, and Nobutaka Ono, "Mel-Spectrogram Inversion via Alternating Direction Method of Multipliers, " arXiv:2501.05557, 2025 arxiv.org メルスペクトログラムから元の音…

日本語x-vector抽出器により声優統計コーパスからx-vectorを抽出してPaCMAPで可視化した話

はじめに 次元削減の新たな手法として,PaCMAPの存在を知った. github.com 以前の記事にて,声優統計コーパスを対象に,次元削減手法の1つであるUMAPを使ってxvectorの可視化を試みた. tam5917.hatenablog.com 今回はPaCMAPで同様の可視化を試みたので,そ…

『今更ながらVAEって(以下略)』の有効性を評価するための実験計画について

はじめに 『今更ながらVAEって(以下略)』に関する記事を先日から書いていた.いち手法(いち生成モデル)としての「有効性」をきちんと検証したい場合,以下の観点で実験的評価を行えば良いのではないか. 生成画像の幾何学的な変動が、潜在空間上で意図通…

『今更ながらVAEって(以下略)』における幾何学的変動の正規化は普通のAEでも概ね実現できたという話

はじめに 最近VAEに関する記事を書いた。 tam5917.hatenablog.com 潜在変数の一部をアフィン変換のパラメタとして分離する話は、生成モデルではない普通のAE(オートエンコーダ)でも通用する。元記事の元記事を読めば、コンセプト自体はVAEに特有の道具を使…

『今更ながらVAEって(以下略)』の定式化を清書する

はじめに 先日、以下の記事を書いた。 tam5917.hatenablog.com 新年なので(?)、その定式化を清書しようというわけである。長くなってしまったので、急ぐ人は「8. 考察」からどうぞ。 はじめに 定式化 1. 問題設定:変分推論による生成モデル 2. 変分推論 …

電話の「プルルル」音を作って鳴らすPythonコード

はじめに 以下のポストが目に入った。 プルルルの作り方(1+0.85sin(2π×18t))sin(2π×400t)を3秒おきに1秒間鳴らすと良いらしい全然電話に出ない相手を呼び出し中に暇つぶしで調べてたら完全に理解した(参考:事業用電気通信設備規則第三十三条別表第五号可…

『今更ながらVAEってこんなに凄かったの?ってなった話』をPyTorchで実装して結果の再現に成功した話

はじめに 下記の記事にて,VAEの興味深い応用が実装例と共に紹介されている. zenn.dev 要するにVAEの潜在変数からアフィン変換のパラメタを分離できる話である.(各画像で個別の)アフィン変換を施した状態でモデルが訓練されるので,訓練後にその変換を外…

ロバスト主成分分析をcvxpyで実装してみた話

はじめに 最近ロバスト主成分分析(Robust Principal Component Analysis; RPCA)に興味があり、色々と情報を探していた。 記事もいくつか見つかる。例えば以下の記事など。 qiita.com 上の記事ではロバストPCAを丁寧な説明と共に実装しており、とても勉強に…

音声の振幅スペクトル系列から位相スペクトル系列を深層学習で直接推定するときarctan(atan2)を経由するのも悪くないねという話

はじめに 実装 評価実験 実験条件 実験結果 考察 おわりに はじめに 音声の位相スペクトル系列を振幅スペクトル系列から復元する手法はいくつも提案されており,再現実装を試みた記事をこれまで書いてきた. von Mises分布DNNに基づく位相復元手法をPyTorch…

位相スペクトルの有理関数近似に基づく位相復元手法(のプロトタイプ)をPythonで実装した

はじめに お待ちかね(?)の位相復元シリーズである. 手法の説明 記法を簡単にするため,ある特定の音声フレームに固定して考える.このフレームに関して, 位相スペクトル \( \phi(\omega) \) が有理関数で近似できると仮定する. ここで \( \omega \) は…

【Emacs】bsにおけるバッファリストやバッファ切り替え対象を同じタブに限定したいとき

前回記事の関連. tabspaces.elから一部関数を拝借したので,ライセンスを付記する. ;; https://github.com/mclear-tools/tabspaces/blob/main/tabspaces.el ;; Copyright 2013-2015 Justin Talbott ;; Copyright (C) 2022 Colin McLear ;; This program is…

【Emacs】bsにおけるバッファリストやバッファ切り替え対象を同じmajor mode に限定したいとき

bs-configurations という変数にフィルタリング用の関数を追加してやれば良いわけである. ここでは"same-mode"という名前をつけてみた.このcodeはace-jump-bufferから抽出した(実際のコードはマクロ).GPL ライセンスの旨を併記しておく. ;; Copyright …

【Emacs】bm.elの設定例

こんな感じ。 ちなみに、mapc ... で始まる箇所は、バッファ(たち)をdesktop-modeで復元後にbmを復元するための設定である。それゆえ、desktop-modeを使っていないひとには不要な設定である。復元した全バッファに対して処理を回しているので、そもそもbm…