初识DNN
深度神经网络是怎么构成的
基本单元:神经元
神经元之间通过非线性变换构成:激活函数
输入层+隐藏层+输出层
层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是从小的局部模型来说,还是和感知机一样,即一个线性关系 加上一个激活函数
DNN如何让从传统模型升级而来
从感知机到DNN:
输入到输出之间是线性变化的关系:
然后是一个神经元激活函数:(这里以sign为例,实际上有很多激活函数可以选择)
输出为1或-1,这样可以做二分类,但是无法做复杂的模型。
因此加入了隐藏层。
可以更加复杂,多个输出
也可以使用更加复杂的激活函数作为最后的输出。过程中每次线性变化之后也可以通过一个激活函数(active function)。
神经网络的构造可以是更复杂的,更多元的,不是必须规则的流下去。可以是序贯的,也可以是抽象函数的。
激活函数
softmax
实质类似于归一化,是多输出具有概率意义。实质类似于归一化,是多输出具有概率意义。
sigmoid函数:,是softmax做二分类时的特殊情况
relu:线性整流函数(Rectified Linear Unit, ReLU)
他有很多变化形式
tanh(x)
深度学习框架
caffe、pytouch、tensorflow、keras等
总结
深度网络的复杂程度简单来说是由其深度和宽度决定的。
事实也证明了,往往网络越深越复杂,效果越好。这是为什么呢?
- 符合人大脑的构成和思考方式
- 自动特征提取,网络每走一层就进行了一次特征组合,层数越多,组合能力越强。