Machine Learning
Stanford Univ, Coursera
Evaluating a Learning Algorithm
Evaluating a Hypothesis
- トレーニングのためのデータをもっと多く用意する
- featuresをもっと少くする
- 他のfeatureを追加する
- featuresの多項式を試す
- $\lambda$ の値を変える(増やす or 減らす)
新しい hypothesis がトレーニング例に対しては低いエラーを示すが、不正確であることがある (overfittingになった場合)。
トレーニング例を training set と test set にわけるが、前者を 70% , 後者を 30% にすることが多い。
- training set を用いて $\Theta$ を学習させ $J_{train}(\Theta)$ を最小化する。
- test set を用いて $J_{test}(\Theta)$ を計算する。
test set error
- 線形回帰 (linear regression)の場合: $\displaystyle J_{test}(\Theta) = \frac{1}{2m_{test}} \sum_{i=1}^{m_{test}} ( h_{\Theta}(x_{test}^{(i)}) - y_{test}^{(i)})^2$
- クラス分け (classification) の場合: クラス分け間違い
$\displaystyle
err(h_{\Theta}(x)_,y) =
\left\{
\begin{array}{l}
1 \quad\quad\quad if ~ (h_{\Theta}(x) \leq 0.5 ~ and ~ y=0) ~ or ~ (h_{\Theta}(x) < 0.5 ~ and ~ y=1) \\
0 \quad\quad\quad otherwise
\end{array}
\right.
$
$\displaystyle
\mbox{Test Error} = \frac{1}{m_{test}} \sum_{i=1}^{m_{test}} err(h_{\Theta}(x_{test}^{(i)}), y_{test}^{(i)})
$
|
Model Selection and Train/Validation/Test Sets
training setに適合するように学習できたからといって、そのアルゴリズムがよい hypothesis であるとは限らない。
overfitting (過学習)になり、その結果として test set に対する予測がひどい場合がある。
- Training set: 60 \%
- Cross validation set: 20 \%
- Test set: 20 \%
- training setを用いて、各多項式次元に対して $\Theta$ 中のパラメータを最適化する。
- cross validation setを用いてエラーを最小化する多項式次元 $d$ を見つける。
- test set を用いて$\displaystyle J_{test}({\Theta}^{(d)})$ の汎化誤差を評価する。($d$は 誤差を減らす多項式からの$theta$)
6-1 test
診断に関する文章として正しいものを全て選べ。
- □ learning algorithm を改善するために何をしていいかわからないので、直感(gut feeling)にしたがって、何がうまく動くかを調べる方法がベストである。
- 〆 learning algorithm を改善するために何をするとよいかは、診断は指針を与えることができる。
- 〆 診断は実装や実行に時間を取られるが、時間を費やす価値はある。
- 〆 性能を劇的に果然することはなさそうなので、診断はlearning alghrithmを変更するというコースをはずれることがある。
← [自分へのメモ]これがよくわからなかった。
6-4 test
classification 問題を考える。
class分けエラーは $\frac{1}{m} \sum_{i=1}^{m} err(h_{\theta}(x^{(i)}), y^{(i)})$ として定義される。
cross validation 用のデータ ($x_{cv}^{(1)}$,$y_{cv}^{(1)}$), $\cdots$, ($x_{cv}^{(m_{cv})}$,$y_{cv}^{(m_{cv})}$)
を用いて、cross validation エラーは似たように定義される。
training error は $0.10$ で、validation error は$0.30$ である。
アルゴリズムが最も悪影響を受けている問題は何か?
[自分へのメモ]
training error が小さいのでtraining setに対する学習はうまくいっているが、
validation error が大きいので overfitting であることがわかる。
biasが小さいときには、$\Theta$が大きい値を取れるので overfitting となる。
- □ High bias (overfitting)
- □ High bias (underfitting)
- 〆 High variance (overfitting)
- □ High variance (underrfitting)
6-5 test
regularized logistic regression を考える。式は略。
regularization parameter \lambda$ の関数として、$J_{train}$, $J_{cv}$ をプロットする。
ありえるグラフはどれ?
[自分へのメモ]
$J_{train}$ の方が $J_{CV}$ よりもエラーが少ない(グラフが下にある)のが普通である。
したがって選択肢の[1][2]は間違い。
$\lambda$ が大きくなると $J_{train}$ は underfitting になるので$J_{train}$ は大きくなる。
- □ $J_{train}$ のグラフが $J_{CV}$ のグラフより上。$J_{CV}$ は減少。
- □ $J_{train}$ のグラフが $J_{CV}$ のグラフより上。$J_{CV}$ は増大。
- □ $J_{CV}$ のグラフが $J_{train}$ のグラフより上。$J_{train}$ は減少。
- 〆 $J_{CV}$ のグラフが $J_{train}$ のグラフより上。$J_{train}$ は増大。
6-6 test
training data を増やすことが、学習成果を改善する状況を選べ。
[自分へのメモ]
trainig dataを増やすということは、underfitting方向へと状況を動かすことになる。
- □ high vias
← underfitting なので、trainig data を増やしても意味ない。
- 〆 high variance
← overfitting なので、trainig data を増やすのはとても有用である。
- 〆 $J_{CV}$ が $J_{train}$ よりとても大きい。
← overfitting なので、trainig data を増やすのはとても有用である。
- □ $J_{CV}$ が $J_{train}$ とほぼ同じ。
← overfitting ではないので、trainig data を増やしても意味ない。
Yoshihisa Nitta
http://nw.tsuda.ac.jp/