之前看过吴恩达的机器学习入门和神经网络部分,还有李宏毅的深度学习视频,懂了一些知识打了比赛,但是觉得还不够深入,还有好多知识不懂细节不懂推导,还有一些工具没有掌握,加上没有项目经验,现在准备从头开始系统的学习一下。学习的是唐宇迪视频。
首先一些基本的工具安装和工具的学习只是看着视频跟着敲一敲,准备以后用到,边用边熟悉。
今天算是第一天,线性回归推导。
1.假设函数提出,hypothesis
给出样本变量x,通过θ,找出x与y的线性关系,所谓线性代表了在二维中是一条直线(y=θ0+θ1x),在三维中是一个面。通过变换θ尽量的去拟合直线,尽量的使得到的值与原来的值差距小。像下面的这个图(来自ppt):
得出下面公式,
把θ和x看做向量,X0为1,整理得
2.误差
预测出来的值肯定和原先的值有误差,这个误差设为ε,那么对于每个样本来说都有一个误差,可以得到以下公式(i代表了第几个样本):
(1)
误差是独立并且同分布的,这个分布是并且服从均值μ为0方差为σ2平方的高斯分布,这是假设
由于误差服从高斯分布: (2)
似然函数:
解释:什么样的参数跟我们的数据组合后恰好是真实值。将每一个概率相乘,得到每个概率对总概率的贡献,如果每个概率都很大接近于一说明每个样本的预测值都很接近真实值,L也会越接近于1,整体的误差也会越小。如果有的概率比较小,会影响整体的预测,这个值会降低。
对于连乘不好求,所以两边求log对于θ的估计结果是不变的。
化简得到
对J的x和y进行向量化表示,平方换为矩阵相乘。
对θ求偏导
使偏导等于0,得到向量,这里的XTX必须为可逆矩阵。
对于新的样本x向量,将其与θ相乘,得到y预测值。