情報処理実習Ⅰ

科目基礎情報

学校 一関工業高等専門学校 開講年度 令和06年度 (2024年度)
授業科目 情報処理実習Ⅰ
科目番号 0026 科目区分 専門 / 選択
授業形態 実習 単位の種別と単位数 履修単位: 1
開設学科 未来創造工学科(情報・ソフトウェア系) 対象学年 4
開設期 前期 週時間数 2
教科書/教材 1.「図解 深層学習 数理で理解する基本原理 (著)小池 敦(ISDN)978-4-76490-675-4」
2.「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装 (著)斎藤 康毅(ISDN)978-4-87311-758-4」
担当教員 松尾 直志,村上 力

到達目標

(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点以上を単位修得とする.

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

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

授業計画

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

評価割合

課題合計
総合評価割合100100
データ分析能力2020
機械学習手法の知識と説明能力4040
プログラムの実装能力4040