アルゴリズム

2/97ページ

ナイーブベイズについて勉強したこと【前半】

ナイーブベイズのアルゴリズムをアウトプットのために,この記事にまとめておきます. 間違い,わかりにくい点等ございましたら,ご指摘頂けると幸いです. 1, 概略 ある文書dが存在するとき,そのdがどのクラスに分類されるかを,文書内に出現する単語の頻度を用いて判別を行う機械学習になります. このアルゴリズムを使うことで, 新規の文書に対して - 文書内に「イチロー」や「ヒット」という単語が多く出現すれば,野球というカテゴリ. - 文書内に「 […]

Nesterovの加速勾配法(Nesterov's Accelerated Gradient Method)

はじめに 勾配法の加速法にはいろいろ提案されていますが、ここでは前回書いた近接勾配法の加速にも使えるNesterovの加速法について書きます。 Momentum法 Nesterovの加速法の前に、類似した手法であるMomentum法についても簡単に見ておきます。 勾配法の更新式は $\boldsymbol{x}_k – \eta \bigtriangledown f(\boldsymbol{x}_k)$ ですが、Moment […]

前処理による特異値分解の高速化

はじめに 機械学習ではPCAやLatent Semantic Analysis(LSA)、隠れマルコフモデルの学習、行列パラメータを持つモデルのトレースノルム正則化で、SVD(特異値分解)が必要になるときがあります。一回だけSVDすれば良い場合でも行列が巨大になるとつらいですし、行列パラメータを持つモデルでパラメータ更新のたびにSVDするときには行列のサイズがそこそこでもつらくなってきます。そこで特異値分解の高速解法について調べてみまし […]

近接勾配法(Proximal Gradient Method)

はじめに 効くか効かないかわからない特徴量が大量にあって、中にはいくつか効くものがきっとある・・・というときに、L1正則化やGroup LASSOが用いられます。これらは微分不可能な点を含むため、通常の勾配法では解けません。 そこで、微分不可能な点を含む凸関数最適化の一手法である近接勾配法について、勉強したことをまとめてみました。 近接勾配法の更新式 微分可能な凸関数$f(\boldsymbol{x})$と微分不可能な点を含む凸関数$g […]

確率的近接勾配法: Regularized Dual Averaging

はじめに 前回・前々回の記事では、バッチの近接勾配法とその加速法について紹介しました。バッチの近接勾配法では、各更新のたびに、学習データの全サンプルに対する勾配を求めて更新していました。バッチ勾配法は一回一回の更新で、確実に目的関数を減らしていくことができたり、収束の具合をモニタリングできるので安心感があるのですが、学習データが大きくなってくると一回一回の更新が重くなりすぎてつらくなってきます。 そこで今回は1サンプルに対する勾配計算で […]

機械学習ナイーブベイズ分類器のアルゴリズムを理解したのでメモ。そしてPythonで書いてみた。

概要 ナイーブベイズ分類器(ベイジアンフィルター)のアルゴリズムを具体的な数値を使って説明します。また、Pythonで実装してみました。自分の勉強メモのつもりで書いたのですが、他の方の役にも立てたら嬉しいです。 ナイーブベイズ分類器って? あるデータ(文章)をどのカテゴリーに属するのかを判定させる、機械学習の教師あり学習の手法の一つです。 スパムメールフィルターやWEBニュース記事のカテゴライズによく使われています。 難易度 ベイズの定 […]

機械学習を使って画像の圧縮をしてみた

はじめに 代表的なクラスタリングアルゴリズムである K-Means を用いて、画像の圧縮をしてみます。まずは、K-Means のアルゴリズムについて説明します。そのあと、K-Meansを使った画像圧縮について説明します。なお、内容についてはCoursera Machine Learningを参考にしています。 クラスタリングとは? データの集まりをデータ間の類似度に従って、いくつかのグループ(クラスタ)に分けること。 K-Means ア […]

モンテカルロ木探索を学ぶための書籍

はじめに コンピュータ囲碁やコンピュータ将棋に加えて、最近ではRNA合成やルービックキューブにも適用されているMCTS(Monte Carlo Tree Search: モンテカルロ木探索)を日本語で学ぶことができる書籍を紹介します。 書籍紹介 コンピュータ囲碁―モンテカルロ法の理論と実践― ディープラーニングが囲碁に適用される前の2012年11月刊行の書籍ですが、モンテカルロ木探索や、それに関連するUCTアルゴリズムについて、わかりや […]

NEONを使用してカーネル状態でアルゴリズムを高速化する方法を学ぶ

この記事では、NEONを使用してLinuxカーネル状態でアルゴリズムを高速化する方法を学ぶためにXiaobianに続き、内容はグラフィックの例を使って詳細に分析されています。 ARMプロセッサには、コプロセッサーシリーズのNEON処理ユニットが組み込まれています。このユニットは、コプロセッサーとして簡単に理解できます。マトリックス演算などのアルゴリズム用に特別に設計されており、画像、ビデオ、オーディオ処理などのシーンに特に適しています。 […]

Pythonで実装されたMahalanobis Distanceアルゴリズムの計算例

この記事では、Pythonで実装された計算マハラノビスアルゴリズムについて説明します。 次のように、皆の参照のためにそれを共有してください: 私は関数呼び出しを書いた PythonはMarkov距離ソースコードを実装しています: # encoding: utf-8 from __future__ import division import sys reload(sys) sys.setdefaultencoding('utf-8') […]

1 2 97