一、机器学习
机器学习(Machine Learning,ML):机器具备找函数的能力。当我们对机器输入一个任务时(如:语音识别和图像识别),机器要做的就是找出这些任务蕴含的函数,通过找到函数,机器就可以通过输入的内容给出对应的输出内容。而找函数人类是很难做到的,所以这时候就需要机器学习。
机器学习通过输出结果的不同可以分为不同的类别。
1、回归(Regression):函数输出是一个数值。
预测未来PM2.5的数值
输入:今天PM2.5浓度以及臭氧浓度以及等等可以帮助机器计算结果的条件。
输出:一个具体的数值(明天的PM2.5的浓度)
2、分类(Classification):做选择题。我们给机器一些设定好的选项(类别),机器要做的就是从其中找出一个数值作为输出。
判断一封邮件是否属于垃圾邮件(已经给机器设定好了选项,机器通过函数计算给出选项)
输入:一封邮件
输出:是垃圾邮件/不是垃圾邮件
- AlphaGo 也是一个分类的问题,只是给他设置的选项比较多,有多少个格子就会设置多少个选项(19*19)
3、结构化学习(Structured Learning):产生一个有结构的物体
让机器生成一个图片/文章
输入:你的要求
输出:一个符合你要求的文章/图片
二、案例学习
通过今天的点阅次数等数据推测明天的观看人数
机器学习找函数分为3个步骤:
1、假设函数是 y = b + wx (只是猜测,不一定对)
y = 明天的观看人数 (要预测的东西)
x = 今天的观看人数 (已知的)
b、w是未知数,需要通过资料找出的(假设今天观看人数是明天的多少倍,所以需要乘上w,但是不是每天的倍数都一样,所以加上一个b来修正)
w:权重(weight) b:偏值(bias)
- 未知数可以称为领域知识(domain knowledge):对预测事物的猜测
- 带有未知数的函数叫模型 (model)
2、 定义损失(loss)
损失 L(b,w):与b,w有关,且b,w作为L的输入。L的这两个值反映了预测值的好坏。
L(0.5k,1) y=b+wx -> y=0.5k+1x
如何计算Loss?
--从训练资料进行计算(过去的数据)
假设过去某天的观看人数是5k,将这个作为x带入y=0.5k+1x(L的值是我们设定好的),计算y的值(预估值),用这个估值和当天真正的观看人数z(真实值Label)做对比,看它们的差距e=|y-z|(差值),就可以知道这个L值的好坏。
算出一个时间段内每天的差值,并求出他们的平均数 P,P越大说明L的这组参数越不好,P越小说明L的这组参数越好。
- 根据过去真实的值绘制了一个关于b,w的图,越靠近红色差值越大,越靠近蓝色差值越小
3、找出最优解,给出一个w和b,让L的值最小。---梯度下降法(gradient descent)
先假设只有一个未知数w,b是已知的,可以绘制出一个曲线
需要找一个w值让L最小,需要先随机选一个值w0,计算当w=w0时的微分是多少(该点上的切线的斜率k),若k<0,说明这条切线左边比右边高,此时提高w的值(k越大,w值提的越高),就可以让k慢慢趋近于0,从而使L变直,若k>0,反之。
反复同样的操作,不断移动w,最终会停下来,停下来有两种可能。
- 自己不想在再试验了
- 理想状态下,k(微分)= 0
现在计算两个未知数的情况,分别计算w和b对L的微分(斜率),重复上面的操作,更新w和b的位置。可以画出一个二维图。不断移动就可以找到一个最好的数值。
标签:输出,未知数,task,机器,函数,AI,李宏毅,学习,一个 From: https://blog.csdn.net/2202_75857177/article/details/141597495