1700509860
1700509862
数据科学家养成手册 15.3 该算法出马了
1700509863
1700509864
任何算法都是为模型服务的,也就是为最终解释或换算量化值的关系服务的,所以在建模环节一定会用到相当数量的算法。对非计算机专业人员来说,虽然算法显得很神秘,难度也很高,但我们只要明白算法的本质是“通过计算机存取单元的访问调度和数值计算来实现模型”就足够了。
1700509865
1700509866
在第11章“算法学”中,我们已经讨论了在计算机领域使用算法的关键思路。那么,数据建模中使用的算法和算法学中提到的算法有什么异同?答案是:没有异同。数据建模环节使用的算法,大都带有探索性数据分析的意味,故以关联性算法、概率统计算法、线性/非线性模型拟合算法等为主。因此,机器学习和数据挖掘领域的任何一种算法都可以作为建模的手段。
1700509867
1700509868
请注意,在任何情况下我们都不希望把一个模型叙述得过于复杂。除了因为对简洁性的追求是一种天然的、描述成本最低的原则以外,还有一个非常重要的原因——模型设计越复杂,同样越容易发生过拟合(也就是失去泛化性,在应用于其他场景时频繁失效)。
1700509869
1700509870
计算机出现之前,在使用笔算对模型进行推导的过程中,最典型、最简单的场景就是用最小二乘法对残差求极值。由于笔算时便于使用解析解的形式来表达解的过程,所以这种形式非常注重推导过程和解释意义的严谨,这对一些在笔算层面推导复杂的过程来说尤为艰难。不过,这种情况在计算机出现之后好了很多,使用迭代法进行优化的建模过程变得非常方便,甚至很多框架提供的类只需要几行代码就能实现。这样,问题就剩下在统计过程中计算某些值的数量,观察这些数量之间的关系,以及建立这些数量之间的假说了,其他问题都可以通过计算机的加、减、乘、除运算得到结果,或者通过使用迭代法找到损失函数的极值来完成。所有求偏导的过程再也不需要用笔算来解决了,直接利用定义中的
1700509871
1700509872
1700509873
1700509874
1700509875
取Δ为一个非常小的浮点数即可。一切在数学理论上连续可导的损失函数都可以用这个方法来解决,这也是用计算机做残差优化的基本算法保障。
1700509876
1700509878
15.3.1 统计学模型
1700509879
1700509880
大部分传统的机器学习内容都是统计学模型,包括我们前面说的线性关系也可以放在这个范畴。有些模型关系不是典型的通过求Loss函数的极值得到的,例如朴素贝叶斯
1700509881
1700509882
1700509883
1700509884
1700509885
就是纯粹通过统计得到的模型关系。还有隐马尔可夫模型(在11.8.1节提到过),这种学习过程的结果是得到一个概率转化矩阵。
1700509886
1700509887
使用统计学模型得到的内容,大都是对事物之间概率的关系解释,对普通SQL编程掌握较好的工程人员都能很好地理解这一点。在这种模型的归纳中只需注意:是否可以通过AB对照的测试方法来验证自己的观点?如果不能验证,那么这种模型仍然是一种过拟合模型。即使不使用AB对照,也要使用类似的方法进行验证,例如另外挑选与期望结果相似的验证样本进行统计(就像在机器学习中使用的验证集)。采取这样的方法都是为了避免在个案上归纳出的特例被误泛化到其他场景中。对于维度越多、因素越复杂的场景,这种工作的必要性就越大。
1700509888
1700509890
15.3.2 线性关系
1700509891
1700509892
线性关系是所有关系中最简单的一种模型,也因此成为许多人希望一开始就尝试利用的关系假说。这个关系假说就是一个多维向量x和w矩阵的内积关系与偏置b的加和的形式。
1700509893
1700509894
f(x)=wx+b
1700509895
1700509896
这个形式在本书中多次提到,我们对它已经很熟悉了。尤其在x是一维向量的时候,公式会退化成f(x)=wx+b的形式。在训练过程中,要注意观察损失函数Loss的下降情况,确认Loss已经下降到业务允许的范围内才可以使用。在使用最小二乘法作为Loss函数时,Loss函数的值就是样本点和拟合值之差的欧氏距离的平方和。
1700509897
1700509899
15.3.3 复杂的非线性关系
1700509900
1700509901
太复杂的线性和非线性回归的叠加,产生的回归模型往往会异常复杂,而且给特征的提取带来了很大的挑战。在很多新的研究领域,会把特征提取这个环节也交给计算机来做。用什么来做?用深度学习。
1700509902
1700509903
深度学习就是各种深度神经网络的组合应用。在第11章,我们已经对BP、CNN、RNN这3种网络进行了介绍。由于网络的输入层维度可以有几十万甚至上百万维,网络的深度也可以有三四十层甚至更多,所以其中容纳的线性和非线性空间解也是极为丰富的。
1700509904
1700509905
在训练过程中,可以通过梯度下降的方式寻找一个最为合适的W矩阵
1700509906
1700509907
1700509908
1700509909
[
上一页 ]
[ :1.70050986e+09 ]
[
下一页 ]