机器学习(一)

机器学习

    定义: 在没有明确设置的情况下,是计算机具有学习能力的研究领域

                一个适当的学习问题定义如下,计算机程序从经验E中学习解决某一任务T进行某一性能度量P,通过P测定在T上的表现因经验E而提高

 

监督学习:我们给学习算法一个由“正确答案”组成的数据集,再根据这些样本做出预测。

无监督学习:(没有把数据集的正确答案给算法)没有任何的标签或者是有相同的标签,就是一个数据集,无监督学习针对数据集可以判断出数据有几个不同的聚                           集簇,彼此不同,可以是聚类算法;聚类只是无监督学习的一种,鸡尾酒会算法,从两个人重叠的两个录音中,找去数据的结构,并且分离出两个音频

 

第一个学习算法线性回归

    回归:预测一个具体的数值输出

    分类:预测离散值的输出(只有0和1)

    m=训练样本的数量

    x=输入变量或特征

    y=输出变量(要预测的目标变量)

    (x,y)表示一个训练样本

    (x^(i),y^(i))表示第i个样本h

    向学习算法提供训练集,学习算法的任务是输出一个假设函数h,根据这个函数,输入x可以得到相应的y值  y=ax+b一元线性回归也叫单变量线性回归

 

 

 这样的称之为模型参数,那么如何选择参数值,不同的参数值就会有不同的假设函数

 

 

    标准定义:在线性回归中我们要解决的是一个最小化问题,关于模型参数的最小化,是得h(x)与y之间的差异要小(减少假设输出与真实值之间的差的 平方1/(2m)∑(h(x)-y)^2     其中m为样本数量,1/m是指平均值,这里加上2是为了一会利用梯度下降法求导的时候可以消掉,使结果更简洁),这是代价函数也被称为平方误差代价函数(这是解决回归问题最常见的手段)

 

在这里我们认定模型参数0为0,对模型参数1的值进行假定

 

 

 

               假设模型参数的值,根据模型参数的值计算出J平方误差代价函数的值

     线性回归的目标函数,通过选择模型参数的值,来获得最小的J,模型参数为1时,J最小

    

    

     保留全部模型参数0和1,模型参数0和1都有,所以是一个立体图像,还是假定模型参数0和1的值,退出J

 

 

 

 使用等高线展示代价函数  这个z轴相当于J,这个等高线就是使用z=常数,所截得轮廓,所以J是相同的,等高线的中心是碗底是最低点

 

 

 

     

    

    

 

    梯度下降算法:最小化任意函数,可应用于一般函数

    思路:给定模型参数0和1的初始值,通常两个都为0,不停地一点点改变模型参数0和1的值,使得J变小,直到找到J的最小值或者局部最小值(从一点出发,找到基于这一点的梯度下降最快的下一点,去到下一点之后,再在这一点找梯度下降最快的下下点,循环,知道找到局部最小值)

 

 

 :=赋值运算符   α:学习率(正数),用来控制梯度下降时,迈出多大步子 ,阿尔法越大,梯度下降就越迅速   阿尔法后面的式子是一个导数项  需要同时更新模型参数0和1,且模型参数j=0和j=1时就会产生更新,下面的式子是梯度下降算法的过程

    如果模型参数已经处在一个局部最优点,那么它的导数为0,因为最低点切线是水平的,如果在局部最优点模型参数将不再改变,新的模型参数等于原来的模型参数

                       在梯度下降法中,当我们接近局部最低点时,梯度下降法会自动采用更小的幅度(因为斜率越来越小,导师也会越来越小,从而下降幅度会越来越小)

 

 

 

 

 

    将梯度下降和代价函数结合起来得到线性回归算法

    

 

 

      偏微分求导   

  

 

 

   然后根据梯度下降算法,不断重复该过程直到收敛

  

 

 

 

 

 

 

 

 

矩阵和向量

    矩阵:由数字组成的矩形阵列,并写在方括号内  行*列维矩阵

    向量: 是一种特殊的矩阵,是只有一列的矩阵 n*1表示n维向量

      默认我们使用的是1开始的下标向量 ,大写的英文字母表示矩阵

 

 

 

 使用矩形矩阵相乘,可以预测房子的价格

 

 

 矩阵相乘结果的第一列是房屋大小在给定模型参数0为-40,模型参数1为0.25的情况下所得的房屋价格,基于第一个假设做出的预测结果 

    矩阵乘法是不可交换的

    矩阵的乘法符合结合律

    和单位矩阵的乘法满足交换律

    只有|A|≠0才有逆矩阵

 

 

 

 

 

 

 

 

多个特征变量

   

 

为了简化方便将x0的值设为1,也就是对于第i个样本,都有一个向量xi,并且xi0=1,定义了一个额外的x0特征向量

 

 

 已经使x0=1,执行梯度下降,梯度下降求导之后

 

梯度下降算法中的特征缩放方法

    一个机器学习问题,有多个特征,确保不同特征的取值都处相近的范围内,这样梯度下降法就能更快地收敛,我们可以把特征的取值约束到-1到+1的范围内,可以通过不同的除数或者均值归一化的工作,来让它们处于同一范围内,比如你有一个特征x_i,就用x_i-u_i来替换,使你的特征值具有为0的平均值,x_0==1恒等所以不需要均值归一化

 

 

 以上是均值归一化的一些例子

(x1-u1)/s1  这里的u1是训练集中特征x1的平均值,s1是该特征值的范围(这里的范围是指最大值减去最小值,有点像标准正态分布的标准差)

只要将特征转换为相近似的范围就可以,特征缩放不需要太准确,只是为了让梯度下降能够运行得更快一点而已

 

 

梯度下降算法的学习率α的选择

    梯度下降算法所做的事情,就是为你找到一个θ,并希望他能够最小化代价函数

J(θ)

 

 

 

  x轴代表梯度下降算法的迭代次数,之前的J(θ)图中,x轴代表表示参数向量θ

 。如果在100次迭代后得到某个θ值,针对这个θ值评估代价函数J,这个点的垂直高度就表示梯度下降算法100步迭代之后得到的θ算出的J(θ)值。如果梯度下降算法正常工作的话,每一步迭代之后J(θ)都应该下降,当你迭代到一定次数之后,这条曲线已经很平坦来,说明梯度下降算法已经相对收敛,代价函数没再继续下降了,很难提前判断梯度下降算法,我们通常通过这种曲线判断梯度下降算法是否已经收敛;我们也可以通过自动收敛测试(一种算法)来告诉你梯度下降算法是否已经收敛,如果代价函数J(θ)一步迭代后的下降小于一个很小的值,这个测试就判断函数已收敛,通常选择一个合适的阈值是相当困难的。

    如果看到一个图形J(θ)实际上在不断上升,这就表明梯度下降算法没有正常工作,梯度下降算法没有正常工作,而这样的曲线图通常意味着你应该使用较小的学习率α,如果看到的一个图形是开口向上的类似x^2+2x+1=0的函数图像,如果学习率α太大,会使一个在单调递增点迭代到下一个点直接去到单调递减的一个点,而不会去到最低点,这种情况说明现在的学习率α太大,需要选择一个比较小的α,使得迭代的步伐较小一点,慢慢下降到最低点

 

 这样的情况下解决方法时选择较小的α值,只要学习率α足够小,每次迭代之后的代价函数J()都会下降,运行梯度下降算法时,尝试不同的α值0.001  0.003  0.01  0.03  0.1  0.3  1  这样的一系列α值

 

 

多元线性回归

    

 

 

  使用三次模型进行拟合 ,不选择二次函数的原因是因为是抛物线形状,抛物线不但有上升段,还会有下降段,但是房子的价格是不太会想让他下降的

 

 

 

正规方程

    正规方程提供了一种求θ的解析解法,不需要运算迭代算法,而是直接一次性求解θ的最优值

    

 

 

逐个对参数θ_j求J的偏导数,然后把它们全部置零,求出θ_0一直到θ_m的值,这样就能够最小化代价函数J的θ值

多元线性回归,这里的w1就是指θ1

 

 

 

 

 

 

 

 

 

 这样可以得到使代价函数最小化的θ,这里的x是m个n+1维向量,共有从x^(1)到x^(m

个向量,每个向量都是从0到n个数,是个n+1维的 

行列变换,X*θ=y ,左右同时乘(X^T*X)^(-1)X^T,左边会变成I*Theta = Theta = 右边

 如果X^TX是不可逆的,在Octave中inv是伪逆,即使不可逆也可以求出θ值

矩阵求导

       

 

 

 A是不包含x的函数,前导不变后导转置

 ,转置的矩阵微分等于矩阵微分的转置

 

 

m个训练样本,n个特征变量

正规方程

    不需要选择α,计算方便,也容易实现,不需要迭代,不需要画出J(θ)的曲线来检查收敛性或者采取任何额外步骤

    缺点:我们需要求解θ这项值,进行计算,如果特征值很多,计算逆矩阵很麻烦,正规方程法会慢很多

  如果n很小,正规方程能更好地求解参数,超过一万就要考虑使用梯度下降法或者其他算法

  

    

    

梯度下降法

    缺点:需要选择学习速率α,通常表示需要运行多次,尝试不同的学习速率α,找到效率最好的,是一种额外的工作和麻烦

       需要更多次迭代,取决于具体细节,计算可能会更慢

    优点:梯度下降法在特征变量很多的情况下,也能运行地相当好

 

posted @   小小是  阅读(92)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示