1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Coursera Machine Learning Stanford Univ. Week4

Last updated at Posted at 2019-07-18

#Week4のプログラミング課題ではまったところ

Octaveに不慣れでプログラミング課題で少し手間取ってしまいました。
とりあえず自分用のメモとして記録しておきます。

課題はmnistの手書きの数字を分別するコードを完成させること。

  • 10個のRegularized logistic regressionを作る方法と
  • 2つのhidden layerを持つNeural Networkでやる方法

##手間取った理由

  • 課題のpdfの読み込み不足
  • 課題のソースコード中にあるhintの読み込み不足
    まあこれはひとえに英語力のなさによるものです。
    googleさんにfmincgについて相談するとgithubに日本語訳したものをがあったので読みました。
    やはり母国語で読むと見落としていた部分がすぐ見つかります。
    (ちなみに私が見たものは答えそのものは暗号化?されていたのでカンニングじゃないよね?)

まあちゃんと入力データのサイズくらい確認しましょうね。

##octaveの知識不足

  • pdfやソースコード中にhintにあるexampleのコードの意味を調べて時間がかかった

% [theta] = ...
% fmincg (@(t)(lrCostFunction(t, X, (y == c), lambda)), ...
% initial_theta, options);

というコメント文中のfmincgの説明これだけでも3つほど知らんことが

(@(t)(lrCostFunction(t, X, (y == c), lambda)の

  • @(t) って何

  • y==c はどうすんの
    - 少し上の行のhintに説明があります。その方法はpdfに説明があります。

  • cはどこから生えてくるの?
    - これも少し上のnoteにあります for loop使ってもいいよって書いてあります。

  • predict.m のmaxの使い方

max(A, [], 2) to obtain the max for each row.

  • Aの行ごとに最大の値を見つけてそのカラムの番号がpにすればいいんだけどmaxってどう使うのか知らなかったので調べるのに手間取った

  • 行列計算

    • 不慣れなので右からかければいいのか、左からかければいいのか、転置はいるのとか
    • pdfにそういう時は行列のsizeを表示してみろと
    • おお先生もそうやってデバッグしていたのかとちょっと安心
    • ところでsizeってどうやって表示するの?
      • size(A)とか;なしで書くとか
      • octaveのGUI版でブレークポイントを設定してワークスペースにある変数の情報を見る
        -そのほか
    • 所謂biasがΘの最初の要素なのでこれを掛けるため入力データ1をつけ加えること
    • oneVsAll.mだと下記のようにしていますこれをNeural Network版で使うpredict.mでは自分でやらないとね

    % Add ones to the X data matrix
    X = [ones(m, 1) X];

ex3_nnの結果は

Training Set Accuracy: 97.520000

こんな感じでした

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?