自然界存在着大量线性关系的数据,线性关系的表达在数学里
用
p
y
t
h
o
n
表
达
用python表达
用python表达,称为内敛模式.行内公式,
p
y
t
h
o
n
表
达
python表达
python表达块模式,独占一行居中
这就是线性关系的表达
这种表达方式称为初中模式
另外的表达模式,x加上a的方式,矩阵和向量的概念
这样x和a的乘积就是向量的内积
这是大学线性代数学的
内积的概念就是从上面的乘积来的
也就是用x一组数据,每一个位置对应相乘求和的概念就叫内积
线性代数的概念,表达的越简洁越好,真正到计算机层面还是要实际落地层面,简洁的是推理方便,运用计算机上基本是抓瞎,因为计算机也是1个1个算的
线性回归的任务,就是求解A,所谓的线性回归就是解方程
整个数学推理,怎么去求解A
所谓线性关系,最后得出一个值,如果把x看成一个数,把a看成一个系数,大小体现了这个x数的重要性。跟投票类似,a投5票,权重就是5,你这票就值钱,很重要,就影响你投票的最终结果。这是线性代数里体现的最直接的固定意义
补充:线性代数最匀长的物理意义,线性运算的物理意义,物理和数学是不分家的,x使用系数a做乘积,然后累加(系数就是权重,结果x的权重的融合。
多个x,用系数的方式变成一个结果,多个数字变成一个结果
实际上x当成数据特征,a当成权重,为了线性运算,最后化成一句话:特征融合(有些不重要特征在加加减减中淘汰掉,有些数据权重比较高的,变成了主要的特征)
线性回归里面的概念就是把里面所有的特征融合在一起做预测,融合的特征才起关键性效果
神经网络,多层的神经网络去推导,就是每一层融合,消亡,每一个特征反复的锤炼,形成最后的靠谱特征
训练出的数据和真实数据是有差异的,因为不在一条线上
所有的x数字叫特征,所有的系数不叫a,叫权重,每一个特征的权重加加减减,决定特征的消亡和融合,最终把无用的特征消除掉,有助于我们分类和判别
、
本质还是下面的东西
写代码运算的时候还要一个个加
加上一个epsil误差值
最终我们要求到的线性关系,最终我们看到的应该是有误差关系的,现实和理想之间永远有差距
这个误差永远在真实值周边徘徊,就可以做假设,基于经验做一个假设,
1.每次测量的数据的误差都是独立
2.误差实际上遵循正态分布(高斯分布Gaussian)
这两个假设就导致下面的推理可以轻松了
正态分布表达公式,概率公式。
分子1,sqrt平方(2),pi派Π,sigma西格玛,dfrac分数({分子}{分母}),mu英 [mju:]
加上括号
x表达一个样本特征,鸢尾花数据有150个,每个数据有4个特征,(x0,x1,x2,x3),相当于150*4=600个数据,600个数据分成150条样本,每个样本4个特征,每一条数据的特征由一个系数来控制重要性,通过每个W就决定了它的重要性。所谓机器学习就是找到这个特征的重要性,也就是判断这个特征到底是重要还是不重要,深度学习也是机器学习
最后不像上面那样表达了
就变成了误差所遵循的概念
线性回归会有误差,误差不是独立分布的,是动态分布的,w的值是误差概率来自于2个前置条件,取决于x,y,这两个误差是w和x作为前置条件,写成了条件概率的补算
再做一个假设,这个假设认为是标准的条件分布,sigma作为下面的值理论上就应该等于1,mu(μ)应该等于0,等于0就是以y值为对称值的动态分布
这个y实际上是误差产生的概率,最后成为一个标准的动态分布
可以把epsilon变成y-XW
理论上是线性回归,真实是有误差的
动态分布也变成epsilon的概率计算公式
这个概率公式换算一下,已知x和w的情况下,y产生了误差,y的误差是x和w引起的
这个概率换算真实概率的误差值,这个误差值就是真实数据和理想数据之间的一个误差
后面都是基于分子值的推导,一下就把原来线性回归中分子值和理想值之间的误差用到一个完全很抽象的动态分布去表达
分值和理想值之间差了一个epsilon
这个epsilon就可以假设成独立的,动态分布的
最难的在这里。
有一个理想状态(我们是求w,有一个使命就是理想值和真实值之间的差距,使得误差最小,也就是使得概率最小)
多个样本的所有分布概率l表示(高等数学,样本的参数统计),总体概率的表达用L表示,(假设L个样本,多个样本的概率乘起来,多个误差同时发生,这个叫乘积prod,围绕上下标limit(左上角右上角i从1开始,上面是m个样本)
这样就把所有的概率乘起来
把样本用i表示,i个样本,全部用上标的方式,w只有一个
150个样本,所有的概率同时发生,肯定是求乘积,其实要求它的最大值,最小值,总体概率,误差越大,概率越小,误差越小,概率越大,从总体样本来看,看到的乘积表明了,我们所有样本同时发生误差下的,这个所谓的概率状况
这个概率状况跟w有一定关系,期望这个误差值越来越小,趋于0,概率就是最高的
也就是epsilon越靠近真值,概率越大
把这个px删除,用上面的代替
最终的总体概率变成了这样
如何使得误差越来越大,L(W)最大似然函数,误差越小,产生的概率越高,演变成求最大似然函数的最大值
过程过于枯燥,直接看结果,指数函数用小l(w)等于似然倍数
上面替代L(W)
倍数乘积变求合
log值放到后面去计算
求和就变成了sum
一求导,这个公式就出来了
数学确实反应自然界规律
常数求和就变成m
西格玛的平方单独剥离出来
再加上一个空格,分数dfrac分子1,分母2,最终看到的是一个求和
把2分之西格玛的平方剥离出来,就是上面的
理想模型的线性函数和现实有误差,产生epsilon(就是理想和真实值的误差,这个差值实际上是动态分布,动态分布变成一个概率模型,概率模型在多样本情况下,概率越小,误差越大,变成一个求似然函数的最大值)
最大值不好求就求似然倍数l,后面那个就是平方差公式,平方差公式就是分子值和理想值,求平方再求和
加上下标i=1,上标m
最终得到一个事实就是使l(W)最大
似然函数是概率最大变成了求平方差最小
因为概率越大,损失越小
看穿数学的本质,机器学习就变得很简单
从最早的概率公式,保持这个数据最大,遵循分布,把问题不断转换。误差越小,概率越大,就变成损失函数最小,也就是跟epsilon相同的目的,叫误差损失函数,跟epsilon不是一个事情,它是epsilon的统计公式。其实就是一个平方差公式,数据之间差距的用差平方的方式来度量
剩余的问题就是一句话,求解误差损失函数的解,有几种求法,最小二乘法,梯度下降法,牛顿迭代法,拟牛顿法,坐标下降法
导出一个w,这个函数是最小的,通过比对的方式,就是最小二乘法
机器学习的规律的标准套路
把上面的损失函数copy下来进行求解
y是一般的标量值,
这个平方和有一点抽象
这个上标叫转置矩阵
可以看成y的转置
用内积的方式定义会重新回归上面的状态
一个y1产生一个值,150个样本,就是150个y,就是下面算出来的
**、原来的y就是一个2,原来的x(i)通过4个向量,写在一起就是x,最后就是x(0)*w,x(1)w=y1,x(n)w=yn
这两个公式是完全等价的
直接可以把问题转换成向量的运算
pmatrix 竖矩阵(y,),vdots垂直,这样就表达一个矩阵出来
量有多少个,xy就怎么表达
改成大写的
这是用列向量的方式来表达
下面的式子就没有问题
两个矩阵相同就是这么定义的
所谓内积相乘求和,加权求和,内积再机器学习里比比皆是,内积,注意是行乘列,还是列乘行
现在要求w
用先倒数来表达。如果这个倒数从连续的角度叫先倒,如果从离散来讲叫差值,差值需要表达就叫做nabla_WJ(W)
这个表示,就是离散表示符
求实这个
开始推导
下面可以转换成简单的公式
就是把该合并的合并,该加的加
等于0,基本上答案就可以出来
这个答案是算法之一,转置矩阵再乘以y
、
问题是x,长和列相同,矩阵怎么求,但是数学就是这么神奇
机器学习有10大经典算法
在特殊情况下,这个可逆性非常强,这里只是表面有一个最小二乘法可以解出结果
更靠谱的算法,梯度,等,真正影响你分类预测的特征,只有几个,不是每个特征都会影响。
线性有误差的,误差是动态分布的,误差越小,概率越大,概率用最大似然函数来表达,就来用整数函数最小来表达,用二乘法求出来,就是一个矩阵公式。