ふきブログ

fckey's daily impression blog

日記 20180614

今日の出来事

  • 晴れ
  • 1日中黙々と読書

興味

scikit-learnとTensorFlowによる実践機械学習の続き

  • Regression
    • Liner Regression
      1時変数のシンプルな回帰。多項式回帰をScikit-learnで使用するにはPolynominalFeatureを使用。
    • Regularized Liner Model
      過学習を緩和するには正規化が良い
      • Ridge
        線形回帰のコスト関数にハイパーパラメータを導入しモデルの分散を下げる。
      • Lasso
        Ridgeと同じようにコスト関数に正規化項を加えるがノルムはl2ではなくl1。重要性の低い特徴量の重みを取り除きやすい。
      • Elastic Net
        RidgeとLassoのハイブリッド。Ridgeは良いデフォルトだが、意味のある特徴量は一部だと思われるときはLasso、インスタンス数より特徴量の数が多い場合にはElastic Netが良い。
    • Gradient Decent
      コスト関数を最小にするためにパラメーターを繰り返し操作する最適化アルゴリズム
      • Batch Gradient Decent
        ここのモデルパラメータについてコスト関数の勾配を偏微分で計算。
      • Stochastic Gradient Decent
        BGDはすべての訓練セットに対し計算を行い時間がかかるため、無作為にひとつのインスタンスを選び出し勾配を計算する手法。学習率を徐々に小さくすると良い。
      • Mini-batch Gradient Decent
        一つのインスタンスではなく無作為に選んだ小さな集合を使う。GPUを使用するとパフォーマンスがあがる。SGDより局所解にハマりやすい。
    • Logistic Regression
      シグモイド関数を用いて確率を算出する。分類器として使用できる。
    • Softmax function 複数クラスへの分類確率を算出するのに使用できる。

以前ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装を読んだ時に勾配法やSoftmax関数が出てきてディープラーニングで活用されているのは理解できたが、結局伝統的な手法からの応用なので基礎、成立ちからキャッチアップしていくべきだと感じた。