トリコロールな猫/セキュリティ

思いついたことをぼちぼち書いてます。

機械学習・深層学習の主なアルゴリズムまとめ1〜教師あり学習と教師なし学習

数学的に完全に理解する必要はないけど、あれをするときはこれを使う、くらいは分かっておきたいのでメモ。オフラインで書いてるとテンションが上がらないのではてダに残す。長くなりそうなので半教師あり学習・強化学習・深層学習はこちら。

security.nekotricolor.com

全体を通してこの図が参考になった。scikit-learnはPythonの機械学習ライブラリのこと。
peekaboo-vision.blogspot.com

教師あり学習

Classification(分類)

入力データからクラスを予測する。

分類木

決定木(Decision tree)の一種。目的変数(予測したい変数)が質的変数の場合。

ナイーブベイズ分類器

単純ベイズ分類器とかベイジアンフィルタともいう。ベイズの定理を使って、あるクラスに属する確率を求める。全ての特徴量は互いに独立であるという前提から「ナイーブ」と呼ばれる。出てくるのは確率なので(ここまでなら回帰だよね?)、◯%以上ならA、それ以外はBなど「決め」が必要。スパムフィルタでよく使われる(今もそうなのかしら?)。

rtokei.tech

サポートベクターマシン

SVM。簡単に線引き(3次元なら平面で)できないものを、高次元に変換(2次元を3次元にするとか)して線(平面)を引いて分けられるようにする。

f:id:nekotricolor:20190810135737j:plain
サポートベクターマシン

k近傍法

k Nearest Neighbor ということでkNNとも書く。説明は以下のQiitaが分かりやすい。

qiita.com

Regression(回帰)

入力データから数値を予測する。

回帰木

決定木(Decision tree)の一種。目的変数(予測したい変数)が量的変数の場合。

線形回帰

単回帰分析の一つ。グラフ上に点があって、なんとなくたくさん点があるところを通る直線のあれ。説明変数(予測に使われる変数)と目的変数の関係を1次式で表す。
www.albert2005.co.jp

ロジスティック回帰

目的変数が質的変数、特に0か1の2値のときに用いる。

istat.co.jp

スパムフィルタにも使われているらしい。記事が古い(2006年)からいまは違うかも?
thinkit.co.jp

あれ、質的変数なら分類では?と思ったらまず確率を求めるので回帰だということ。
scrapbox.io

じゃあナイーブベイズ分類器の方が回帰よね。これも確率を求めてそれを元に分類しているので。(分類までして1セットなので「分類器」なんでしょう。)
どっちを使うのがいいかというと:

・十分にデータがあるならロジスティック回帰が有利
・データの少ないタイミングではナイーブベイズが有利

だそうです。
scrapbox.io

教師なし学習

クラスタリング

似たものをグループ化する。

ウォード法

階層クラスター分析=途中過程が階層のように表せる(デンドログラムが作れる)の一つ。

www.albert2005.co.jp

確かこれでマルウェアの系図を作る論文があったな・・・と思ったらこれは静的解析がメインだった。系統解析(階層クラスター分析のことでいいのかな?)でデンドログラムを出している。
展開型静的解析と動的解析を連携させたマルウェア解析手法

FFRIのこれはまさにウォード法でやっている。
動的情報に基づいたマルウェアのクラスタリング

NTT情報流通プラットフォーム研究所でも階層的クラスタ分析でマルウェアの分類をやってる。
機械語命令列の類似性に基づく自動マルウェア分類システム

k平均法

k-meansともいう。非階層クラスター分析の一つ。ランダムにクラスタを割り当て→重心を計算→一番近い重心にクラスタを割り当て直す、を繰り返す。説明は以下のサイト。
tech.nitoyon.com

k-meansを改良したO-means法によりスパムをクラスタリングする試み。やっぱりベイジアンフィルタだけでは排除しきれないようになってきてるのかな?

スパムによる攻撃を分析するためのクラスタリング手法と特徴量選択手法について

参考書籍

統計学の図鑑

仕事で文書のクラスタリングをするときに最初に買った本。
図鑑というだけあってでかいし絵が豊富。でもベイジアンフィルタのことまで書いてある。とっつきやすい。

統計学の図鑑 (まなびのずかん)

統計学の図鑑 (まなびのずかん)

完全独習 統計学入門

中高の数学をだいぶ忘れていたので上の本と一緒に購入。標準偏差について非常に詳しく説明している(ので機械学習をツールとして使うだけならあまり必要ないかも)。章末の練習問題をやったりして学生気分に。

完全独習 統計学入門

完全独習 統計学入門

Rによるデータマイニング入門

上2冊に比べると本格派。これを一番よく読んでいる気がする。Rに慣れてないのでソースが読みにくいのと図(Rによるプロット)がきれいでないのがちょっとあれだけど、知りたいことがだいたい章題になっているので手放せない。

Rによるデータマイニング入門

Rによるデータマイニング入門