2-3. 機械学習の具体的な手法
さて、ここまでがディープラーニング検定の前半です。後半のディープラーニングが始まる前に失速しないように注意。後半に備えて、つまらなかったらスキップしまちゃいましょう。
2-3-1. 線形回帰
回帰の代表的な手法です。
用語:単回帰分析
1つの説明変数(例:その日の気温)から目的変数(例:その日の飲み物の売上)を予測する。
用語:重回帰分析
複数の説明変数から目的変数を予測する。
重回帰分析をやる際には、多重共線性に注意しなくてはならない。
用語:多重共線性
マルチコ(multicollinearity)とも呼ばれる。
相関係数が高い(1か-1に近い)特徴量の組みを同時に説明変数に選ぶと、予測が上手くいかなくなる事象のこと。
2-3-2. ロジスティック回帰
線形回帰の「回帰」ではなく「分類」版という説明が教科書に書かれていた。線形回帰を分類問題に応用するためのアルゴリズムで、シグモイド関数を使います。2種類の分類ではなく多種類の分類となる場合は、ソフトマックス関数を使います。ちなみに、ロジスティック回帰は、ニューラルネットワークの一種と考えることもできる。対数オッズを線形回帰により予測し、出力の正規化によって予測結果を確率として解釈します。目的関数としては尤度関数を使います。
2-3-3. kNN法
分類の一手法。未知のデータの近くからk個のデータを調べて多数決によって所属クラスを決定するアルゴリズム。欠点としては、クラスのサンプル数の偏りに弱い。ちなみに、kの値はエンジニアが事前に設定しておくパラメーターであり、こういったパラメーターはハイパーパラメーターと呼ばれます。
2-3-4. 決定木
条件分岐を繰り返すことにより分類や回帰を行うためのアルゴリズム。情報利得の最大化を実現するように決定する。データのスケールを事前にそろえておく必要がなく、分析の説明が容易というメリットがあります。
2-3-5. ランダムフォレスト
決定木を用いる手法。特徴量をランダムに選び出して、ランダムに複数の決定木を作り出し、それぞれの決定木の結果を用いて多数決を採る手法。
用語:ブーストストラップサンプリング
全てのデータをつかうのではなく、それぞれの決定木に対して一部のデータを取り出して学習させる。
用語:アンサンブル学習
ランダムフォレストのように複数のモデルで学習させる手法のこと。
用語:バギング
全体から一部のデータを用いて複数のモデルを用いて学習する手法。ランダムフォレストは、バギングの中でも決定木を用いる手法という位置づけです。
2-3-6. ブースティング
バギングと同様に一部のデータを繰り返し抽出して複数のモデルを学習する手法です。バギングとの違いですが、複数のモデルを一気に並列作成する(バギング)か、逐次的に作成する(ブースティング)か、というところです。ブースティングもモデル部分には決定木が用いられており、AbaBoostや勾配ブースティングやXgBoostなんかが有名だそうな。ランダムフォレストと勾配ブースティングを比べた時、並列的なランダムフォレストの方が計算は速いが、精度は勾配ブースティングの方が良いといわれています。
2-3-7. 次元削減
データに複数ある変数のうち、分析に不要なものを削除します。寄与率を調べれば各成分の重要度が分かり、主成分を調べれば各成分の意味を推測することができます。
用語:次元の呪い
機械学習において次元が増えると計算量や学習に必要なサンプル数が爆発的に増えて様々な不都合が生じるという法則。
2-3-8. サポートベクターマシン
もともとは2クラス分類のアルゴリズムです。「マージンの最大化」というコンセプトのもと、2つのクラスを線形分離します。ディープラーニング以前に「人気」ではあったが、汎化性能が高い手法であったわけではない(そのような汎化性能の差に明確な結論は出ていない)という引っ掛け問題が出ます。
用語:カーネル法
SVMは、線形分離可能でないデータ(直線でないデータに対してもカーネル法を組み合わせることで決定境界を求めることができます。
データをあえて高次元空間に写像するための関数をカーネル関数、その計算をカーネルトリックといいます。
2-3-9. ニューラルネットワーク
以降に、ディープラーニングが控えているので、触りだけ書こうかな。
用語:単純パーセプトロン
線形分離可能な(直線を使って分離できる)問題であれば、解けます。ステップ関数を使います。単純パーセプトロンの限界は、多層にしてバックプロパゲーション(誤差逆伝搬学習法)を用いて学習すれば克服できることが示された。
用語:多層パーセプトロン
非線形分離も可能です。これの層が深くなったやつがディープラーニングです。やっと、ディープラーニングに近づいてきましたね。