DNN指的是包含多个隐层的神经网络,如图1所示,根据神经元的特点,可以分为MLP、CNNs、RNNs等,下文在区分三者的时候,都从神经元的角度来讲解。MLP是最朴素的DNN,CNNs是encode了空间相关性的DNN,RNNs是encode进了时间相关性的DNN。
![](http://www.jianghaizhi.com/wp-content/uploads/2019/02/v2-80887c4acfe41af70eb3d00eadd9274a_hd.jpg)
MLP是最简单的DNN,它的每一层其实就是fc层(fully connected layer),其神经元见图2所示。
![](http://www.jianghaizhi.com/wp-content/uploads/2019/02/v2-14ba37b58c1445e4ce53771ab9669315_hd.jpg)
CNNs相对于MLP而言,多了一个先验知识,即数据之间存在空间相关性,比如图像,蓝天附近的像素点是白云的概率会大于是水桶的概率。滤波器会扫过整张图像,在扫的过程中,参数共享。图3、图4、图5、图6是一个3×3的输入经过一个2×2的conv的过程,该conv的stride为1,padding为0。图7是最后的计算结果。
![](http://www.jianghaizhi.com/wp-content/uploads/2019/02/v2-a4f0e26cacd9f82b25aef4d983d45b87_hd.jpg)
![](http://www.jianghaizhi.com/wp-content/uploads/2019/02/v2-6389f9d561c7bb059309905fd2ae0671_hd.jpg)
![](http://www.jianghaizhi.com/wp-content/uploads/2019/02/v2-148d442a287dce82ea228747119d3a94_hd.jpg)
![](http://www.jianghaizhi.com/wp-content/uploads/2019/02/v2-80dab18961de5bb946d44ec6a22fbcde_hd.jpg)
![](http://www.jianghaizhi.com/wp-content/uploads/2019/02/v2-ab472f4af414d8b25a43f2eb8c4f2ca7_hd.jpg)
RNNs相对于MLP而言,也多了一个先验知识,即数据之间存在时间相关性,比如一段文字,前面的字是“上”,后面的字是“学”概率更大,是“狗”的概率很小。RNNs神经元的输入会有多个time step,每个time step的输入进入神经元中时会共享参数。图8是一个典型的RNNs示意图,图9是将图8在时间上展开的结果,这里只展开了两步。
![](http://www.jianghaizhi.com/wp-content/uploads/2019/02/v2-52754a2972f0a6b1d924843b6aa51749_hd.jpg)
![](http://www.jianghaizhi.com/wp-content/uploads/2019/02/v2-5f74fb8973c8c6c6cdcd7057e9725018_hd.jpg)