我想入门AI,从简单的机器学习开始吧。(这是我学习过程中做的笔记,有见解不同的兄弟姐妹们也欢迎留言)我本人学习过程喜欢看视频而不是看书,针对看视频学习更高效和看书更高效的问题争论过很多次,但是个人感觉视频更高效,知识更容易进入我的大脑袋~
学习这一部分我看的视频是b站-迪哥谈AI的视频,有需要的小伙伴也可以去看看哦。
线性回归可以认为是单层的,多层线性回归就是神经网络。
在有监督学习中,有两类问题——分类和回归。
比如去银行贷款,银行借or不借,属于分类问题;借多少钱,属于回归问题。
线性回归是一个有监督学习,因此在训练模型的过程中需要有“标签”(Y值),X1,X2就是特征。
求回归方程的目标就是求出上图中的“参数”θ1和θ2。
其中,θ1和θ2是权重项,θ0是偏置项,θ0控制平面的上下浮动,只进行微调,不能大范围调整。
在构造上述整合后的函数时,需要人为地加入x0(是为了矩阵的计算),如下图所示:
上式中,θ未知,x已知,整合后的式子即为预测值,那么真实值的计算方法需要加“误差”,如下图所示,平面上蓝色点为预测值,红色为真实值。上标i代表“每个点”:“真实值 = 预测值 + 误差”。
那么,什么叫做“机器学习”?
首先告诉机器你的数据是什么。x就是你的数据。
然后要告诉机器“怎样学”(核心)。这种学习的方法就是Loss _funnction,称作损失函数,也成为“目标函数”。
给机器一堆数据,再告诉它目标,然后机器根据目标的方向,来学习到底什么样的参数最符合目标。
那么,我们希望上图的误差项越小越好,意味着当损失函数 = 0,认为是最好的情况。
误差项是独立同分布的。
通常数据来源于生活,可以近似认为误差服从上图描述,就好比Loss_function = 0无法做到一样,近似即可。
仔细看上面式(1),x和y已知,的分布根据第三节已经知道,它服从均值为0方差为的高斯分布,现在需要求解的是θ。
的分布满足式(2),这个分布是关于误差项的,那我想求的最终结果是谁?是θ!因此要将和相关的式子转换成和θ相关的才行!
就是首先要找个θ,这个θ和x组合之后的函数与真实值y越接近越好,可能性p越大越好。怎么个事儿?继续往下看。
这里就涉及一个东西——似然函数!
在似然函数中,“数据越多,结果越准”,所以要很多数据相乘,那么为啥要相乘而不是相加?这就涉及数学知识:
前面说误差是独立同分布的,这种条件下,联合概率密度=边缘概率密度的乘积。
好的,然后刚刚说“要找个θ,这个θ和x组合之后的函数与真实值y越接近越好,可能性越大越好。”,显然L(θ)越大越好,那就是需要求出L(θ)的极大值,显然,当函数变换为logL(θ),根本不影响θ的取值(想求的是极值点而不是极值)。
下面求解这个对数似然方程的极大值。对数可以把乘法变成加法,我们认为log 就是 ln,即
想要这个似然函数越大越好,就需要B项越小越好,于是就有我们经常见到的式子J(θ),称作损失函数或目标函数。至此,可以看出我们需要求解能让J(θ)更小的θ的值。
至此,你应该能看出,“似然函数”不是“线性回归”所特有的,而是存在于非常多的机器学习问题当中,而且得到最小二乘法的前提是啥?是误差独立同分布!怎么样?前后的知识串起来了吧!
OK,我们趁热打铁,继续计算J(θ)怎么算:
要注意,X可不是一个数字,而是一个“向量”或者说“矩阵”,矩阵求平方时需要转置,也就是第一行的表达式那样(y和θ也不是数字!)。
请问我们的目标是想求什么?答:想求出在θ是多少时能让J(θ)取得极小值,显然将J(θ)对θ求偏导就行!也就是上图中的后面两个式子。
(上面偏导这一步中,用到的公式为:当A为对称矩阵,那么,鼠标写的字,见谅)
至此,完成了对θ的求解。
但是到这里,是不是发现一个问题:所谓的机器学习要强调的是“学习”,这个线性回归的求解过程哪里出现“学习”的过程了?按照上面这个式子,根本看不出学习的过程,直接把X和y带进最后一个表达式即可,没有学习。
理论上我们认为的学习过程,应该是看到第一个样本X,发现和y差了一些,然后调一调,接下来再看和y差多少,不断学习直到和y相差无几。而且最后这个式子出现了“求逆”,这就很难办了,因为并不是所有矩阵能求逆,很多矩阵不可逆,因此很多情况下不能利用上述过程来求解,具体怎么做呢?请听下回分解。
下节将讲解“梯度下降”相关原理。