Help us understand the problem. What is going on with this article?

Webアプリケーションエンジニアがディープラーニングに挑戦する際にやったこと(Coursera Week7)

More than 1 year has passed since last update.

Coursera Week7

はじめに

CourseraのWeek7を実施しましたので、私のメモを公開します。
Courseraってなんだ?という方はWeek1から御覧ください。

Week7

Large Margin Classification

サポートベクターマシンのコスト関数。
$$
\min_\theta C \sum_{i=0}^m \left[y^{(i)}cost_1(\theta^Tx^{(i)})+(1-y^{(i)})cost_0\theta^Tx^{(i)} \right]+\frac{1}{2}\sum_{i=0}^n\theta_j^2
$$
これは$y=1$の場合、$\theta^Tx \geq 1$
$y=0$の場合、$\theta^Tx \leq -1$

Kernel

以下のsimilarity関数を数学的にはカーネル関数と呼ぶ。
カーネルは$k$と表すこともできる。
$$
similarity(x,l^{(i)})=\exp(- \frac{|| x - l^{(i)}||^2}{2\sigma^2}) = \exp(-\frac{\sum_{j=1}^n(x_j-l_j^{(1)})^2}{2\sigma^2})
$$

Using An SVM

ルートや逆行列を計算する場合、ロジックを1から実装するのではなくライブラリを使うべきである。
ライブラリに全ての計算を任せるが、こちらがやるべきこともある。
1つ目は$C$の値を選ぶこと。($C$の値($\lambda$)を選ぶことで、オーバーフィットやアンダーフィットを調整する。)
2つ目はカーネルを使用するかしないかの選択をする。
カーネルを使用しないことをlinear kernelという。
これは多くのフィーチャ($n$が大きい)く、教師データが小さい場合($m$が小さい)場合、オーバーフィッテングしやすいためカーネルを使わないのが合理的になる。
ガウスカーネルを使用する場合、$\sigma^2$を選択する必要がある。
$\sigma^2$が大きいと低バリアンス、高バイアス(アンダーフィット)
$\sigma^2$が小さいと高バリアンス、低バイアス(オーバーフィット)
カーネルを使用する場合は少ないフィーチャで教師データがたくさんある場合に合理的である。

線形カーネルやガウスカーネル(やその他のカーネル)を使用する場合、何にでも使えるわけではない。
Mercerの定理を満たす必要がある。

ロジステック回帰とSVMのどちらを利用すべきか
$n \geq m$で$n=10000$くらい$m=1000$くらいであれば、ロジスティック回帰か線形カーネルを使用する。
$n$が小さく、$m$が中くらいのときは線形カーネルを選択する。
$n$が小さく、$m$が大きいときにガウスカーネルを使用すると遅いかもしれない。
その時は手動でフィーチャを追加してロジステック回帰にするか、線形カーネルを試す。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした