Week1内容
Machine Learningの定義
コンピュータプログラムが、ある種のタスクTと評価尺度Pにおいて、経験Eから学習するとは、タスクTにおけるその性能をPによって評価した際に、経験Eによってそれが改善されている場合である
教師あり学習
学習内容のデータセットに答え(ラベル)が与えられているもの
- X円で売れた家の面積
- 悪性/良性の腫瘍サイズ
等
回帰:regression
連続値を扱う - 身長 - 金額 - 年齢 などを予測する
分類:Classify
離散値を扱う inputをN種類のoutputに対応付ける(分類)
- ガンのタイプ
- 満足/不満足
など
教師なし学習
学習内容のデータセットに答え(ラベル)が与えられていないもの
Clustering
Googleニュースでは各ニュースサイトが同じ事象を書いた記事を一つにまとめる機能がある。
ネットにニュースが転がっている状態ではラベルは直接ついていない=教師なし学習である
Non-Clustering
正確な定義の説明はWeek1ではなかった。
例:カクテルパーティアルゴリズム
この例の解説がなかなかん凄かった。二つの音源が混じった音声データを個別の音源ごとに分離させた音声データを2つ作る。これがOctaveなら一行のアルゴリズムで実現できる。
Octaveを使う理由
プロトタイプを早く作れるから。実際の事業でもプロトタイプをOctaveで作る例が多いらしい。
単回帰分析(Linear regression with one variable)
の量をもつデータセットから関数を作る
この関数にinput(x)を代入すると、学習したデータセットをもとに 結果を予測できる。
目的関数(Cost function)
単回帰分析の関数のパラメーターの導出に利用。
二条誤差目的関数(Squared error function)
関数が学習セットのにおいて、結果の誤差の2乗が最小になるようなを求める。
他にも目的関数は数種類あるそうだが、単回帰分析の場合はこの関数が一番有効らしい。
学生の時に統計の授業で聞いた気がするが、2乗しているのは単に誤差の符号(+-)を揃えるのに絶対値を求めるより2乗する方が簡単だから、が理由だった気がする *1
*1:2乗することで基本的に正の数になる