diff --git "a/ch01_\346\225\260\345\255\246\345\237\272\347\241\200/\347\254\254\344\270\200\347\253\240_\346\225\260\345\255\246\345\237\272\347\241\200.md" "b/ch01_\346\225\260\345\255\246\345\237\272\347\241\200/\347\254\254\344\270\200\347\253\240_\346\225\260\345\255\246\345\237\272\347\241\200.md" index ff5b2c6d..427c6591 100644 --- "a/ch01_\346\225\260\345\255\246\345\237\272\347\241\200/\347\254\254\344\270\200\347\253\240_\346\225\260\345\255\246\345\237\272\347\241\200.md" +++ "b/ch01_\346\225\260\345\255\246\345\237\272\347\241\200/\347\254\254\344\270\200\347\253\240_\346\225\260\345\255\246\345\237\272\347\241\200.md" @@ -46,31 +46,31 @@ ​ 定义一个向量为:$\vec{a}=[-5, 6, 8, -10]$。任意一组向量设为$\vec{x}=(x_1,x_2,...,x_N)$。其不同范数求解如下: - 向量的1范数:向量的各个元素的绝对值之和,上述向量$\vec{a}$的1范数结果就是:29。 - + $$ \Vert\vec{x}\Vert_1=\sum_{i=1}^N\vert{x_i}\vert -$$ +$$ - 向量的2范数:向量的每个元素的平方和再开平方根,上述$\vec{a}$的2范数结果就是:15。 - + $$ \Vert\vec{x}\Vert_2=\sqrt{\sum_{i=1}^N{\vert{x_i}\vert}^2} $$ - 向量的负无穷范数:向量的所有元素的绝对值中最小的:上述向量$\vec{a}$的负无穷范数结果就是:5。 - + $$ \Vert\vec{x}\Vert_{-\infty}=\min{|{x_i}|} -$$ +$$ - 向量的正无穷范数:向量的所有元素的绝对值中最大的:上述向量$\vec{a}$的负无穷范数结果就是:10。 - + $$ \Vert\vec{x}\Vert_{+\infty}=\max{|{x_i}|} $$ -- 向量的p范数: - +- 向量的p范数:向量元素绝对值的p次方和的1/p次幂。 + $$ L_p=\Vert\vec{x}\Vert_p=\sqrt[p]{\sum_{i=1}^{N}|{x_i}|^p} $$ @@ -88,20 +88,20 @@ $$ ​当向量取不同范数时, 相应得到了不同的矩阵范数。 - **矩阵的1范数(列范数)**:矩阵的每一列上的元素绝对值先求和,再从中取个最大的,(列和最大),上述矩阵$A$的1范数先得到$[5,8,9]$,再取最大的最终结果就是:9。 - + $$ \Vert A\Vert_1=\max_{1\le j\le}\sum_{i=1}^m|{a_{ij}}| $$ - **矩阵的2范数**:矩阵$A^TA$的最大特征值开平方根,上述矩阵$A$的2范数得到的最终结果是:10.0623。 - + $$ \Vert A\Vert_2=\sqrt{\lambda_{max}(A^T A)} -$$ +$$ 其中, $\lambda_{max}(A^T A)$ 为 $A^T A$ 的特征值绝对值的最大值。 - **矩阵的无穷范数(行范数)**:矩阵的每一行上的元素绝对值先求和,再从中取个最大的,(行和最大),上述矩阵$A$的1范数先得到$[6;16]$,再取最大的最终结果就是:16。 - + $$ \Vert A\Vert_{\infty}=\max_{1\le i \le n}\sum_{j=1}^n |{a_{ij}}| $$ @@ -111,14 +111,14 @@ $$ - **矩阵的L0范数**:矩阵的非0元素的个数,通常用它来表示稀疏,L0范数越小0元素越多,也就越稀疏,上述矩阵$A$最终结果就是:6。 - **矩阵的L1范数**:矩阵中的每个元素绝对值之和,它是L0范数的最优凸近似,因此它也可以表示稀疏,上述矩阵$A$最终结果就是:22。 - **矩阵的F范数**:矩阵的各个元素平方之和再开平方根,它通常也叫做矩阵的L2范数,它的有点在它是一个凸函数,可以求导求解,易于计算,上述矩阵A最终结果就是:10.0995。 - + $$ \Vert A\Vert_F=\sqrt{(\sum_{i=1}^m\sum_{j=1}^n{| a_{ij}|}^2)} $$ - **矩阵的L21范数**:矩阵先以每一列为单位,求每一列的F范数(也可认为是向量的2范数),然后再将得到的结果求L1范数(也可认为是向量的1范数),很容易看出它是介于L1和L2之间的一种范数,上述矩阵$A$最终结果就是:17.1559。 - **矩阵的 p范数** - + $$ \Vert A\Vert_p=\sqrt[p]{(\sum_{i=1}^m\sum_{j=1}^n{| a_{ij}|}^p)} $$ @@ -198,13 +198,13 @@ $$ - 特征值表示的是这个特征到底有多重要,而特征向量表示这个特征是什么。 如果说一个向量$\vec{v}$是方阵$A$的特征向量,将一定可以表示成下面的形式: - + $$ A\nu = \lambda \nu $$ $\lambda$为特征向量$\vec{v}$对应的特征值。特征值分解是将一个矩阵分解为如下形式: - +​ $$ A=Q\sum Q^{-1} $$ diff --git "a/ch06_\345\276\252\347\216\257\347\245\236\347\273\217\347\275\221\347\273\234(RNN)/\347\254\254\345\205\255\347\253\240_\345\276\252\347\216\257\347\245\236\347\273\217\347\275\221\347\273\234(RNN).md" "b/ch06_\345\276\252\347\216\257\347\245\236\347\273\217\347\275\221\347\273\234(RNN)/\347\254\254\345\205\255\347\253\240_\345\276\252\347\216\257\347\245\236\347\273\217\347\275\221\347\273\234(RNN).md" index 224d3d29..aef232d6 100644 --- "a/ch06_\345\276\252\347\216\257\347\245\236\347\273\217\347\275\221\347\273\234(RNN)/\347\254\254\345\205\255\347\253\240_\345\276\252\347\216\257\347\245\236\347\273\217\347\275\221\347\273\234(RNN).md" +++ "b/ch06_\345\276\252\347\216\257\347\245\236\347\273\217\347\275\221\347\273\234(RNN)/\347\254\254\345\205\255\347\253\240_\345\276\252\347\216\257\347\245\236\347\273\217\347\275\221\347\273\234(RNN).md" @@ -26,7 +26,8 @@ LSTM 的核心思想? 如何逐步理解LSTM? 常见的RNNs扩展和改进模型 RNN种类? -讲解CNN+RNN的各种组合方式 http://www.elecfans.com/d/775895.html +讲解CNN+RNN的各种组合方式 http://www.elecfans.com/d/775895.html +RNN学习和实践过程中常常碰到的疑问 ## CNN和RNN的对比 http://www.elecfans.com/d/775895.html 1、CNN卷积神经网络与RNN递归神经网络直观图 2、相同点: @@ -36,7 +37,8 @@ RNN种类? 3、不同点 3.1. CNN空间扩展,神经元与特征卷积;RNN时间扩展,神经元与多个时间输出计算 3.2. RNN可以用于描述时间上连续状态的输出,有记忆功能,CNN用于静态输出 -3. 3. CNN高级100+深度,RNN深度有限 +3.3. CNN高级100+深度,RNN深度有限 + http://blog.csdn.net/heyongluoyao8/article/details/48636251 @@ -245,3 +247,9 @@ CW-RNNs与SRNs网络结构类似,也包括输入层(Input)、隐藏层(Hidden) ### 6.6.10 CNN-LSTMs 1. 为了同时利用CNN以及LSTMs的优点,CNN-LSTMs被提出。在该模型中,CNN用于提取对象特征,LSTMs用于预测。CNN由于卷积特性,其能够快速而且准确地捕捉对象特征。LSTMs的优点在于能够捕捉数据间的长时依赖性。 + + + +### 6.7 常见疑问 +1. 从学习RNN伊始,常常说RNN结构可以解决不定长的数据,不像CNN中一般输入数据是图片,是一般是在建网络结构开始把图片resize到固定宽高,而RNN能解决不定长,这里指的是,time_steps可以不固定,而每次time,input的维度这是固定的。比如,语音特征数据或时间序列数据,一个完整的数据,时间帧数上可以不固定,但每帧的数据维度是固定的。 +2. time_steps的不固定,在构建计算图中,就相当于是构建是动态神经网络图,因为每个数据的时间维度是不固定的,这在编程过程中,Tensorflow其实是以静态图著称,但TensorFlow中提供了**tf.nn.dynamic_rnn()**,达到动态图机制,,但是还是建议大家用PyTorch去搭建RNN模型,因为Pytorch原生就是动态图著称,理解上更容易。 \ No newline at end of file diff --git "a/ch09_\345\233\276\345\203\217\345\210\206\345\211\262/readme.md" "b/ch09_\345\233\276\345\203\217\345\210\206\345\211\262/readme.md" index cbeeb2ac..26409571 100644 --- "a/ch09_\345\233\276\345\203\217\345\210\206\345\211\262/readme.md" +++ "b/ch09_\345\233\276\345\203\217\345\210\206\345\211\262/readme.md" @@ -6,9 +6,9 @@ 电子科大研究生-孙洪卫(wechat:sunhwee,email:hwsun@std.uestc.edu.cn) 电子科大研究生-张越(wechat:tianyuzy) 华南理工研究生-黄钦建(wechat:HQJ199508212176,email:csqjhuang@mail.scut.edu.cn) -中国农业科学院-杨国峰() +中国农业科学院-杨国峰(wechat:tectal,email:yangguofeng@caas.cn) **贡献者(排名不分先后):** 内容贡献者可自加信息 -########################################################### \ No newline at end of file +########################################################### diff --git "a/ch15_GPU\345\222\214\346\241\206\346\236\266\351\200\211\345\236\213/\347\254\254\345\215\201\344\272\224\347\253\240_\345\274\202\346\236\204\350\277\220\347\256\227\343\200\201GPU\345\217\212\346\241\206\346\236\266\351\200\211\345\236\213.md" "b/ch15_GPU\345\222\214\346\241\206\346\236\266\351\200\211\345\236\213/\347\254\254\345\215\201\344\272\224\347\253\240_\345\274\202\346\236\204\350\277\220\347\256\227\343\200\201GPU\345\217\212\346\241\206\346\236\266\351\200\211\345\236\213.md" index 922e8762..1be4a835 100644 --- "a/ch15_GPU\345\222\214\346\241\206\346\236\266\351\200\211\345\236\213/\347\254\254\345\215\201\344\272\224\347\253\240_\345\274\202\346\236\204\350\277\220\347\256\227\343\200\201GPU\345\217\212\346\241\206\346\236\266\351\200\211\345\236\213.md" +++ "b/ch15_GPU\345\222\214\346\241\206\346\236\266\351\200\211\345\236\213/\347\254\254\345\215\201\344\272\224\347\253\240_\345\274\202\346\236\204\350\277\220\347\256\227\343\200\201GPU\345\217\212\346\241\206\346\236\266\351\200\211\345\236\213.md" @@ -59,11 +59,19 @@ GPU整体的架构而言,某种意义上是同时支持以上两种并行模 深度学习在最近几年内出现的井喷现象背后也是GPU的存在和发展作为坚实的推动力量。 哪些场景使用GPU +在涉及大型矩阵运算的时候使用GPU可以显著加速处理速度,由于GPU架构的独特设计,针对矩阵运算可以实现高速并行计算,极大提高计算速度。 +一般在高性能计算,机器学习,深度学习,图像渲染等等场景中会比较多的使用矩阵运算,使用GPU可以显著加快处理速度。 +在一般的深度学习训练中,通常来说使用GPU比使用CPU都有10倍以上的速度提升,所以几乎所有深度学习的研究者几乎都是在使用GPU进行训练。 ImageNet的例子 ### 15.3.5 新图灵架构里的tensor core对深度学习有什么作用? +我们知道在深度学习中,矩阵-矩阵乘法运算(BLAS GEMM)是神经网络训练和推理的核心,并且矩阵乘法运算占据了所有计算量的大部分,而Tensor core就是为了解决这个问题而推出的,它的出现极大的提高了计算效率,大大加速了深度学习的计算速度,对深度学习的发展具有极大意义。 + +Tensor Core是Volta架构最重磅特性,是专门针对Deep Learning应用而设计的专用ASIC单元,实际上是一种矩阵乘累加的计算单元。(矩阵乘累加计算在Deep Learning网络层算法中,比如卷积层、全连接层等是最重要、最耗时的一部分。)Tensor Core可以在一个时钟周期内实现两个4×4矩阵乘法以及与另一个4×4矩阵加法。整个计算的个数,就是在一个时钟周期内可以实现64次乘和64次加。 + +所以Tensor Core就是为了矩阵乘法的加速而设计的,使用具有Tensor Core的GPU来进行深度学习的训练会极大的提高训练速度。 ## 15.4 CUDA 框架