とらりもんHOME  Index  Search  Changes  Login

とらりもん - 機械学習入門レポート課題1: 準備 Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

(2020/04/27 筑波大学生物資源学類 「実用解析I」)

テキスト ... 必ず1冊づつ入手すること。電子書籍でも可。

* ライブ講義大学1年生のための数学入門 ... 基礎数学I, IIで使ったやつ。上級生は「数学リメディアル教材」でも可。

* 「生物資源の基礎数学」 ... 基礎数学IIで使ったやつ。[[PDF|http://pen.envr.tsukuba.ac.jp/~nishida/2019_math_text.pdf]]。

* Linuxについて: {{fontc(奈佐原顕郎「入門者のLinux」講談社ブルーバックス, blue)}} ... Linuxは, 機械学習の研究開発や実装では最もよく使われるOS (operating system)である。本授業も, Linuxの上で進行する。Linux自体を駆使することはあまりないが, ファイルやディレクトリの操作などではLinuxのスキルが必要になる。

* Pythonについて: お好みの1冊。... 機械学習の研究開発や実装は, pythonというプログラミング言語でなされることが圧倒的に多い。本授業も, (Linux上の)pythonの上で進行する。pythonでわからないことが出てきた時, 多くの人は「ググる」ことで解決しようとするが, それは目先の問題解決にはなっても, 根本的な進歩や理解にはなかなかつながらない。一貫性・体系性のあるテキストでpythonを理解することが, 中長期的に学習効率や応用能力を大きく向上させる。世の中にはpythonの入門書はたくさんあるので, 君の好みの1冊を選んで入手しよう。あえて特定の本を指定しないのは, 受講者どうしが相談・協力するときに, いろんな本で様々な観点を得られる方が, 理解・解決の道筋が増えて好都合だからでもある。ちなみに私は「みんなのPython」が好き!

* 機械学習の体験・実践について: {{fontc("金丸隆志「Raspberry Piではじめる機械学習」講談社ブルーバックス", blue)}} ... 本書は"Raspberry Pi"という安価・小型なLinux専用機のために書かれた本だが, 大部分の内容はRaspberry Pi以外のLinuxマシンでもできる。scikit-learnというライブラリを使って, 手軽にわかりやすく機械学習をひと通り体験できるという点での良書なので採用した。まずこれを第7章まで学ぶ(第8章以降は都合上, 割愛)。そこまでで学んだことについて, 仕組みを次の本で学ぶという方針。ちなみにRaspberry Piは機械制御やセンサー制御にもよく使われ, 農業のIT化などでもよく使われるデバイスなので, その入門書としても, 今後諸君にとって有益かもしれない。

* 機械学習のしくみについて: {{fontc("齋藤康毅「ゼロから作るDeep Learning」オライリージャパン", blue)}} ... 本書は機械学習の代表的なアルゴリズムであるニューラルネットと, その発展形であるディープラーニングについて, 特別なライブラリに頼らずに実装してみせ, それを通して機械学習の仕組みを解説する本である。前述の本では1行で済むような処理を何十行も使って実装するのだが, そのぶん, 「仕組み」がわかりやすい。なお, 本書もpythonを使うことを前提としている。要するに, pythonが使えなければ何もできない!!

テキストの進め方
* 最初は「Raspberry Piではじめる機械学習」を第7章まで。
* 次に「ゼロから作る...」。ただし2.4, 2.5, 2.6は不要。


1-1 パソコンのOSを整備しよう。
* Linux (Ubuntu推奨)と, その上で動くpython3環境を各自, 用意すること。
* Windowsでやりたい! という人は ... Windowsの上でLinuxを動かすWSL (Windows Subsystem for Linux)というのがあります。それを入れましょう。その時ホームディレクトリの位置とかを変更すると後々楽かもよ!
* Macでやりたい! という人は ... MacのOSXもUnixなので, 原理的には同等のことが可能なはず。しかし細かいところで違うので, もしMac OSXでやるなら, 問題解決は自分でやってください。

1-2 そのパソコンの上にPython3環境を整備しよう。
* Python3のフロントエンドはipython3を前提としますが, jupyterとかでもよいかもしれません(問題解決は自分で)。
* Python3で以下のモジュールが利用できるようにしておいてください:
** matplotlib
** numpy
** sklearn
** keras
** tensorflow
* ただしkerasとtensorflowは, もうちょっと後で使うので, しばらくは無くても可。
* Linux使ってる人: 既にpython入ってるかもしれません。以下で確認してみよう:
$ ipython3
エラー出ちゃったら, 以下を打ってみて下さい:
sudo apt install python3 python3-pip
それで以下を打つ:
pip3 install ipython numpy matplotlib sklearn
* WindowsでWSLやってる人: グラフィックの表示には「Xサーバー」というものをインストールする必要があります!! 調べてみよう。以下が参考になります。
** [[https://qiita.com/rhene/items/ff11c7850a9a7617c50f]]
** [[https://qiita.com/MERIK/items/ef4ecf7a51f89c403e94]]
* MacOSX でやろうとしてる人: まずはMacでターミナルを使えるようになろう。その後homebrewのやり方をググって。君のmacにpython3の環境をpipを用いて構築しよう。

1-3 動作確認しよう。
* ipython3を立ち上げ, 以下のコマンドを走らせてみよう(コピペでもいいよ)。基礎数学IIでやった, マンデルブロー集合が表示されればOK!
import numpy as np
import matplotlib.pyplot as plt
X0, X1, dx = -1.3, -1.1, 0.0005
Y0, Y1, dy = 0.1, 0.4, 0.0005
x, y=np.meshgrid(np.arange(X0, X1, dx), np.arange(Y1, Y0, -dy))
c=x+y*1j
z=np.zeros(c.shape)
m=np.zeros(c.shape)
for i in range(0,400):
   z=z**2+c
   m+=np.isnan(np.abs(z))
plt.imshow(m%100%21)
plt.show()

{{attach_view(mandel.jpg)}}
  

1-4 レポート課題
* 以下の各問について答え, PDFにしてmanabaにアップロードすること。Linuxでのレポート(文書)の作り方がわからない人は, [[こちら|LinuxのGUI]]をヒントにしてください。

# TEAMSの「生物資源学類 実用解析I 2020」というチームに自分を登録できたか?
# TEAMSでリアルタイムの講義を視聴できるように環境を整え, 実際に視聴できたか?
# 上記の6冊のテキストを全て手元に揃えたか? Python入門書はどれを選んだか記述すること。
# 自分で使えるパソコンを用意したか?
# そのパソコンの上に, Linux環境とPython3環境を構築できたか? 君の環境を報告せよ(PC機材, OS, どのようにpython入れたか, など)
# マンデルブロー集合はちゃんと表示できたか?
# 以下の言葉を説明せよ:
## 機械学習
## ニューラルネットワーク
## ディープラーニング
## 特徴量
## クラス
## 次元の呪い
## 教師あり学習
## 教師なし学習
## 特徴空間
## 全微分