神经网络结构

在网上看到了几篇文章,介绍神经网络结构的,还不错,转一下

转:http://ufldl.stanford.edu/wiki/index.php/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C

https://www.cnblogs.com/ranjiewen/p/6115272.html

http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html

理论性强:https://www.cnblogs.com/lliuye/p/9183914.html

一、keras代码及分析

#卷积层

model.add(Conv2D(filters=32,kernel_size=(3, 3),input_shape=(32, 32,3),activation='relu', padding='same')) #提取图像特征
model.add(Dropout(0.3))
model.add(MaxPooling2D(pool_size=(2, 2))) #最大池化,降采样

#卷积层

model.add(Conv2D(filters=64, kernel_size=(3, 3),activation='relu', padding='same'))#提取子图像的高级特征
model.add(Dropout(0.3))
model.add(MaxPooling2D(pool_size=(2, 2)))

#节点数据展开

model.add(Flatten())   #作为神经网络的输入层
model.add(Dropout(0.3))

#全连接层,隐藏层

model.add(Dense(1024, activation='relu'))
model.add(Dropout(0.3))

#全连接层,输出层

model.add(Dense(10, activation='softmax'))

二、神经网络结构分析

                                                                                        图1

上述代码所构建结构跟图1相似,无非就是输入层节点数和输出层节点数的不同而已。

图1中每个圆圈又包含如图2的结构

                                            

                                                                              图2 单个神经元结构

 具体数学表达式,看https://blog.csdn.net/i_love_home/article/details/50700056

代码中还涉及到dropout,大概意思如图3所示。

                                                       

                                                                           图3 Dropout的示意图                                                           

 输出层 使用Softmax回归将神经网络输出转成概率分布

详细见https://www.cnblogs.com/eczhou/p/7860483.html

原文地址:https://www.cnblogs.com/4c4853/p/9687244.html