Simplest Implementation of Neural Net without using Deep Learning Libraries
codes are available here
When I was doing my CS assignment of implementing a neural net, I searched some implementations but none of them was cool. So I decided to implement one by myself.
Model
- Only supports a model with fully connected layers
Implementations
For some unclear variables, please read the raw code.
Forward Propagation
Below you can see the implementation of iterative calculation a = y * W + b
.
def forprop(self, xs): self.as_ = [] self.ys = [xs] for i in range(self.n): a = np.dot(self.ys[-1], self.weights[i]) + self.biases[i] y = self.activation(a) self.as_.append(a) self.ys.append(y)
Backward Propagation
The math of backprop is much harder than that of forprop. When you implement it by yourself, I strongly recommend you to assert the dimensions of your matrices each time.
def backprop(self, xs, ts, eta=1.0): dLdy = self.lossdif(self.ys[-1], ts) for i in range(self.n): if i > 0: dLdy = np.dot(dLdy, self.weights[self.n - i].T) dyda = self.activationdif(self.as_[self.n - 1 - i]) dLda = dLdy * dyda dadw = self.ys[self.n - 1 - i].T self.biases[self.n - 1 - i] -= eta * np.sum(dLda, axis=0) self.weights[self.n - 1 - i] -= eta * np.dot(dadw, dLda)
海外CS院進情報2018
ブログ初日なので書くことが多い。
なんで海外院進したいかというと、単に昔から海外が好きだから、というだけ。あんまり長く書いてもしょうがないよね。
やっと院進を現実的に考え始めたのですが、かなり時期がギリギリになってしまいました。何をするかもよくわかっていないので、メモとして記事にしていきます。
ぼくは研究成果がなにもないので、PhDではなくMasterに出します。
行きたいところをいくつかまとめます。 Requirements欄に必要条件をまとめますが、さすがにResumeやTranscriptが必須なのは当然なので省略します。
Oxford
Admission Open
- 9/3
Requirements
- GPA: 3.55 / 4.0
- TOEFL: 110以上、R24, L22, S25, W24以上
- 2ページ以下の作文
- 指定された課題
- 2枚以上の推薦状
Remarks
ETHZ
Admission Open
- 11/1
Requirements
Remarks
- GPAの足切りはない
MIT
Admission Open
- 9/15
Requirements
- TOEFL: 100以上
- 作文
- 3枚以上の推薦状
Remarks
Standord
Admission Open
- by end of September
Requirements
CMU
Admission Open
- 8/31
Requirements
UCBerkeley
Admission Open
- in September
Requirements
- GRE: 足切りはないが、合格者平均はQuantitativeで90%, Verbalで70%, Analyticalで3.5以上
- TOEFL: 90以上。合格者平均は100以上
- GPA: 3.0以上。合格者平均は3.7
- 作文
- 3枚以上の推薦状
Remarks
- 合格率は12%
UCLA
Admission Open
Requirements
- GRE
- 3枚以上の推薦状
- 作文
Remarks
- TOEFLに関する記述がみつからないんだけど、さすがにありそう
就職すると思ってたからGPAダメダメだし、TOEFL110以上って実質ネイティブだし本当に厳しい てか推薦状って何枚ももらえるものなのかな
内定辞退かな
就活ってむずかしいですね。
就活中は面接ばっかりなので、志望動機を言ってるうちに自分自身を洗脳しちゃうところがありますね。
ぼくは収入が多いという理由だけで外銀の金利債権トレーダーを志望しましたが、今になって収入なんて二の次だということに気が付きました。
マーケット部門の初任給はだいたいベース900万+インセンティブという感じで、トレーダーの場合早くて2年程度でVice Presidentまで昇進するんですが、そうするとベース2500万ぐらいになるので実際数ある職業の中ではかなり若いうちから給料がいいです。
でも、ぼくはそんなにマーケットが好きというわけでもないんです。ぼくのことを知ってるひとならわかると思いますが、ぼくは興味のあることしか集中できないので業績を出せるとも思えませんし、何より今のCSの環境の居心地がすごくいいので離れたくありません。
CSを学ぶために情報科学科に進学したのにまだ何も生み出せてないですし、せっかくの環境がもったいないなという気がします。
トレーダーを志望した当初は、人生前半に苦労しつつも十分稼いであとは自由に暮らすぞーーと言っていましたが、冷静に自分の好きな職業に就けばそもそも一生自由ですし。
あとぼくはそんなに浪費するタイプじゃないので多分給料もらったところで使いませんしね。
もうちょっと落ち着くまで内定辞退は伝えないつもりですが、今は院進を考えています。