とらりもんHOME  Index  Search  Changes  Login

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

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

2020/05/18(実用解析I)出題のレポート課題。PDFにして, manabaにアップロードすること。

1. 前回レポート(5/17提出締め切り)について, 班の他のメンバーのレポートを閲覧し, 自分のレポートの改善すべき点を述べよ。

2. [[今回|機械学習入門: ニューラルネットワークの体験]]の課題1-1から最後までを行って, それぞれのこたえを述べよ。

3. 「Raspberry Piではじめる機械学習」の第6章を読んで, 理解したこと・気づいたことをまとめよ。

4. 以下の用語を説明せよ: アンコメント学習用データ, (pytonの) bool型 テスト用データ, サポートベクトルマシンエポック, 単純パーセプトロン, ニューラルネットワーク, 活性化関数, シグモイド関数ミニバッチ, ReLU関数過学習, ソフトマックス関数損失関数

5. 次回から「ゼロから作るDeep Learning」に入る。同書のサンプルプログラムを[[https://github.com/oreilly-japan/deep-learning-from-scratch]]からダウンロードし, 解凍・展開せよ。その際, ホームディレクトリの中にwork_DLという新たなディレクトリを作り, その中で作業をせよ(解凍してできるdeep-learning-from-scratch-masterというディレクトリをwork_DLという名前に変えればOK)。

6. 同書の第1章から第4章までのサンプルプログラム(下記)を全て実行せよ。それぞれの結果をそれぞれ報告し, プログラムが何をやっているか述べよ。

* ch01/img_show.py
* ch01/sin_cos_graph.py
* ch02/and_gate.py
* ch02/nand_gate.py
* ch02/or_gate.py
* ch02/xor_gate.py
* ch03/mnist_show.py
* ch03/neuralnet_mnist.py
* ch03/neuralnet_mnist_batch.py
* ch03/step_function.py
* ch03/sigmoid.py
* ch03/sig_step_compare.py
* ch03/relu.py
* ch04/gradient_1d.py
* ch04/gradient_2d.py
* ch04/gradient_method.py
* ch04/gradient_simplenet.py
* ch04/train_neuralnet.py
* ch04/two_layer_net.py

7. 以下のチェックリストの各項目について, ○かXかで自分自身を評価せよ。
# 「Raspberry Piではじめる機械学習」の第1章を, とばさずにきっちり読んだ。
# 「Raspberry Piではじめる機械学習」の第2章を, とばさずにきっちり読んだ。
# 「Raspberry Piではじめる機械学習」の第4章を, とばさずにきっちり読んだ。
# 「Raspberry Piではじめる機械学習」の第5
6章を, とばさずにきっちり読んだ。
# テキストのソースコードを, 1行ずつ, 丁寧に読んで何をしているか自分で考え, 理解している。
# サポートベクトルマシンとは何か, おおまかにニューラルネットワークの構造をおおまかに理解した。
# ニューラルネットワークとは何か, おおまかに活性化関数とソフトマックス関数と損失関数の違い・関係を理解した。
# 同じ班のメンバーとうまくコミュニケーションとれている。
# 同じ班のメンバーと
コミュニケーションし, 助けあって問題解決をしている


2019/05/09(実用解析I)出題のレポート課題。PDFにして, manabaにアップロードすること。

1. 前回レポート(5/08提出締め切り)について, 班の他のメンバーのレポートを閲覧し, 自分のレポートの改善すべき点を述べよ。

2. numpyのブロードキャストとはどのような機能か, 調べて説明せよ(テキストの解説だけでは不十分)。

3. 以下の用語を説明せよ。
パーセプトロン (重み, バイアスという言葉もいっしょに)
活性化関数
シグモイド関数
ReLU関数
ソフトマックス関数
損失関数
交差エントロピー誤差
one hot表現
gradient (勾配)
勾配法
学習率 (learning rate)
ハイパーパラメータ
コンストラクタ
4. pythonでは, クラスを定義する中で, どのようにコンストラクタを記述する?

5. pythonのラムダ式とはどういうものか, 調べて述べよ。

6. 以下のpythonコマンドを実行し, 結果を報告し, それぞれのコマンドの意味(機能)を述べよ:
In []: nijou = lambda x: x*x
In []: nijou(3)
In []: nijou(np.array([3,4]))

7. ch04/two_layer_net.pyのソースコード(テキストP114)の各行について, 何をやっているか解説コメントをつけよ (#を使う)

8. ch04/two_layer_net.pyの中で, numerical_gradientという関数を使っている。この関数の定義をしているソースコードを探し出し, 各行について解説コメントをつけよ。

9. ch04/train_neuralnet.pyのソースコードの各行について, 解説コメントをつけよ (#を使う)

10. ch05の以下のpythonプログラムを走らせ, 結果を報告し, 何をするプログラムか述べよ。
ch05/buy_apple.py
ch05/buy_apple_orange.py
ch05/gradient_check.py
ch05/layer_naive.py
ch05/train_neuralnet.py
ch05/two_layer_net.py
11. 以下のチェックリストの各項目について, ○かXかで自分自身を評価せよ。
# numpyで行列どうしの積(テキストでは内積と表現されている)を計算するやり方(np.dot)を理解した。
# 数値微分は, 基礎数学でやったやつだ! と思い出した。
# テキスト(ゼロから作る...)は, 第1章からとばさずに丁寧に呼んでいる。
# テキストのソースコードを, 1行ずつ, 丁寧に読んで何をしているか自分で考え, 理解している。
# クラス, インスタンス, インスタンス変数のそれぞれについて, 他の人にやさしく説明できるくらい理解を深めた。
# コンストラクタとは何かを理解した。
# プログラムの中で, コメントをうまく書けるようになった。
# 「ゼロから作るDeep Learning」の正誤表をチェックし, 自分の持っているテキストの誤植箇所を修正した: https://github.com/oreilly-japan/deep-learning-from-scratch/wiki/errata

注: 他の人のレポートを見て, コメントの書き方を自分と比べて, うまいやり方を盗み合ってください