プログラミング演習

科目基礎情報

学校 北九州工業高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 プログラミング演習
科目番号 0142 科目区分 専門 / 選択
授業形態 単位の種別と単位数 履修単位: 1
開設学科 生産デザイン工学科(情報システムコース) 対象学年 4
開設期 後期 週時間数 2
教科書/教材 TensorFlowとKerasで動かしながら学ぶディープラーニングの仕組み、中居悦司、マイナビ出版
担当教員 白濵 成希

到達目標

1. Google Colaboratoryノートブックを用いて、実行可能なプログラムと合わせてレポートを作成することができる
2. 多層CNNを構成するソフトマックス関数、全結合層、畳み込み層、プーリング層、ドロップアウト層について、機能を説明することができる
3. TensorFlow/Kerasを用いて多層CNNによる手書き文字認識アプリケーションを実装することができる

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1Google Colaboratoryノートブックを用いて、実行可能なプログラムとレポートを、自ら学んだ要素を取り入れて、作成することができる。Google Colaboratoryノートブックを用いて、実行可能なプログラムと合わせてレポートを作成することができる。Google Colaboratoryノートブックを用いて、実行可能なプログラムと合わせてレポートを作成することができない。
評価項目2多層CNNを構成するソフトマックス関数、全結合層、畳み込み層、プーリング層、ドロップアウト層について、機能をプログラムと共に説明することができる。多層CNNを構成するソフトマックス関数、全結合層、畳み込み層、プーリング層、ドロップアウト層について、機能を説明することができる。多層CNNを構成するソフトマックス関数、全結合層、畳み込み層、プーリング層、ドロップアウト層について、機能を説明することができない。
評価項目3TensorFlow/Kerasを用いて多層CNNによる手書き文字認識アプリケーションを実装し、認識率を改善を提案できる。TensorFlow/Kerasを用いて多層CNNによる手書き文字認識アプリケーションを実装することができる。TensorFlow/Kerasを用いて多層CNNによる手書き文字認識アプリケーションを実装することができない。

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

学習・教育到達度目標 B① 専門分野における工学の基礎を理解できる。
JABEE SB① 共通基礎知識を用いて、専攻分野における設計・製作・評価・改良など生産に関わる専門工学の基礎を理解できる。

教育方法等

概要:
ディープラーニングの基本的な仕組みを理解するとともに、機械学習のオンラインプラットフォーム上でノートブックを用いて実際に画像分類に関するプログラムを作成する。
授業の進め方・方法:
授業の前半は学習項目を座学で学び、授業の後半でプログラムの動作を確認するなどの演習を行う。
注意点:
プログラミング言語はPythonを用いるが、文法の詳細な解説は行わないので、必要に応じて各自でリファレンスを準備してプログラム作成に取り組むこと。

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

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

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 ガイダンス、最小二乗法で学ぶ機械学習の基礎 ・授業の目的と進め方について理解する
・最小二乗法による回帰問題に対して、勾配降下法によるパラメータの最適化を適用する例題を理解する
2週 TensorFlowとKerasの使い方 ・1週目の例題をTensorFlow/Kerasを用いて取り組む
・Google Colaboratory環境でプログラムおよびコメントを記述する
3週 ニューラルネットワークの役割 ・1層の隠れ層を持つニューラルネットワークの機能を理解できる
・分類問題を例にニューラルネットワークの動作を理解できる
4週 ロジスティック回帰による二項分類器 ・ロジスティック回帰を用いた二項分類器の概要を理解できる
・確率モデルの考え方を理解できる
5週 ソフトマックス関数と多項分類器 ・過学習を避けるためにトレーニングセット・テストセットに分ける必要があることを理解できる
・ソフトマックス関数と多項分類器の考え方を理解できる
6週 線形多項分類器による手書き文字の分類 ・線形多項分類器の考え方を理解できる
・誤差関数を理解し、最尤推定法によるパラメータチューニングを説明することができる
7週 単層ニューラルネットワークの構造 ・全結合層と活性化関数について学び、単層ニューラルネットワークの構造について理解できる。
8週 課題レポート これまでに学習した項目に関する課題レポートを作成する。
4thQ
9週 単層ニューラルネットワークによる手書き文字の分類 ・単層ニューラルネットワークを分類問題に適用できる
・手書き文字の分類プログラムを動作させることができる
10週 多層ニューラルネットワークへの拡張 ・特徴量の抽出と、特徴量に基づいた分類という、多層ニューラルネットワークの本質について理解することができる
11週 畳み込みフィルターの機能 ・畳み込みフィルターとプーリングで画像の特徴を抽出することを理解できる
12週 畳み込みフィルターを用いた画像の分類 ・畳み込みフィルターとプーリング層を利用した画像の分類処理をKerasで実装できる
・フィルターそのものを動的に学習するようコードを修正できる
13週 畳み込みフィルターを用いた手書き文字の分類 ・畳み込みフィルターを動的に学習し、MNISTの手書き文字データセットを分類できる
・さらなる正解率の向上のために、隠れ層の前段に畳み込みフィルターとプーリング層を追加できる
14週 畳み込みニューラルネットワークの完成 ・畳み込みフィルターを多層化できる
・機能を理解した上で、全結合層と出力層の間にドロップアウト層を追加できる
・手書き文字分類アプリを完成させることができる
15週 学習済みフィルターの解釈 学習済みフィルターを解釈するために、以下の2つの方法について説明することができる。
1. フィルターの出力を最大化する入力画像を構成する方法
2. 入力画像のどの部分が予測結果に強い影響を与えているかを可視化する方法
16週 課題レポート これまでに学習した項目に関する課題レポートを作成する。

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週

評価割合

試験小テスト等演習課題レポート発表相互評価合計
総合評価割合00505000100
基礎的能力0000000
専門的能力00505000100
分野横断的能力0000000