人工智能时代,神经网络的原理及使用方法 | 微课堂
人工智能时代已经悄然来临,在计算机技术高速发展的未来,机器是否能代替人脑?也许有些读者会说,永远不可能,因为人脑的思考包含感性逻辑。事实上,神经网络算法正是在模仿人脑的思考方式。想不想知道神经网络是如何“思考”的呢?下面我向大家简单介绍一下神经网络的原理及使用方法。
所谓人工智能,就是让机器具备人的思维和意识。人工智能主要有三个学派——行为主义、符号主义和连接主义。
行为主义是基于控制论,是在构建感知动作的控制系统。理解行为主义有个很好的例子,就是让机器人单脚站立,通过感知要摔倒的方向控制两只手的动作,保持身体的平衡,这就构建了一个感知动作控制系统。
符号主义是基于算数逻辑和表达式。求解问题时,先把问题描述为表达式,再求解表达式。如果你在求解某个问题时,可以用if case这样的条件语句,和若干计算公式描述出来,这就使用了符号主义的方法,比如“专家系统”。符号主义可以认为是用公式描述的人工智能,它让计算机具备了理性思维。但是人类不仅具备理性思维,还具备无法用公式描述的感性思维。比如,如果你看过这篇推送,下回再见到“符号主义”几个字,你会觉得眼熟,会想到这是人工智能相关的知识,这是人的直觉,是感性的。
连接主义就是在模拟人的这种感性思维,是在仿造人脑内的神经元连接关系。这张图给出了人脑中的一根神经元,左侧是神经元的输入,“轴突”部分是神经元的输出。人脑就是由860亿个这样的神经元首尾相接组成的网络。
神经网络可以让计算机具备感性思维。我们首先理解一下基于连接主义的神经网络设计过程。这张图给出了人类从出生到24个月神经网络的变化:
随着我们的成长,大量的数据通过视觉、听觉涌入大脑,使我们的神经网络连接,也就是这些神经元连线上的权重发生了变化,有些线上的权重增强了,有些线上的权重减弱了。
我们要用计算机仿出这些神经网络连接关系,让计算机具备感性思维。
首先需要准备数据,数据量越大越好,以构成特征和标签对。如果想识别猫,就要有大量猫的图片和这张图片是猫的标签构成特征标签对,然后搭建神经网络的网络结构,再通过反向传播优化连接的权重,直到模型的识别准确率达到要求,得到最优的连线权重,把这个模型保存起来。最后用保存的模型输入从未见过的新数据,它会通过前向传播输出概率值,概率值最大的一个就是分类和预测的结果。
我们举个例子来感受一下神经网络的设计过程。鸢尾花可以分为三类:狗尾鸢尾、杂色鸢尾和佛吉尼亚鸢尾。我们拿出一张图,需要让计算机判断这是哪类鸢尾花。人们通过经验总结出了规律:通过测量花的花萼长、花萼宽、花瓣长、花瓣宽分辨出鸢尾花的类别,比如花萼长花萼宽,并且花瓣长/花瓣宽2,则可以判定为这是第一种,杂色鸢尾。看到这里,也许有些读者已经想到用if、case这样的条件语句来实现鸢尾花的分类。没错,条件语句根据这些信息可以判断鸢尾花分类,这是一个非常典型的专家系统,这个过程是理性计算。只要有了这些数据,就可以通过条件判定公式计算出是哪类鸢尾花。但是我们发现鸢尾花的种植者在识别鸢尾花的时候并不需要这么理性的计算,因为他们见识了太多的鸢尾花,一看就知道是哪种,而且随着经验的增加,识别的准确率会提高。这就是直觉,是感性思维,也是我们这篇文章想要和大家分享的神经网络方法。
这种神经网络设计过程首先需要采集大量的花萼长、花萼宽、花瓣长、花瓣宽,和它们所对应的是哪种鸢尾花。花萼长、花萼宽、花瓣长、花瓣宽叫做输入特征,它们对应的分类叫做标签。大量的输入特征和标签对构建出数据集,再把这个数据集喂入搭建好的神经网络结构,网络通过反向传播优化参数,得到模型。当有新的、从未见过的输入特征,送入神经网络时,神经网络会输出识别的结果。
展望21世纪初,在近十年神经网络理论研究趋向的背景下,神经网络理论的主要前沿领域包括:
一、对智能和机器关系问题的认识进一步增长。
研究人类智力一直是科学发展中最有意义,也是空前困难的挑战性问题。人脑是我们所知道的唯一智能系统,具有感知识别、学习、联想、记忆、推理等智能。我们通过不断 探索 人类智能的本质以及联结机制,并用人工系统复现或部分复现,制造各种智能机器,这样可使人类有更多的时间和机会从事更为复杂、更富创造性的工作。
神经网络是由大量处理单元组成的非线性、自适应、自组织系统,是在现代神经科学研究成果的基础上提出的,试图模拟神经网络加工、记忆信息的方式,设计一种新的机器,使之具有人脑风格的信息处理能力。智能理论所面对的课题来自“环境——问题——目的”,有极大的诱惑力与压力,它的发展方向将是把基于连接主义的神经网络理论、基于符号主义的人工智能专家系统理论和基于进化论的人工生命这三大研究领域,在共同追求的总目标下,自发而有机地结合起来。
二、神经计算和进化计算的重大发展。
计算和算法是人类自古以来十分重视的研究领域,本世纪30年代,符号逻辑方面的研究非常活跃。近年来,神经计算和进化计算领域很活跃,有新的发展动向,在从系统层次向细胞层次转化里,正在建立数学理论基础。随着人们不断 探索 新的计算和算法,将推动计算理论向计算智能化方向发展,在21世纪人类将全面进入信息 社会 ,对信息的获取、处理和传输问题,对网络路由优化问题,对数据安全和保密问题等等将有新的要求,这些将成为 社会 运行的首要任务。因此,神经计算和进化计算与高速信息网络理论联系将更加密切,并在计算机网络领域中发挥巨大的作用,例如大范围计算机网络的自组织功能实现就要进行进化计算。
人类的思维方式正在转变,从线性思维转到非线性思维神经元,神经网络都有非线性、非局域性、非定常性、非凸性和混沌等特性。我们在计算智能的层次上研究非线性动力系统、混沌神经网络以及对神经网络的数理研究,进一步研究自适应性子波、非线性神经场的兴奋模式、神经集团的宏观力学等。因为,非线性问题的研究是神经网络理论发展的一个最大动力,也是它面临的最大挑战。
以上就是有关神经网络的相关内容,希望能为读者带来帮助。
以上内容由苏州空天信息研究院谢雨宏提供。
入侵过程第三步骤是
信息收集入侵检测的第一步是信息收集,内容包括网络流量的内容、用户连接活动的状态和行为。
2.信号分析对上述收集到的信息,一般通过三种技术手段进行分析:模式匹配,统计分析和完整性分析。其中前两种方法用于实时的入侵检测,而完整性分析则用于事后分析。
具体的技术形式如下所述:
1).模式匹配
模式匹配就是将收集到的信息与已知的网络入侵和系统误用模式数据库进行比较,从而发现违背安全策略的行为。该过程可以很简单(如通过字符串匹配以寻找一个简单的条目或指令),也可以很复杂(如利用正规的数学表达式来表示安全状态的变化)。一般来讲,一种进攻模式可以用一个过程(如执行一条指令)或一个输出(如获得权限)来表示。该方法的一大优点是只需收集相关的数据集合,显著减少系统负担,且技术已相当成熟。它与病毒防火墙采用的方法一样,检测准确率和效率都相当高。但是,该方法存在的弱点是需要不断的升级以对付不断出现的黑客攻击手法,不能检测到从未出现过的黑客攻击手段。
2).统计分析
分析方法首先给信息对象(如用户、连接、文件、目录和设备等)创建一个统计描述,统计正常使用时的一些测量属性(如访问次数、操作失败次数和延时等)。测量属性的平均值将被用来与网络、系统的行为进行比较,任何观察值在正常偏差之外时,就认为有入侵发生。例如,统计分析可能标识一个不正常行为,因为它发现一个在晚八点至早六点不登录的帐户却在凌晨两点试图登录。其优点是可检测到未知的入侵和更为复杂的入侵,缺点是误报、漏报率高,且不适应用户正常行为的突然改变。具体的统计分析方法如基于专家系统的、基于模型推理的和基于神经网络的分析方法,目前正处于研究热点和迅速发展之中。
3).完整性分析
完整性分析主要关注某个文件或对象是否被更改,包括文件和目录的内容及属性,它在发现被更改的、被特络伊化的应用程序方面特别有效。完整性分析利用强有力的加密机制,称为消息摘要函数(例如MD5),能识别及其微小的变化。其优点是不管模式匹法和统计分析方法能否发现入侵,只要是成功的攻击导致了文件或其它对象的任何改变,它都能够发现。缺点是一般以批处理方式实现,不用于实时响应。这种方式主要应用于基于主机的入侵检测系统(HIDS)。
3.实时记录、报警或有限度反击
IDS根本的任务是要对入侵行为做出适当的反应,这些反应包括详细日志记录、实时报警和有限度的反击攻击源。
智能网联汽车新兴攻击方式有哪些?分别有哪些特点?
一、基于车辆通信模块信息泄露的远程控制劫持攻击
安全研究人员发现,国内自主品牌汽车大多使用专用apn,通过车内通信模块中的T-box连接与车辆控制相关的TSP后端服务器。通过ISP拉出一条专线,可以在一定程度上保护后端服务器的安全,但也会给后端服务器带来更多的安全隐患。由于专网apn的存在,Tsp不会暴露在公网,导致Tsp安全人员忽略了专网和Tsp本身的安全问题。专网内部没有严格的安全访问控制,T-box过于可信,允许T-box随意访问专网内部资产。同时,许多不必要的基础设施服务也暴露在APN专网中,这将导致更多的安全风险。
二、基于生成对抗网络的自动驾驶算法攻击
这种攻击是由于在深度学习模型的训练过程中缺乏特殊的训练数据,如对策样本。因此,一种常用的防御方法是增强神经网络本身的鲁棒性,将对抗样本放入训练数据中,重新训练网络,同时在使用过程中标记未识别的样本,并使用这些数据不断训练网络,以不断提高输入数据的识别精度。但是,无论在训练过程中加入多少对抗性样本,仍然有新的对抗性攻击样本可以再次欺骗网络。
三、基于V2V通信协议的伪造数字签名攻击
车对车(V2V)通信,即车辆之间的直接对话,以协调其运动并防止碰撞,有望在不久的将来成为智能互联交通基础设施的重要组成部分。V2V通信不需要视线,这使得V2V成为激光雷达或摄像头等传感器技术的补充。然而,在重大安全问题得到解决之前,V2V技术不能被视为足够安全。例如,如果从另一辆车接收的信息预测即将发生的碰撞,驾驶员需要迅速做出反应。因此,对传入消息进行身份验证非常重要;否则,可能会根据伪造的信息采取果断行动(如转弯),导致碰撞、车道偏离或其他不安全的结果。对于这种攻击,区块链技术可以更有效地保证车辆身份认证的安全性。
神经网络中的对抗攻击与对抗样本
对抗攻击
对抗攻击论文参考:
《Intriguing properties of neural networks》
《神经网络有趣的特性》
《Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey》,以下简称『Survey』。
图片做适当修改后能欺骗深度学习模型的可能性
1.举例理解:
左边是一张能够被GoogLeNet正常分类为熊猫的图片,在添加一定的噪音后变成右图,在人的肉眼看来,它还是熊猫,但GoogLeNet会判定为长臂猿。这种被修改后人类无法明显察觉,却被机器识别错误的数据即为 对抗样本 ,而这整个过程就可以理解为 对抗攻击 。
2.数学理解:
神经网络中每层神经元的输入 a = g(Wx+b),其中 g 为激活函数,W 为权重参数,x 为上一层的样本数据,b 为偏置参数,那么从拓扑学角度来看,在一个二维平面上,这个过程相当于哪几个步骤呢?
(1)一次使用权重参数矩阵 W 的线性变换
(2)一次使用偏执向量 b 的移动
(3)一次应用非线性激活函数 g 的变换
在 二维平面 ,其实是将整个平面进行了 旋转、移动和拉伸 三步。
分类问题
简单分类问题:通过较少几次变换将问题转换为一条直线可分割的空间。
既是一层神经网络就可以完成分类,通过变换空间布局,最终通过一条直线完成分类。
举例:
简单转换ing........
转换结果看下图
复杂分类问题:通过多几次的转换完成将问题转换为一条直线可分割的空间。
就是多层神经网络完成分类,通过变换空间布局,最终通过一条直线完成分类。
举例:
动态多步转换
以上是从低维度理解神经网络的训练,其中也有难以拉伸的例外,下图所示的圆套圆的情况,就是难以在二维空间将其拉伸到理想的位置的例子。
但,增加神经元,可以在 三维空间 中轻松将其分离。
看!
归纳 同样对于复杂问题可以通过,增加神经元在高维度通过更长且复杂的方式解决。
但是例如两个相互套起来的环,按照推测需要在四维空间中才能完全分开,然而我们难以想象四维空间,在现实世界的数据集中,这种死结或者缠绕问题可能会更复杂。
对于神经网络来,可以选择 将打成死结的数据尽可能拉伸开,而不是完全解开 ,如下图,对于分类问题来说,已经具有较高的准确率和召回率。
部分情况下,为了更精确地分类,较宽的神经网络可能相对深度来说更重要。
综上所述
1. 神经网络中包含语义信息的不在每个独立的神经单元,而是整个空间。 神经网络在最后一层能将样本中诸多变化的因子理清楚并理解其语义,并不是因为某个独立神经元中包含了什么特定的语义,而是 对整个空间进行变换后从最终的表征层中学到的 ,经过学习,神经网络会 放大某些相关因子,同时缩小某些无关因子 。
2. 神经网络学习到的输入到输出的映射在很大程度上是不连续的。 就像上面图中为了解开一个死结所做的拉伸结果一样, 在人看来,在拉伸距离较大的地方我们可以认为这种映射是连续的, 然而 对于仍然缠绕在一起的部分,之前可以用来划分界限的直线或者超平面已经无法连续 。
通过仔细观察可以区分出来,但是上文只是一个简单的例子,现实世界中的真实数据较为复杂,对于肉眼来说可能很难分清楚缠绕在一起的部分。对于神经网络来说, 对抗样本已经严重的跨过了用于分类的界限 ,而对于肉眼其实还 看不出来它有移动。
()线性特性的攻击行为()和()高效制造对抗样本的方法()
参考论文:
《Explaining and harnessing adversarial examples》
《对抗性例子的解读和掌握》
深度神经网络在高纬空间中的线性特性已经足以产生这种攻击行为 ,并提出了一种 更高效生成对抗样本的方法 ,接下来我们就简单分析一下这一理论和方法。
目前神经网络为了提高训练效率所使用的激活函数在局部都过于线性。
例如:
类比先前举出的拓扑学例子,在 最后的表征层 都是 通过直线或超平面完成的分类 ,在线性的假设下,暂且不通过二维或三维空间来理解,先从一个简单的数学公式角度开始。
数学解释
公式内容解释:
w 是训练好的参数向量
x 表示真实样本数据向量
η 表示给图像加入的噪音向量
x ~表示加入噪音后新生成的样本
当加入足够小的 η 时,肉眼无法区分出 x 的变化,直观感觉上左边的式子可能也不会变化很大。
事实上 ,然而 η 当的方向与 w 完全一致的时候,即使很小,也会使整个激活值变化很大。
假设证明:
如果 w 是一个 n 维向量,而其权值的平均大小为 m,那么激活值将会增加 nm。可见,在一个肉眼几乎无法差觉的扰动干扰下,对神经网络最终激活层的计算会产生巨大的干扰,从而迷惑神经网络训练出来的模型。
寻找正确方向
当 η 与 w 的方向一致时会使激活值最大,那么,如何找到这个正确的方向呢?
结论,那就是损失函数在待构造样本上的梯度方向,即下面的式子。
ε 是一个调节系数
sign() 是一个符号函数,代表的意思也很简单,就是取一个值的符号
(当值大于 0 时取 1,当值等于 0 时取 0,当值小于 0 时取 -1)
▽ 表示求 x 的梯度,可以理解为偏导,
J 是训练模型的损失函数。
结论的由来
在正常的神经网络模型训练过程中,有一个过程叫反向传播,就是对参数求偏导,然后将参数更新,我们结合下面这张图看一下。
假设图中的函数即为 损失函数 ,为了使损失函数降到最低,我们会根据当前值的梯度去调整。
当梯度小于 0 的时候我们可以看出,当前值需要右移。
而当梯度大于 0 的时候,当前值需要左移。
这个过程实际上就是用 θ 减去 θ。扩展到损失函数 J(θ, x, y) 中,θ 即为 我们要调整的参数 ,因此在样本 x 和 y 不改变的情况下,我们会**不断去调整参数 θ **以寻求局部最优解,即 θ = θ - θ 。
生成对抗样本,也可以采用类似的方法,那就是 固定参数 θ,调整 x 同时使损失函数增大 ,而不是变小,此时就应该让 x 往相反的方向走,即 x = x + x ,这样是不是很容易可以理解上面 η 的定义呢?在实践中,我们还需要通过 ε 这个参数来 调节噪音的大小 ,这种方法相比之前提到的优化方法非常高效,基本只需要一次计算就可以找到对抗样本,因此作者将这种方法叫做 快速梯度符号法 (Fast Gradient Sign Method,FGSM)。总结一下FGSM,这种方法通过替换目标值 y 就可以 让攻击样本朝着指定的分类目标走 ,即,可以做任意目标的欺骗。
将线性假设简化到二维空间,我们要求的 η 其方向正好就接近于参数 w 的方向,不再展开说明,有兴趣的读者可以自行画一画。
建立在一个高维空间线性的假设或猜测前提下,需要 实验 支撑,根据下列图片分析展开。
图片解释
这张图是对数据集CIFAR-10的分类器的决策边界示意图。
其中每个小格子代表的是不同的CIFAR-10样本,
每个小格子中:
横向从左往右代表的是FGSM算法中的梯度方向,
纵向代表的是FGSM梯度方向的正交方向,
白色表示模型能分类正确的情况
彩色代表预测出错的情况
不同的颜色代表不同的错误预测分类。
可以看出,在出错的区域都程线性分布,另外,如果横轴的方向走的不够远,即便再往其他方向走都无法使模型出错,而一单进入这个区域,就会出现大量的对抗样本。而在随机找到的对抗样本中,这种分布也是很随机的,甚至很难找到,见下图。
从实验结果表明
高维空间中的线性假设也是合理的
举例
一匹叫做 Clever Hans 的马,刚出现的时候人们认为这匹马会做算术,但实际上它只是会阅读人的表情,当它点马蹄的次数接近正确答案时,人们的表情会更兴奋,它就知道该这个时候停止了。
隐喻神经网络,一个测试效果良好的分类器,其实并不像人类一样学习到了所分类样本的真正底层概念,只不过刚好构建了一个在训练数据上运行相当良好的模型,所以,你以为你以为的就是你以为的吗?
分类器能够在训练集的不同子集上训练时获得大致相同的分类权重,因为机器学习算法能够泛化, 基础分类权重的稳定性反过来又会导致对抗性样本的稳定性。因此, 对抗攻击可以认为是存在于任何神经网络模型。
以上是论文二的线性特性的攻击行为
高效制造对抗样本的方法
目前来看还没有能够完全抵抗这种攻击的方法,其实结合攻击的原理也不难看出,即便分类器做得再好,总能使一个样本用最小的干扰走到错误的分类区域,我们能做的更多是如何构造鲁棒性更强的模型,同时也保持对这个领域的关注。『Survey』(注意第一篇论文的引用有注释)中总结的目前抵御攻击的办法可以分为三大类:
1.修改训练样本 ———— 通过添加更多的对抗样本到训练集中可以有效避免一部分攻击 ,但这更像是一种无奈的做法, 当扩大样本集的时候,其实分类边界有可能也在随之扩大 。
2.修改训练网络 ,这类方法会对训练网络做出一定调整,其中有一种方式是模拟生物学 在最后一层使用更加非线性的激活函数 ,但这种方式又会 导致训练效率和效果下降 。修改训练网络的方法分为 完全抵抗 和 仅检测 两种方式,完全抵抗其实就是让模型能将对抗样本识别为正确的分类,而仅检测是为了发现这种攻击样本,从而拒绝服务。
3.附加网络 ,这种方式是在 不改变原有模型的情况下使用额外的网络进行辅助 ,这样可以使原有网络保持不变,其中最有效的一种方式是生成式对抗网络——GAN。同样的,这种方式也分为 完全抵抗 和 仅检测 两种方式。
总结一下
定义:
对抗样本:是指在数据集中通过故意添加细微的干扰所形成的输入样本,会导致模型以高置信度给出一个错误的输出。
原因分析:
对抗样本出现的主要原因之一是过度线性, 神经网络主要是基于线性块构建的,实现的整体函数被证明是高度线性的,如果一个线性函数具有许多输入,那么它的值可以非常迅速地改变。
参考:
0条大神的评论