とらりもんHOME  Index  Search  Changes  Login

機械学習入門

(2019年度生物資源学類2年次対象「実用解析I」(春A・B学期)のページです。)

概要

内容

  • 1年次「基礎数学I」「基礎数学II」の続きとして, 機械学習(人工知能; AI)とそれに関する数学を学ぶ。
  • 筑波大学学術情報サテライト端末室で, 実際に計算機で演習をしながら学ぶ。

受講資格(以下の全てを満たすこと)

  • 学術情報メディアセンターサテライトの端末を使う権利がある。
  • 1年次「基礎数学II」でLinuxとpythonを学んだ(学んでいない人は急いで自習すること→python入門)。
  • 多変数関数の微分(偏微分・全微分), 線形代数(ベクトル, 行列), 統計学(分散, 共分散, 標準偏差など)の初歩を理解している。

目標

  • 一般目標 (General Instructive Objectives: GIO) ... 機械学習(人工知能)の基本的な概念を理解し, 実際の問題に機械学習を適用することができるようになる。
  • 到達目標(Specific Behavioral Objectives: SBO)
    1. 整った環境を与えられて, 機械学習のサンプルプログラムを走らせることができる。
    2. 機械学習のサンプルプログラムを解読し, どのコマンドで何をやっているのか理解できる。
    3. 機械学習の基本的な考え方・用語を理解し, 説明できる(エポック, 活性化関数, 教師あり分類, 教師なし分類, 訓練データ, 検証データ, 交差エントロピー, サポートベクトルマシーン, シグモイド関数, 次元の呪い, 全結合, ソフトマックス関数, 損失関数, 特徴量, 特徴空間, ニューラルネットワーク, バッチ, 汎化能力, ミニバッチ)
    4. 機械学習のサンプルプログラムを改造し, 少し違った問題に適用できる。
    5. 自分で環境構築して, 機械学習のサンプルプログラムを走らせることができる。
    6. 自分なりの問題に, 自分なりに機械学習を適用できる。

テキスト ... 必ず1冊づつ入手すること。

  • Linuxについて: 奈佐原顕郎「入門者のLinux」講談社ブルーバックス ... Linuxは, 機械学習の研究開発や実装では最もよく使われるOS (operating system)である。本授業も, Linuxの上で進行する。Linux自体を駆使することはあまりないが, ファイルやディレクトリの操作などではLinuxのスキルが必要になる。
  • Pythonについて: お好みの1冊。... 機械学習の研究開発や実装は, pythonというプログラミング言語でなされることが圧倒的に多い。本授業も, (Linux上の)pythonの上で進行する。pythonでわからないことが出てきた時, 多くの人は「ググる」ことで解決しようとするが, それは目先の問題解決にはなっても, 根本的な進歩や理解にはなかなかつながらない。一貫性・体系性のあるテキストでpythonを理解することが, 中長期的に学習効率や応用能力を大きく向上させる。世の中にはpythonの入門書はたくさんあるので, 君の好みの1冊を選んで入手しよう。あえて特定の本を指定しないのは, 受講者どうしが相談・協力するときに, いろんな本で様々な観点を得られる方が, 理解・解決の道筋が増えて好都合だからでもある。
  • 機械学習の体験・実践について: 金丸隆志「Raspberry Piではじめる機械学習」講談社ブルーバックス ... 本書は"Raspberry Pi"という安価・小型なLinux専用機のために書かれた本だが, 大部分の内容はRaspberry Pi以外のLinuxマシンでもできる。scikit-learnというライブラリを使って, 手軽にわかりやすく機械学習をひと通り体験できるという点での良書なので採用した。まずこれを第7章まで学ぶ(第8章以降は都合上, 割愛)。そこまでで学んだことについて, 仕組みを次の本で学ぶという方針。ちなみにRaspberry Piは機械制御やセンサー制御にもよく使われ, 農業のIT化などでもよく使われるデバイスなので, その入門書としても, 今後諸君にとって有益かもしれない。
  • 機械学習のしくみについて: 齋藤康毅「ゼロから作るDeep Learning」オライリージャパン ... 本書は機械学習の代表的なアルゴリズムであるニューラルネットと, その発展形であるディープラーニングについて, 特別なライブラリに頼らずに実装してみせ, それを通して機械学習の仕組みを解説する本である。前述の本では1行で済むような処理を何十行も使って実装するのだが, そのぶん, 「仕組み」がわかりやすい。なお, 本書もpythonを使うことを前提としている。要するに, pythonが使えなければ何もできない!!

テキストの進め方(ゼロから作る...)

  • 2.4, 2.5, 2.6は不要。

2019/04/16 2限: 機械学習の体験

目標: Linuxとpythonの使い方を思い出し, 今後の学習・作業環境を構築する。機械学習のサンプルプログラムを走らせてみて, 機械学習ってどういうものか, ざっくりしたイメージをつかむ。

  1. ウォームアップ
  2. 機械学習初体験(1)
  3. 機械学習初体験(2)
  4. レポート課題

2019/04/22 2限: プログラムの解読・改変・デバッグ作業

目標: 機械学習のサンプルプログラムを解読し, 自分なりに改変していじることができるようになる。うまく動かないときの対処法を知り, 実際にできるようになる。

  1. 機械学習初体験(1) ... 前回駆け足だったのをやりなおし。追加課題あり。
  2. 機械学習初体験(2) ... 前回駆け足だったのをやりなおし。追加課題あり。
  3. レポート課題

2019/05/09 2限: 簡単なニューラルネットワークの仕組みと実装

目標: ニューラルネットワークの概念や仕組みを理解し, 用語に慣れる。ニューラルネットワークを実装したプログラムを読み, 理解できるようになる。

  1. レポート課題