Baum-Welchアルゴリズムの実装

機械学習についての理解を進めてゆこうとする過程で、ニューラルネットワーク以外の手法の重要性に改めて気づき、「続・わかりやすいパターン認識 教師なし学習入門」を読み進めています。 途中で困ったのが、Baum-Welchアルゴリズムの実装です。その手前のViterbiアルゴリズムは書籍の記述をそのままコード化すれば同じ結果が得られたのですが、Baum-Welchについては解説が少なく、思ったように動作しませんでした。 いろいろとネットを探しまわった結果、コロラド州立大学のCS教材のページがかなりナイーブな実装で参考になりました。ただし、完全にナイーブではなくスケーリングが施してあります。これがないと、条件によっては値が小さくなりすぎてNaNになってしまうような状況が発生します。 より複雑な実装としては、hmmlearnがありました。元はscikit-learnの一部だったようですが、独立したモジュールになったようです。その他、Wikipediaの記事、朱鷺の杜Wikiの記事が参考になりました。

Google認証システムに端末を追加した

最近新しいスマートフォンを購入しました。モバイル回線としてIIJmioのファミリーシェアプランを契約しているので、SIMは3枚あります。USBドングル用に使っているSIMをとりあえず差し替えて使ってみることにしました。 自分のスマートフォン利用の一つにGoogle Authenticator(Google認証システム)があります。これは外部のWebサービス(github等)での2要素認証に利用できます。RFC 6238に準拠しているサービスであれば何でも利用できるようです。 自分のスマホ運用は基本2台(音声通話用・データ通信用)なのですが、この機会に2台でGoogle Authenticatorを使いたいため、別途端末を追加する方法を探したのですが、「あとからの追加」というのはできないようです。新規登録であれば同時に複数台登録は可能なようなので、以下の手順をとりました。 github側の2段階認証停止 personal settings ->security 念の為recovery codesを記録しておく Two-factor authenticationをOffにする 旧端末側がらgithubの認証情報を削除 github上で再度2段階認証を有効化する 画面に表示されたQRコードを新旧端末で確認、登録 同程度のタイミングで両端末にgithub上の認証コードを入力 時間切れに注意。切れそうになったら次のコードが出るまで待つ 完了 基本的に常に身に着けているデバイスではありますが、これ以外にも重要なデータ(Chromeのパスワードマネージャー情報など)が入っているものですから紛失などには気をつけましょう。 なお、新しく購入したデバイスはnextbitのrobinです。+Styleで購入しました。