本講義では機械学習の各種手法とその数学的基礎、および具体的なプログラミングと実装方法について学ぶ。具体的には機械学習手法として①階層型ニューラルネットワーク、②Convolutional Neural Network(CNN)、③ニューラルネットワーク以外の代表的な機械学習を学ぶ。これらの手法の学習原理について数学的には、微分法、勾配法、チェインルール、誤差逆伝搬法、活性化関数として使われる各種非線形関数、を学ぶ。またプログラミングのためのライブラリ(フレームワーク)を紹介してそれを使ったプログラミングと実装の方法を学ぶ。
機械学習の主要な手法として、①階層型ニューラルネットワーク、②Convolutional Neural Network(CNN)、③他の代表的な機械学習を選び、これらを導出するための数学的な基礎を身に付け、具体的にプログラムを書いて実装できるようにする。
ニューラルネットワーク、ディープラーニング、Convolutional Neural Network(CNN)、誤差逆伝搬法、勾配法、最小二乗法、ベイズ推定、主成分分析、ブースティング法、サポートベクトルマシン、k-means法
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | ✔ 展開力(実践力又は解決力) |
前半7回で多層ニューラルネットワークの情報処理と機械学習の原理を理解に必要となる数学と共に学ぶ。特にディープラーニングの中核となるCNN(Convolutional Neural Network)の計算と学習の仕組みを数学的に理解し、そのプログラミング方法を実践できるように学ぶ。第8回で前半の理解度を演習と実習により確認する。
後半8回では、ニューラルネットワーク以外の代表的な機械学習とその最適化手法に関して必要となる数学・プログラミングを通して学ぶ。主にPythonと機械学習ライブラリscikit-learnを用いる。
授業計画 | 課題 | |
---|---|---|
第1回 | 前半7回の講義の概要。生体のニューラルネットワークとその工学的モデル。モデルの計算方法。プログラミング方法。 | 背景と基礎知識の習得 |
第2回 | 階層型ニューラルネットワーク学習の数学的基礎その1(各種活性化関数、SoftMax、ロジスティック回帰、勾配法、チェインルール) | 多層ニューラルネットワーク解析のための数学的基礎の学習 |
第3回 | 階層型ニューラルネットワーク学習の数学的基礎その2(誤差逆伝搬法とその回帰的計算方法) | 誤差逆伝搬法の数学的基礎の学習 |
第4回 | 階層型ニューラルネットワークとその学習のプログラミング方法 | 多層ニューラルネットワークとその学習方法のプログラミング |
第5回 | Convolutional Neural Networkの計算原理(コンボリューションとプーリング、SoftMaxの計算とその役割)と性能向上法(汎化性能向上と過学習防止の技法) | Convolutional Neural Networkの計算手法を学ぶ |
第6回 | Convolutional Neural Network学習の数学的基礎(勾配法と誤差逆伝搬法の適用) | Convolutional Neural Networkの数学的手法を学ぶ |
第7回 | Convolutional Neural Networkの学習のプログラミングと実装と実行、性能の体験 | Convolutional Neural Networkのプログラミングを学ぶ |
第8回 | 前半の理解度確認のための演習、実習(プログラミング) | 前半の理解度を確認しプログラミングを行う。 |
第9回 | 後半8回の概要。3種類の機械学習「教師あり回帰」「教師あり分類」「教師なし学習」について。Pythonを用いた機械学習の環境準備。 | |
第10回 | 最小二乗法、オーバーフィッテイング, スパース学習、ロバスト学習。 | |
第11回 | 機械学習ライブラリscikit-learnを使った分類問題。ロジスティック回帰、サポートベクトルマシン、カーネルトリック、決定木学習。 | |
第12回 | クラスタ分析。k-means法について。 データ前処理について。欠測値、特徴量の尺度、L1正則化。 | |
第13回 | 最尤推定法、確率を用いた推定理論、推定量の一致性と不偏性。EMアルゴリズム、ベイズ推定、確信度。 | |
第14回 | 次元削減によるデータ圧縮。主成分分析、線形判別分析、カーネル主成分分析。 | |
第15回 | アンサンブル学習。多数決方式、ランダムフォレスト,バギング、ブートストラップ法、アダブースト。 | |
第16回 | 後半の理解度確認のための演習(期末試験)、実習(プログラミング)。 |
CNNの原理と数学的基礎を学ぶための教科書:学習とニューラルネットワーク、森北出版、熊澤逸夫著
プログラミングの参考書:RaspberryPiではじめる機械学習、講談社、金丸隆志著
S. Raschka and V. Mirjalili, "Python Machine Learning (Second Ed.)," Packt Publishing(邦訳版: Python 機械学習プログラミング 達人データサイエンティストによる理論と実践)
C. M. Bishop, "Pattern Recognition and Machine Learning," Springer (邦訳版: パターン学習と機械学習(上・下))
杉山将、”イラストで学ぶ機械学習、” 講談社
中井悦司、”ITエンジニアのための機械学習理論入門、” 技術評論社
期末試験、および実習のレポート
微分積分、線形代数の基礎知識