奎克的藏经阁 · 原书印刷页

人工智能与大数据技术导论 · 第 299 页

PDF 物理页索引 315 · 第9章

书名
人工智能与大数据技术导论
作者
未记录
印刷页
299
PDF 物理页
315(从 0 开始)
章节
第9章
UUID
cd4f7678-cd9b-4971-bde0-e9ad46a6cc71
来源类型
original_book
页面 SHA-256
91174839d6964092c2be5cc902fe057d9579c3809d8d1a8af2b4af4c3dd8d7ad

从上面的例子可以看出,即便我们拥有大量的训练数据,但其中仍有许多组合会非常罕见,因此我们最终可能会得到一些噪声系数,并可能遇到过拟合问题。可想而知,如果遇到过拟合问题,我们就要进行正则化。遗憾的是,L2正则化不能完成此任务。L2正则化可以使权重变小,但是并不能使它们正好为0。

那么,能不能以特定方式进行正则化,既能缩减模型大小,又能降低内存使用量呢?我们要做的就是将部分权重设为0,这样就不必处理其中的一些特定组合了。这样既节省了内存,还有可能帮助我们解决过拟合问题。不过必须小心一点,因为我们只想去掉那些额外的噪音系数,而不想失去正确的系数。所以要做的就是明确地将一些权重设为0,也就是所谓的L0正则化,它对不是0的权重进行惩罚。但是,它没有凸性(convex),难以优化。因此,L0正则化这种想法在实践中并不是一种有效的方法。

如果我们将条件放宽至L1正则化,只对权重的绝对值总和进行处罚,那么仍可以促使模型变得非常稀疏。这也会让其中的许多系数归零。这种正则化与L2正则化略有不同(因为L2也会尝试设置较小的权重,但实际上并不会让权重归零)。

在线性回归模型中,一个权重为0的特征等同于不用这个特征。为了减少模型复杂性,一种方法是使用正则函数来鼓励一些权重为0。除了避免过拟合外,这种做法也会更有效。下面我们通过一些代码实例来体会。

先装载数据集:

第9章 TensorFlow高级知识

299