张老师从Web应用安全和隐私安全两个方面为我们带来了一场精彩的讲座。信息化发展凸显了信息安全问题
2010年6月震网病毒(stuxnet病毒)->证明物理隔离也不一定安全2015年9月XcodeGhost->证明编译层面也可能存在安全漏洞
网络威胁惊人,每天超过亿次GPT攻击,攻击方式:可探测->可访问->可掌控
威胁方-防护方的非对称性:攻防技术非对称,大量自动化攻击工具的出现,使得入侵网络与信息系统的门槛降到极低。,攻防成本非对称,攻防技术的非对称带来了攻防成本的非对称。风险成本也极低。对于国家安全而言,攻防成本的非对称性具有特殊的意义。伪基站短信照片案例层出不穷。
按提交字符类型可分为:数字型、字符型、搜索型。按HTTP提交方式可分为:GET、POST、Cookie。按注入方式可分为:盲注、union注入、报错注入。SQL注入工具SQLMAP、Havij、Pangolin。
防御SQL注入1、参数化查询。参数化查询已被视为最有效的可防御SQL注入攻击的防御方式。目前主流的ORM框架都内置支持并且推荐使用这种方式进行持久层封装。2、Web站点接入的数据库应遵循用户角色最小权限原则,针对不同类型的操作,创建对应权限的数据库用户,最大限度地降低SQL注入的危害。3、可以从应用层防止SQL注入攻击,目前国内主流的安全厂商都有一些专业的Web应用防护设备,例如绿盟科技的WAFwithMSS,启明星辰的天清Web应用安全网关等。这些WAF设备自身定义了许多SQL注入过滤规则,攻击者输入的危险字符会先经过应用层的WAF设备,再提交给Web的后端数据库,一定程度地降低了Web应用的安全风险。
XSS跨站脚本攻击当用户访问网页时,攻击代码在用户的浏览器上被执行,就形成了一次XSS跨站脚本攻击。根据XSS漏洞的原理可以将XSS跨站攻击划分成反射性XSS和存储型XSS。对于反射性XSS,攻击者需要欺骗用户点击一个恶意URL才能攻击成功。存储型XSS的危害相对来说更大一些,攻击者提交的恶意代码,会被Web服务器端接收并存储,访问该网页的用户,他们的浏览器会执行这段恶意代码。
防御XSS攻击?1、输入过滤。对用户表单输入的数据进行过滤,对javascript代码进行转义,然后再存入数据库。2、输出编码。在信息的展示页面,也要进行转义,这样的话,如果用户输入一些HTML的脚本,也会被当成普通的文字,而不会成为目标页面HTML代码的一部分得到执行。3、Cookie防盗。尽可能地避免在Cookie中泄露隐私,如用户名、密码等。我们可以将Cookie信息利用MD5等Hash算法进行多次散列后存放。为了防止重放攻击,也可以将Cookie和IP进行绑定,这样也可以阻止攻击者冒充正常用户的身份。
CSRF跨站请求伪造攻击者使用被攻击者的身份,以其名义发送恶意请求,会造成个人隐私泄露以及财产安全。
隐私安全当前许多企业和公司会对用户轨迹进行分析,导致用户隐私安全受到威胁。通过这次讲座我们知道了什么是SQL注入漏洞、SQL注入分类以及如何判断等等。还学习到什么是XSS跨站脚本攻击,XSS漏洞分为两类:①反射型XSS②存储型XSS,认识到XSS的危害,了解持久型跨站脚本攻击场景等等。学习什么是CSRF跨站请求伪造漏洞,跨站请求伪造(CSRF)场景,如何上传漏洞、解析漏洞,什么是弱口令。
通过本次讲座我们知道量子密码与传统的密码系统不同,它依赖于物理学作为安全模式的关键方面而不是数学。实质上,量子密码术是基于单个光子的应用和它们固有的量子属性开发的不可破解的密码系统,因为在不干扰系统的情况下无法测定该系统的量子状态。
传统密码的挑战然而,这种传统密码受到了来自量子密码的挑战:基于大数分解的Shor算法和基于快速搜索的Grover算法能够迅速破解传统密码。
Grover算法Grover算法(快速搜索算法)可以加速搜索密钥,从而使DES、AES等对称密码受到冲击。
量子密码量子秘钥分配(QKD)的特点:
可以检测到潜在窃听行为。基于物理学原理,理论上可达到无条件安全。也就是说,量子密码可达到无条件安全的保密通信。
典型协议--BB84量子密钥分配协议量子密钥分配是1984年物理学家Bennett和密码学家Brassard提出了基于量子力学测量原理的BB84协议,量子密钥分配从根本上保证了密钥的安全性。在光系统中,BB84协议使用四个光子的偏振态来传输信息,这四个量子态又可以分成相互非正交的两组,而且每组中的两个光子的偏振态是正交的同时这两组又是相互共轭的。如果是单光子通信系统,则这四个量子态分别为光子的水平偏振态、垂直偏振态、偏振方向的偏振态(记作↗)、偏振方向的偏振态(记作↘)。其中,前两个态为一组测量基,后两个态为一组测量基。当发送方Alice与Bob进行通信时,不是只使用某一组测量基,而是按照一定的概率同时使用两组基。
金鑫老师充满活力的给我们带来一个精彩的讲座——基于深度学习的密码分析与设计。我发现人工智能需要我们的知识储备非常足,要有很好的数学基础,密码学基础等等。本次讲座使我对人工智能、机器学习和深度学习增加了系统性的认知,以及对深度学习的应用有了更为宽阔的了解。我发现自己对人工智能、深度学习有点感兴趣,可是知识储备远远不够,希望后期自己能够努力培养这方面的知识。
用AI和ML解决安全问题(让安全更智能):计算机取证、垃圾邮件检测、身份验证、网络钓鱼检测与预防、僵尸网络监测、入侵检测和响应、异常行为检测、恶意软件标识、数据匿名/反匿名、社会网络安全、大数据安全分析等。
用安全性解决A问题(让AI更安全):分布式安全推理与决策、安全的多方计算和加密方法、隐私保护数据挖掘、差异隐私、验证码的设计与分析、人工智能信任和声誉方法、通过智能探测进行漏洞测试、生成训练和测试集的技术和方法等。
密码分析与机器学习密码分析与机器学习之间有天然的相似性:x->F(x)->y
对于机器学习:x为输入样本,F(x)为机器学习的模型(可以理解为一个函数),y为输出,如果是分类,则y是分类标签,如果是回归,则y是真实值向量。
对于密码分析:x为输入的明文,F(x)为密钥(可以理解为一个函数),y为加密后得到的密文。
从研究趋势来看,越来越多的密码分析方法开始使用机器学习结束,例如破解DES的遗传算法、用于侧信道分析的支持向量机算法等。
信息隐藏信息隐藏是指将特定用途的信息隐蔽地藏于其他载体(Cover)中,使得它们难以被发现或者消除,通过可靠提取隐藏的信息,实现隐蔽通信、内容认证或内容保护功能。
信息隐藏主要包括水印、可视密码、隐写等。
可视密码(VisualCryptography)可视密码技术使Naor和Shamir于1994年首次提出的,其主要特点是恢复秘密图像时不需要任何复杂的密码学计算,而是以人的视觉即可将秘密图像辨别出来。其做法是产生n张不具有任何意义的胶片,任取其中t张胶片叠合在一起即可还原出隐藏在其中的秘密信息。
隐写(Steganography)隐写是基于信息隐藏的隐蔽通信或者隐蔽存储方法,将秘密信息难以感知地隐藏在内容可公开的载体中,保护保密通信或者保密存储这些行为事实。称隐写后的载体为隐写媒体Stego。
这次讲座为我们详细地讲解了区块链的产生和发展,由匿名作者中本聪发布的《比特币:一种点对点的电子现金系统》白皮书,演化成为今天这个比特币体系。这次讲座让我对比特币、区块链的历史有了系统的了解,对于区块链的技术也有了较为详细的认识,明白了这个机制是怎么正常运作的。
比特币比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生。根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。
每一位所有者(A)利用他的私钥对前一次交易T1和下一位所有者(B)的公钥(俗称:地址)签署一个随机散列的数字签名,A将此数据签名制作为交易单T2并将其(交易单T2)广播全网,电子货币就发送给了下一位所有者。
与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同,是其总数量非常有限,具有极强的稀缺性。该货币系统曾在4年内只有不超过1050万个,之后的总数量将被永久限制在约2100万个。
SpectreAttacks(幽灵攻击)现代处理器使用分支预测和推测执行来最大化性能。例如,如果分支的目标取决于正在读取的内存值,则CPU将尝试获取目标并尝试提前执行。当内存值最终到达时,CPU丢弃或提交推测计算。推测逻辑在执行方式上是不忠实的,可以访问受害者的内存和寄存器,并且可以执行具有可测量副作用的操作。幽灵攻击涉及诱使受害者以规范的方式执行在正确的程序执行期间不会发生的操作以及泄漏受害者的操作,可以通过侧信道向外界提供的机密信息。幽灵攻击结合了来自侧信道攻击,故障攻击和回归导向编程的方法,可以从受害者的内存中读取任意任意位置的内容。更广泛地说,推测性执行实施违反了支持数字软件安全机制的安全假设,包括操作系统进程分离,静态分析,容器化,即时(JIT)编译以及对缓存的定时/侧通道攻击的对策。这些攻击对实际系统构成严重威胁,因为在用于数百万台设备的英特尔,AMD和ARM的微处理器中发现了漏洞预测执行的功能。幽灵攻击就像字面所说的意思一样,来无影去无踪,当攻击发生时受害者在毫无察觉的情况下就被CPU的预测执行功能“出卖”了。
SpeculativeExecution(预测执行)预测执行简单来说是一些具有预测执行能力的新型处理器,可以估计即将执行的指令,采用预先计算的方法来加快整个处理过程。
预测执行的设计理念是:加速大概率事件。
预测执行是高速处理器使用的一种技术,通过考虑可能的未来执行路径并提前地执行其中的指令来提高性能。例如,当程序的控制流程取决于物理内存中未缓存的值时,可能需要几百个时钟周期才能知道该值。除了通过空闲浪费这些周期之外,过程还会控制控制流的方向,保存其寄存器状态的检查点并且继续在推测的路径上推测性地执行该程序。当值从存储器中偶然到达时,处理器检查最初猜测的正确性。如果猜测错误,则处理器将寄存器状态恢复为存储的检查点并丢弃(不正确的)预测执行,如果猜测是正确的,则该部分代码已被执行过,不需要再次执行,因此带来了显著的性能增益。
可以发现,如果预测错误,即便程序真正执行到这里时错误结果被丢弃,但错误的结果还是短暂的出现在寄存器中,在被丢弃之前,这部分数据就很容易被泄露。
该段代码的通常执行过程如下:进入if判断语句后,首先从高速缓存查询有无array1_size的值,如果没有则从低速存储器查询,按照我们的设计,高速缓存一直被擦除所以没有array1_size的值,总要去低速缓存查询。
查询到后,该判断为真,于是先后从高速缓存查询array1[x]和array2[array1[x]*256]的值,一般情况下是不会有的,于是从低速缓存加载到高速缓存。
在执行过几次之后,if判断连续为真,在下一次需要从低速缓存加载array1_size时,为了不造成时钟周期的浪费,CPU的预测执行开始工作,此时它有理由判断if条件为真,因为之前均为真(加速大概率事件),于是直接执行下面的代码,也就是说此时即便x的值越界了,我们依然很有可能在高速缓存中查询到内存中array1[x]和array2[array1[x]*256]的值,当CPU发现预测错误时我们已经得到了需要的信息。
相似的攻击手段:meltdownMeltdown是一种类似的微体系结构攻击,它利用无序执行来泄漏目标的物理内存。Meltdown在两个主要方面与SpectreAttacks截然不同。首先,与Spectre不同,Meltdown不使用分支预测来实现推测执行。相反,它依赖于观察,当一条指令导致一个软中断时,正在无序执行的指令中止。第二,Meltdown利用特定于英特尔处理器的特权升级漏洞,由此推测执行的指令可以绕过内存保护。结合这些问题,Meltdown从用户空间访问内核内存。此访问会导致软中断,但在发出软中断之前,访问后面的代码会通过缓存通道泄漏所访问内存的内容。与Meltdown不同,Spectre攻击适用于非Intel处理器,包括AMD和ARM处理器。此外,KAISER补丁已被广泛应用于对Meltdown攻击的缓解,但不能防止幽灵攻击。
SafeInit:全面而实用的未初始化读取漏洞缓解
未初始化漏洞未初始化值的使用仍然是C/C++代码中的常见错误。这不仅导致未定义的和通常不期望的行为,而且还导致信息泄露和其他安全漏洞。
我们都知道C/C++中的局部变量,在未初始化的情况下,初值为随机值。
以C++中局部变量的初始化和未初始化为例:(intx;和intx=0;)
编译器在编译的时候针对这两种情况会产生两种符号放在目标文件的符号表中,对于初始化的,叫强符号,未初始化的,叫弱符号。连接器在连接目标文件的时候,如果遇到两个重名符号,会有以下处理规则:
1、如果有多个重名的强符号,则报错。2、如果有一个强符号,多个弱符号,则以强符号为准。3、如果没有强符号,但有多个重名的弱符号,则任选一个弱符号。
未定义行为简单地说,未定义行为是指C语言标准未做规定的行为。编译器可能不会报错,但是这些行为编译器会自行处理,所以不同的编译器会出现不同的结果,什么都有可能发生,这是一个极大的隐患,所以我们应该尽量避免这种情况的发生。
介绍由于C/C++不会像C#或JAVA语言,确保变量的有限分配,要求在所有可能执行的路径上对它们进行初始化。所以,C/C++代码可能容易受到未初始化的攻击读取。同时C/C++编译器可以在利用读取未初始化的内存是“未定义行为”时引入新的漏洞。
在本文中,提出了一种全面而实用的解决方案,通过调整工具链(什么是工具链)来确保所有栈和堆分配始终初始化,从而减轻通用程序中的这些错误。SafeInit在编译器级别实现。
本文实现了:
提出了safeinit,一种基于编译器的解决方案,结合强化分配器,确保堆和栈上的初始化来自动减轻未初始化值读取。提出的优化可以将解决方案的开销降到最低水平(<5%)并可以在现代编译器中实现基于clang和LLVM的SafeInit原型实现,并表明它可以应用于大多数真实的C/C++应用程序而无需任何额外的手动工作。CPU-intensive、I/Ointensive(server)applications和Linuxkernel测试验证了现实世界的漏洞确实被缓解背景在几乎所有应用程序中,内存不断被重新分配,因此被重用。
在栈中,函数激活帧包含来自先前函数调用的数据在堆上,分配包含来自先前释放的分配数据如果在使用之前不覆盖这些数据,就会出现未初始化数据的问题,从而将旧数据的生命周期延长到新分配点之外。
内存也可能只是部分初始化;C中的结构和联合类型通常是故意不完全初始化的,并且出于简单性或性能原因,通常为数组分配比存储其内容所需的(最初)更大的大小。实际上,重用内存不仅常见,而且出于性能原因也是可取的。当不清楚变量是否在使用之前被初始化时,唯一实用且安全的方法是在所有情况下初始化它。
存在的四点威胁
例如:地址空间布局随机化(ASLR)之类的防御一般取决于指针的保密性,并且由于这通常仅通过随机化一个基地址来完成,因此攻击者仅需要获取单个指针以完全抵消保护。这样的指针可以是代码,堆栈或堆指针,并且这些指针通常存储在栈和堆上,因此未初始化的值错误提供了阻止这种信息隐藏所需的指针公开的丰富源。
软件开发未初始化数据导致的其他漏洞允许攻击者直接劫持控制流。常见的软件开发的错误是:无法在遇到错误时在执行路径上初始化变量或缓冲区。
两个例子分别是:
Microsoft描述了由于2008年MicrosoftExcel中未初始化的堆栈变量导致的任意写入漏洞Microsoft的XML解析器中的一个错误使用存储在局部变量中的指针进行虚函数调用,该局部变量未在所有执行路径上初始化。检测工具有些工具试图在开发过程中检测未初始化变量,而不是试图减轻未初始化的值错误,允许它们由程序员手动校正。有些工具试图在开发过程中检测它们,而不是试图减轻未初始化的值错误,允许它们由程序员手动校正。更重要的是,编译器警告和检测工具只报告问题,而不是解决问题。这可能会导致错误和危险的错误。
堆栈变量函数堆栈帧:在堆栈中为当前正在运行的函数分配的区域、传入的参数。返回地址以及函数所用的内部存储单元都存储在堆栈帧中。
函数堆栈帧包含局部变量的副本,或具有被忽略的局部变量,同时还包含其他局部变量和编译器生成的临时变量的溢出副本,以及函数参数,帧指针和返回地址。鉴于堆栈内存的不断重用,这些帧提供了丰富的敏感数据源。
现代编译器使用复杂的算法进行寄存器和堆栈帧分配,这种方式减少了内存使用并改善了缓存局部性,但意味着即使在函数调用之前/之后清除寄存器和堆栈帧也不足以避免所有潜在的未初始化变量。
用CNN(卷积神经网络)对句子分类?
模型介绍下图是原论文中给出的用于句子分类的CNN模型:
输入矩阵
CNN输入矩阵的大小取决于两个因素:A.句子长度(包含的单词的个数)B.每个字符的长度
假设输入X包含m个单词,而每个单词的字嵌入(WordEmbedding)长度为d,那么此时的输入就是md的二维向量。对于Ilikethismovieverymuch!来说,当字嵌入长度设为5时,输入即为75的二维向量。卷积过程
文中使用了2种过滤器(卷积核),每种过滤器有三种高度(区域大小),即有6种卷积结构。每个卷积核的大小为filter_sizeembedding_size。
A.filter_size代表卷积核纵向上包含单词个数,即认为相邻几个词之间有词序关系,代码里使用的是[3,4,5]。
B.embedding_size就是词向量的维数。每个卷积核计算完成之后我们就得到了1个列向量,代表着该卷积核从句子中提取出来的特征。有多少卷积核就能提取出多少种特征。池化过程
全连接层(含Dropout和Softmax)
补充:Dropout的作用原理按照一定的概率来“禁用”一些神经元的发放。这种方法可以防止神经元共同适应一个特征,而迫使它们单独学习有用的特征。
现在很多企业都在做深度学习,但是监督学习训练需要非常大的标记数据集,比如在视觉领域ImageNet模型的训练集包含了1400万个标记图像,但是小型公司没有条件训练这么大的数据集或者无法得到这么大的数据集。
论文中提到对于这个问题,当前一个普遍的解决方案就是迁移学习:一个小型公司借用大公司预训练好的模型来完成自己的任务。我们称大公司的模型为“教师模型“,小公司迁移教师模型并加入自己的小数据集进行训练,得到属于自己的高质量模型”学生模型”。
总结来看迁移学习主要解决了目前机器学习中存在的两个问题:
迁移学习迁移学习过程“学生模型”通过复制教师模型的前N-1层来初始化,并增加了一层全连接层用于分类,之后使用自己的数据集对学生模型进行训练,训练过程中,前K层是被冻结的,即它们的权重是固定的,只有最后N-K层的权重才会被更新。前K层之所以在训练期间要被冻结,是因为这些层的输出已经代表了学生任务中的有意义的特征,学生模型可以直接使用这些特征,冻结它们可以降低训练成本和减少所需的训练数据集。
迁移学习方法根据训练过程中被冻结的层数K,可以把迁移学习分为以下3种方法:深层特征提取器(Deep-layerFeatureExtractor)、中层特征提取器(Mid-layerFeatureExtractor)、全模型微调(FullModelFine-tuning)。
Deep-layerFeatureExtractor:K=N-1,学生任务与教师任务非常相似,需要的训练成本最小Mid-layerFeatureExtractor:K<N-1,允许更新更多的层,有助于学生为自己的任务进行更多的优化FullModelFine-tuning:K=0,学生任务和教师任务存在显著差异,所有层都需要微调迁移学习安全性人工智能的应用不断多元化,不断深入日常的生活之中,迁移学习的安全性已经成了当前人工智能学科必须要面对的问题。由于迁移学习要选择“教师模型”有限缺乏多样性,用户只能从很少的教师模型中进行选择,同一个教师模型可能被很多个公司迁移,所以攻击者如果知道了教师模型就可以攻击它的所有学生模型。这就是这篇论文主要攻击的方法
对抗性攻击对抗图像/对抗样本(Adversarialexample/image):对抗样本是对干净图像进行处理后的样本,被故意扰乱(如加噪声等)以达到迷惑或者愚弄机器学习技术的目的,包括深度神经网络。对抗扰动(Adversarialperturbation):对抗扰动是添加到干净图像中的噪声,使其成为一个对抗样本。对抗性训练(Adversarialtraining):对抗性训练使用除了干净的图像之外的对抗样本来训练机器学习模型。对手(Adversary):对手通常指创建一个对抗样本的代理。但是在某些情况下,我们也称对抗样本本身为对手。
对抗性攻击思路由于机器学习算法的输入形式是一种数值型向量(numericvectors),所以攻击者就会通过设计一种有针对性的数值型向量从而让机器学习模型做出误判,这便被称为对抗性攻击。和其他攻击不同,对抗性攻击主要发生在构造对抗性数据的时候,之后该对抗性数据就如正常数据一样输入机器学习模型并得到欺骗的识别结果。如给一个输入图像加入不易察觉的扰动,使模型将输入图像误分类成其他类别。
具体攻击策略
如果攻击目标是把source图猫误识别为target图狗,本文的攻击思路是:首先将target图狗输入到“教师模型”中,捕获target图在“教师模型”第K层的输出向量。之后对source图加入扰动,使得加过扰动的source图(即对抗样本)在输入“教师模型”后,在第K层在数值上产生非常相似的输出向量。由于前馈网络每一层只观察它的前一层,所以如果我们的对抗样本在第K层的输出向量可以完美匹配到target图的相应的输出向量,那么无论第K层之后的层的权值如何变化,它都会被误分类到和target图相同的标签。
如何选择攻击层攻击者首先要判断学生模型是否使用了Deep-layerFeatureExtractor,因为它是最易被攻击的方法。如果学生模型的迁移学习方法是Deep-layerFeatureExtractor,攻击者需要攻击第N-1层以获得最佳的攻击性能;如果学生模型的迁移学习方法不是Deep-layerFeatureExtractor,攻击者可以尝试通过迭代瞄准不同的层,从最深层开始,找到最优的攻击层。
给定学生模型如何确定教师模型前面我们的误分类攻击是假设了攻击者知道教师模型是哪个的,接下来我们放宽这个条件,考虑攻击者不知道教师模型是哪个的情况。
基尼系数是经济学中的概念,在本文中如果基尼系数非常大,说明该学生模型对应的教师模型不在候选池中,或者该学生模型选择的不是Deep-layerFeatureExtractor的迁移学习方法。
目标函数
公式含义为在扰动程度perturb_magnitude小于一定约束值(扰动一般经验值P)的前提下,最小化对抗样本(扰动后的sourceimage)第K层的输出向量与targetimage第K层的输出向量的欧式距离。之前计算扰动程度都是使用L2范数,但是它无法衡量人眼对于图像失真程度的感知。本文利用一种图像结构相似性DSSIM来度量图像加扰动前后的相似程度。这意味着在实现的时候需要最优化两个loss,一个为DSSIM,一个为在k层两种不同输入的输出的欧式距离。
影响攻击效果的因素扰动预算P的选择直接关系到攻击的隐蔽性。P越小攻击成功率越低,通过使用DSSIM度量方法测量图像失真,我们发现P=0.003是人脸图像的一个安全阈值。其对应的L2范数值明显小于前人的结果。距离度量方法也会影响攻击效果,使用DSSIM产生的扰动不易察觉,使用L2的扰动更明显。DSSIM能考虑到图像的潜在结构,而L2平等对待每一个像素,并经常在脸部产生明显的“纹身样”图案。迁移学习方法也非常影响攻击效果,本文的攻击对于深层特征提取器是非常有效的,但对于全模型微调无效。
本文攻击的防御方法论文还提出了3种针对本文攻击的防御方法,其中最可行的是修改学生模型,更新层权值,确定一个新的局部最优值,在提供相当的或者更好的分类效果的前提下扩大它和教师模型之间的差异。换句话说在教师模型第K层的输出向量和学生模型第K层的输出向量之间的欧氏距离大于一个阈值前提下,让预测结果和真实结果的交叉熵损失最小。
虽然通过这次课程我们学到了很多密码安全的新技术,但是,这次的课程非常紧促,每节课都只有两个小时给我们讲述当前的密码安全新技术。在每次上课的时候都不能够很好的去理解老师讲述的内容,由于缺少入门指导,我们在课下的自我学习效果并不是很好,但是我能够感受到老师想让我们通过这样的课程方式学到更多的东西。任何一节课所讲述的内容若是潜心研究,都能够供我们研究到博士毕业,只是单纯急促的两个小时加一篇博客不能够让我们深入理解这些内涵,还是希望老师在今后的课程中能够平衡课程的宽度与深度之间的关系,不希望一味的提升宽度而忽视了某个具体研究点的深度。
首先在由于之前没有先前的了解新技术,因此在理解新技术上有些吃力,不过多亏有鲍XX同学帮助我理解,带我弄明白。再者通过此次论文的演讲首先从知识上来说对科研方向从概念到模型都有了进一步的认识。通过此此我们认识了顶会论文,这些论文以我们身边的实例出发,更方便了我们对新技术的接收和了解。在以后写论文或者讲述一个较难理解的问题时我们可以从身边的实例讲起,这样更容易接受一个新知识。
其次通过此次上台讲解论文我们发现看懂到给同学们讲懂存在一定的差距,在这个过程中会引发我们更多的思考,不仅关于知识也关于描述方法。同时同学们也会想到我们没有思考到的问题,这样也促进了我们在知识方面的加深或者说是拓展。总之,通过此次上台的机会我们在知识理论和表达方面都取得了一定的进步。最后:面对着这些前沿的新技术,作为一个研究生自己应该尽快找到一个自己真的愿意去深入研究的方向。