人工智能基础:第三话 深度学习与神经网络
念空科技
咱也好好学习。
上一集我们讲到机器学习的基础原理,用简单的比喻来解释,就仿佛是教一个孩子通过经验来学习。“经验”是文本、图像、视频、音频或其他形式的数据,这些数据将通过各种步骤被转化为机器可以理解和处理的数值。机器尝试去找到一个“特别的数学公式” 以反映输入数值与输出数值之间的关系规律,然后通过调整公式中的不同参数,找到最终精确的参数,并确认最佳的公式。所以,机器学习的过程还可以被看作是一个寻找最佳函数的过程。
(不断调整函数Y=W1*X+W2*Y+b中的参数,直到找到那条能够正确区分所有猫图和狗图的“斜线”,找到最终精确的参数 W1、W2、b,找到能够最佳反映输入与输出关系的最佳函数)
机器学习中的 “函数”我们也叫做“算法”或者“模型”。算法的选择会因为数据类型和执行任务的不同而不同,不同的算法具有不同的特点和优势,适用于处理不同类型的数据和完成不同的任务。
神经网络是一种算法,而深度学习则是以神经网络算法为核心的一种机器学习。今天我们尝试对深度学习、神经网络的概念和运行机制做一些初步的介绍。
传统机器学习 VS 深度学习
在机器学习领域,数据通常被分为两大类:结构化数据和非结构化数据。结构化数据通常指的是那些能够被清晰地组织在表格中的数据,如表格数据,包括数字、日期和类别等。非结构化数据指的是文本、图像、音频和视频等不能直接被放入传统表格中的数据。
由于结构化数据的特征容易被识别和处理,所以传统机器学习算法适合处理这类数据。传统机器学习算法依赖于手动进行特征提取和选择,通常更适用于处理相对简单或中等复杂度的任务。因此传统机器学习在金融分析、客户关系管理等领域的结构化数据处理中能够取得良好的表现。
而非结构化数据通常不遵循固定格式或结构,往往携带大量、多维度、高维度的信息,手动提取这类数据的特征既困难又耗时,传统机器学习算法因此爱莫能助。而神经网络,尤其是深度学习模型,能够自动从非结构化数据中学习和提取特征,能够处理高维数据(例如图像中的每个像素点,文本中的每个单词)并从中提取关键信息,能够通过调整架构(例如层数、神经元数量、卷积核大小等)来适应各种类型和规模的非结构化数据,能够捕捉数据中复杂的、非线性的模式……因此神经网络算法适合处理非结构化数据,更多地应用于诸如图像识别、语言理解和音频分析等任务中。
深度学习 with 神经网络
深度学习是机器学习的子集,是处理非结构化数据的有效方法,其核心是使用神经网络算法,特别是那些有多个层次的复杂网络,即深度的神经网络。神经网络有许多变种,诸如卷积神经网络(CNN)、循环神经网络(RNN)、长短时记忆网络(LSTM)等,各种变种各自适用于不同的任务和数据类型。作为最初步而基础的介绍,今天我们以最基本、最简单的神经网络架构——多层感知器(Multi-Layer Perceptron, MLP)来进行说明。
“神经网络”,顾名思义,其灵感来源于人类的大脑结构。人脑中的神经元是信息处理的单元,那么机器中的神经元是什么,这些神经元又是如何连接起来的?如果我们能回答这问题,那么我们对神经网络的运行机制可以算有了一个基本的了解。
装数字的神经元,层状结构的神经网络
当我们说到机器中的神经元,我们首先可以把它想象为一个装着数字的容器。这个容器装着一个0-1之间的数字。下面这张图片有很多的装数容器,很多的神经元,这些容器分别对应了28*28的输入图像里的像素,总计784个像素,即784个神经元。神经元中装着的数字对应像素的灰度值,0表示纯黑,1表示纯白——这些数我们称之为“激活值(Activation)。激活值越大(越趋近于1),神经元越亮(越趋近于纯白),这784个神经元就组成了神经网络的第一层——输入层。
现在我们跳到网络的最后一层——输出层。这一层的神经元分别代表0-9这十个数字,它们的激活值也都处在0-1之间,这些值表示系统认为输入的图像对应着哪个数字的可能性。
神经网络中间还有几层——隐藏层,我们暂且把它看作一个大黑箱,里面进行着处理、识别数字的具体工作。
我们假设这个神经网络仅有两层隐藏层,每层有16个神经元,是一个被训练好的,可以识别数字的神经网络。所以演示中的神经网络共有四层:第一层为输入层,第二、三层为隐藏层,第四层也是最后一层为输出层。
机器中的神经元模仿的是生物神经元的网络和工作机制:某些神经元的激发促使另一些神经元被激发,一个神经元接收到来自其他神经元的信号,并将信号传递到下一个神经元。神经网络算法的理想模式是:在输入层的784个神经元中输入784个代表图像中各像素灰度的数值,那么这第一层的激活值图案,会让第二层的激活值产生某些特殊的图案,而第二层激活值的特殊图案,又会让第三层产生特殊的图案,第三层激活值的特殊图案,会在最后一层的输出层得到某种结果。输出层中最亮的那个神经元就代表了神经网络的“选择”和“判断”。
那么上一层的激活值又是如何让下一层的激活值得到特殊图案或者得到相应结果的?这种层状结构是如何做到智能的选择和判断的?这是理解神经网络运作机制的关键。
神经网络的运作机制
我们尝试将神经网络的运作做这样的分解:
1)当我们在识别数字的时候,我们其实是在组合数字的各个部件:9就是上边一个圈加上右边一个竖;8就是上边一个圈加上下边一个圈,4是三条短竖线组合起来。
2)在理想的情况下,倒数第二层的各个神经元应能分别对应上一个笔画部件。这样当我们输入“9”这个带圆圈、带竖线的数字时,倒数第二层中对应这两个笔画部件的神经元中的激活值应该接近1,应该被相应点亮。
3)识别数字各个部件的任务又可以进一步拆分为更细微的问题。这些数字部件可以拆分为更小的边(edge),比如“9”和“8”等数字中的圆圈可以进一步分解几个短边的组合,“9”、“1”等数字中的竖线也可以进一步分解为几条短边的组合。
4)所以理想的情况下,神经网络第二层中的各个神经元可以对应上这些形形色色、不尽相同的短边。当我们输入“9”,第二层对应“9”所包含的所有短边的神经元中的激活值就会接近1,都会被相应点亮,接着第二层去点亮第三层对应“9”所带的圈和竖线的神经元,最后第三层去点亮输出层对应数字“9”的神经元。
“依次点亮相应神经元,依次传递信息”——这是对神经网络的基本运行机制的一个简化的、视觉化的描述,神经网络的运行机制实际上还要复杂得多,涉及到各个神经元之间的加权连接、激活函数的应用以及网络层之间的信息传递。我们尝试补充一些信息(每一个信息点都够开一门课,我们会尝试在以后的日子里进行逐一解读),使得对神经网络的基本运行机制有一个更详细的解释:
神经元模拟了生物神经元的功能,每个神经元接收来自前一层神经元的输入;
神经元收到的每个输入都有一个权重,这些权重决定了各个输入信号的重要性,神经元将所有输入信号的加权和计算出来,这个总和可能还会加上一个偏置项;
加权和通过一个激活函数进行处理。这个函数可以是非线性的,如Sigmoid;
经过激活函数处理的输出会被传递到下一层神经元,在多层神经网络中,这个过程会在每一层重复进行,直到达到输出层;
神经网络通常包含多个层次,包括输入层、隐藏层和输出层,每一层都有多个神经元,它们可以以不同的方式连接。
这就是层状结构进行智能选择和判断的运行机制。如果神经网络可以识别出“9”的边缘和图案,那么进一步的,它也能很好地运用到其他图像的识别任务上来。想象一下,神经网络将如何“庖丁解牛”并完成以下的图片识别任务
略作小结:传统机器学习算法适合处理结构化数据,深度学习算法擅长处理非结构化数据,深度学习的核心是使用神经网络算法。神经网络模拟人类的大脑结构,模拟生物神经元的功能,将图像、声音和文本等数据一层层地抽丝剥茧,转化为抽象的数字,装入神经元。每个神经元接收来自前一层神经元的输入,每个输入都有一个权重,神经元将所有输入信号的加权和计算出来,再通过一个激活函数进行处理,经过激活函数处理的输出被传递到下一层神经元,在层状结构的神经网络中,这个过程会在每一层重复进行,直到达到输出层。
念空科技,2018年5月机器学习策略实盘开始运作,配备高性能GPU集群的服务器,使团队算力得到充分保障。到目前为止,念空深度学习为主的机器学习算法已经全面替代传统统计套利策略,应用于全部股票中性策略产品中。念空的优势在于人工智能领域较早的深入研究,使深度学习高频阿尔法选股策略提供了更稳定更高的超额收益。念空始终致力于运用科学的数据分析方法为投资人提供高质量的绝对收益产品,并将继续谦逊而持久地深耕于AI领域,并时刻密切关注AI所可能带来的新风险和新挑战。
今日表达“深度学习与神经网络”的诗歌,由有时也离谱的GPT和小编合作完成:
“在数据的海洋深处,藏着知识的珍珠,
神秘的海底世界,每一层都有守护,
第一层是浅海的门户,捕捉浅显光影,
中层是重重玄机,将光影化为线索,
深层之中智慧蕴藏,线索化为洞见,
层次之间,信号流动,
每一层都在倾听,
每一层都在学习。”
咱也好好学习。