信号処理
音声信号処理や画像圧縮技術に使用されている離散cos変換(DCT)をJavaで実装します。 DCTについてはこちらのウェブページを参考にさせて頂きました。離散コサイン変換DCTはDFTと似ていますが、虚数計算が発生しないためコーディングは比較的容易でした。
はじめに 手書き数字認識をタスクとして隠れマルコフモデル(HMM)の動作確認を行います。手書き数字認識は文字認識の中では単純な識別問題なのですが、タスクの困難性が想像しやすくサンプルデータが用意しやすい利点があります。 隠れマルコフモデル 隠れマ…
隠れマルコフモデルによる手書き数字認識を実装する前に、手書き数字データを収集するアプリケーションを作成します。 いきなり余談ですが、手書き文字は採取時のデータの性質によってオンライン手書き文字とオフライン手書き文字に分けることが出来ます。 …
前回実装したスケーリング処理を用いた離散隠れマルコフモデルは、EMアルゴリズムによって最適化パラメータを算出した際に、即時にHMMのパラメータを更新する為、複数の学習データを用いて学習することが出来ませんでした。emoson.hateblo.jpそこで今回は、…
前回実装した離散隠れマルコフモデルは、フォワード、バックワードアルゴリズムの確率計算を行う際に、長い時系列を適用するとアンダーフローが発生する問題がありました。emoson.hateblo.jpスケーリング処理はトレリス計算中に逐次スケーリング処理を施し、…
この記事に書かれている事 javaによるErgodicマルコフの実装
この記事に書かれている事 Pythonによる離散フーリエ変換(DFT)と逆変換の実装
この記事に書かれていること Pythonによる隠れマルコフモデル(Hidden Markov Model)とBaumwelchの実装
DynamicTimeWarpingって何? 動的時間伸縮法と呼ばれる、時間や速度の異なる信号同士の類似度を求めるアルゴリズムです。 信号同士の類似度を求める際に、単純にユークリッド距離を求めようとすると、信号の長さが 異なると非常に厄介な事になります。それに…
ウェーブレット変換とは ウェーブレット変換は信号をウェーブレット(小さな波)の組み合わせに変換する信号解析の手法の1つです。信号解析手法には前回扱ったフーリエ変換がありますが、ウェーブレット変換はフーリエ変換ではサポート出来ない時間情報をう…
フーリエ変換とは フーリエ変換とは「周期的ならどんなに複雑な波形でも三角波の足し合わせで表現できる」 という考えに基いて、信号をスペクトル成分に分解する変換方法です。周波数スペクトルで表現できるのでノイズ検出や圧縮、信号解析等に利用出来ます。