計算知能工学

科目基礎情報

学校 北九州工業高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 計算知能工学
科目番号 0084 科目区分 専門 / 選択
授業形態 授業 単位の種別と単位数 学修単位: 2
開設学科 生産デザイン工学専攻 対象学年 専2
開設期 前期 週時間数 2
教科書/教材 『ゼロから作るDeep Learning』斎藤康毅(オライリー・ジャパン)
担当教員 松久保 潤

到達目標

本科目では、現在、人工知能の発展において重要な役割を担っている「ディープラーニング(深層学習)」とは何なのか、どういう特徴があるのか、どういう原理で動作しているのかについて、ディープラーニングのプログラムを実装する過程を通し、「理論的な理解」と「プログラミング言語による実装」をできるようになることを目的とする.また、最近の研究や理論的な詳細はカバーしないが、次のステップとして最新の論文やニューラルネットワークに関する理論的な技術書を読み解けるようになることを到達目標とする。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目13層ニューラルネットワークの数理的表現を説明できる、出力層の設計法を説明できる3層ニューラルネットワークの数理的表現を理解できる、出力層の設計法を理解できる3層ニューラルネットワークの数理的表現を理解できない、出力層の設計法を理解できない
評価項目2ニューラルネットワークの学習における勾配を説明できる、学習の手順を説明できるニューラルネットワークの学習における勾配を理解できる、学習の手順を理解できるニューラルネットワークの学習における勾配を理解できない、学習の手順を理解できない
評価項目3ニューラルネットワークの構成要素を層として実装し,効率的な勾配の計算法を説明できるニューラルネットワークの構成要素を層として実装し,効率的な勾配の計算法を理解できるニューラルネットワークの構成要素を層として実装し,効率的な勾配の計算法を理解できない
評価項目4重みの初期値の有効な設定法を説明できる、Batch Normalizationの効果を説明できる、正則化によって過学習を抑制できる、ハイパーパラメータの探索に対する効率的な方法を説明できる重みの初期値の有効な設定法を理解できる、Batch Normalizationの効果を理解できる、正則化によって過学習を抑制できる、ハイパーパラメータの探索に対する効率的な方法を理解できる重みの初期値の有効な設定法を理解できない、Batch Normalizationの効果を理解できない、正則化によって過学習を抑制できる、ハイパーパラメータの探索に対する効率的な方法を理解できない
評価項目5畳み込みニューラルネットワークの層が深いほど高度な情報を抽出できることを説明できる,畳み込みニューラルネットワークの代表的なモデルを説明できる畳み込みニューラルネットワークの層が深いほど高度な情報を抽出できることを理解できる,畳み込みニューラルネットワークの代表的なモデルを理解できる畳み込みニューラルネットワークの層が深いほど高度な情報を抽出できることを理解できない,畳み込みニューラルネットワークの代表的なモデルを理解できない
評価項目6ディープラーニングの応用例を説明できるディープラーニングの応用例を理解できるディープラーニングの応用例を理解できない

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

専攻科課程教育目標、JABEE学習教育到達目標 SB②  自主的・継続的な学習を通じて、専門工学の基礎科目に関する問題を解決できる。
専攻科課程教育目標、JABEE学習教育到達目標 SD①  専攻分野における専門工学の基礎に関する知識と基礎技術を総合し、応用できる。

教育方法等

概要:
・簡単な機械学習の問題からスタートし,最終的には画像を高精度に認識するシステムを実装する
・ディープラーニングやニューラルネットワークの理論について分かりやすく解説する
・誤差逆伝播法や畳み込み演算など,一見複雑そうに見える技術について実装レベルで理解できるように説明する
・学習係数の決め方,重みの初期値など,ディープラーニングを行う上で役に立つ実践的なテクニックについて紹介する
・Batch NormalizationやDropout,Adamといった最近のトレンドの説明と実装も行う
・なぜディープラーニングは優れているのか,なぜ層を深くすると認識精度が高くなるのか,なぜ隠れ層が重要なのか,といった"Why"に関する問題も取り上げる
・自動運転,画像生成,強化学習など,ディープラーニングの応用例についても紹介する
授業の進め方・方法:
テーマの説明ごとに、できるだけ外部の既製品(ライブラリやツールなど)には頼らずにプログラムを実装し,ソースコードを読みながら仕組みを考える.ソースコードを読みながら自分で考え,自分で思い付いたことを新たに実装して試すことで,授業内容の理解を深める取組みを行う.
注意点:
Pythonでプログラミングのできる環境の用意することを必須とする。使用するコンピュータはWindows、Mac、Linuxのいずれでも問題ない。

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス(シラバスの説明等)、講座内容の概要、Pythonについて Pythonによるプログラミング環境を構築できる
2週 パーセプトロン パーセプトロンの原理とモデルを理解できる
3週 ニューラルネットワーク(1) ニューラルネットワークとパーセプトロンの関係を理解できる
4週 ニューラルネットワーク(2) 3層ニューラルネットワークの数理的表現を理解できる、出力層の設計法を理解できる
5週 ニューラルネットワークの学習(1) 損失関数を理解できる、数値微分の手法を理解できる
6週 ニューラルネットワークの学習(2) ニューラルネットワークの学習における勾配を理解できる、学習の手順を理解できる
7週 逆誤差伝播法(1) 計算グラフを用いて学習の計算過程を理解できる
8週 逆誤差伝播法(2) ニューラルネットワークの構成要素を層として実装することで,勾配の計算を効率的に求めることができる
2ndQ
9週 学習に関するテクニック(1) パラメータの更新方法の原理を理解できる
10週 学習に関するテクニック(2) 重みの初期値の有効な設定法を理解できる、Batch Normalizationの効果を理解できる、正則化によって過学習を抑制できる、ハイパーパラメータの探索に対する効率的な方法を理解できる
11週 畳み込みニューラルネットワーク(1) 畳み込みニューラルネットワークの構造を理解できる、畳み込み層とプーリング層の効率的な実装法を理解できる
12週 畳み込みニューラルネットワーク(2) 畳み込みニューラルネットワークの層が深いほど高度な情報を抽出できることを理解できる,畳み込みニューラルネットワークの代表的なモデルを理解できる
13週 ディープラーニング(1) ネットワークを深くすることで性能の向上が期待できることを理解できる、広く使われるネットワークモデルを理解できる、ディープラーニングの高層化の工夫を理解できる
14週 ディープラーニング(2) ディープラーニングの応用例を理解できる
15週 まとめ
16週 定期試験

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

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

評価割合

試験発表相互評価課題ポートフォリオその他合計
総合評価割合30007000100
基礎的能力0000000
専門的能力30007000100
分野横断的能力0000000