カルマンフィルタは、状態空間モデルにおいて、内部の見えない「状態」を効率的に推定するための計算手法です。 カルマンフィルタを理解するためには、まず状態空間モデルが何なのかを理解することが必要です。そのうえでカルマンフィルタの考え方と計算方法を学びます。 この記事では、状態空間モデルもカルマンフィルタもあまり詳しくないという方を対象として、カルマンフィルタの考え方とライブラリを使わない実装方法について説明します。 最後に、R言語における有名なカルマンフィルタの計算パッケージである「dlmパッケージ」の簡単な使い方も解説します。 ソースコードはまとめてこちらに載せてあります。 ブログの内容が本になりました。 書籍サポートページはこちらです スポンサードリンク 目次 状態空間モデルの概要 状態空間モデルとカルマンフィルタの関係 カルマンフィルタの考え方 ライブラリを使わないカルマンフィルタの実装
概要 マイクラなどの地形をどうやって自動生成しているのか気になったので, 代表的なものをさっくり実装して確認してみた. この記事では,フラクタル地形についてさっくり紹介した後,以下の手法について述べる. ・バリューノイズ ・パーリンノイズ ・中点変位法 なお,全て二次元ベースで実装している.理論自体は何次元のものでも適用可能である. 事前準備 コード中でオレオレ構造体やオレオレマクロを使っているので,載せておく. //指定範囲でクリップする. #define CLIP(e,l,h) (min(max(e,l),h)) //配列の要素数取得. #define COUNTOF(a) ( sizeof( a ) / sizeof( a[0] ) ) //ベクトル構造体. #define VECTOR SVector2D<float> template <class T> struct SVect
目次 目次 はじめに カルマンフィルタの基礎 カルマンフィルタの応用例 EKFサンプルMATLABコード Pythonサンプルコード 共分散行列の更新において、なぜヤコビ行列で挟むのか? カルマンフィルタを身近に感じるために 誤差楕円の計算方法 その他のロボティクスアルゴリズムのサンプルコードや関連資料 参考文献 MyEnigma Supporters はじめに 移動ロボットにおいて, 自分の位置や姿勢を知ることは非常に重要です。 このように、自分の位置や姿勢をロボット自身が推定することを 自己位置推定(Localization)と呼びます。 参考: Localization (自己位置推定): 1 - MY ENIGMA 今回は, 自己位置推定の技術の一般的な方法である 拡張カルマンフィルタ(Extended Kalman Filter:EKF)の概要と、 EKFを利用した、 自己位置推
hyperoptのロジック、使い方、検証結果についてまとめる はじめに 機械学習でモデルを作成する際、hyper-parameterのチューニングが必要になります。 gridサーチで徹底的に調べることができればいいのですが、DNNのようにパラメータ数が多くなると、計算量がとんでもないことになります。 ランダムサーチでパラメータの探索を行えば、計算量を少なくすることは可能ですが、最適なパラメータを見つける確率は低くなります。 そこで、効率よく、良さげなパラメータを探索していく方法に、Sequential Model-based Global Optimization(SMBO)というものがあります。 pythonには、SMBOを利用するためのライブラリであるhyperoptというものがあります(kagglerがよく利用しているらしい・・・)。 hyperoptで検索すると、使い方を説明した記
Lately, there has been a lot of experimentation with very short programs that synthesize something that sounds like music. I now want to share some information and thoughts about these experiments. First, some background. On 2011-09-26, I released the following video on Youtube, presenting seven programs and their musical output: This video gathered a lot of interest, inspiring many programmers to
cuDNNはNVIDIAが公開しているDeep Learning用のライブラリである。このライブラリを使うとCaffeやChainerなどのDeep Learning用のソフトウェアの速度が向上する。 この速度向上に寄与している最も大きな部分がConvolutionの高速化である。 個人的には、CPUでどこまで高速にConvolutionが実現できるのかに興味がある。本記事は、その準備段階として、どういう高速化戦略がありえるのかを調べたものである。 ConvolutionとはConvolutionは、日本語では畳み込みと呼ばれる操作である。畳み込み操作自体は何次元のデータ構造に対しても定義できるが、以下では、画像処理でよく使われる、二次元のConvolutionのみを考える。 何も考えずに普通にConvolutionを実装すると、以下の擬似コードのようになるだろう。ただし、簡単のため、境界
Hey, I'm Alex. I'm a software engineer in Atlanta, Georgia. I work at Makeswift. I like to write about things that I'm learning; it helps me learn them more deeply. Here are some of my favorite articles I've written so far. Everything Useful I Know About kubectl Consistent Hashing Running Containers on AWS Evaluating GCP's Cloud Key Management Service You can also take a look at everything else I'
関係データ解析を実現する一手法として Infinite Relational Model (IRM) という関係データ生成モデルに基づくクラスタリングが提案されています。 この手法ではクラスタ数を事前知識として与える必要が無く、データから推定してしまいます。 以下がその動作イメージ。左が実際の関係データで、右がIRMに基づくクラスタリングの結果(青い線がクラスタの区切り)です。黒が関係行列上の1、白が0を表します。 関係データが並び替えられてイイ感じにまとめられている様子がなんとなく分かると思います。より直感的かつ面白い説明には次のスライドが良いです。 機械学習でお小遣いを稼ぐ! - 本推薦 Twitter bot の紹介 - IRMは原論文の共著者にもなっているNTTコミュニケーション科学基礎研究所の方々が熱心に研究されており、理論的には上田さんの資料『無限関係モデルとその周辺』(PDF
前に以下のような記事を書きましたが、大量のテキストではうまくいかなかったので新たに書きました ファイルからランダムにN行取り出す(shufコマンド) - 唯物是真 @Scaled_Wurm 上の記事ではテキストをランダムに\(k\)行取り出したい時"shuf -n k"コマンドでランダムにシャッフルした\(k\)行を取り出していました ところが非常に大きなテキストファイルに対して上のコマンドを実行すると、一度にデータを全部メモリに読み込み始めているのか、すごい勢いでメモリを消費していきました(sort -Rでも) そこでメモリをあまり使わずにランダムに\(k\)行取り出す方法について調べました まず基本的な非復元抽出のアルゴリズムは以下の記事の発展手法とか追記のあたりの話がわかりやすいと思います 非復元抽出の高速かつ実装が簡単な方法を考える - 睡眠不足?! この記事の話も一度全部の要素を
出題者Ozyさんによる「大きなナップサック」問題の解説記事です。 最適解を導くためのアルゴリズムについてわかりやすい図解付きで説明してくれています。 そして、神級到達者はなんと30名!ニックネームを公開していますよ! by CodeIQ運営事務局 はじめに 出題者のOzyです。大きなナップサック問題解説です。 今回解説するのは、ナップサック問題の中でも“単一制約の01ナップサック問題”と呼ばれる種類のものです。ちょっと長いですから、今後は単に“ナップサック問題”と表記します。ナップサックに入れる品物には、値段と重量の2要素があり、重量が“制約”に相当します。また、品物1つひとつについては、ナップサックの中に、入れる/入れないという2つの状態がありますので、これは0と1で表現できることから、“01”と呼ばれています。 大きめのナップサック問題を解く場合に用いられる手法として有名なものは、動的
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く