深度学习Pytorch版---第一章

1.1日常生活中的机器学习


手机的语言识别系统--->语言转换文字--->自启动地图应用程序--->地图筛选路径。

编写程序响应唤醒词:::

麦克风每秒收集4.4万个样本(声波振幅的测量值)--->编写程序,确定麦克风采集到的原始音频片段,输出{ 是/否包含唤醒词 }的可靠预测。

人--->麦克风--->唤醒词模型--->{是,否}

采集音频样本的数据集--->对包含和不包含唤醒词的数据进行标注。

不需要设计一个明确地识别唤醒词的系统???

设计一个灵活的程序算法--->输出由许多参数决定--->使用数据集来确定最佳参数集--->通过某种方式度量性能。

参数:可以看出一个旋钮,旋钮的转动可以调整程序的行为。

模型:任一调整参数后的程序

模型族:通过操作参数而生成的所有不同程序的集合

在学习机器学习算法之前,必须精确的定义问题,确定输入和输出的性质。

对于上述问题。模型接收一段音频作为输入--->然后生成一个是/否作为输出。如果一切正常,经过训练,模型可以对片段是否含有关键词的预测都是正确的。

现在模型,对Alexa这个词总是能够发出“是”,但是唤醒词是多种多样的,我们需要一个足够丰富的模型族,使模型多元化。模型族中的另一个模型,在听到Hey Siri,也可以发出“是”。

直觉上,他们是相似的任务,模型族应该适用于这两种处理。

但是对于完全不同的输入输出,可能需要不同的模型族。

但如果模型的所有旋钮(参数)被随机设置,就不太可能识别出Alexa ,Hey Siri,或者其他单词。在机器学习中,learning是一个训练模型的过程。通过这个过程,我们可以发现正确的参数集,从而强制使模型执行所需的任务。in other word,使用数据去训练模型。

训练模型的步骤:

随机初始化参数的模型(不智能)--->获取一些数据样本(以及它们所对应的标签)--->调整参数(使样本在模型中表现得更好)--->epoch( 获取样本---调整参数)

in words,we need not 编写一个唤醒词 识别器,而是编写了一个学习程序。如果we 提供一个巨大的带标签的dataset,它就很有可能去learning识别唤醒词。

数据编程

通过数据集去确定程序行为。

1.2机器学习中的关键组件

core 组件:

  • 可以学习的数据(data)
  • 如何转换数据的模型(model)
  • 一个目标函数,度量模型的有效性
  • 调整模型参数以优化目标函数

1.2.1数据

sample consist of dataset.

它们遵循独立同分布。

每个sample由一组称为特征或者协变量的属性组成。

机器学习模型会更加这些属性进行预测。

处理图像数据--->a photo is a sample--->他的feature由每个像素数值的有序列表表示。

for example:

200*200的彩色照片 由 200*200*3=120000个数值组成(3表示每个空间位置的红绿蓝通道的强度)

一组医疗数据,给定一组标准的特征(年龄、生命体征、诊断),预测是否可以存活。

sample 的特征类别数量相同,特征向量固定长度,这个长度称为数据的维数

并不是所有数据都是固定长度:::

图像数据:

a method is  将图像剪裁成standard 尺寸,but 存在 lose information . 

文本数据:

deep learning  advantage enable to  process 不同长度的数据集。

数据越多,工作越容易;更多的数据集可以用来训练出更强大的模型。

big dataset is  deep learning 成功的基础。

拥有海量的数据 not enough ,we need proper data.

input garbage,output garbage。

还有就是不均衡的数据集。

数据产生偏见,模型就很有可能会有偏见。 

1.2.2模型

1.2.3目标函数

目标函数:定义对模型优劣程度的度量,这个度量在大多数情况下是“可优化”的。

we 定义一个目标函数,并wish 优化它到min,所以这个这个函数被称为损失函数。

常见的一个损失函数是:平方误差,即预测值和实际值之间的误差的平方。

常见的分类函数,目标函数是最小化错误率(即预测与实际不符合的样本比例)

有些目标函数容易被优化,有些不易被优化。

损失函数通常是根据模型的参数去定义的,并取决于数据集。在一个数据集中我们可以根据最小化总损失来学习模型参数的最佳值。

训练集:为训练而采集的样本。为了拟合模型参数,

测试集:为测试而采集的样本。为了评估拟合的模型,

在训练集上表现良好性能,在测试集上不一定页表现出良好的性能。

如果出现在训练集上表现得很好,但是不能推广到测试集,称为过拟合。

1.2.4优化算法

当we obtain 一些数据源及其表示,一个模型,一个合适的损失函数,接下来就是一种算法,它能够搜索出最佳参数,以最小化损失函数。大多数流行的优化算法都是基于---梯度下降。、

梯度下降法会检查每一个参数,看看仅对该参数进行少量变动,训练集的损失会向哪一个方向移动。然后,在可以减少损失的方向上优化。

1.3各种机器学习问题

常见的机器学习的问题和应用:

1.3.1监督学习

excel to 在给定输入特征的条件下预测标签。我们的目标是生成一个模型,这个模型能将任何输入特征映射到标签。

for example:

我们需要去预测患者的心脏病是否会发作。标签就是{会发作/不会发作}。输入特征是生命体征,如心率,舒张率和受压率。

许多重要的事务都可以描述为:在给定一组特定的可用数据情况下,估计未知事务的概率。

for examp:

根据计算机断层扫描肿瘤图像,预测是否为癌症

给定一个英语句子,预测是否正确

根据本月的财务报告数据,预测下个月的股票价格

监督学习过程:

训练输入--->监督学习<---训练标签

                        |

     输入------>模型-------->输出

  • 回归

有多少问题???可称为回归

for example:

有一个房屋销售数据表格,其中每一行对应一个房子,每一列都有一个相关的对应属性,我们将每一行的属性构成了一个房子样本的特征向量。

为什么这个问题可以归为回归呢???

主要由输出决定。销售价格(标签)是一个数值,当标签去任意值时,我们称之为回归问题,此时的目标是生成一个模型,使它的预测值非常接近真实值。

可被归为回归问题的:

预测用户对一部电影的评分。

预测病人的住院时间

这个手术需要多少小时。

未来6小时,这个镇的降雨量。

examples:

你雇人修理水管,承包商花了三小时清理,你收到了350dollars账单;你的朋友,也雇了这个承包商,两个小时,它收到了250dollars账单。你可以假设承包商,收取一些基本费用,并在此基础上,按小时收费。你可以得到,基本费用是50,每小时100。这就是线性回归算法。

但有时,假设并不成立。有一些差距是由两个特征以外的其他几个因素造成的。我们try 最小化预测值和实际标签值之间的差距。平方误差损失函数的最小化。

  • 分类

哪一个问题???可称为分类

一家银行希望在移动应用程序中添加支票扫描功能。具体,这个app,能够自动理解从图像上读取的文本。并将手写字符映射到已知字符。

分类问题,希望模型可以预测样本属于哪一个类别。

例如:

手写数字,有10类,标签被设置为0~9

最简单的分类问题,只有两类。

比如训练集为动物图像,标签可能是猫/狗。分类是训练一个分类器,来输出预测的类别

模型是如何判断的呢:

概率语言:给定一个样本特征,模型为每一个可能的类别分配一个概率。分类问题的常见损失函数是交叉熵。

最常见的类别不一定是最终用于决策的类别。

例:我们现在要训练一个毒蘑菇检测分类器。模型输出是毒蘑菇的概率是0.2.换句话说,有0.8的概率说它不是毒蘑菇,但是尽管如此,我们也不会去吃它。我们需要将预期风险作为损失函数,即需要将结果的概率乘以与之相关的收益。

在这种情况下,食用蘑菇的损失,0.2*无穷+0.8*0

丢弃蘑菇的损失,0.2*0+0.8*1

分类可以用于寻找层次结构:

层次结构假定许多类之间存在某种关系。

人们宁愿错误的归入一个相关的类,也不愿意错误的归入一个不相关的类,这就叫层次分类。

在动物分类中,把狮子狗误分为雪纳瑞可能也不会太糟糕,但是把狮子狗与恐龙混淆,就有点滑稽。响尾蛇和乌绡蛇在血缘相近,但把响尾蛇认为是乌绡蛇可能是致命的。

  • 标注问题

无论模型有多精确,遇到一个新的动物也会束手无策。

学习不相互排斥的类别问题称为多标签分类。

  • 搜索

为集合中的每一个元素分配相应的相关性评分,然后检索评分最高的元素。

  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值