はじめに
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関数とか、知らなかった状態でした...
成果
公開用なので、点数ない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をみていけば 、解決できる感覚を養えたのが、初学者としては僥倖です
あるデータセットx(i)について
\begin{align}
\qquad &z(1)^i= w(i)x(1) +b(i) \\
\end{align}
という式のもと、配列の計算をしていくのですが、
その際にに、はまった配列計算についてのtipsを下に書きます
配列の形状(shape)を考えて、計算することがあり,
自分なりに頻出の操作*のログになります
1)配列の生成(任意の次元の要素0をうみだす、重みづけ関数に使われます)
Xarr = np.zeros(10)#10個の0を生成
print(Xarr)
output: [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
2)配列の形状(shape)を確認する
Xarr.shape
output: (10,)
3)*配列の要素足し合わせ
expectedのanswerにならないときがあり、
配列の要素を足し合わせるのに、ブロードキャスト(keepdims = True)にする必要があることを、あとでしりました。
print(np.sum(Xarr))
print(np.sum(Xarr,keepdims=True))
output:0.0
output:array([0.])
...要素を1で行うと
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を先ずは趣味の範疇になりますが、日々深めていきたいです