Web Syllabus(講義概要)
トップへ戻る 前のページへ戻る
プログラミングⅢ
英文名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④⑤
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で手を動かして学ぶデータ分析塚本邦尊ら(著)、中山浩太郎(監)マイナビ出版
教科書
署名
著者・編者
発行所
参考書
署名
東京大学のデータサイエンティスト育成講座 - Pythonで手を動かして学ぶデータ分析
著者・編者
塚本邦尊ら(著)、中山浩太郎(監)
発行所
マイナビ出版