跳至正文

(选学)神经网络攻防 | 机器学习预备知识(一)

在正式开始课程前,需要对一些机器学习的基础知识有一定的了解。如你有机器学习基础可以跳过此部分。
下面正式开始。
我在 开篇词——你所不知道的神经网络攻防 的参考资源中选取了牛津大学2017的DeepNLP课程中的Deep Neural Networks Are Our Friends 一部分课件内容,作者为DeepMind的Wang Ling,希望能够给你一些直观的介绍。
Slides链接点击最后的原文阅读。
涉及到的概念:
  • 数字
  • 变量
  • 操作
  • 函数
  • 参数
  • 损失函数
  • 优化器
  • 梯度
图片
Abby出场了,她有四个苹果
图片
我们可以认为她的苹果计数为4
图片
她的朋友Bert出场了,他有5个香蕉
图片
可以把他们的苹果和香蕉分别设置为x和y,x,y为变量
图片
如果Abby给了Bert一个苹果,那她还有几个苹果
图片
4x – 1x 等于3x,x代表苹果。那Abby还有3个苹果,这里对变量进行了相减操作
图片
现在Abby和甜饼怪开始做交易了,给他1个苹果,得到0个香蕉,给他5个苹果,得到16个香蕉,给他6个苹果,得到20个香蕉
图片
那你如果Abby给甜饼怪3个苹果,她会得到多少个香蕉吗,怎么找到规律呢?
图片
这里假设函数为y = wx+b,输入是苹果个数,得到的是香蕉个数,w和b是函数的参数
图片
我们应该如何根据前面的三次交易,预测后面的交易呢?
图片
这里他们进行了三次交易,数据集包括了这三次的交易数据 [1,0],[5,16],[6,20]
图片
根据数据集,定义出了函数,怎么才能找到函数参数w和b的值呢
图片
我们可以先尝试让w等于1,b=0,看看结果
图片
我们又让w=2,b=2看看结果
图片
我们尝试了两组w,b,得到了两组结果
图片
这时,我们定义一个损失函数C(w,b)
图片
损失函数是预测结果和真实结果差的平方和,可以看到右边把两次测试的值都算了出来,分别为318和68
图片
通过比较C(1,0)和C(2,2),得出(2,2)这组参数损失小,表明它预测效果比较好
图片
前面我们只是测试了两组参数,那应该怎么找到真正合适的参数呢
图片
我们引出来优化器的概念,优化器就是使损失函数到达最小值
图片
那我们应该怎么优化这个损失函数呢
图片
让w,b不断的取值,计算损失,来找到最小值
图片
我们得不断的尝试w,b的值,直到找到最小值。这变成了一个搜索问题。
图片
变化0.01也不放过
图片
负数也不放过
图片
最后在(4,-4),损失函数是0,到达了最小值。
图片
那w,b找到了,那x=3时,得到的香蕉是8个。我们解决了这个问题。
下面我们开始解决复杂一点的问题:识别猫
图片
输入一张图片,判断是不是猫
图片
在这个任务里,参数很多,样本也很多
图片
那么多的参数,那怎么找到合适的参数使损失函数最小呢
图片
我们针对参数的变动必须谨慎,比如上图hw为1,表示下次w+1
图片
我们定义r为变化前后的斜率,在这里我们可以称斜率为梯度,可以求出变化后的梯度为-42
图片
当我们把增量hw的变小之后,梯度的变化
图片
我们把hw趋近于0的公式写出来
图片
把损失函数替换掉
图片
算出hw趋近于0,参数w的梯度和
图片
算出hw趋近于0,参数b的梯度和
图片
计算出了迭代时,下一组(w,b)的取值。
图片
总结,这次选学内容涉及到主要涉及四个概念:数据集,模型,损失函数和优化器。下一次选学内容将介绍神经网络的基础内容,敬请关注。
往期推荐:
文本对抗攻击工具:OpenAttack试用
Deepfake系列——音频深度伪造(1)
比赛分析篇(1):文本分类对抗攻击

图片

发表评论