• 机器学习入门一


    对于某类任务T性能度量P,如果一个计算机程序在T上其性能P随着经验E而自我完善,那么我们称这个计算机程序从经验E中学习。

    应用领域

    • 数据挖掘
      • 收集网络点击数据或者说点击流数据,进而更好理解用户并更好地为用户服务
    • 医疗记录
      • 将医疗记录转化为医疗知识,就能更好理解疾病
    • 计算生物学
      • 因为自动化,生物学家收集了关于基因序列DNA序列等的大量数据,让我们更好理解人类基因组
    • 我们无法手动编写的程序
      • 自动驾驶的直升
      • 手动识别:例如跨国邮寄,将信封上的文字识别出来,然后自动给你的信规划路线
      • 自然语言处理或计算机视觉:AI中理解图像的领域
    • 私人定制
      • 例如使用亚马逊的时候,它会推荐电影、产品或者音乐给你。这就是学习算法
    • 理解人类的学习过程和大脑

    监督学习和无监督学习

    • 监督学习:我们教计算机做某件事情。

      有监督学习的数据集中有标签列,由标签列“监督”学习。学习的成果是将数据拟合成函数或逼近的函数。有监督学习是最常见也是应用最广泛的一类机器学习任务
    • 无监督学习:让计算机自己学习做某件事情。

      无监督学习的数据集中没有标签(没有标签的原因可能是人工标注成本太高,或由于缺少先验知识)。无监督学习的目的往往是发现某种关系、关联规则,没有显式定义目标函数。比如聚类,聚类的目的是把相似的东西聚集在一起,而不关心聚集的类别是什么,常用的算法有K-means、K-medoids等

    监督学习

    我们给算法一个数据集,其中包含了正确答案,而算法的目的就是给出更多的正确答案

    回归问题

    如下图,房价预测问题,给出一个房屋面积及其卖出价格的数据集,这些值都是离散的,然后机器学习的目的是通过这些数据模拟出拟合曲线,可能是一次函数也可能是二次函数,由离散的数值设法得出连续值的属性,称为回归,这类型的问题也称为回归问题
    在这里插入图片描述

    回归:回归是我们的目标,是预测一个连续值输出

    分类问题

    分类的目的是预测离散值的输出,例如癌症检测,横轴表示肿瘤的大小,纵轴表示是否是恶性肿瘤,0表示不是,1表示是,该实例中离散值只有两个,相对而言比较少,这是一个分类问题,也就是设法预测出离散值的输出,这里就是设法去预测是否是恶性肿瘤
    在这里插入图片描述
    分类问题中也可以使用其他符号进行标记,使得数据可以线性处理,如下圆表示无肿瘤并且落在某个位置就表示相应的大小,叉继续表示恶性肿瘤,位置同样有相同的作用
    在这里插入图片描述

    分类:分类的目的是预测离散值的输出

    • 根据y变量连续或离散的属性可将任务分为分类问题和回归问题
    • 当y变量是连续变量时为回归问题,比如预测房价
    • 当y变量是离散型变量时为分类问题,比如预测好与坏
    • 更进一步,根据y取值的唯一值个数不同,可将任务分为二分类和多分类
    • 根据分类问题的y是否有序,可进一步分为排序问题非排序问题

    无穷的处理

    如上述肿瘤问题中,只有两个特征,实际上学习问题可能存在,无穷的特征、无穷多的属性,如果进行线性存储,那么就会使得计算机内存溢出,这个时候就涉及到“向量机”,他允许计算机处理无穷多的特征

    支持向量机:允许计算机处理无穷多的特征

    无监督学习

    在监督学习中的每一个样本已知所谓的正确答案。如上述的肿瘤实例中,我们知道每个人对应是否是良性或者是恶性的肿瘤

    概念

    无监督算法就是只给算法一堆数据,并没有告诉算法这对数据类型是什么,甚至有那些类型都不知道,然后在其中找到某种数据结构

    聚类算法

    算法只是被告知这里有一个数据集,不知道数据点究竟是什么等等,然后在其中找到某种数据结构,将数据分成两个不同的簇,这就是聚类算法

    聚类算法有许多应用领域

    • 组织计算机集群: 它被用来组织大型的计算机集群,也就是大型计算机集群,并试图找出哪些机器趋向于协同工作,如果你把这些机器放在起,那么这些机器就能高效率地工作
    • 社交网络分析:如果得知你email最频繁的联系人之类,判断哪些人认识
    • 市场细分中应用:将公司的客户向不同的细分市场中进行销售
    • 天文数据分析:星系形成理论的形成

    鸡尾酒会算法

    在鸡尾酒会上,有不同的说话,例如有两个人说话,并且有两个麦克风,因为距离各自的人不同,所以录音的大小不同,鸡尾酒算法就是从该混合的录音中分离出具体的声音

    模型描述

    在监督学习中,我们有一个数据集,它被称为训练集。例如房屋相关的训练集中,以房屋面积为横坐标,对应的价格作为纵坐标。m为训练样本的数量,例如数据有47行,那么m=47也就是47组数组。x为输入的特征值y为输出的记录,对于该案例中,x就是房屋面积,y就是对应的价格。

    (x,y)是一组数组, ( x i , y i ) (x^{i}, y^{i}) (xiyi)
    在这里插入图片描述
    如下算法,首先是以训练集作为输入,然后经过学习算法,得到h,也就是假设函数,该函数用来进行预测的函数,可以向假设函数添加一个输入然后得到一个输出,因而当我们设计一个学习算法时,下一个需要做的是怎么表示这个假设函数
    在这里插入图片描述

    其中假设函数可以是以下形式(可以有其他更复杂的形式,例如其他的非线性函数,现在就线性回归进行示例),并且引入相关的属于θ0θ1,类似θi这样的参数成为模型参数,该表达式是线性回归相对应的表达式
    在这里插入图片描述

    线性回归

    什么是线性回归

    线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。其表达形式为y = w’x+e,e为误差服从均值为0的正态分布

    本质上说,这种变量间依赖关系就是一种线性相关性,线性相关性是线性回归模型的理论基础

    线性回归要做的是就是找到一个数学公式能相对较完美地把所有自变量组合(加减乘除)起来,得到的结果和目标接近

    所以线性的定是:自变量之间只存在线性关系,即自变量只能通过相加、或者相减进行组合

    如下图,这种模型称为线性回归,准确来说是一元线性回归,另一个名字是单变量线性回归

    回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。如果回归分析中包括两个或两个以上的自变量,且因变量和自变量之间是线性关系,则称为多元线性回归分析

    h函数可以是如下函数模型,也就是y关于x的线性函数,也可以是其他的非线性函数

    在这里插入图片描述

    线性回归中,图像不仅仅是一条直线,因为线性回归包括一元线性回归以及多元线性回归,对于 一元线性回归,他是一条直线,但是对于多元线性回归,他可以是一个超平面,数据散落在超平面的两侧
    在这里插入图片描述

    代价函数

    代价函数

    代价函数是什么

    解决的问题是:如何把最有可能的直线与我们的数据相拟合,相对于上述的j假设函数的形式中,就是确定θ0θ1,进而确定h函数

    对于h函数而言,θ0和θ1的不同造就不同的代价函数
    在这里插入图片描述

    对于模型参数的确定,θ0和θ1的确定是在训练集中给出训练集中的x值,θ0和θ1,使得x最接近y

    基于上述,我们给出标准的定义,在线性回归中,我们要解决的是一个最小化问题,我们要写出关于θ0和θ1的最小化,也就是通过这些模型参数以及输入的特征值x,使得h(x)与实际的值y的差值尽量小(本次案例中只有主要对一元线性回归举例)

    实际最小化是对于整个训练集而言的,对于h(xi)表示的是第i组训练数据,使得整体数据的最小化,也就是所有的组的特征输入经过预测函数输出后的值h(xi)与实际的yi最小化,这个时候就可以使用到平方差,如下图,当平方产差最小的时候,整体最小化,也就能确定对应的模型参数

    这里通常使用1/(2m),然后使得整体最小

    如下述,这就是一个代价函数,有时候也称为平方误差代价函数
    在这里插入图片描述

    简化代价函数进行可视化理解

    对于代价函数的理解可以通过将假设函数设置为如下的简化形式,方便可视化理解

    图中的红色的差,是实际的调研的数据。现在可以进行调整θ1的值进行查找θ1使得代价函数最小

    如下图,当θ1=1且θ0=0时,可以得到代价函数的值是1
    在这里插入图片描述

    当θ0=0,θ1=0.5等于其他值的时候
    在这里插入图片描述
    θ0=0,不断调整θ1的值,最终得到下述曲线,可以看到当θ1=1的时候,代价函数最小,并且值为0,符合实际
    在这里插入图片描述

    完整代数函数图像(高线图表示)

    在这里插入图片描述
    如下是3D图像
    在这里插入图片描述

    如下为高线图,其中右边代数函数的高线图中,每个椭圆形上的点(如下标记出的是三个点)的代数函数值相等

    高线图中,每个圆圈相当于上述3D图的每一圈从上向下投影到θ0和θ1的平面上,因而每个椭圆上的点是相等的。因而这个椭圆圈的中心是对应的最小的代数函数值
    在这里插入图片描述

    梯度下降算法

    一种能够自动寻找使得代价函数最小的θ0和θ1(这里仅举例两个,事实上可以包括多个)的算法,,他不仅被用在线性回归上,还被广泛应用于机器学习的众多领域,梯度下降算法可以解决更为一般的问题

    过程

    梯度下降算法可以表示一般问题,但是本次学习中,简便起见,仅设置θ0和θ1,也就是对应的单变量线性回归(一元线性回归)

    • 开始的时候设置θ0=0,θ1=0(也可以初始化其他值)
    • 然后不断改变θ0和θ1,使得代价函数的值不断变小,直到我们找到代价函数的最小值

    如下图,在选定了一个起始点后,根据梯度下降算法,得到如下路径,在最底部收敛,也就是局部的最优解
    在这里插入图片描述
    当起始位置偏移后,会使得路径可能收敛在其他的点上,也就是可能是其他的最优解的值

    • 在这里插入图片描述

    梯度函数表达式

    梯度函数算法定义,如下图公式,该公式会不断重复执行,直到局部收敛,也就是一路走到从某个位置开始的最底部的地方,也就是代数函数的值最小的时候

    • 在计算机中:=表示赋值,而a=b表示的是真假判定
    • 下述中α是被称为学习速率的数字,用来控制梯度下降时,它控制我们以多大的幅度更新这个参数θj 。
    • α太大可能会越过最低点,进而导致无法收敛或发散
      在这里插入图片描述

    使用梯度算法的一个细节:对于上述的更新方程,需要同时更新θ0和θ1,具体的原因是在实际算法中,θ0更新为θ0减去某项,θ1更新为θ1减去某项。对于上述的例子中,因为当代数函数的值是,可以看到左边是θj,其中j=0或者是j=1,也就是θ0和θ1更新的值是取决于右边的计算的值,该过程重复迭代,直到局部收敛
    在这里插入图片描述
    如下图,是错误的做法,没有做到同步更新,因为首先更新θ0的时候,下一步计算temp1的时候就会使用到新的θ0,这样就是不对的
    在这里插入图片描述

    梯度下降函数的更新规则

    对于梯度算法的算法方程,α右边部分是一个导数项,因为代数函数是一个平方差,那么他的值就是非负的,并且学习速率α只能是正数,

    在这里插入图片描述

    当θj与代数函数的坐标中是正斜率,如下图右边,这个时候θj就会不断减少从而实现梯度下降
    在这里插入图片描述
    而当当θj与代数函数的坐标中是负斜率,如下图左边,这个时候θj就会不断增大从而实现梯度下降
    在这里插入图片描述
    当代数函数的值是0的时候代数函数的值为最小值,这个时候θ0和θ1不变,根据这个条件可以判断这种情况下,达到最低点

    在这里插入图片描述
    下图显示了梯度下降函数,在α不变的情况下,从某一点开始(如下图右边右上角的品红色的点),随着向下跨越,导数项越来越小,那么θ1更新的值也越来越小,在接近于极小值的时候,几乎是不变的,因而不会产生跨越最小值的情况
    在这里插入图片描述

    如上就是梯度下降函数的运行模式,可以看出实际上是没有必要另外减少α

    线性回归的梯度下降

    线性回归函数与梯度下降算法的结合

    两部分函数如下

    在这里插入图片描述
    对应的导数项的值形式如下:
    在这里插入图片描述代回代数函数如下:
    在这里插入图片描述

    线性回归函数的代价函数

    线性回归函数的代价函数,总是一个弓状函数,这样的函数成为凸函数,这个函数没有局部最优解,只有全局最优解

    ,
    在高线图中,椭圆中心就是全局的最优解
    在这里插入图片描述

  • 相关阅读:
    例39:使用List控件
    linux如何一键自动安装系统(PXE)
    C++ "链链"不忘@必有回响之单链表
    第五章:数组
    Linux服务器中配置tomcat的服务,并通过端口8888访问
    【ES的优势和原理及分布式开发的好处与坏处】
    基于开源IM即时通讯框架MobileIMSDK:RainbowChat v10.0版已发布
    mysql与磁盘的关系
    解决transform带来的z-index失效问题
    AI绘画升温、AI写作降温,AIGC玩“变脸”
  • 原文地址:https://blog.csdn.net/qq_43967413/article/details/126902993