Help us understand the problem. What is going on with this article?

「Neural Networks and Deep Learning」コース修了とCousera Honer Code

More than 1 year has passed since last update.

はじめに

Qiitaで評判の高い、Neural Networks and Deep Learning(Cousera)を、3ヶ月で修了しました*1
ML初学者の、エントリーレベルの私にとっても、Andrew Ng先生のかみ砕いた説明と、Assignment*2の試行錯誤で、はじめの一歩をふみだせました

*1:通常4weekのコース、3ヶ月かかったのは私都合です(放置していたため、なんどか、期間リセット...)
*2:放置は、Machine Learning | Courseraを先に受けるのがよかったなぁ、と振返ると思います。

コース受講の目的

サンプルコードをさわったり、APIの利用をする段階から、一歩踏み込んで
(私にとって)ブラックボックス*3の、Neural Networksモデルを
グレーボックス(?)くらいに薄めて、エンジニアリングの糧にしたい。

*3:そもそもsigmoid関数やsoftmax関数とか、知らなかった状態でした...

成果

Coursera QQNCZHXR5RTS-1.jpg
公開用なので、点数ないverですが、実は、スコアは80.xxxxxの低空飛行

受講者のスペック

 ITに入って、2年目
  ーkaggle competition contributer*4

*4: novice(チュートリアル)を完了際、discussionの項目は、kenerlに"Great Work"と書いてのりこえました...

Cousera Honer Code

ディスカッションフォーラムをみていると、よくHonor Codeとコメントされる。ことにきづきます。以前は、(履歴書に貼るまででない)内部のcertificateを発行していたが、$49を受講して課題をこなすうえで、正当性を担保するためのものです

Your answers to homework, quizzes, and exams must be your own work (except for assignments that explicitly permit collaboration).
You may not share your solutions to homework, quizzes, or exams with anyone else unless explicitly permitted by the instructor. This includes anything written by you, as well as any official solutions provided by the course staff.

所感と、補足

Neural Network modelのモデルについて
基本的な手続きとして
NNのモデルをみて、
W、bといったパラメータの定義を繰り返し、書く
なんとなくで書けてしまうという指摘もあるが、
裏返すと、Discussionをみて、Referenceをみていけば 、解決できる感覚を養えたのが、初学者としては僥倖です

つたない例示として、以下のような1層のモデルを定義したとき
neural.png

あるデータセットx(i)について

\begin{align}
\qquad &z(1)^i= w(i)x(1) +b(i) \\
\end{align}

という式のもと、配列の計算をしていくのですが、
その際にに、はまった配列計算についてのtipsを下に書きます

配列の形状(shape)を考えて、計算することがあり,
自分なりに頻出の操作*のログになります

1)配列の生成(任意の次元の要素0をうみだす、重みづけ関数に使われます)

python
Xarr = np.zeros(10)#10個の0を生成

print(Xarr)

output: [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

2)配列の形状(shape)を確認する

python
Xarr.shape

output: (10,)

3)*配列の要素足し合わせ 
expectedのanswerにならないときがあり、
配列の要素を足し合わせるのに、ブロードキャスト(keepdims = True)にする必要があることを、あとでしりました。

python
print(np.sum(Xarr))
print(np.sum(Xarr,keepdims=True))

output:0.0
output:array([0.])

...要素を1で行うと

python
Yarr = np.ones(9)
print(np.sum(Yarr))
print(np.sum(Yarr,keepdims=True))

output:9.0
output:array([9.0.])
参照
https://deepage.net/features/numpy-sum.html

あとがき

コース1では、RNNやCNNといったアーキテクチャ、tensorflowやkerasなどフレームワークは扱わず、numpyのみです

今後は、「画像認識ってどこをみてるの」等といった素朴な疑問に解答できるレベルを目指して(ヒントがCNNにありそうですが...)、MLを先ずは趣味の範疇になりますが、日々深めていきたいです

tyoko
SFC(2016出所)→都内 ニッチな作業ログを残します notebook形式が✋馴染む...
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away