> by
了解从头开始的神经网络的内部功能
了解机器学习算法背后的数学是超级大国。如果您曾经为现实生活中的问题建立了模型,那么您可能会发现熟悉超越基准性能的细节可能会非常有帮助。当您想突破现有技术的界限时,尤其如此。
但是,大多数知识都隐藏在高级数学层后面。因为它基于多元演算和概率理论,所以似乎很难理解诸如随机梯度下降之类的方法。
但是,以适当的基础,大多数想法可以被认为是自然的。如果您是初学者,不一定必须接受高级数学的正规教育,那么为自己创建课程非常困难。在本文中,我的目标是提出一个路线图,使您深入了解神经网络如何从绝对零开始。
为了使事情变得简单,目的不是涵盖所有内容。相反,我们将专注于方向。这样,您将能够根据需要轻松学习其他主题。
建议不要整体上阅读本文,而要将其用作您的研究的参考点。深入介绍了引入的概念,然后检查路线图并继续前进。我坚信这是学习的最佳方法:我将向您展示这条路,但是您必须走这条路。
基本面
大多数机器学习建立在三个支柱上:线性代数,微积分和概率理论。由于最后一个是基于前两个,因此我们应该从它们开始。可以独立研究微积分和线性代数,就像在标准课程中所做的那样。
结石
微积分是对功能分化和整合的研究。本质上,神经网络是可区分的功能,因此积极将成为训练神经网络的基本工具。
要熟悉这些概念,您应该使事情变得简单,并首次研究单个变量的功能。根据定义,该函数的导数定义为
给定h的比率是点(x,f(x))和(x+h,f(x+h))之间的线的斜率。
在极端情况下,这本质上是点x处的切线线的斜率。下图说明了概念。
>
差速器可用于优化该函数:衍生物在局部最大值或最小值处为零。 (但是,从另一个方向来看,这是不正确的;请参见f(x)=x³是0。)一个衍生物为零的点称为临界点。临界点是可以通过查看第二个导数来确定最小值还是最大值:
有一些有关区别的基本规则,但最重要的是所谓的链条规则:
告诉我们如何计算组合函数的导数。
积分通常被称为差异的倒数。这是真的,因为
它可以与任何可集成的功能F(x)一起使用。函数的积分也可以视为曲线下的签名区域。例如,
因为当功能为负时,该区域也具有负符号。
>正弦和π的区域
集成本身在理解期望的概念中起着作用。例如,根据积分来定义熵和差异等数量。
进一步的研究
我会推荐MIT的单变量演算课程。 (通常,麻省理工学院的在线课程始终是一个很好的学习资源。)如果您喜欢一本书,则有很多教科书可供选择。吉尔伯特·斯特朗( )的《微积分》()再次是免费的,它是一个很好的资源,完全免费。
线性代数
正如我提到的,神经网络本质上是功能性的,并且是使用微积分工具训练的。但是,它们是用线性代数的概念(例如矩阵乘法)来描述的。
线性代数是涉及机器学习许多重要方面的广泛学科,因此这将是一个重要领域。
向量空间
为了很好地了解线性代数,我建议从向量空间开始。最好先讨论一个特殊情况。您可以将飞机中的每个点视为元组
这些本质上是指向零向(x1,x2)的向量。您可以添加这些向量并将它们乘以标量:
这是向量空间的原型模型。通常,如果可以将向量添加在一起并乘以实数,则向量V是实数上的向量空间,它可以满足以下属性:
不要恐慌!我知道这看起来很恐怖(至少在我是数学新生时,至少在我看来),但事实并非如此。这些只是确保可以按照您的期望添加和缩放向量。在考虑向量空间时,如果您从心理上将它们建模为
向量空间
如果您觉得自己对向量空间有很好的了解,那么下一步就是了解如何测量向量的大小。默认情况下,向量空间本身没有提供任何工具。您将如何在飞机上进行操作?您可能已经知道那里了,我们有
这是规格的特殊情况。通常,如果存在函数,则将向量空间V分配给
称其为常态
同样,这可能是可怕的,但这是一个简单而重要的概念。那里有很多规格,但最重要的是P规格系列
(当p = 2时,我们得到上面提到的特殊情况)和最高规范
有时,例如,对于p = 2,规范来自所谓的内部产品,即双线函数
所以
具有内部产品的矢量空间称为内部产品空间。一个例子是经典的欧几里得产品
每个内部产品可以通过
当两个向量的内部产物为零时,我们说这些向量彼此正交。 (尝试在飞机上提出一些具体的例子,以更深入地了解该概念。)
基础知识和正交/正交基础
尽管矢量空间是无限的(在我们的示例中),但您可以找到一组有限的向量,可用于表示空间中的所有向量。例如,在飞机上,我们有
什么时候
这是基本和正交基础的特殊情况。
通常,基础是最小向量集
使它们的线性组合跨越矢量空间:
任何向量空间总是有基础。 (这可能不是有限的集合,但现在不应该引起我们的注意。)毫无疑问,在讨论线性空间时,基础可以大大简化事物。
当基数中的向量彼此正交时,我们称它们为正交基础。如果每个基本向量的规范在正交的基础上为1,则说它是正交的。
线性变换
与矢量空间相关的关键对象之一是线性转换。如果您以前看过神经网络,您会知道,基本的构建块之一是以下形式的一层
其中a是矩阵,b和x是向量,而σ是S型函数。 (或者,实际上任何激活函数。)然后,AX部分是线性转换。一般来说,功能
是向量空间V和W之间的线性转换,如果
v中的所有x,y和所有实数都是真实的。
为了给出一个特定的例子,围绕原点的旋转是线性变换。
关于线性转换的最关键事实是,正如您在研究中所看到的那样,它们可以用矩阵来表示。
矩阵及其操作
如果线性转换是明确的,则可以研究矩阵。 (线性代数课程通常以矩阵开头,但我建议以这种方式进行,稍后将解释原因。)
矩阵最重要的操作是矩阵的乘积。通常,如果A和B是
然后他们的产品可以通过
这似乎很难理解,但实际上非常简单。查看下图,以演示如何计算产品第二行的第一列中的元素。
由于矩阵表示向量空间之间的线性变换,因此定义了矩阵乘法。矩阵乘法是线性转化的组成。
如果您想了解有关此信息的更多信息,那么有一篇关于数据的精彩文章可以详细解释内容。
决定因素
我认为,决定因素是在线性代数中掌握的最具挑战性的概念之一。根据您的学习资源,通常通过递归或迭代所有排列的总和来定义它。没有很多数学经验,它们都不容易处理。
要了解这个概念,请观看下面的视频。相信我,这是魔术。
总而言之,矩阵的决定因素描述了对象的体积如何在相应的线性转换下缩放。如果转换改变方向,则决定因素的符号为负。
您最终将需要了解如何计算决定因素,但是现在我不必担心。
特征值,特征向量和基质分解
标准的第一线性代数课程通常以特征值/特征向量和一些特殊的矩阵分解(例如单数值分解)结束。
假设我们有一个矩阵A。如果存在向量x(称为特征向量),则数λ为a的特征值
抓住。换句话说,对于向量X,由A表示的线性转换为λ的缩放。这个概念在线性代数中起着至关重要的作用。 (实际上,在广泛使用线性代数的每个领域。)
在这一点上,您已经准备好熟悉一些矩阵分解。如果您从计算角度仔细考虑一下,哪种类型的矩阵是最好的?对角矩阵!如果线性变换具有对角线矩阵,则可以简单地计算其对任何向量的值。
大多数特殊形式旨在将矩阵A分解到矩阵的产物中,最好使用至少一个对角线。最著名的单数值分解(简称SVD)表示存在特殊矩阵U,V和对角线矩阵σ
抓住。 (u和v被称为单位矩阵,我在这里没有定义,足以知道它是一个特殊的矩阵家族。)
SVD还用于执行主成分分析,这是最简单,最著名的降维方法之一。
进一步的研究
线性代数可以通过多种方式讲授。我这里概述的路径是由谢尔顿·阿克斯勒( )的教科书“通过线性代数正确完成”的。对于在线讲座,我建议MIT的线性代数课程,这是一个很好的资源。
如果课程可能太多,则有很多很棒的文章,例如以下内容。
多元计算
这是将线性代数和微积分组合在一起的部分,为训练神经网络(梯度下降)的主要工具奠定了基础。从数学上讲,神经网络只是多个变量的函数。 (尽管变量的数量可能为数百万。)
类似于单变量演算,这里的两个主要主题是差异和积分。假设我们有一个函数
将向量映射到实数。在二维(即n = 2)中,可以将其视为表面。 (由于人类在三个维度上方看不到以上的三维,因此很难看到具有两个以上实际变量的功能。)
> a的两个。
多个变量的差异
在单个变量中,导数是切线的斜率。您如何在这里定义切线?表面上的一个点具有多个切线,而不仅仅是一个切线。但是,有两个特殊的切线:一个平行于XZ平面,另一个与Yz平面平行。它们的斜率取决于部分衍生物,
也就是说,您通过固定除一个变量以外的所有变量获得的函数的派生形式。 (对于≥3个变量,正式定义是相同的,除了符号更复杂。)
这些特殊的方向切线跨越切线平面。
>。
梯度颜色
还有另一个特殊的方向:梯度,是由
梯度总是指向最大增加的方向!因此,如果您朝这个方向迈出了一小步,那么您的高度将是您可以选择的所有其他方向中最大的一步。这是梯度下降的基本思想,这是一种最大化功能的算法。步骤如下。
版权声明:本文为 “博览广文网” 原创文章,转载请附上原文出处链接及本声明;
工作时间:8:00-18:00
客服电话
0755-88186625
电子邮件
admin@lanyu.com
扫码二维码
获取最新动态