赞
踩
chatGPT的“兄弟”:InstructGPT,论文地址:https://arxiv.org/abs/2203.02155
chatGPT学习四阶段
学习文字接龙
不需要人工标注,在网络上收集语句,对输入句子(字)后面可以接的字进行概率统计,每次输出高概率的字(每一次输出都不同)
人类老师引导文字接龙方向
人来思考问题,并人工提供答案(不需要很多,目的只是为了让GPT知道人们希望得到的答案)
模仿人类老师的喜好
训练Teacher Model让希望输出的答案的“分数”大于其他输出
用增强式学习向模拟老师学习
总结
Step1:Model
f(宝可梦(x))=升级后的CP值(y)
Step2:Goodness of Function
p.s. y1 head:“戴帽子”表示正确输出值
收集十组数据(10 pokemons)作为Training Data(后面会用另外的十组作为Testing Data)
设置Loss function L,目的:用来评估function的优劣(越大越差)
Step3:Best Function
使用Gradient Descent寻找最优解(Loss函数的最小值)
当只有一个参数时
注意:
两个参数时–>求偏微分
梯度下降的方法要考虑掉入局部解的情况,但本次的问题不用担心
求偏微分的公式如下:
开始求解(通过比较Loss值,寻找最优的Model)
分别计算training data和testing data的average error
一次函数拟合:training error=31.9,testing error=35
二次函数拟合:training error=15.4,testing error=18.4
三次函数拟合:training error=15.3,testing error=18.1
四次函数拟合:training error=14.9,testing error=28.8
五次函数拟合:training error=12.8,testing error=232.1
综上:越复杂的Model并不能得出更好的表现,这种现象称为Overfitting,所以在选择Model时并非越复杂越好,而是要选择合适的。
上述只收集了十组数据,当收集更多的数据,会发现预测CP值不能只根据进化前的CP值,而和Pokemon的物种有很大的关系(乐
返回step1,重新设计model
表示为Linear model
按照种类分别用一次函数拟合:training error=3.8,testing error=14.3
其余还可以考虑的影响参数:weight、height、HP……
考虑一个“最复杂的model”
training error=1.9,testing error=102.3
结果显示Overfitting,但我们不同意这个结果,于是我们重新定义Loss函数!
返回step2,使用Regularization,使Loss函数更加平滑(对输入不敏感)
注意:不考虑b(bias);λ:手调
将宝可梦“数字化”,可以包括:total、HP、Attack、Defense、SP Atk、SP Def、Speed……的数值
如何分类?
法一:二分法,将其化为regression问题
法二:一种理想的方法
法三:Generative Model生成模型
Training data:ID<400的宝可梦,水系79只,一般系61只
画出水系宝可梦defense(防御力)与SP defense(特殊防御力)的分布图
水系这79个点的Defense 和 SP Defense形成一个高斯分布
Gaussian Distribution高斯分布
相同的μ,不同matrix:机率分布最高点不同,分布离散程度相同
相同的matrix,不同μ:机率分布最高点相同,分布离散程度不同
如何寻找μ与matrix(Σ)?
使用Maximum Likelihood
μ与Σ:最有可能产生79(61)个点函数的参数
计算公式如下
将水系分布与普通系分布带入公式
对每个点进行计算
并设定分类标准
划分结果如下
将结果应用到testing data,只有47%的正确率
如果使用全部的7个feature(从二维到7维),也依旧只有54%的正确率
结果不好,修正模型!
两组分布使用同样的matrix不同的μ(目的:减少参数)
继续画出图像,得出一条线性边界
当考虑全部7个features,正确率上升至73%
回顾General Model
对于样本分布不一定要选择高斯分布,例如如果是二值分布,我们可以假设符合伯努利分布,具体应用中要根据样本特点具体而定。
如果我们假设所有的dimension之间是相互独立,那我们可以认为结果服从Navie Bayes Classifier(朴素贝叶斯分类器)
进一步分析如下
Sigmoid函数:一种激活函数,又称 Logistic函数,用于隐层神经元输出,取值范围为(0,1),可以用来做二分类。
(数学警告!)
(警告结束)
最核心的问题还是怎么去寻找合适的w和b(下一节中介绍)
如果你没有弄清楚linear regression与logistics regression的区别,以及我们现在为什么要使用logistics Regression而非linear regression,你可以去看这个:https://blog.csdn.net/Yemiekai/article/details/119081873
(其实是我自己不清楚orz,下面的图片是我根据这篇文章做的笔记,可以参考XD)
(笔记结束,让我们回到李宏毅老师的ML课程orz)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。