英文名 | Programming III | |
---|---|---|
科目概要 | データサイエンス学科3年前期、3群科目、必修、演習、3単位 | |
科目責任者 | 齋藤 裕 | |
担当者 | (※は実務経験のある教員) 齋藤 裕※、 秋山 真那斗、 飯田 慎仁※、 来見田 遥一※ | |
講義室 |
科目 | 教科及び教科の指導法に関する科目(高等学校 情報) |
---|---|
各科目に含めることが必要な事項 |
|
本講義では、「人工知能・機械学習入門」や「深層学習入門」で理論を学んだ様々な機械学習手法について、実際にプログラミングを行い使いこなせるようになることを目的とする。また、プログラミング環境の整備やコマンドラインでの操作方法についても、さらに実践的なスキルを習得する。
【プログラミング】
以下の内容について学ぶ:scikit-learnによる機械学習モデルの実装(線形モデル、ニューラルネットワーク、サポートベクターマシン、ランダムフォレストなど)、深層学習フレームワークによるモデルの実装、各ドメインにおける事前学習モデルと転移学習の方法、予測精度を適切に評価するための交差検定およびハイパーパラメータ最適化の方法。いくつかの機械学習モデルについては、既存のモジュールを使うだけでなく、モデルの一部を自分で実装してみることで、その動作原理について理解を深める。
【プログラミング環境の整備とコマンドラインでの操作方法】
以下の内容について学ぶ:仮想環境とパッケージ管理、複数ファイルからなるプログラムの書き方、大きなプログラムを効率的に書くためのエディタや開発環境の活用方法(ファイラ、画面分割など)、GitHubなどのオンラインレポジトリの利用方法。
パワーポイントによる講義の後、プログラミング演習を行う。パワーポイント資料は講義前にホームページ等で配布する。毎回の講義では、理解度確認のために基礎的な内容の課題を出題する。また、数回の講義ごとに、応用的な内容のレポート課題を出題する。
講義内課題、レポート課題については、提出後に模範解答を配布して解説を行う。講義に関する質問はメールや対面にて受け付ける。
DP4、DP5
回 | 項目 | 内容 | 担当者 | 日時 |
---|---|---|---|---|
1・2 回 | 「プログラミングⅡ」のおさらい | 「プログラミングⅡ」で学んだプログラミング、プログラミング環境の整備、コマンドラインでの操作方法について復習する。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 4/7④⑤ |
3・4 回 | 線形モデル | 線形モデルのプログラミングについて学ぶ。 仮想環境とパッケージ管理について学ぶ。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 4/14④⑤ |
5・6 回 | ニューラルネットワーク1 | ニューラルネットワークのプログラミングについて学ぶ。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 4/21④⑤ |
7・8 回 | ニューラルネットワーク2 | 誤差逆伝播を自分で実装することで、その動作原理について理解を深める。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 4/28④⑤ |
9・10回 | サポートベクターマシン | サポートベクターマシンのプログラミングについて学ぶ。 複数ファイルからなるプログラムの書き方について学ぶ。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 5/12④⑤ |
11・12回 | ランダムフォレスト | ランダムフォレストのプログラミングについて学ぶ。 大きなプログラムを効率的に書くためのエディタや開発環境の活用方法(ファイラ、画面分割など)について学ぶ。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 5/19④⑤ |
13・14回 | 予測精度の適切な評価 | 予測精度を適切に評価するための交差検定やハイパーパラメータ最適化をプログラムとして実装する方法について学ぶ。 GitHubなどのオンラインレポジトリの利用方法について学ぶ。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 5/26④⑤ |
15・16回 | 深層学習1 | 深層学習フレームワークの使用方法について学ぶ。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 6/2④⑤ |
17・18回 | 深層学習2 | 深層学習フレームワークをもちいたモデルの組み立て方や精度評価の方法について学ぶ。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 6/9④⑤ |
19・20回 | 深層学習3 | 深層学習フレームワークをもちいて様々なモデルを実装する(畳み込みニューラルネットワーク、他)。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 6/16④⑤ |
21・22回 | 事前学習モデルと転移学習 | 各ドメインにおける事前学習モデルと転移学習の方法について学ぶ。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 6/23④⑤ |
23・24回 | まとめ | 全体の確認と復習を行う。 | 齋藤 裕 飯田 慎仁 来見田 遥一 秋山 真那斗 | 6/30④⑤ |
与えられたデータに対して自分で機械学習モデルを構築して、適切な方法で精度評価を行うことができる。
講義内で出題する課題(30%)、レポート課題(70%)の合計で評価する。
【講義時間外に必要な学修時間:87時間】
予習:事前に配布する講義資料を読み、疑問点を明確にしておくこと。講義資料内のソースコードを自分で実行して、動作を確認しておくこと。「人工知能・機械学習入門」や「深層学習入門」で学んだ内容を復習しておくこと。
復習:講義で扱ったソースコードを書き換え動作の変化を確認する等の練習を行い、今後、同様のソースコードを独力で書けるようにすること。レポート課題の解答を作成し、提出後に配布する模範解答との比較・考察を行うこと。
【科目ナンバリング:FU302-BK03】
【関連科目:プログラミングⅡ、人工知能、機械学習入門、深層学習入門、データ解析とその数理Ⅱ】
(齋藤)国立研究所でのデータ解析ソフトウェアの開発経験をもとに、プログラミングについて講義・演習を行う。
(飯田)国立研究所におけるコンピュータシミュレーションの研究の経験を踏まえ、プログラミングの解説を行う。
(来見田)国立研究所における生命科学データの解析経験をもとに、プログラミングの講義と演習を行う。
種別 | 書名 | 著者・編者 | 発行所 |
---|---|---|---|
教科書 | (なし) | ||
参考書 | 東京大学のデータサイエンティスト育成講座 - Pythonで手を動かして学ぶデータ分析 | 塚本邦尊ら(著)、中山浩太郎(監) | マイナビ出版 |