人工智能技术基础
上QQ阅读APP看书,第一时间看更新

1.4 深度学习

随着AI的流行化,对AI技术的研究也是“深一脚,浅一脚”地前行。所谓的“深”,是指结构化地、高效地、有针对性地解决问题,而“浅”是指处理问题中发生的无结构且低效的解决方法。“深度学习”也属于机器学习的一种方法,与以往的机器学习比较起来,深度学习在多数情况下能发挥出更强大的性能。人工智能、机器学习、深度学习三个词汇的关系如图1.11所示。

图1.11 人工智能、机器学习、深度学习的关系

机器学习可以分为监督学习、无监督学习和强化学习三种,深度学习是可以适用于上述三种学习方法中的一种方法。深度学习的出现,使机器学习极其擅长处理一定规则下只有一个正确答案的课题。例如,英语翻译成汉语,很多时候不同的语境翻译出来的意思有很大的不同,并不是千篇一律的翻译结果,深度学习在这一方面取得了很大的突破。

深度学习在学习过程中会进行多种类、多阶段的验证。“指鹿为马”的典故继续用在这里,如果要判断照片上是马还是鹿,就会进行“脑袋上是否有犄角”“身上是否有纹路”“蹄子是否需要打掌”等诸多验证。计算机也会在多次验证后,将得到的结果运用于其他验证。

1.4.1 深度学习起源于感知机

感知机是深度学习的起源算法,是指系统接收多个输入,回复一个输出。输入的是数值,输出的是0和1,在输入和输出的中间过程中会对输入值进行加权处理,如图1.12所示。

图1.12 深度学习的感知机原理

深度学习系统会将输入值进行加权后再合计,输出端对该合计值进行判断,并输出0和1。权重可以理解成水管的精细程度。从A输入处输入的数值,根据软管的精细程度,也就是权重数值,经过改变后再输送至输出处。B输入也会经历同样的过程。受到A、B输入中X权重影响而被送至输出处的输入值,在输出的地方经合计后,最终确定输出0或1。在输出的地方会设定一个阈值,超出则输出1,否则输出0。假设从A输入处注入120mL水,B输入处注入80mL水,输出的条件为“若达到300mL,则输出1;否则输出0”。

随着A和B的权重不同,输出值也会不同。现在设定A的权重为1,B的权重为2,A输入处注入的120mL水通过权重为1的软水管,B输入处注入水量就有两个80mL。如此一来,输出处从A处接收到120mL,从B处接收到两个80mL,最终输出处共接收280mL的水。根据输出条件“若达到300mL,则输出1,否则输出0”,决定最终输出的值为0。

再重新设定A的权重为2,B的权重为1。A输入处注入的120mL水通过权重为2的软水管,B输入处注入的80mL水,通过权重为1的软水管,这样的设定使输出处从A处接收到两个120mL,也就是240mL,从B处接收到80mL,最终输出处共接收320mL的水,同样根据限定条件,最终输出的值为1。

在深度学习中,权重是一个指标,通过权重对相关的输入值进行考量,最终的输出结果跟权重也有一定的关系,通过深度学习,学到的正是软水管的精细程度,也就是权重值。

不过,从实验的角度,注入和开关水管的时候,软水管内壁都可能会使水量在测量值方面有一定的误差。320mL和300mL水量的比较,280mL和300mL水量的比较,可能就在一些误差操作中产生了微小的变化。所以,作为判定基准的“300mL”会有所调整,把对应“300mL”所表现出的误差部分就称为“偏差”。顾名思义,它会使C的条件产生偏差。这里设定偏差值为“-300mL”,也就是丢弃300mL水。此时,A处注入的120mL水与B处注入的80mL水各自根据自己的权重变化而变化,现在输出的条件为“合计值大于0,则输出1,合计值小于0,则输出0”,A的权重为1,B的权重为2,则合计到输出处的水量为280mL。根据偏差规定,丢弃300mL。最终水量变为-20mL,达不到合计值0,则输出0。如果把A的权重设为2,B的权重设为1,输出的条件不变,则合计到输出处的水量为320mL。丢弃300mL,水量变成20mL,达到了合计值大于0,则输出1。

设置偏差更有利于深度学习的后续操作,因此这种形式更为普遍。

1.4.2 通过激活函数实现微调

在水流问题的讨论中,输出限定了一个条件“合计值大于0,则输出1,合计值小于0,则输出0”。其实这句话相当于一个过滤器,水量大于0,输出1,水量小于0,输出0,一刀将水流合计值断成两类。这里把输出的数值加以改变的过滤器称为“激活函数”。

激活函数种类繁多,它可以实现只输出0和1的二分类;也可以实现输出0.001、0.002、0.003等数值,有无数种可能性。输出无数种可能的网络被称作“神经网络”。神经网络的第0层是“输入层”,最后一层是“输出层”,位于输入层和输出层之间的被称为“隐藏层”,如图1.13所示。

图1.13 深度学习的神经网络结构

深度学习指的是神经网络的逐渐深入。究竟深入多少层才能称为深度学习,还没有一个准确的定义。目前,将隐藏层为两层及以上的神经网络的学习称为深度学习。

1.4.3 深度学习的输出层

谈及输出层时,一般情况下都是指集中于单一数值的情况,但也不是绝对的。例如,手写数字识别这样的项目,若只想判断输入的对象是否为1,那么就将输出层的数值个数设为1,输出层输出的值是“输入的手写体文字为1的概率”。如果改变一下思维,判定输入的手写体文字是0~9的哪一个概率更大一些,就需要将输出层的数值个数设定为10个。于是,输出层就有了“输入的手写体文字为0的概率”“输入的手写体文字为1的概率”“输入的手写体文字为2的概率”等概率输出。