ふきブログ

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関数が出てきてディープラーニングで活用されているのは理解できたが、結局伝統的な手法からの応用なので基礎、成立ちからキャッチアップしていくべきだと感じた。

日記 20180613

今日の出来事

  • 晴れ
  • 学生時代の先輩と虎ノ門ヒルズで立ち食いそばランチ
  • 友人と六本木で銀だこを食べた後にシーシャバー

興味

  • Classifier - scikit-learnとTensorFlowによる実践機械学習の続き
    • Binary Classifierは Stochastic Gradient Descent (SGD), SVM, Linear classifiersが有名
    • Multiclass ClssifierはRandom Forest, Naive Bayes が有名
    • 分類器のパフォーマンスはConfusion Matrixを主に使う
      • precision = TP/(TP+FP)
      • recall = TP/(TP+FN)
      • F1 score = TP/(TP + (FP+FN)/2)
      • F1 scoreが高いことが必ずしも是ではなく用途によって閾値を設定する
      • バランスを見るのには precision-recall-curveまたはROC curveを使用

日記 20180611

1日の出来事

  • 豚肉、ネギ、卵、の炒め物を調理

興味

今日の本

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

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

最近でた機械学習系の本の中で一番面白そうなのを買おうとしたがどこも売り切れだった。 Safari Booksで見つけたためとりあえず英語版を読み進めている。

以下新しく分析を始めるときのチェックポイント

  • Frame the problem and look at the big picture.

  • Get the data.

  • Explore the data to gain insights.

  • Prepare the data to better expose the underlying data patterns to Machine Learning algorithms.

  • Explore many different models and short-list the best ones.

  • Fine-tune your models and combine them into a great solution.

  • Present your solution.

  • Launch, monitor, and maintain your system.

日記 20180610

1日の出来事

  • 六本木ヒルズで父の日のギフトを購入
  • 鶏肉のテリヤキチキン、舞茸のバターソテー卵焼きを調理

面白かったもの