到達目標
(1) ライブラリを活用してデータセットに対して基本的な解析を行い,可視化することができる
(2) 代表的なニューラルネットワークベースの機械学習手法について理解し,説明することができる
(3) 与えられたデータとタスクに対して適切なニューラルネットワークを設計し,実験スクリプトを作成することができる
【教育目標】C, D, E
【キーワード】回帰,分類,次元圧縮,生成モデル,機械学習,深層学習
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
ライブラリを活用してデータセットに対して基本的な解析を行い,可視化することができる | データ解析ライブラリの高度な機能を自ら調査して活用することで高度なデータ解析を行える | データ解析ライブラリの機能を活用して基本的なデータ解析を行うことができる | データ解析ライブラリの機能を活用して基本的なデータ解析を行うことができない |
代表的なニューラルネットワークベースの機械学習手法について理解し,説明することができる | それぞれの手法を応用した解析やアプリケーションを想定できる.またそれぞれの手法をもとに提案された別の手法について調査し,説明することができる. | それぞれの手法がどんなデータ/タスクに適しているのかを説明できる | それぞれの手法がどんなデータ/タスクに適しているのかを説明できない |
与えられたデータとタスクに対して適切なニューラルネットワークを設計し,実験スクリプトを作成することができる | ハイパーパラメータの設計や実験結果の分析を含めた,高度な実験スクリプトの実装ができる | 適切な損失関数と活性化関数を選択し,妥当なニューラルネットワーク構造を設計することができる | 適切なニューラルネットワークを設計することができない |
学科の到達目標項目との関係
教育目標 C
説明
閉じる
教育目標 D
説明
閉じる
教育目標 E
説明
閉じる
教育方法等
概要:
Pythonを用いてデータセットに対する様々なデータ解析手法を学ぶ.
まず,データ解析を行うための様々なライブラリ(NumPy, Pandas, PyTorch, Matplotlib, Plotlyなど)の使い方を学んだのち,機械学習の原理と実装方法を学ぶ.
その後,ライブラリを活用して高精度な機械学習手法をデータセットに適用する方法を学ぶ.
授業の進め方・方法:
プログラミングの実習をメインとするが,必要に応じて講義を行う.実習はPythonを動かす.
実習は教材を提供する.
数回実習課題を出すので,期日までに提出すること.
注意点:
教材や資料へのアクセスのためにGoogleアカウントにログインする必要があるため,事前にログインできるようにしておくこと.
【事前学習】
授業で扱う内容について調査し,概要を把握しておくこと.また,前回の授業で扱った内容について復習し,用語の意味を再確認しておくこと.
【評価方法・評価基準】
課題(100%)で評価する.詳細は第1回目の授業で告知する.
機械学習(深層学習)の基本的事項についての理解度とこれらについての論理的な説明能力および実装能力を評価する.
総合成績60点以上を単位修得とする.
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
Pythonの環境構築とプログラミングの復習 |
授業の概要を理解する.NumPyやPandasを用いて数値計算やグラフの作成ができる.
|
2週 |
ヘブ即とSOM(Self Organizing Map; 自己組織化マップ) |
SOMの仕組みとその訓練方法を理解し,実データに対して適用できる.
|
3週 |
勾配降下法とニューラルネットワーク |
基本的なニューラルネットワークの仕組みとその訓練方法を理解し,これを説明することできる.
|
4週 |
PyTorchによる実験スクリプトの作成 |
ニューラルネットワーク実装で用いられるPythonパッケージ「PyTorch」の使い方を理解し,ニューラルネットワーククラスの実装ができる.また,訓練ステップ,バリデーションステップ,テストステップおよびこれに用いるミニバッチデータの作成ができる.
|
5週 |
MLP(Malti-Layer Perceptron; 多層パーセプトロン)と活性化関数 |
クラス分類や回帰を行うためのMLPを設計し,PyTorchで実装することができる.
|
6週 |
自然言語処理の基礎:Word2Vec |
自然言語処理の基礎技術である単語埋め込みについて理解し,CBOW(Continuous Bag-of-Words)やSkip-Gramの仕組みを説明することができる.
|
7週 |
演習(その1) |
これまでの課題で未完成のものを完成させる.共用ワークステーションの使い方を理解する.
|
8週 |
RNN(Recurrent Neural Network; 回帰型ニューラルネットワーク)/LSTM(Long-Short Term Memory)と過学習の抑制 |
系列データの扱いに特化したニューラルネットワークであるRNNと,その発展であるLSTMの仕組みを理解し,PyTorchで実装することができる.また過学習について理解し,これを抑制する技術としてDropout/バッチ正則化の仕組みを理解し説明できる.
|
2ndQ |
9週 |
画像処理の基礎:CNN(Convolution Neural Network; 畳み込みニューラルネットワーク)と事前学習モデル |
画像の扱いに特化したニューラルネットワークであるCNNの仕組みを理解し,PyTorchで実装することができる.また事前学習モデルとファインチューニングについて理解し,実用することができる.
|
10週 |
Auto Encoder(オートエンコーダ)とVAE(Variational Auto Encoder; 変分オートエンコーダ) |
次元圧縮や異常検知に用いられるAuto EncoderとVAEの仕組みを理解し,PyTorchで実装することができる.
|
11週 |
GAN(Generative Adversarial Network; 敵対的生成ネットワーク) |
生成モデルであるGANの仕組みとその学習方法について理解し,PyTorchで実装することができる.
|
12週 |
演習(その2) |
これまでの課題で未完成のものを完成させる.
|
13週 |
深層強化学習(その1) |
強化学習とこれをDeep Learningを用いて実装した手法について仕組みを理解し,説明することができる.
|
14週 |
深層強化学習(その2) |
深層強化学習の仕組みを理解し,PyTorchによって実装することができる.
|
15週 |
演習(その3)と授業のまとめ |
これまでに習った手法の応用や発展について理解し,説明することができる.また,機械学習について自学自習することができる.
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | |
ソフトウェア | ソフトウェアを中心としたシステム開発のプロセスを説明できる。 | 4 | |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 4 | |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 4 | |
評価割合
| 課題 | 発表 | 相互評価 | 態度 | ポートフォリオ | その他 | 合計 |
総合評価割合 | 100 | 0 | 0 | 0 | 0 | 0 | 100 |
データ分析能力 | 20 | 0 | 0 | 0 | 0 | 0 | 20 |
機械学習手法の知識と説明能力 | 40 | 0 | 0 | 0 | 0 | 0 | 40 |
プログラムの実装能力 | 40 | 0 | 0 | 0 | 0 | 0 | 40 |