什么是机器学习?

机器学习是人工智能的一个分支,它使的计算机系统能够通过数据来改进性能,而无需进行明确的编程。就是让机器通过经验学习,从而能够识别模式,做出预测或者决策。

像教孩子识别猫狗一样,让电脑自己学会分辨,判断,预测。


监督与非监督学习

监督机器学习 supervised machine learning

 定义   机器学习的一种类型,利用带标签的数据集(一直输入x和对应输出y)来训练模型,使得模型能学会从输入预测输出。换句话说就是让机器学习一个从x->y的映射函数。

监督学习的两大类型

回归  

  1. 输入可以有多个x值,而输出是一个确定的数值(连续区间中的数,而不是离散的类别)。
  2.  比如:根据面积,地段,房龄预测房子的价格;根据广告投入,季节,当前经济状况预测 销售量。
  3. 回归就相当于画曲线,找到输入和输出之间的数值关系

分类

  1. 输入可以有多个x值,输出判断他落在那个类别的边界区域,从而获得分类。模型通过学习训练数据中不同类别的特征分类,从而找到各类别的边界。
  2. 比如:通过年龄和肿瘤大小等等判断肿瘤恶性还是良性。通过图像识别判断猫,鸟还是狗。
  3. 分类就是找界限,把不同的类别分开。

无监督学习(unsupervised learning)

定义  无监督学习是机器学习的另一种类型,它不依赖于已有的标签(没有已知的y值)。模型通过分析数据的内部结构,模式或者相似性,自行发现规律,分组或者特征。简单来说,就是让机器自己找规律,数据仅带有输入x而没有输出y标签,算法需要在数据中找到某种结构或模式。

无监督学习常见类型

聚类

  1. 把数据分成若干组,同一组内部数据相似度更高,不同组数据差异大。将相似的数据点组合在一起。
  2. 比如:根据消费习惯,年龄,地区将客户分群,为每个群体制定不同的营销策略;把相似风格的图片聚在一起进行图像分组。

异常检测

  1. 识别和大部分数据明显不同的“异常点”或“异常行为”。大部分数据遵循某种模式,偏离模式的数据就是异常。
  2. 比如:在网络安全中检测异常流量或入侵;在工业设备中监测故障或者异常运行的行为
  3. 就是找到不合群的点。

降维

  1. 把高维数据压缩到地位空间,同时保留最重要的信息特征。减少冗余特征,让数据更容易理解和可视化。
  2. 比如:噪声去除,保留主要信息,去掉不重要的特征;特征压缩,减少计算量,提高模型效率。
  3. 把复杂数据压扁,同时保留主要特征。

线性回归与代价函数

线性回归

概念 线性回归是一种监督学习方法,用于预测连续性数值,假设因变量y和自变量x之间存在线性关系,用一个线性函数去拟合他们。

线性回归模型

单变量线性回归

  1. 单个输入特征x :\hat{y}=\theta _{0}+\theta _{1}x
  2. 预测值\hat{y}是对真实值y的估计

多变量线性回归

  1. 多个输入特征 x_{1},x_{2},x_{3},...x_{n}: \hat{y}=\theta _{0}+\theta _{1}x_{1}+...+\theta _{n}x_{n}  
  2. \hat{y}是预测值向量

代价函数(成本函数)

为了实现线性回归,第一个关键步骤是首先定义一个叫做成本函数的东西。成本函数将告诉我们模型的运行情况,以便于我们尝试将他做的更好。衡量一条直线和训练数据的拟合程度,以便我们找到最合适的参数值。

定义 代价函数是用来衡量模型预测值和真实值之间差距的数学函数

目标 

  1. 找到最优参数\theta _{0},\theta _{_1},使直线尽量贴合数据
  2. 需要一个量化指标:代价函数(直线偏离真实数据的程度,如何调整参数可以让拟合更好)

损失函数

  1. 衡量单个版本的预测误差
  2. L^{(i)}=\left ( \hat{y} ^{\left ( i \right )}-y^{\left ( i \right )}\right )^{2}

构建代价函数

  1. 随着训练集大小总打,误差值汇编额增大,不方便比较不同数据集
  2. 取平均得到代价函数(成本函数):T\left ( \theta _{1},\theta _{2} \right )=\frac{1}{2m} \sum_{i=1}^{m}\left ( \hat{y}^{\left ( i \right )}-y^{\left ( i \right )} \right )^{2}

梯度下降

定义  梯度下降是一种优化算法,用于寻找函数的最小值。在机器学习中,我们通过梯度下降来最小化代价函数J\left ( \theta \right ),从而找到最佳参数\theta->就是让模型“顺着代价函数的山坡往下走”,直到走到最低点(全局最小或者局部最小)。

梯度下降的核心思想 
  1. 每次更新参数的时,往往使代价函数变小的方向移动一点 \theta _{j}=\theta _{j}-\alpha \frac{\partial J\left ( \theta \right )}{\partial \theta _{j}}
  2. \theta _{j}:模型的第j个参数
  3. \alpha:学习率,表示每次移动的步长 太大:可能跨过最低点,震荡甚至发散;太小:收敛太慢,训练时间长
  4. \frac{\partial J\left ( \theta \right )}{\partial \theta _{j}}:代价函数在当前点的偏导
梯度下降的过程
  1. 初始化参数:随机给定一组\theta _{_{_{0}}},\theta _{1}
  2. 计算梯度:根据当前参数,计算代价函数对个参数的偏导
  3. 更新参数:使用更新公式让参数朝着“降低误差”的方向移动
  4. 重复:不断迭代,直到代价函数收敛(变化非常小)或达到制定迭代次数
直观理解
  • 相像代价函数J\left ( \theta _{_{0}},\theta _{1} \right )是一座山
  • 山顶是误差大(模型不好)山底是误差最小(模型最佳)
  • 梯度下降就像一个“盲人”拿着拐杖往下走,每次根据斜率判断走的方向和步长,直到到达山谷底
Logo

码道开发者社区,聚焦华为云码道 CodeArts 代码智能体,沉淀 Agent、Skill、鸿蒙开发实战内容,供开发者查阅资料、交流技术、分享工程实践

更多推荐