DL筆記

刷代碼:LeetCode,github,kaggle, learning python hard way, 書,微信
python基礎(chǔ)(hard way→python算法書(算法導(dǎo)論-難,看不懂再看算法第四版-易)→leetcode)→numpy, pandas(官方10 minutes to pandas), matplotlib等庫,有書→機(jī)器學(xué)習(xí)基礎(chǔ)算法(GitHub手寫機(jī)器學(xué)習(xí)算法,siraj線性回歸的視頻),原理和代碼→項(xiàng)目,paper
github:tensorflow example

課前環(huán)境準(zhǔn)備:見論壇收藏的帖子(還需要將cudnn解壓出的cuda/bin路徑(C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\cudnn-8.0-windows10-x64-v5.1\cuda\bin)加入系統(tǒng)path)
tflearn課程中(env-tflearn),安裝TensorFlow報(bào)錯(cuò):ImportError: No module named 'setuptools.wheel'
解決:conda install -c https://conda.anaconda.org/anaconda setuptools,然后再裝TensorFlow

numpy基礎(chǔ)
叉乘:符號(hào)為*,元素級(jí)乘法,每個(gè)對(duì)應(yīng)位置的元素相乘
矩陣點(diǎn)積:符號(hào)為.,np.matmul(a, b)),np.dot(a, b)或a.dot(b)(如果a, b是二維的,返回一個(gè)值不改變a)

矩陣轉(zhuǎn)置:
b = a.T,修改b中的數(shù)據(jù),則原始舉證a中對(duì)應(yīng)轉(zhuǎn)置的位置的數(shù)據(jù)也會(huì)改變,因?yàn)樗鼈児蚕硐嗤臄?shù)據(jù)副本,將轉(zhuǎn)置視為矩陣的不同視圖,而不是完全不同的矩陣。(這個(gè)原理也適用于b = a.reshape())

神經(jīng)網(wǎng)絡(luò)
簡(jiǎn)易神經(jīng)網(wǎng)絡(luò)

感知器perceptron
權(quán)重weight
激活函數(shù),最簡(jiǎn)單的激活函數(shù)(單位階躍函數(shù))



偏置項(xiàng)bias
感知器公式



常用的激活函數(shù):?jiǎn)挝浑A躍函數(shù),sigmoid,tanh,softmax

梯度下降
梯度是變化率或者斜率的另一個(gè)稱呼,是對(duì)多變量函數(shù)導(dǎo)數(shù)的泛化
梯度下降數(shù)學(xué)推導(dǎo)









反向傳播例子




實(shí)現(xiàn)反向傳播


修正線性單元(ReLU),隱藏層
f(x) = max(x, 0)

softmax



輸出經(jīng)過壓縮,輸出和為1
softmax可用于任何數(shù)量的分類,是神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)多分類問題的最佳輸出激活函數(shù)

交叉熵cross entropy


tensorflow:

with tf.Session() as sess:
tf.constant()

# 得到輸入
x = tf.placeholder(tf.string)
with tf.Session() as sess:
    output = sess.run(x, feed_dict={x: 'hello, world'})

tf.Variable()  # 可變tensor
tf.global_variables_initializer()  # 初始化所有可變tensor

# 數(shù)學(xué)運(yùn)算,數(shù)據(jù)必須是同一類型
tf.add(a, b)
tf.subtract(a, b)
tf.multiply(a, b)
tf.divide(a, b)
tf.cast(tf.constant(2.0), tf.int32)  # 強(qiáng)制轉(zhuǎn)換數(shù)據(jù)類型為int32

tf.truncated_normal((n, m))  # 從正態(tài)分布中生成隨機(jī)數(shù)
tf.zeros()
tf.matmul(a, b)  # 矩陣相乘

tf.nn.softmax()  # 計(jì)算softmax
tf.nn.relu()

# One-Hot Encoding
import numpy as np
from sklearn import preprocessing

labels = np.array(['a', 'f', 'd'])
# create the encoder
lb = preprocessing.LabelBinarizer()
lb.fit(labels)
lb.transform(labels)

tf.reduce_sum()  # 返回序列的和
tf.log()  # 返回輸入值的自然對(duì)數(shù)

tf.nn.dropout(layer, keep_prob)  # 訓(xùn)練時(shí)keep_prob設(shè)為0.5,驗(yàn)證和測(cè)試時(shí)設(shè)為1

conv_layer = tf.nn.conv2d(input, weight, strides=[1, 2, 2, 1], padding='SAME')
conv_layer = tf.nn.bias_add(conv_layer, bias)  # 對(duì)矩陣的最后一維加了偏置項(xiàng)
#weights 作為濾波器,[1, 2, 2, 1] 作為 strides。TensorFlow 對(duì)每一個(gè) input 維度使用一個(gè)單獨(dú)的 stride 參數(shù),[batch, input_height, input_width, input_channels]。我們通常把 batch 和 input_channels (strides 序列中的第一個(gè)第四個(gè))的 stride 設(shè)為 1。

conv_layer = tf.nn.max_pool(conv_layer, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')
# tf.nn.max_pool() 函數(shù)實(shí)現(xiàn)最大池化時(shí), `ksize`參數(shù)是濾波器大小`strides`參數(shù)是步長(zhǎng)。2x2 的濾波器配合 2x2 的步長(zhǎng)是常用設(shè)定。
#`ksize` 和 `strides` 參數(shù)也被構(gòu)建為四個(gè)元素的列表,每個(gè)元素對(duì)應(yīng) input tensor 的一個(gè)維度 (`[batch, height, width, channels]`),對(duì) `ksize` 和 `strides` 來說,batch 和 channel 通常都設(shè)置成 `1`。


learning_rate 不宜太高,如果準(zhǔn)確率太低,首先嘗試調(diào)低學(xué)習(xí)率
超參數(shù),ADAGRAD
batch_size一般取32,64,128,256等



?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • https://developers.google.com/machine-learning/crash-cour...
    iOSDevLog閱讀 2,915評(píng)論 1 11
  • 在Android開發(fā)中,自定義view估計(jì)大家不陌生,也是大家最頭疼的事,如果想學(xué)好自定義view,得需要花費(fèi)一定...
    ReturnYHH閱讀 260評(píng)論 0 1
  • 提綱 1#先看貓友怎么寫的 2#定風(fēng)格,是面向一個(gè)人還是 3#格式框架跟誰學(xué)
    華子乖乖324閱讀 221評(píng)論 0 0
  • 第三次來到貴州。 第一次懵懵懂懂,第二次收藏了珍貴的記憶。那么,第三次呢? 看著窗外夕陽染紅了天空,黑色再慢慢吞噬...
    雨魚水閱讀 299評(píng)論 0 0
  • 昨日,四川茂縣發(fā)生山體垮塌,造成重大人員的傷亡,當(dāng)我們?cè)诎У客稣叩耐瑫r(shí),小編給大家講述一下當(dāng)發(fā)生災(zāi)難時(shí)如何自救! ...
    豆豆吃小魚閱讀 613評(píng)論 0 0

友情鏈接更多精彩內(nèi)容