李宏毅深度学习笔记3:预测神奇宝贝(回归)、分类神奇宝贝(分类)

感谢:

1. 预测神奇宝贝(回归)

举例应用
通过输入进化前的宝可梦cp值预测进化后宝可梦的cp值,其中的变量有 x c p , x s , x h p x_{cp},x_s,x_{hp} xcp,xs,xhp
在这里插入图片描述

1.1 Step1:确定模型

  1. 假设模型为 y = b + w ∗ x c p y = b + w*x_{cp} y=b+wxcp,理论上可以选择无穷的参数,但显然输出的 c p cp cp值不能为负, f 3 f_3 f3不可能
    考虑到身高体重等因素,可以得到底部所示的线性函数
    在这里插入图片描述

1.2 Step2:定义模型好坏

  1. 需要许多数据集来进行训练,因此需要很多宝可梦的进化前后数据,十个数据组成的数据集
    在这里插入图片描述
    在这里插入图片描述
  2. 定义Loss function,Loss function是函数的函数,即损失值受 w , b w,b w,b影响
    y ^ \widehat{y} y 为真实值,损失值为真实值减预测值求平方再相加

在这里插入图片描述
3. 绘制 w , b , l o s s w,b,loss w,b,loss图形,颜色越红代表损失值越大,越蓝代表损失值越小,函数越好
在这里插入图片描述

1.3 Step3:挑选最好的函数模型

  1. 挑选一个最 好的函数,找出一组 w 、 b w、b wb代入函数,使 L o s s Loss Loss 最小
    在这里插入图片描述
  2. Gradient Descent
    1. 一个参数
      1. 随机选取 w 0 w_0 w0
      2. 计算 w = w 0 w=w_0 w=w0时的微分(求偏导得出函数斜率)如果斜率为正,则增加 w w w值,反之斜率为负,减少 w w w值,增加或减少 w w w值取决于斜率的大小。
      3. 反复上面两个步骤
        在这里插入图片描述
    2. 两个参数,和一个参数没什么不同
      在这里插入图片描述
  3. 梯度下降有可能会进入局部最优点,但线性回归模型不存在这个问题
    在这里插入图片描述

1.4 How’s the results?

  1. 经过训练,得到 b = − 188.4 ; w = 2.7 b = -188.4; w = 2.7 b=188.4w=2.7为最佳的值,误差为31.9(训练数据上),得到的结果如图所示
    在这里插入图片描述
  2. 又抓取10个样本作为测试集,平均误差为35,如何才能做的更好呢?
    在这里插入图片描述
  3. 引入二次项式,找到最佳损失函数为15.4(训练集),18.4(测试集)
    在这里插入图片描述
  4. 那引入三次式呢?Loss分别是15.3和18.1
    在这里插入图片描述
  5. 那引入四次式呢?Loss分别是14.9和28.8,在测试集上Loss反而变高了,继续引入5次式,测试Loss更高了
    在这里插入图片描述
  6. 这种在训练集上得到好的结果但测试集损失爆炸的现象叫做过拟合Overfitting
    在这里插入图片描述
  7. 如果只考虑到进化前的CP值的话,那么在Pokemon较多的情况下会出现更大的误差,所以,我们还要把Pokemon的品种考虑进去。

1.5 Back to step1:Redesign the Model

  1. 如果Pokemon的品种是Pidgey,对应的函数是 y = b 1 + w 1 ∗ x y = b_1 + w_1*x y=b1+w1x
    如果Pokemon的品种是Weedle,对应的函数是 y = b 2 + w 2 ∗ x y = b_2 + w_2*x y=b2+w2x
    如果Pokemon的品种是Caterpie,对应的函数是 y = b 3 + w 3 ∗ x y = b_3 + w_3*x y=b3+w3x
    如果Pokemon的品种是Eevee,对应的函数是 y = b 4 + w 4 ∗ x y = b_4 + w_4*x y=b4+w4x。(不同的品种代不同的函数)
    在这里插入图片描述
    可以改写成一个linear function,假如输入的是Pidgey,函数输出的就是1,否则输出的就是0
    在这里插入图片描述
  2. 在考虑了宝可梦的品种后,在Training Data上得到了更低的误差,平均误差为3.8,在Testing Data上也有明显的效果,误差更低,平均误差为14.3。
    在这里插入图片描述
  3. 如果将更多的参数加入进去,Weight(身高)、Height(体重)、HP(血量)考虑进去的话,得到的结果误差会不会更低呢?结果训练集上损失很低,测试集过拟合了
    在这里插入图片描述

1.6 Back to step2:Regularization

  1. 重新定义Loss Function,原来的Loss Function只考虑了预测的结果与正确的差的平方,现在,加上额外的w的平方的和,再乘以一个参数。前面的平方和越小代表函数误差越小,这个model就越好,加上后面的代表我们找到的w越接近0就越好,函数就越平滑。(测试时有一些干扰项输入,如果函数比较平滑,则对函数的输出影响较小,w越接近0代表输出受输入的影响就越小)
    在这里插入图片描述
  2. λ \lambda λ越来越大时,则代表后面一项的影响越大,函数就越平滑,训练集损失增加,因为考虑了更多 w 2 w^2 w2,但测试集的损失逐渐变小,因为整个函数变的平滑,对于输入的噪声不敏感,但是当λ值超过一定数值时,反而平均误差会增大。所以函数不是越平滑越好,我们要找一个合适的λ值。(这就需要我们调整λ的值)

在这里插入图片描述

2. 分类神奇宝贝(分类)

神奇宝贝有18种属性:水、电、火等等,现在找出一个函数,输入是一只Pokemon,输出的是这只Pokemon属 于哪一种属性。如输入的是皮卡丘,输出的是雷;输入的是杰尼龟,输出的是水;输入的是妙娃草,输出的是草。
一只Pokemon的整体强度、生命值、攻击力、防御力、特殊攻击力、特殊防御力、速度可以用数字所表示。
在这里插入图片描述
将一种神奇宝贝的7个参数用矩阵表示作为输入

2.1 How to do Classification

  1. 分类问题也可以理解成回归,比如有两个类别:输入结果接近-1为一类(class1),接近+1为另一类(class2),输入有两个参数, x 1 和 x 2 x_1和x_2 x1x2,图中绿色线为方程等于0的线
    在这里插入图片描述
    蓝色为结果更接近1,橘色为结果更接近-1(正负1和图上坐标没关系),但是如果有远大于1的点,右下角一些点,整体直线就会偏移成紫色的线
    所以用Regression的方式来做,会不利于那些太正确的点,得不到好的结果。
    在这里插入图片描述
  2. Ideal Alternatives
    1. Function:找一个函数,将值代入,如果大于0,输出class1,否则输出class2
    2. Loss Function:在Training data上得到的错误的次数,错误次数越少代表model越好
    3. 寻找最佳的函数
      在这里插入图片描述
      step 1:Function Set
      1. 例:有两个盒子,盒子里面有蓝球、绿球。得到一个蓝球的概率如图。(其实就是贝叶斯公式,全概率公式,考研概率论知识),第一个盒子中抽出一个球的的概率是2/3,这个球是蓝球的概率是4/5。第二个盒子中抽出一个球的概率是1/3
        在这里插入图片描述
      2. 同理,将盒子换成class1和class2,给定一个x,属于C1的公式如图所示,
        在这里插入图片描述
      3. 先计算先验概率,分别计算 P ( C 1 ) 和 P ( C 2 ) P(C_1)和P(C_2) P(C1)P(C2)
        P ( C 1 ) P(C_1) P(C1)是在水系和一般系中选出一个水系的概率,为0.56
        在这里插入图片描述
      4. 计算给定class,某一只宝可梦是从这个类别中挑选出来的几率,
        例如, P ( x ∣ C 1 ) P(x|C_1) P(xC1)为从一堆水系动物中挑出一只乌龟的概率
        在这里插入图片描述
        5. 每个宝可梦有一个由七个数字组成的向量来进行表示,将79只宝可梦的防御力特殊防御力组成的training data画在图中
        水系的神奇宝贝一共有79种,这只海龟不属于这79只当中。但是这只海龟是水系的。把79只水系的神奇宝贝的防御力、特殊防御力画图如图所示,某个点就表示一只Pokemon。不能说这个概率就是0,可以假设这79只Pokemon只是水系Pokemon的冰山一角。假设这79个点是从Gaussian distribution中找到的。
        在这里插入图片描述
        6. 高斯分布可以理解成输入x的向量,输出这只神奇宝贝从这个分布被sample出来的概率。(其实就是正态分布)
        这个分布由 mean 、covariance matrix 决定。
        在这里插入图片描述
        7. 从Gaussian 中sample出79个点如图所示,估测出mean 、covariance matrix。给出一个新的点x,可以经过运算,得出x从Gaussian中sample出来的概率。
        在这里插入图片描述
        step 2:Goodness of a function
        1. 那么如何找出mean 、covariance matrix呢?
          这79个点可以从任何的高斯分布sample出来,不论mean和covariance matrix的位置,因此要找到能够求出概率最大的mean和covariance matrix组合,每个组合的likelyhood是79个点的概率的乘积
          在这里插入图片描述
        2. 如何能够求出最大的组合呢?其中 μ ∗ \mu^* μ x n x^n xn之和的平均值,再根据 μ ∗ \mu^* μ计算 Σ ∗ \Sigma^* Σ
          在这里插入图片描述
          3. 因此,通过这样的方法就能将x所属类别的概率计算出来
          在这里插入图片描述
          4. 将得到的数据绘制出来,可以将几率大于0.5的为类别1,几率小于0.5的为类别2, 画出红蓝两个区域

在这里插入图片描述

参考资料

  1. 李宏毅机器学习第二周_深度学习简介、反向传播、预测神奇宝贝
  2. 李宏毅深度学习笔记——呕心整理版
  3. [2022]李宏毅深度学习与机器学习第一讲(选修)听课笔记
  4. 【李宏毅机器学习笔记】4、Classification
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值