机器学习的简介

机器学习的初见

举例:创建一个类似Siri一样的程序,让其做到响应⼀个“唤醒词”

一、主要部分

主要组成部分:数据集(dataset)参数(parameter)模型(model)

  • 数据集:包含很多的样本(音频),并且对是否包含唤醒词进行标记
  • 参数:调整程序行为的变量
  • 模型:调整参数之后的模型
  • 模型族:通过操作参数而⽣成的所有不同程序(输⼊-输出映射)的集合
  • 学习算法(learning algorithm):使⽤数据集来选择参数的元程序的过程

总结:学习是⼀个训练模型的过程。通过这个过程,我们可以发现正确的参数集,从而使模型强制执⾏所需的⾏为。

二、训练过程和组件

训练过程通常分为几步:

  1. 随机初始化参数
  2. 获取数据样本
  3. 调整参数
  4. 重复2、3两步,知道参数合适

在这里插入图片描述

所以说我们不是直接编写程序而是编写一个“学习”的程序。

这种通过数据确定程序行为的方法叫“用数据编程”

关键组件

  1. 可以用来学习的数据(data)
  2. 转换数据的模型(model)
  3. 量化模型有效性的目标函数(objective function)
  4. 调整参数来优化目标函数的算法(algorithm)
1、数据
构成

每个数据集都由很多的样本(example,sample)组成(也叫数据点(data point)或者数据实例(data instan)),大多时候它们遵循独立同分布。通常每个样本都由一组叫做特征(features)的属性组成(也叫做协变量(covariates))。在上方学习的问题中,要预测的是一个特殊的属性,被称为标签(label)或者目标(target)。样本的类别数量相同时,其特征向量是固定长度,这个长度称为数据的维度(dimensionality),它有助于量化学习大量样本。

在这里插入图片描述

在互联网的影响下,数据的维度变得更加多元化,与传统机器学习方法相比,深度学习的一个主要优势就是可以处理不同长度的数据。

需求
  • 数量充足(海量)

  • 正确(特征可以预测目标)

  • 均衡(多样性)

  • 代表性(不能存在偏见)

    反例:

  • 正确:语音识别系统的数据,但是用了图片

  • 均衡:健康预警系统,但是只用了浙江人的数据

  • 代表性:简历筛选模型,但是使用的过去招聘数据存在对性别的偏见。

分类

之所以将数据集分类是因为完成一个模型需要训练用数据和检测用数据。

例子:上课教了加法 1+1=2 ,测试的时候再用 1+1=2 就有可能导致不准,应该换一个 2+3=5 来测试是否掌握加法。

  • 训练数据集:由为训练而收集的样本组成,主要为了训练模型,找到参数的最佳值
  • 测试数据集:为测试模型表现情况的数据集。

在训练数据集上表现良好的数据集不一定在测试数据集上表现好。打个比方,训练数据集就像平时的模拟考,测试数据集就像期末考,即使模拟考再好都不能保证期末考一定考好。换句话说,测试性能可能会显著偏离训练性能。当⼀个模型在训练集上表现良好,但不能推⼴到测试集时,我们说这个模型是“过拟合”(overfitting)的。

2、模型

大多数机器学习都会涉及到数据的转换。比如“猫狗照片识别系统”等。简单的模型可以解决简单的问题,但是一些复杂的问题无法被经典方法解决。深度学习与经典⽅法的区别主要在于:前者关注的功能强⼤的模型,这些模型由神经⽹络错综复杂的交织在⼀起,包含层层数据转换,因此被称为深度学习(deep learning)

3、目标函数

指一个可以定义模型优劣程度的度量,大多情况下可以被优化,并希望被优化到最低点,所以有时也称损失函数(loss function)
PS:只是惯例,取反后优化到最高也行。
常见函数

  • 平方误差:预测数值常用,即预测值与实际值之差的平方。
  • 最小化错误率:试图解决分类问题可用,即预测与实际情况不符样本的比例。

通常,损失函数是根据模型参数定义的,并取决于数据集。在⼀个数据集上,我们通过最小化总损失来学习模型参数的最佳值,这个数据集叫训练数据集(见上)。训练好之后还要由一个新的数据集进行测试,这个就叫做测试数据集(见上)。而当⼀个模型在训练集上表现良好,但不能推⼴到测试集时,我们说这个模型是**过拟合(overfitting)**的。

4、优化算法

当我们获得了⼀些数据源及其表⽰、⼀个模型和⼀个合适的损失函数,我们接下来就需要⼀种算法,它能够搜索出最佳参数,以最小化损失函数。深度学习中,⼤多流⾏的优化算法通常基于⼀种基本⽅法‒梯度下降(gradient descent)。简而⾔之,在每个步骤中,梯度下降法都会检查每个参数,看看如果你仅对该参数进⾏少量变动,训练集损失会朝哪个⽅向移动。然后,它在可以减少损失的⽅向上优化参数。

三、各种机器学习的问题

在机器学习里,唤醒词只是其中一个小问题,下面会列出一些常见的机器学习的问题和应用(简介)。

1、监督学习

也叫(supervised learning),擅长在"给定输入特征"的情况下预测标签。即使标签未知,样本也可以指代输入特征。目标是生成一个模型,能将任何输入的特征映射到标签,即预测。
(每个 特征——标签 对都可以称为一个样本)

监督学习之所以发挥作用,是因为在训练参数时我们为模型提供了一个数据集,每个样本都有真实的标签。我们希望预测“估计给定输入特征的标签”的条件概率。在工业中,监督学习得到了较为成功的应用,就是因为在一定程度上,很多重要的问题和任务可以清晰的描述为:在给定一组可用数据的情况下,估计未知事物的概率。例如:

  • 根据CT肿瘤图像,预测是否是癌症 。
  • 给出一个英文的句子,预测正确的中文翻译。
  • 根据本月的财务报表,预测下个月股票的价格。

学习过程(非正式):

  1. 从大量已知样本中随机选取一个子集,为每个样本获取基本的真实标签。
  2. 对数据进行处理(人工标记数据,例如图像分类)。这些输入与标签构成了训练数据集。
  3. 选择一个有监督的学习算法,对其输入训练数据集并输出完成学习的模型。
  4. 用新的特征放入模型,并使用其输出作为预测。

在这里插入图片描述

问题分类:

  • 回归问题
  • 分类问题
  • 标记问题
  • 搜索问题
  • 推荐系统
  • 序列学习

2、无监督学习

数据中不含有具体的“目标”的机器学习问题。例如,研究一组数据,但是对结果没有具体的要求。

问题分类:

  • 聚类问题:
    在没有标签的情况下给数据分类,例如:给定一组用户的网页浏览记录,将具有相似行为的用户聚类。
  • 主成分分析:
    找到少量参数来准确捕捉数据的线性相关属性,例如:一个球的运动轨迹可以用球的速度、直径和质量来描述
  • 因果关系和概率图模型:
    根据数据描述这些数据的根本原因。
  • 生成对抗性网络

3、与环境互动

监督学习和无监督学习都是预先获取大量数据然后再启动模型,并不与环境交互,这被称之为离线学习。离线学习的好处是可以专心于模式识别不用分心,但缺点是解决的问题有限。所以机器学习也需要与环境进行互动。

仅为个人学习记录,知识来源于书本《动⼿学深度学习》,如有问题,欢迎指正。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值