浅谈人工神经网络
试想某一天,程序员们想开发一个简单的分类器,用来把各种各样的动物图片中以猫为主题的挑拣出来。传统思路是提取图片的几何特征,看是否与猫相符。可惜的是这十分困难,在不同角度,光暗条件,或是猫品种不同时,猫的几何特征很难统一描述,何况如果是更为复杂的图片,猫可能躲在树后只露出半边脸。
于是程序员们决定换个思路。
学过大计基的我们知道,图片由像素点组成,每个像素点由几个字节的数据表示其颜色与亮度。因此图片在计算机里就是一串数据。猫的几何特征在数据上可能会有一些规律,然而人类很难发现它们。因此偷懒的程序员们决定让计算机自己去找。
1,神经元
为了了解人工神经网络,我们先了解一下它的组成单位——神经元 。
人工神经网络是模拟活体生物系统中真实存在的神经网络结构的模型。进而要求我们先回顾生物神经元的基本特性。大致上说来,一个典型的 neural 元结构如下所示:

一个生物神经元是由单个基本单元构成的生命体,在其体内分布着称为树突的部分作为接受刺激的道路,并通过称为轴突的部分向外延伸以实现信息传输的功能。在特定情况下通过该细胞所发出轴突所传递的信息表明该细胞处在一个抑制状态还是兴奋状态下这种变化的状态则取决于该细胞树突接收的一系列信号所形成的综合影响
于是人们模仿这个特性开发了人工神经网络的神经元。

人工神经网络中的一个神经元是对生物神经元的基础特性进行模拟的一个软件单元。它根据其有效输入是否达到了预设的标准——这个标准被称为神经元的阈值——来决定输出状态为0或1。如图所示,在图形表示中,这个有效输入是多个实际输入信号的加权总和。图中显示了两个神经元之间的连接关系是由箭头表示的。其他神经元(标记为v₁、v₂和v₃)将它们的输出信号传递给当前分析的对象。此外,在这些连接中还包含了与之相关的权重参数(分别记为w₁、w₂和w₃)。该系统通过将每个输入信号与其对应的权重相乘,并将这些乘积求和得到总的有效输入(即w_{1}v_{1} + w_{2}v_{2} + w_{3}v_{3})。如果这一数值超过了该神经元设定的具体阈值,则该单元会产生1的状态(模拟兴奋状态);反之,则输出0的状态(模拟抑制状态)。
拥有了神经元之后, 就是组建人工神经网络的时候了. 为了方便表示, 我们先规定如下的符号:

箭头处标注着权值,在圆圈中心标记着阈值;此外,在提及时表明这些权重既可以取正值也可以取负值;它们表明输入对神经元的作用可能是激发也可能是抑制的。

如前所述,在前面举的例子中
然而问题是,权值和阈值是怎么确定的呢?
2,训练人工神经网络
人工神经网络的一个显著特点是不再依赖于传统意义上的程序设计来实现功能,而是通过持续的学习和优化来完成任务。具体而言,网络中的关键参数——权重和阈值——并非由程序员预先设定,而是通过反复训练过程自主调整以达到最佳状态。这一学习过程主要采用监督学习的方式展开,例如,开发者可将包含猫主题图片的数据集中的每张图片标记为1(表示包含猫),其余标记为0(表示不包含猫),然后将这些数据输入到人工神经网络中进行学习。随后,该模型会不断比较其输出结果(1或0)与实际标签之间的差异,并相应地微调网络参数使其更贴近人类决策标准。这一过程通常需要大量数据支持以及长时间的学习迭代,同时还需要有程序团队对整个训练流程进行监控管理,因此有人将其戏称为"人工智能炼丹师"。
值得注意的是,在机器学习领域中,“人工神经网络”这一概念是由训练数据驱动生成的模型——它是一个无法透彻解析的复杂系统(即所谓的黑箱)。实际上人们依然不清楚这些参数的具体设定理由(即权重系数和激活函数等),尽管如此,在实际应用中其分类准确率始终保持在较高水平。
值得注意的是,在机器学习领域中,“人工神经网络”这一概念是由训练数据驱动生成的模型——它是一个无法透彻解析的复杂系统(即所谓的黑箱)。实际上人们依然不清楚这些参数的具体设定理由(即权重系数和激活函数等),尽管如此,在实际应用中其分类准确率始终保持在较高水平。
但是,在人类大脑中拥有大量神经系统单元被称为神经元的数量庞大程度令人难以置信——达到10^{11}个——而每一个这样的单元通常都具备大约10^4个突触连接。实际上其树突形成了一个复杂而密集的网络结构而非简单的线性排列。这使得仅靠这么少数量的神经元即使经过长时间训练也难以有效得出正确的结论因此促使程序员们转向构建深度人工 neural network.
3,深度人工神经网络
为了更好地理解这一机制的本质特征,在深度神经网络中通常会被划分为多个层级结构;现代技术发展已经能够轻松应对高达数百层的复杂网络架构。当层数增多时,在每一层中所承担的功能模块也会相应发生变化;整体识别精度会有明显提升。
先贴引用论文信息:
Krizhevsky, A., Sutskever, I., and Hinton, G. E. (Year 2012). ImageNet classification using deep convolutional neural networks. In the proceedings of the Advances in neural information processing systems (pages 1097–1105).
2012年多伦多大学的研究团队由Krizhevsky等人主导开发了一个极其复杂的卷积神经网络架构。该网络具备9层深度并拥有总计650万至7百万个可训练参数。该模型接收图像作为输入数据,并能够识别出超过1,478种不同的物体类别(包括小甲虫、美洲豹和救生船等具体实例)。
第一层神经元主要负责识别颜色和简单纹理

第二层的一些神经元可以识别更加细化的纹理,比如布纹、刻度、叶纹。

第三层的一些神经元负责感受黑夜里的黄色烛光、鸡蛋黄、高光。

在第四层中有一些特定的神经元被用来专门识别萌狗的外貌特征、七星瓢虫以及一些圆形物体的存在。

第五层的一些神经元可以识别出花、圆形屋顶、键盘、鸟、黑眼圈动物。

虽然单个或单层神经元的作用非常有限,但拥有65万个神经元和9层结构的人工智能网络却展现了令人惊叹的能力。
到此为止似乎只是"输入-处理-输出"这一线性流程 在优化之后的人工神经网络系统中则能够展现类似人类的认知能力(至少从结果效果上) 例如能够进行关联记忆
4,联想记忆
联想机制——能够识别与现有信息相关联的信息,反映着人类认知能力的核心特征。制造具备这种联想机制能力的人工智能系统长期以来一直是研究重点之一;目前而言,人工神经网络技术已成为实现这一目标的重要手段。
我们设想一个完全不带输入输出的人工神经网络。其中每条直线代表双向连接,在线上标注着权值系数。同时圆圈内部标注着激活阈值。

假设我们用1来表示兴奋状态、0来表示抑制状态,在任何时候整个网络的状态都能通过1和0的排列来描述。若我们将网络最右边的两个神经元设置为处于抑制状态、其余神经元设置为兴奋状态,则这将导致以下过程:在有向图中,节点是基于层次递增的方式连接到下一个层中的节点。这种结构具备实现信息传递的能力。

该系统最终将实现一个稳定的网络结构。
以上是这一网络的特性,则如何利用它实现联想回忆的功能呢?如果我们把某些位标记为"现实"编码域,并将另外一些位标记为"回忆"编码域,则基于某个稳定布局初设的"现实"位就能使剩余各位识别到相应的"回忆"区域。
5,结语
近年来,在人工智能技术的推动下,图像识别和语音识别的准确率取得了显著的进步。更为复杂且智能化的应用正不断涌现。借助行车记录等数据进行自动驾驶相关应用开发,并通过利用音乐数据来开发其编曲能力。
回到文章开头举的例子,要把猫的图片区分出来。
博主很想试试要是把这张图片输入进去,看看会有什么结果?

(咳咳,如果有机会的话,一定要试试)

非常快乐。
要与大家分享的是这篇文章的配乐作品。其中由AI Aiva担任作曲负责编曲部分,并经专业音乐家演奏呈现出了独特的艺术魅力。感兴趣的朋友可以点击下方专辑《Genesis》了解更多细节。
