DataWhale X 李宏毅苹果书 AI夏令营 task1-案例学习

第一章 机械学习基础

1.1 案例学习

机器学习概念:使机器具备找一个函数的能力。

意义:许多复杂的函数不容易找出,而利用机器学习,可以使机器逐步找出最贴合所需结果的函数。

常见机器学习任务
回归(regression)

要找的函数输出是一个数值/标量

e.g.预测大气中PM2.5的浓度

分类(classification)

让机器从类别(class)里选择一个输出

e.g.(两个类别)辨别邮件是否是垃圾邮件

(多个类别)AlphaGo下围棋

结构化学习(structured learning)

让机器输出一个有结构的物体

e.g.画一张图片或写一篇文章

机器学习的过程

1.写出一个带有未知参数的函数f(如:y=wx_{1}+b)

   机器会通过一定的领域知识(domian knowledge)进行猜测并不断做出修正

y模型(model)带有未知参数(parameter)的函数
x_{1}特征(feature)函数内已知的信息
w权重(weight)未知参数
b偏置(bais)未知参数

2.定义一个损失(loss)

损失:函数L(b,w),输入值为模型中的未知参数,作用为模拟这个函数的好坏

差距e:真实值(label)ŷ与预测值y差距的绝对值

计算差距的几种方法
平均绝对误差(Mean Absolute Error,MAE)e=|ŷ-y|
均方误差(Mean Squared Error,MSE)e=(ŷ-y)_{}^{2}

在y与ŷ都是随机值的情况下,我们使用交叉熵(cross entropy)

通过比较输入不同b和w时L的大小,描绘出的下图,称为误差表面(error surface)

3.解一个最优化的问题

尝试不同的b,w组合,将数值代入检验,直到找出模拟的最好的一组b,w,分别称为b*,w*          

优化方法:梯度下降(gradient descent)

不同于第一张图的二维的误差平面,这里为了简化问题,我们先假设一个量(比如b)是常量,从而更简单地找出使损失L最低的w值

(上图中有部分损失是负值的原因是:损失是一个自己设定的函数,不止可以用绝对值表示,比如可以表示为e=|ŷ-y|-100,这样就可能会出现负数)

梯度是指一个函数曲线上升最快的方向。我们先选定一个w^{0},然后计算出这一点的斜率,就知道这一点的变化趋势了

梯度优化就像游戏里视野有限的玩家站在山上,寻找着山谷的位置。应该怎么判断往哪个方向走呢?当这一点的斜率为负值时,继续前进就可以下山(对应沿坐标轴向右移动);同理,当斜率为正值时,我们就知道继续往前走是上山。为了到达山谷,我们会后退(向左移动)。

当然,每次移动的距离是有限的,称为步长(图中w_{0}与w_{1}间的距离),决定你一次走多远的因素有两点:

1.斜率 我们知道谷底周围通常是比较平缓的(毕竟谷地的斜率为0嘛),所以斜率大的时候说明你更可能在山上,步子可以大胆迈大些。相反斜率小时说明可能快到谷底了,要减小步长,别不小心越过了

2.学习率(learning rate,写作ŋ)游戏里天赋点高的角色升级快,学习率高的机器参数更新更快,学得也更快。而机器这只角色的天赋是无法由它自己决定,只能由你来设定!

像这种需要我们自己设定的参数叫做超参数(hyperparameter)

如上图,在确定完w_{0}和ŋ后,机器正式迈出了第一步到达w_{1}!这里的ŋ*微分可以帮助机器找到上升最快的方向,乘上负号即为下降最快的方向,于是机器不断重复这一步骤,顺利向谷底走去,走去... ...什么时候我该停下来呢?机器想,毕竟没有机喜欢一直干活。面对机器的疑惑,你想到了两种解决方法:

1.设定一个超参数:更新次数    “这样吧,你先更新100w次。找得到找,找不到算了。”你对机器说。机器更新上限是100w次,虽然它很希望最好能在100w次更新之前就完成任务,提前下班,但是找不到也没关系,只要一到100w次,一秒也不多干了。

2.你突然觉得不太行,直接命令机器找到谷底才能停止。于是机器不断移动,到了一个斜率为0的地方。由上面的公式可以知道,机器不会再移动到下一个地点了,于是它停在了这里。

终于下班了...机器心满意足地躺在谷底......但是真的结束了吗?

不对啊!!机器猛然惊醒,万一还有别的山谷呢??

像上图中,万一机器到了wt点即局部最小值(local minima)就美美躺平了,你还是没有办法找到损失最低的点,即全局最小值(global minima)。你气冲冲地拿着结果去找机器讨说法,结果机器只是白了你一眼:

你就不能多选几个不同的初始位置进行更新吗?

机器毕竟是机器,不喜欢孤注一掷式的押宝。多选几个不同的初始位置更新,可以极大地降低卡在局部最小值的概率

剩下的就是有样学样,引入b,将此做法推广到两个参数

再结合b和w的更新方向得出梯度的(即上升最快的)方向,乘上负号(变成下降最快的方向了!),就可以确定下一步前进方向了!经过多次更新后,我们就可以得到一个模拟效果还不错的b*和w*啦

  • 24
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值