上周学习的是决策树,这周接触了算是第一个最优化问题-Logistic Regression。逻辑斯提回归实际上是一种分类的算法,是广义上的线性回归,与感知机很相似。做个小小的预告,下篇将探讨支持向量机(SVM),算是近期ML学习的一个小的节点,因为接下来将精力转移到深度学习的入门。但仍会一如既往的在博客上更新一些想法,ML的学习不会结束,后面将进行更深入的学习。
线性回归
-线性模型形式简单、易于建模,许多功能更加强大的非线性模型在线性模型的基础上通过引入层级结构或高维映射得到,在神经网络入门的第一个实例XOR问题中有所体现。线性回归问题求解和LR回归类似,只是为了完成分类任务将任务的真实标记联系到单调可微函数上。这种分类学习的优点是无需知道先验分布,同时不仅可以得到“分类”,更可得到近似概率预测。此外对率函数是任意阶可导的凸函数,这个解释一定程度上解答了梯度下降为何可以很好得解决这个问题。
核心思想与推导
-利用回归模型
梯度下降的原理:
下面是梯度下降法的推导,可能有些错误,希望指正:
代码如下:
def gradAscent(dataMatIn, classLabels):
dataMatrix = np.mat(dataMatIn)
labelMat = np.mat(classLabels).transpose() #转置
m,n = np.shape(dataMatrix)
alpha = 0.001
maxCycles = 500#迭代次数
weights = np.ones((n,1))
for k in range(maxCycles):
h = sigmoid(dataMatrix*weights)
error = (labelMat - h)
weights = weights + alpha * dataMatrix.transpose()* error
return weights
学习过程中的思考
《实战》一书中迭代的代码并没有做公式上的解释,之前我对于LR回归的理解错误在于对梯度下降优化的目标函数理解有误。经过下午的反复思考结合蓝皮书上的似然函数以及梯度下降的基本原理做了简单的推导从而理解了这段代码。学习过程中一个模棱两可可能会导致对知识的一知半解。同时西瓜书上很好的解释了线性回归和LR回归的关系,以及和感知机之间的联系,三个算法的几乎完全一样,但目的和理解上略有不同。在看花书前馈神经网络的时候看到了线性模型的用处,希望以后可以在这里继续补充关于线性模型的进一步思考。张侃建老师上课提到了最优化问题中的全局最优和局部最优问题,也是这类算法需要着重解决的。还有很多思考没有继续,还有很多思考有待补充,先告一段落,谢谢。