四、前馈神经网络
4.1神经元
可以看成一个简单的线性模型
不同神经元区别在于激活函数f
激活函数不一定要单调递增
举例:
S型函数
非零中心化解决办法:1.normalization(归一化) 2.σ(x)+b(加偏置)
斜坡函数:
x<0时y全为0(死亡ReLU问题)
解决办法:近似零中心化的非线性函数
使函数介于线性和ReLu之间
4.2神经网络
三个要素:激活函数、网络拓扑、学习算法
4.3前馈神经网络
三层网络(输入层一般不算层,记为第0层)
应用:
4.4反向传播算法
矩阵微积分写法:
矩阵微积分中的链式法则:
先忽略正则项
如若计算一个参数的偏导数,首先计算出损失函数在最后一层的偏导数,即最后一层的σ(l),然后通过迭代公式一层一层往前传,得到每一层的误差项,再乘上对应参数的导数,就得到损失函数对应每一层的导数
4.5计算图与自动微分
更加高效的微分方法
两层的神经网络
第一层Dense(全连接层): 输出100维输出64维,用relu激活函数
第二层Dense(输出层): 输入64维输出10维,用Softmax激活函数
损失函数用交叉熵
优化用sgd
metrics 用准确率
model.fit 用随机梯度下降开始训练
nb_epoch: 当一个完整的数据集通过了神经网络一次并且返回了一次,这个过程称为一次epoch。(也就是说,所有训练样本在神经网络中都 进行了一次正向传播 和一次反向传播 )再通俗一点,一个Epoch就是将所有训练样本训练一次的过程。
batch_size: 一次训练所选取的样本数。
4.6优化问题
eg:两层的神经网络
区分全局优化和局部优化比较困难