suzuzusu日記

(´・ω・`)

技術系

fork, select, poll, epoll, io_uringのecho server

fork, select, poll, epoll, io_uringなどを使用してそれぞれecho serverを実装したのでそれぞれの仕様などを忘備録としてまとめていきます。エラー処理とか雑な部分があると思いますがご容赦ください。 環境構築 macOS上での実行を前提にします。io_uringを…

スチューデントのt分布の最尤推定

スチューデントのt分布は外れ値のあるデータに対してもロバストな推定を可能とする分布として知られている。忘備録としてこの記事では、そのt分布の最尤推定をする。 スチューデントのt分布 一次元のt分布は、パラメータを用いて次のような確率密度関数で表…

TerraformでFizzBuzz

ネタです。 Terraformとは AWS、GCP、Azureなどのクラウドやサービスのプロビジョニングと管理を行うInfrastructure as Code(IaC)ツールです。 今回はこのTerraformを使ってFizzBuzzを書いていきます。 Terraformの環境構築 0.13.0-beta1 と 0.12.1 の2つ…

効率的フロンティアの解析解

現代ポートフォリオ理論の効率的フロンティアの解析解について調べたことをまとめました。 卵は一つのカゴに盛るな ファイナンスの世界では、先人たちの経験をもとにした「卵は一つのカゴに盛るな」という格言があります。 これは一つのカゴに全ての卵を盛る…

AV1で採用されているChroma from Luma Prediction (CfL)を使ってイントラ予測

Chroma from Luma Prediction (CfL) はAlliance for Open Mediaが開発したオープンかつロイヤリティフリーな動画圧縮コーデックAV1などで採用されているイントラ予測手法です。イントラ予測というのは動画圧縮で他のフレームを参照しないフレーム符号化のこ…

RustのHashMapの再現性を確保する

Rustの標準のHashMapのハッシュアルゴリズムでは再現性を確保することができないので,別のハッシュアルゴリズムを使って再現性を確保する方法をメモしておく.これはHashSetの場合も同様に再現性を確保することができます. HashMapのランダム性 By default…

時系列予測フレームワークfableを試す

fableとは? ETS,ARIMA,Random Walk,Neural Network autoregressionなどの時系列予測手法群の評価や予測結果の描画をしてくれるフレームワークです. 短いコード量でそれぞれのモデルを手軽に実行できるのが特徴です.使い方を忘れないようにメモしておき…

kerasのLSTMのstatelessとstatefulの切り替え

kerasのLSTMなどのRNN系のモデルは状態を保持するstatefulなモデルと状態を保持しないstatelessなモデルがあります.その切り替え方法をメモしておきます. 切り替え方法 あらかじめ同じネットワークのstatelessなモデルとstatefulなモデルを別々に作成する…

多項式カーネルに対応する特徴ベクトルを可視化する

多項式カーネルによって写像される特徴空間を可視化してカーネル法の挙動を把握します. 線形分離不可能なデータ 以下のように半径が異なる円周上に存在する2クラスのデータを生成します. import seaborn as sns import pandas as pd import matplotlib.pyp…

幾何ブラウン運動をARIMAで予測

忘備録としてまとめておく。 幾何ブラウン運動 以下のような確率微分方程式(SDE)によって定義されるものを幾何ブラウン運動と言います。金融工学のモデルとしてよく用いられます。 初期値をとすると解は次のようになることが知られています。 シミュレーショ…

尤度関数におけるガウス分布とスチューデントのt分布の比較

RStanを使って尤度関数がガウス分布と場合とスチューデントのt分布の場合でどのように異なるのかを比較します. 最終的にガウス分布に比べてスチューデントのt分布が外れ値に頑健な回帰をすることが可能であることを確認します. 線形回帰 今回は以下のパラ…

Hankel Non-negative Matrix Factorizationによる時系列データの前処理

HNMF 先日ブログで時系列データをHankel Singular Value Decompositionという低周波成分と高周波成分に分解するという前処理のアルゴリズムを紹介しました. 今回は特異値分解(SVD)の低ランク近似の部分を非負値行列因子分解(NMF)に変えても分解できるの…

Hankel Singular Value Decompositionによる時系列データの前処理

HSVD Hankel Singular Value Decomposition(HSVD)は時系列データを低周波と高周波の2つの成分に分解する手法です.HSVDを使用して時系列データの前処理をします. Embedding まず最初に,個の時系列データ を以下のような窓サイズのハンケル行列H(正確には…

しょぼん(´・ω・`)基底をGPLVMで獲得する

データの作成 以下の画像から,しょぼん(´・ω・`)基底を作成します. オリジナル画像 まず,画像を読み込みます. import numpy as np from PIL import Image image = np.asarray(Image.open('./data/shobon.png').convert('L')) 次に,2値化を行いしょぼん(´…

Higher-Order-SVDで画像の低ランク近似

HOSVD SVDは行列の低ランク近似手法であり,Higher-Order-SVD(HOSVD)はSVDをテンソルに拡張した手法です. HOSVDではタッカー分解というコアテンソルとそれぞれのモードの行列に分解する方法を使用します.以下にその概要を図示しました. タッカー分解 方法…

PyTorchで最急降下法による最適化

余談 Differentiable Programming(微分可能プログラミング)という捉え方がとても素晴らしいと個人的に思います. 詳しくは以下のブログを見てください. bonotake.hatenablog.com 最急降下法による最適化 機械学習フレームワークのPyTorchを使って単純に最急…

GPyTorchで多クラス分類

GPyTorchとは PyTorch上で実装されたガウス過程(GP)のライブラリである. ハイパーパラメータをPyTorchのシステムを使用してGPUなどで最適化できるのが特徴である. GPは逆行列を計算する際に の計算量がかかり,スケーラビリティに難があるが,PyTorchのシ…

カーネル密度推定とエントロピー

カーネル密度推定をしてエントロピーを計算する方法を忘備録として書いておく. 標準正規分布を例にとって計算してみる. ちなみに理論値は import numpy as np import matplotlib.pyplot as plt from scipy import integrate from scipy.stats import norm …

Pykkaでping pong

Pythonでactor model使いたかったので忘備録として Pykka Pythonのactor model frameworkです. インストール方法 pip install pykka Actorの実装方法 標準のThreadによる実装やgeventなどがある. ドキュメントに gevent の方が一般的に Thread よりも早い…

混合ガウス過程で多峰な関数を回帰する

忘備録として 混合ガウス過程と多峰な関数 以下のような多峰な関数を回帰する場合は,通常の単峰にフィッティングする回帰では困難なので混合ガウス過程を用いる. f1,f2関数 多峰な関数 GPclust GPclust という混合ガウス過程のライブラリが良さそうなので…

SSH in Elixir

ElixirでSSHをする方法を忘備録として書いておく. iexして以下を実行する iex(1)> ip = '1.2.3.4' '1.2.3.4' iex(2)> port = 22 22 iex(3)> ssh_config = [ ...(3)> user: 'user', ...(3)> password: 'password1234', ...(3)> silently_accept_hosts: true …

Distributed Elixir

Elixirで分散ノードで処理をする方法を忘備録として書いておく. 環境 node01 192.168.0.2 node02 192.168.0.3 方法 node01で以下のプロセスを立ち上げる iex --name node01@192.168.0.2 --cookie hoge node02で以下のプロセスを立ち上げる iex --name node0…

Windowsでmultiprocessingにおける「if __name__ == "__main__":」制限を回避してPandasで複数ファイルを並列で読み込む

忘備録として書く 題名長すぎる... 以下のようにWindowsの場合main guardを書かないとmultiprocessingが動かない stackoverflow.com 何とか回避してPandasを使って複数プロセスでファイルを読み込んでみる.具体的には以下のように別のpythonのプロセスを動…

Imgurに画像投稿するLINE Bot作った

Google Cloud FunctionsとかLINE BOT触ってみたかったので試しに作った 簡単に出来るのでLINE BOTでアプリケーション作るのおすすめですね

ffmpeg filterの作り方

そろそろブログまとめようと思ったので移転記事です. 移転元 https://wiki.mma.club.uec.ac.jp/su_zu/ffmpeg%20filter%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9 MMA Advent Calendar 2016/12/21 これはMMA Advent Calendar 2016の21日目の記事です ffmpeg filt…

MMA Advent Calendar 2016/12/13

そろそろブログまとめようと思ったので移転記事です. 移転元 https://wiki.mma.club.uec.ac.jp/su_zu/MMA%20AdventCalendar%202016 MMA Advent Calendar 2016/12/13 これはMMA Advent Calendar 2016の13日目の記事です 電気通信大学RSS「新着情報」 https:/…

MMA Advent Calendar 2016/12/6

そろそろブログまとめようと思ったので移転記事です. 移転元 https://wiki.mma.club.uec.ac.jp/su_zu/MMA%20AdventCalendar%202016 MMA Advent Calendar 2016/12/6 これはMMA Advent Calendar 2016の記事です PowerShellでぐいぐいっとGUI動かす方法を紹介…

STDP学習ベースのSNNでMNISTを分類する

雑に論文みて勉強したので何も保証しません.SNNの情報全然無いような気がするのでしんどい. Spiking Neural Network(SNN) ニューロンの活動電位(スパイク)に注目したニューラルネットワーク.現状,計算量が多いのでチップを作ったりなどのハードウェアの…

Implementation of Poisson Spike model using Rust

自分用のメモ 実装したニューロンモデル Hodgkin–Huxley Izhikevich Integrate-and-fire FitzHugh-Nagumo Poisson-Spike Poisson Spike model(ポアソンスパイクモデル) ある時間内に発火する頻度が,ポアソン分布に従うスパイクモデルである. 実際のニュ…

Implementation of FitzHugh-Nagumo model using Rust

自分用のまとめ 実装したニューロンモデル Hodgkin–Huxley Izhikevich Integrate-and-fire FitzHugh-Nagumo Poisson-Spike FitzHugh-Nagumo(フィッツヒュー・南雲モデル) HH型モデルを簡略化したモデルである. それぞれのパラメータは以下を参考にして次…