機械学習

ホップフィールドネットワークの記憶容量改善に関する論文(プレプリント)を書いた話:カーネルロジスティック回帰とカーネルリッジ回帰

はじめに 以前の記事にて、ロジスティック回帰とリッジ回帰の学習アルゴリズムによって、Hopfield モデルの記憶容量を改善する試みを紹介した。これらをカーネル法によって拡張することにより、さらなる容量の改善を図ったということ。 論文 現時点で論文は…

ランダムビットパターン系列を連想記憶するホップフィールドネットワークを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って(以下略)』の定式化を清書する - 備忘録…

『Kernel Random Projection Depth for Outlier Detection』をPythonで実装した話

はじめに KRPDの中身 実験および実装 データセット 実装 実験結果 おわりに おまけ はじめに 最近,下記の論文がアップロードされていた. 『Kernel Random Projection Depth for Outlier Detection』 arxiv.org Pythonによる簡単なデモンストレーションを実…

Deep Divergence Learning (ICML 2020) の論文に掲載された実験結果を検証する試み −分布クラスタリング 前編−

はじめに 論文の概要 応用可能性 −分布クラスタリング− 実験: Clustering Multivariate Gaussian Distributions 実験条件 データセット生成 比較手法 ネットワークアーキテクチャ および 損失関数 評価指標 その他の実験条件 補足:経験分布の構成 実験結果…

"Differential Entropic Clustering of Multivariate Gaussians"をNumbaを使って高速化してみた話

はじめに 前回記事で実装した Differential Entropic Clustering をもう少し高速化したいなぁ,という話. tam5917.hatenablog.com 実装 やり方は簡単で,numbaをインストールして,@jit デコレータをBurg matrix divergence およびMahalanobis距離を計算す…

Differential Entropic Clustering of Multivariate Gaussians (NIPS 2006) をPythonで実装した

論文はこれ. proceedings.neurips.cc 多変量ガウス分布の平均と共分散行列の集合が与えられたときに,分布を単位として(=対応する平均と共分散をペアにして)クラスタリングするアルゴリズムが提案されている. 行列の距離を測るための"Burg matrix diver…

距離学習と深層距離学習の違い

距離学習と深層距離学習の違いについて備忘録を残しておく. 共通していること データセット中の2点 間の距離関数 が与えられる. 距離関数はクラス分類やクラスタリング・異常検知などのタスクで活用される道具である. それらタスクに有利になる形で特徴量…

日本語x-vectorから感情成分を分離するニューラルネットワークを構築してみた −感情分類に敵対的な損失関数の導入−

はじめに 本記事は前回記事の続編に相当する. 前回記事では声優統計コーパスの3話者・3感情の音声データに対してx-vector抽出器を適用し,UMAPで可視化を試みた. この可視化の実験を通じて,感情成分が分離できていない傾向が見られた.すなわち,本来は話…

Generalized Mahalanobis depth in the reproducing kernel Hilbert spaceをPythonで実装した話

はじめに 2011年に以下の論文が出版されている. Yonggang Hu, Yong Wang, Yi Wu, Qiang Li & Chenping Hou, "Generalized Mahalanobis depth in the reproducing kernel Hilbert space," Statistical Papers volume 52, pages 511-522 (2011). link.springe…

非線形適応信号処理への凸解析的アプローチに関する連載記事のリンクまとめ

日本音響学会誌にて,慶應義塾大学の湯川 正裕先生による「非線形適応信号処理への凸解析的アプローチ 」という連載記事がある. 本記事ではそれら記事へのリンクをまとめておく. 2023年5月時点で最終回の記事は「フリー」ではないのですぐには読めないが,…

Kernel k-meansのコードを整理した

Mathieu Blondel氏によるKernel k-meansのPythonコードがあった。 Kernel K-means. · GitHub 上記のコードはPython 2系で書かれていたので、Python 3系で動くように整理した。 Kernel K-means. · GitHub 簡単なデモンストレーションを行うnotebookは以下の通…

拡散モデルの勉強に役立つかもしれないリンク集

拡散モデルに関する備忘録として。 大量に関連リンクを集めてもそれだけで満足してしまいがちなので、この記事では少なめで。 書籍 解説論文 解説記事 解説動画 その他 実装 書籍 拡散モデル(岡野原 大輔 著) サポートページ 解説論文 [2208.11970] Unders…

AIミュージックバトル!『弁財天』スターターキットのPyTorch版Google Colabノートブックを作った話

はじめに AIミュージックバトル!『弁財天』が配布しているスターターキットについて、PyTorch版を作成した記事を以前書いたことがあった。 tam5917.hatenablog.com その記事の段階では、Google Colabのノートブックを用意していなかったので、今回作ってみ…

異常音検知関連の情報まとめ

異常音検知に関して、まとめてリストしておく。備忘録。 解説論文・スライド スライド 論文 ソフトウェア データセット 書籍 コンペティション 解説論文・スライド スライド 音響信号に対する異常音検知技術と応用 音響信号に対する異常音検知技術と応用 fro…

微分可能な複素正弦波オシレータを用いて日本語5母音を近似させてみた

はじめに 実装 実験 実験条件 実験結果 おわりに はじめに SNSにて、しゃをみん氏が興味深い記事をツイートされていた。 昨日書きました。「コンピューターは遂に「音の高低」を理解した」と言えるほどの大きな進歩です。【注目論文】Sinusoidal Frequency E…

AIミュージックバトル!『弁財天』のスターターキットをPyTorchに移植してアドリブメロディの自動生成を試してみた

はじめに スターターキットについて スターターキットが提供するモデルの概要 実装 必要なパッケージ 実装の概要 メロディ生成実験 実験条件 実験結果 実装の舞台裏やTIPS、TensorFlow版との違いなど おわりに はじめに 最近、下記のイベントが開催されるこ…

Transformerを用いてオノマトペから環境音を合成する手法をPyTorchで実装した(Transformer版 Onoma-to-Wave)

はじめに 事前準備 実装の概要 環境音合成実験 実験条件 実験結果 実装の舞台裏など おわりに はじめに 以前、Onoma-to-Waveを実装した記事を書いたことがあった: tam5917.hatenablog.com Onoma-to-Waveとはオノマトペ(文字列)を環境音(スペクトログラム…

オノマトペ(擬音語)から環境音を合成するニューラルネットワーク(Onoma-to-Wave)をPyTorchで実装した

はじめに 事前準備 ソースコード 実装の概要と動かし方 補助的に作成したモジュールの概要 おまけ:訓練済みモデルのリリース 環境音合成実験 音響イベントによる条件付けなし 音響イベントによる条件付けあり 実装の舞台裏とかTIPS おわりに 参考文献 はじ…

wav2pixがpython2系で実装されていたので、python3系で動くように修正した

wav2pixというGANの派生モデルがある。 要するに、音声から顔画像を生成するgeneratorを持つGANである。 図1: wav2pixのネットワーク構成 qiita.com wav2pixの実装はgithub上に見つかるのだが、いかんせんpython2系で実装されておりイマイチだったので、 こ…

オンラインOCSVMに基づく外れ値検知をPythonで実装し、訓練時間削減の効果をベンチマークデータで検証した

はじめに scikit-learn 1.0の新機能として、OC-SVMのオンライン版が紹介されている。 scikit-learn.org オンライン化のご利益は訓練時間の大幅な削減である。 そこで本記事では、「結局オンライン化でどれくらい速くなったの?」という疑問に答えるべく、オ…

カーネルPCAに基づく外れ値検知にサブセットのサンプリング機能を実装して計算量削減を図った話

はじめに 先の記事 tam5917.hatenablog.com にてカーネルPCAに基づく外れ値検知を実装したが、計算量が多く使い物にならない。 そこで本記事では、 tam5917.hatenablog.com の記事にある、データセットのサブサンプリングを組み込むことで計算量を減らしつつ…

カーネル主成分分析による外れ値検知をPyODフォーマットで実装した

はじめに カーネル主成分分析を用いて外れ値検知ができるので、それを実装してみたということ。 カーネル主成分分析を外れ値検知に使うとは? 以下の論文にすべて書いてある(説明の手抜き!)。 Heiko Hoffmann, "Kernel PCA for novelty detection," Patte…

Random Projection Outlyingness(RPO)に基づく外れ値検知をPyODフォーマットで実装した

はじめに Random Projection Outlyingnessとはなにか? depthについて outlyingnessについて Random Projection Outlyingness (RPO) 実装 PyODのインストール RPOクラス Toy example ベンチマーク 参考文献 はじめに データ分布に対する各サンプル点の外れ度…

外れ値検知手法のベンチマークを測定するスクリプトをPyODとOptunaで書いた

はじめに 外れ値検知の代表的な手法であるkNN, LOF, OC-SVM, Isolation Forestについて、ベンチマークを測定するスクリプトを作成した。 各手法は外れ値検知ライブラリのPyODに実装されており、今回はOptunaによるハイパーパラメータ探索も入れている。 PyOD…

Rapid Distance-Based Outlier Detection via Sampling (NIPS 2013) に基づく外れ値検知手法をPyODフォーマットで実装した

はじめに "Rapid Distance-Based Outlier Detection via Sampling" という論文の中で提案された手法を、外れ値検知のためのPythonライブラリ PyOD のフォーマットに落とし込んで、手軽に使えるように実装したということ。併せてベンチマークデータを用いて性…