到達目標
(1) ライブラリを活用してデータセットに対して基本的な解析を行い,可視化することができる
(2) 代表的なニューラルネットワークベースの機械学習手法について理解し,説明することができる
(3) 与えられたデータとタスクに対して適切なニューラルネットワークを設計し,実験スクリプトを作成することができる
【教育目標】C, D, E
【キーワード】回帰,分類,生成モデル,機械学習,深層学習
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
ライブラリを活用してデータセットに対して基本的な解析を行い,可視化することができる | データ解析ライブラリの高度な機能を自ら調査して活用することで高度なデータ解析を行える | データ解析ライブラリの機能を活用して基本的なデータ解析を行うことができる | データ解析ライブラリの機能を活用して基本的なデータ解析を行うことができない |
代表的なニューラルネットワークベースの機械学習手法について理解し,説明することができる | それぞれの手法を応用した解析やアプリケーションを想定できる.またそれぞれの手法をもとに提案された別の手法について調査し,説明することができる. | それぞれの手法がどんなデータ/タスクに適しているのかを説明できる | それぞれの手法がどんなデータ/タスクに適しているのかを説明できない |
与えられたデータとタスクに対して適切なニューラルネットワークを設計し,実験スクリプトを作成することができる | ハイパーパラメータの設計や実験結果の分析を含めた,高度な実験スクリプトの実装ができる | 適切な損失関数と活性化関数を選択し,妥当なニューラルネットワーク構造を設計することができる | 適切なニューラルネットワークを設計することができない |
学科の到達目標項目との関係
教育目標 C
説明
閉じる
教育目標 D
説明
閉じる
教育目標 E
説明
閉じる
教育方法等
概要:
Pythonを用いてデータセットに対する様々なデータ解析手法を学ぶ.
まず,データ解析を行うための様々なライブラリ(NumPy, Pandas, PyTorch, Matplotlib, Plotlyなど)の使い方を学んだのち,機械学習の原理と実装方法を学ぶ.
その後,ライブラリを活用して高精度な機械学習手法をデータセットに適用する方法を学ぶ.
授業の進め方・方法:
「データサイエンス」で紹介した手法をPythonで実装する.プログラミングの実習をメインとする.
実習は適宜追加教材を提供する.
数回実習課題を出すので,期日までに提出すること.
注意点:
受講者の理解度や課題の進捗具合によって,シラバスを修正する可能性がある.
教材や資料へのアクセスのためにGoogleアカウントにログインする必要があるため,事前にログインできるようにしておくこと.
【事前学習】
授業で扱う内容について調査し,概要を把握しておくこと.また,前回の授業で扱った内容について復習し,用語の意味を再確認しておくこと.
Visual Studio Code,Google Colaboratoryを使ったPythonプログラミングを行うため,開発環境の整備をすること.
Pythonはif文,for文,関数,クラスの使い方について既知である前提で授業をするため,不安がある場合は復習しておくこと.
【評価方法・評価基準】
課題(100%)で評価する.詳細は第1回目の授業で告知する.
深層学習の基本的事項についての理解度とこれらについての論理的な説明能力および実装能力を評価する.評価はレポートなどの提出物によって行うため,必ず全て提出すること.
総合成績60点以上を単位修得とする.
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
Pythonの環境構築とプログラミングの復習 |
授業の概要を理解する.NumPyやPandasを用いて数値計算やグラフの作成ができる.
|
2週 |
教師あり学習 |
単純な機械学習手法によるクラス分類,回帰を行う実験プログラムを自作できる.
|
3週 |
勾配法とPyTorch |
基本的なニューラルネットワークの仕組みとその訓練方法を理解し,これを実装することができる.ニューラルネットワーク実装で用いられるPythonパッケージ「PyTorch」の使い方を理解し,ニューラルネットワーククラスの実装ができる.また,訓練ステップ,バリデーションステップ,テストステップおよびこれに用いるミニバッチデータの作成ができる.
|
4週 |
確率と情報量 |
交差エントロピーやKLダイバージェンスなど,与えられた数式をPython(NumPyやPyTorch)を用いて効率的に実装できる.
|
5週 |
線形変換 |
クラス分類や回帰を行うためのMLPを設計し,PyTorchで実装することができる.
|
6週 |
ニューラルネットワークの基礎 |
3層のニューラルネットワークについて理解し,これを実装して実験を行うことができる.また結果を可視化する方法を理解し,レポートとしてまとめることができる.
|
7週 |
畳み込みニューラルネットワーク |
画像の扱いに特化したニューラルネットワークであるCNNの仕組みを理解し,PyTorchで実装することができる.また事前学習モデルとファインチューニングについて理解し,実用することができる.
|
8週 |
再帰型ニューラルネットワーク |
系列データの扱いに特化したニューラルネットワークであるRNNと,その発展であるLSTMの仕組みを理解し,PyTorchで実装することができる.また過学習について理解し,これを抑制する技術としてDropout/バッチ正則化の仕組みを理解し説明できる.
|
2ndQ |
9週 |
自然言語処理と深層学習 |
自然言語処理に必要なベクトル空間モデルとこれを用いた単純な分類器について理解し,これをscikit-learnを用いて利用することができる.
|
10週 |
Attention |
Attentionを理解し,実装することができる.またこれを利用した深層学習モデルを実装することができる.
|
11週 |
Transformerと大規模言語モデル |
Transformerを理解し,実装することができる.またこの応用例を理解し,その関係を説明することができる.
|
12週 |
ハイパーパラメータ探索の基本手法 |
Grid SearchやRandom Searchなどの基本的なハイパーパラメータ探索の手法を実装し,これを利用することができる.
|
13週 |
共分散行列と多次元正規分布 |
与えられた数式をPython(NumPyやPyTorch)を用いて効率的に実装できる.
|
14週 |
ベイズ最適化と進化計算による最適化 |
scikit-learnやoptunaを用いてこれらを実装し,活用することができる.
|
15週 |
敵対的生成ネットワーク |
基本的なGANを設計し,PyTorchで実装できる.
|
16週 |
|
|
モデルコアカリキュラムの学習内容と到達目標
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 4 | |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 4 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | |
ソフトウェア | ソフトウェアを中心としたシステム開発のプロセスを説明できる。 | 4 | |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 4 | |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 4 | |
評価割合
| 課題 | 合計 |
総合評価割合 | 100 | 100 |
データ分析能力 | 20 | 20 |
機械学習手法の知識と説明能力 | 40 | 40 |
プログラムの実装能力 | 40 | 40 |