深度前馈网络
三个名字:
深度前馈网络( deep feedforward network)
前馈神经网络( feedforward neural network)
多层感知机( multilayer perceptron, MLP)
名字解析:
前:前向,信息流过 的函数,流经用于定义的中间计算过程,最终到达输出 。
前馈:没有反馈链接
没有反馈连接:前馈神经网络
有反馈连接:循环神经网络(RNN)
目标:近似某个函数
在多层的神经网络中,一层代表一个函数,比如说一个函数有3层,那就是:
(其中是输入层,是隐藏层,是输出层)
每个隐藏层通常都是向量值
输出层的任务就是必须产生一个接近 的值
与SVM相同,深度学习同样需要把非线性通过映射转换为线性模型,因此总结出总共有3中求映射的方法:
1. 通过SVM的核技巧
2. 手动设计
3. 通过深度学习,学习出结果
6.1 实例:学习 XOR
XOR 函数( ‘‘异或’’ 逻辑)是两个二进制值和的运算
目的:在 的输入中获得正确的输出
步骤:
1. 损失函数使用MSE:(二进制数据建模时, MSE通常并不是一个合适的损失函数,但这里仍然选择MSE)
2. 使用线性模型,因此参数为权重和偏置
3. 使用正规方程最小化
正规方程:是从纯数学推导的角度来求得能够使最小的值 (https://www.jianshu.com/p/12cc84819e78)
省略正规方程的推到之后,可以得出:
正规方程的结果: (表示输入向量矩阵,为目标输出向量)
正规方程与SDG的对比:
只要特征变量数量小于一万,通常使用标准方程法,而不使用梯度下降法
4. 解正规方程
得出=0,=
5. 隐藏单元向量
我们这里引入一个非常简单的前馈神经网络,它有一层隐藏层并且隐藏层中包含两个单元
输入层的输出与输出层的输入为,因为隐藏层也是线性模型,因此使用模型
因此可得最终的模型为:
其中
6. 用一个非线性函数描述这些特征(激活函数)
定义 (为激活函数)
默认的推荐是使用由激活函数 定义的 整流线性单元( rectified linear unit)或者称为 ReLU
ReLU: 用于线性变换的输出将产生非线性变换
即:
因此得到:
7. 给出XOR问题的一个解:
令
解得: