Andrew机器学习课程笔记(2)——神经网络、机器学习Tips

神经网络

梯度检验

有时由于一些不易觉察的错误,梯度下降算法虽然代价在减小,但最终可能达不到最优解。因此在测试刚建立的模型时,还可以引入梯度检验来确定每个参数在网络中的导数(梯度)是不是正常。

      梯度检验方法很简单:在代价函数上沿着切线方向选择两个很近的点,求两个代价的平均(导数定义)。

权重初始化

对于LR算法,权重初始化为0是可行的;但在神经网络中,如果初始权重都相同(包括全为0的情况),将导致后面层的神经元输出也相同。

因此对于神经网络,合理的方式是对所有权重随机赋值

输出

每个输出层的神经元,其结果是 [0,1] ,因此该层神经元数 == 类别数。

隐含层

隐含层越多精度越高(但要考虑随之而来的复杂度上升的情况及过拟合的可能),对于多个隐含层的情况,一般每层的神经元数目相等


机器学习Tips

当算法精度不高时,该如何调整?

数据的分布

图1. 推荐的数据分布(图片来源:andrew课程视频)

假设设计了10个模型,用 train set 训练,用 cv set 筛选出最优的模型,用 test set 得到该模型的推广精度(如果既用 test set 选模型,又用其报告精度,会有过拟合的嫌疑,精度不可信)。

欠拟合与过拟合的判定

比较 train error 与 cv error

图2. 欠拟合 OR 过拟合(图片来源:andrew课程视频)

很好理解,若 train error 与 cv error 都较高,则为欠拟合;若 train error 较低而 cv error 较高,则为过拟合。

训练集大小的选择

通过对模型是否为 欠拟合 还是 过拟合 来做决定

图3. 训练集大小的选择(图片来源:andrew课程视频)

上图左是欠拟合,右是过拟合的情况。也很好理解,欠拟合其实就是模型太简单,这时增加 train set 也没什么作用;过拟合就是模型较复杂,而目前的样本过于集中或数目太少,因此增加 train set 会有提升。

正负样本比例失衡的情况

在实际中这种情况很常见,需要预测的正样本往往是小概率事件。

假设算法对所有样本都输出 0 (占大概率的事件),那么其精度是很高的,但我们都知道,然并卵。。。

因此需要另外的准则来评估该算法的精度

图4. 查准率 和 差全率


查准率(Precision) = TP / ( TP + FP )

查全率(Recall) = TP / (TP + FN)

这样,上面假设的Recall为0

一般希望模型在这2个指标上的表现尽可能均衡:MAX[ ( Precision*Recall )/(Precision+Recall) ]

总结

1. 对过拟合模型,可以考虑:增加训练样本、减少特征、提高正则化参数lambda

2. 对欠拟合模型,可以考虑:增加特征、提高模型复杂度、降低lambda

3. 从简单的算法开始,先把模型搭建好,通过模型分析来修正思路

4. 画出学习曲线,对交叉验证集的误差做分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值