Neural networks
non-linear hypotheses 非线性假设
Neural model:logistic unit
第一层 Input layer
最后一层 Outer layer
其他层 Hidden layer
对于非线性模型问题,神经网络就是logistic回归的复杂模型。
前向传播
比较logistic和neural network
之前的logistic回归:有x个特征,真正需要的特征可能是y个(y>>x)
比如:预测房价,特征有房子长度和宽度(x=2),而真正需要的特征可能是长度、宽度、面积(长度*宽度)。y=3
logistic回归的重点是找到更多可能有用的多项式特征,来循环一个sigma函数。它更注重长度
Neural networks:只将x个特征作为输入层,不在乎多项式特征。
神经网络是n*m个sigma函数的组合,用少量的特征进行层层运算得到更复杂的特征。它更注重深度、宽度。
neural network分类
二元分类和多分类问题
neural network的cost function
这个看起来复杂很多的代价函数背后的思想还是一样的,我们希望通过代价函数来观察算法预测的结果与真实情况的误差有多大。
反向传播
back propagation: 求导数值
前向传播是特征值的“加权和+sigma函数”从左到右传播
反向传播是“偏导数加权和”从右向左传播
梯度检验
gradient checking:检验反向传播时求的导数值是否正确。但是因为计算一次导数梯度检验运行时间比反向传播长很多,所以一旦确定了反向传播没有计算错时,记得禁掉梯度检验的代码。
随机初始化
random initialization:初始化神经网络里的初始参数(权重)
neural network全过程回顾
- Pick network architecture
Input layer:单元数目由特征个数决定
Output layer:单元数目由分多少类决定
Hidden layer:层数一般1层(也可以2、3层),单元数目一般和Input layer数目相等或是x倍(x=1、2、3)
2.1 初始化权重(接近于0)
2.2 前向传播求预测值
2.3 计算cost function
2.4 反向传播求偏导数
2.5 梯度检验验证反向传播求的偏导数
2.6 用梯度下降或其他高级优化方法minimize代价函数