深度学习(基于Keras的Python实践)

深度学习(基于Keras的Python实践)
作者: 魏贞原
出版社: 电子工业
原售价: 59.00
折扣价: 41.30
折扣购买: 深度学习(基于Keras的Python实践)
ISBN: 9787121341472

作者简介

魏贞原,IBM 高级项目经理,数据分析团队Leader,主要负责银行客户的复杂系统开发。同时是IBMCIC量子计算COE团队的Python 领域专家(Subject Matter Expert),负责量子计算应用的探索工作,对机器学习和深度学习有深入的研究,精通于运用机器学习来解决数据科学的问题。并运营“知之Python”公众号,定期分享 Python 在机器学习和深度学习的实践知识。

内容简介

激活函数是加权输入与神经元输出的简单映射。它被称为激活函数,是因为它控制神经元激活的阈值和输出信号的强度。历史上最简单的激活函数是临界值判定,如输入总和高于阈值(如0.5),则神经元将输出值1.0,否则将输出值0.0。 激活函数通常有以下一些性质。 ?非线性:当激活函数是非线性的时候,一个两层的神经网络就可以基本逼近所有的函数了。但是,如果激活函数是恒等激活函数时(f(x)=x),就不满足这个特性,假如多层感知器使用的是恒等激活函数,那么整个网络和单层神经网络是等价的。 ?可微性:当优化方法是基于梯度优化时,这个性质是必需的。 ?单调性:当激活函数是单调函数时,单层网络能够保证是凸函数。 ?f(x)≈x:当激活函数满足这个性质时,如果参数的初始化为很小的随机值,那么神经网络的训练将会很高效;如果不满足这个性质,那么就需要很用心地去设置初始值。 ?输出值的范围:当激活函数的输出值的范围有限的时候,基于梯度的优化方法会更加稳定,因为特征的表示受有限权值的影响更显著;当激活函数的输出值的范围无限的时候,模型的训练会更加高效,不过在这种情况下,一般需要更小的学习率。 既然激活函数具有这些特征,那么如何选择激活函数呢?传统上使用非线性激活函数。这允许网络以更复杂的方式组合输入,从而可以构建功能更丰富的模型。使用类似逻辑函数的非线性函数也称为sigmoid函数,它以s形分布输出0和1之间的值。双曲正切函数也称为tanh,它在-1到+1范围内输出相同的分布。最近,线性整流函数(ReLU)已被证明可以提供更好的结果,相比于sigmoid函数和tanh函数,ReLU只需要一个阈值就可以得到激活值,而不用去算一大堆复杂的运算。当然,ReLU也有缺点,就是训练的时候很“脆弱”,并且很容易失去作用。举个例子,一个非常大的梯度流过一个ReLU神经元,更新参数之后,这个神经元再也不会对任何数据有激活现象。如果这个情况发生了,那么这个神经元的梯度就永远都是0。 本书将介绍一种与传统方式不同的学习深度学习的方式; 主要介绍Keras在Python中生成并评估深度学习的模型 ; 本书具有端到端的例子,适合实践,能够快速上手,代码复现容易。