logo

機械学習

機械学習とは、機械既に持っているデータセットから特徴を理解する方法を学び、新しいデータの特徴もうまく把握できるようにすることだ。

この定義は厳密なものではなく、定義が厳密である必要もない。機械とは単にコンピュータ、つまりプログラミングコードと理解すればいい。既に持っている、つまり学習に使われるデータセットをトレーニングセットと言う。機械学習を試験勉強する学生に例えると以下のようになる。

  • 機械: 学生
  • トレーニングセット: 過去問
  • 特徴: 出題傾向
  • 新しいデータ: 実際の試験問題
  • 学習: 過去問を解くことで実際の試験問題を解けるようにすること

2021年現在、機械学習を実装する上で最も多く使われる方法は、人工ニューラルネットワークの隠れ層を増やすディープラーニングだ。人工ニューラルネットワークは最近になって飛躍的に性能が向上し、最も良い性能を発揮することもある。ディープラーニングが満足できる性能を示す前までは、統計的理論を基にしたモデルが機械学習の主流だった。

機械学習をするためには数学統計学プログラミングを知っている必要がある。理論を理解するために数学、統計学の知識が求められ、これを実装するためにはプログラミングが必要だ。特に機械学習の理論を深く学ぶためには、行列に関する線形代数学の知識だけでなく、測度論関数解析学などが必要だ。また、最近では幾何学グラフ理論偏微分方程式などと人工知能を結びつけた研究も進んでいる。

また、以下の記事はできるだけ数学専攻の人が読みやすいように書かれている。

基礎

学習概念

最適化

古典的機械学習

線形回帰モデル

線形分類モデル

  • 線形分類モデル
    • 最小二乗法
  • フィッシャーの線形判別 Fisher’s Linear Discriminant
  • ネイマン-ピアソンの二項分類 Neyman-Pearson Criterion for Binary Classification
  • ベイズリスク分類器 Bayes Risk Classifier

クラスタリング

サンプリング

強化学習

ディープラーニング

チートシート:Flux、PyTorch、TensorFlowで同じ機能をするコード

理論

正則化技術

様々なニューラルネット

PyTorch

一般

ニューラルネット

テンソル

エラー

Julia

Flux

主要参考文献

  • Christoper M. Bishop, Pattern Recognition annd Machine Learning (2006)
  • Simon Haykin, Neural Networks and Learning Machines (3rd Edition, 2009)
  • Trevor Hastie, The Elements of Statistical Learning: Data Mining, Inference, and Prediction (2nd Edition, 2017)
  • 오일석, 기계 학습(MACHINE LEARNING) (2017)
  • Richard S. Sutton, Reinforcement Learning: An Introduction (2nd Edition, 2018)

全體ポスト