情報処理実習Ⅰ

科目基礎情報

学校 一関工業高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 情報処理実習Ⅰ
科目番号 0026 科目区分 専門 / 選択
授業形態 実習 単位の種別と単位数 履修単位: 1
開設学科 未来創造工学科(情報・ソフトウェア系) 対象学年 4
開設期 前期 週時間数 2
教科書/教材 担当教員作成資料を使用する.参考図書:「データサイエンス大系 ニューラルネットワークとディープラーニング (ISBN: 978-4-7806-0714-7)」「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 (ISBN: 978-4-87311-758-4)」
担当教員 小保方 幸次,村上 力

到達目標

(1) ライブラリを活用してデータセットに対して基本的な解析を行い,可視化することができる
(2) 代表的なニューラルネットワークベースの機械学習手法について理解し,説明することができる
(3) 与えられたデータとタスクに対して適切なニューラルネットワークを設計し,実験スクリプトを作成することができる

【教育目標】C, D, E

【キーワード】回帰,分類,次元圧縮,生成モデル,機械学習,深層学習

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
ライブラリを活用してデータセットに対して基本的な解析を行い,可視化することができるデータ解析ライブラリの高度な機能を自ら調査して活用することで高度なデータ解析を行えるデータ解析ライブラリの機能を活用して基本的なデータ解析を行うことができるデータ解析ライブラリの機能を活用して基本的なデータ解析を行うことができない
代表的なニューラルネットワークベースの機械学習手法について理解し,説明することができるそれぞれの手法を応用した解析やアプリケーションを想定できる.またそれぞれの手法をもとに提案された別の手法について調査し,説明することができる.それぞれの手法がどんなデータ/タスクに適しているのかを説明できるそれぞれの手法がどんなデータ/タスクに適しているのかを説明できない
与えられたデータとタスクに対して適切なニューラルネットワークを設計し,実験スクリプトを作成することができるハイパーパラメータの設計や実験結果の分析を含めた,高度な実験スクリプトの実装ができる適切な損失関数と活性化関数を選択し,妥当なニューラルネットワーク構造を設計することができる適切なニューラルネットワークを設計することができない

学科の到達目標項目との関係

 教育目標 C 説明 閉じる
 教育目標 D 説明 閉じる
 教育目標 E 説明 閉じる

教育方法等

概要:
Pythonを用いてデータセットに対する様々なデータ解析手法を学ぶ.
まず,データ解析を行うための様々なライブラリ(NumPy, Pandas, PyTorch, Matplotlib, Plotlyなど)の使い方を学んだのち,機械学習の原理と実装方法を学ぶ.
その後,ライブラリを活用して高精度な機械学習手法をデータセットに適用する方法を学ぶ.
授業の進め方・方法:
プログラミングの実習をメインとするが,必要に応じて講義を行う.実習はPythonを動かす.
実習は教材を提供する.

数回実習課題を出すので,期日までに提出すること.
注意点:
教材や資料へのアクセスのためにGoogleアカウントにログインする必要があるため,事前にログインできるようにしておくこと.

【事前学習】
授業で扱う内容について調査し,概要を把握しておくこと.また,前回の授業で扱った内容について復習し,用語の意味を再確認しておくこと.

【評価方法・評価基準】
課題(100%)で評価する.詳細は第1回目の授業で告知する.
機械学習(深層学習)の基本的事項についての理解度とこれらについての論理的な説明能力および実装能力を評価する.
総合成績60点以上を単位修得とする.

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業
必履修

授業計画

授業内容 週ごとの到達目標
前期
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

評価割合

課題発表相互評価態度ポートフォリオその他合計
総合評価割合10000000100
データ分析能力200000020
機械学習手法の知識と説明能力400000040
プログラムの実装能力400000040