无论是线性回归还是逻辑回归都有这样一个缺点,即:当特征太多时,
计算的负荷会非常大。
比如识别图像,是否是一辆汽车,可能就需要判断太多像素。
这时候就需要神经网络。
神经网络是模拟人类大脑的神经网络,由神经元,输入树突,输出树突构成。
由此设计神经网络模型:
x1,x2,x3是输入单元,将原始数据给他们,
? 1 , ? 2 , ? 3 是中间单元,它们负责将数据进行处理,然后呈递到下一层。
最后是输出单元,它负责计算ℎ ? (?)。
前向传播算法( FORWARD PROPAGATION ) 从左到右的算法
单层神经元(无中间层)的计算可用来表示逻辑运算
反向传播算法
小结一下使用神经网络时的步骤:
网络结构:第一件要做的事是选择网络结构,即决定选择多少层以及决定每层分别有多
少个单元。
第一层的单元数即我们训练集的特征数量。
最后一层的单元数是我们训练集的结果的类的数量。
如果隐藏层数大于 1,确保每个隐藏层的单元个数相同,通常情况下隐藏层单元的个数
越多越好。
我们真正要决定的是隐藏层的层数和每个中间层的单元数。
训练神经网络:
- 参数的随机初始化
- 利用正向传播方法计算所有的ℎ ? (?)
- 编写计算代价函数 ? 的代码
- 利用反向传播方法计算所有偏导数
- 利用数值检验方法检验这些偏导数
- 使用优化算法来最小化代价函数