机器学习算法原理——矩阵微积分,构建你的“黑客帝国”

你吃了蓝色的药丸,故事就结束了,你在床上醒来,相信你愿意相信的一切。你吃了红色的药丸…你留在仙境,我让你看看兔子洞有多深。

这是《黑客帝国》中墨菲斯对尼奥说的名言。你必须做出同样的选择,你想继续使用像pytorch和tensorflow这样的自动化框架而不知道其背后原理?还是想更深入地研究矩阵计算的世界,了解反向传播算法( backpropagation,BP)的工作原理?

线性代数基础知识

向量和矩阵

这里,我用不加粗的小写字母表示标量,如:

列向量会用加粗的小写字母表示,如:

行向量也用加粗的小写字母表示,但它们有一个T上标。T上标代表转置:

代表矩阵的符号将是加粗的大写字母:

也可以对一个矩阵进行转置,第一列会变成第一行,反之亦然:

一个向量或矩阵的维度是一个元组( 行数, 列数)

让我们考虑下面的情况。

点积

点积也是为向量和矩阵定义的。但顺序很重要,左边的向量/矩阵的列数必须与右边的向量/矩阵的行数一致。

结果的维度是(左边输入的行数,右边输入的列数)

如果你有兴趣,下面更详细的点积是如何进行的。

为了得到输出的一个元素,我们将左边的一行和右边的一列向量/矩阵相乘并求和。

点积的重要性在于,它可以在许多不同的情况下使用。在力学中,它可以用来表示一个物体的旋转和拉伸。它也可以用来改变坐标系。

分析基础知识

和的导数

当我们想求一个和的导数时,相当于求每个加数的导数。

乘积法则

如果我们想求两个函数的乘积的导数,这两个函数都取决于我们想微分的变量,我们可以使用以下规则。

让我们考虑下面的例子:

那么𝑦相对于𝑥的导数是:

链式法则

我们要对一个函数𝑦进行微分。这个函数取决于𝑢,𝑢取决于𝑥。然后,我们可以应用链式法则:

让我们在这里做一个简单的练习:

矩阵微积分

了解这么多基础知识后,我希望你已经准备好进行矩阵微积分了!

我们可以用两种方式来写矩阵微积分,即所谓的 "分子布局numerator layout)"和 "分母布局(denominator layout)"。在这篇文章中,我将使用分母布局。

标量与矢量的导数

一个标量函数相对于一个变量向量的导数是一个行向量。这个行向量有一列代表我们想要微分的每个变量。

让我们举个例子:

然后我们可以应用 "和的导数 "规则:

由于一个变量相对于另一个变量的导数是0,我们可以得到:

标量导数向量

如果我们有一个函数𝑓,它输出一个向量,并想求它相对于一个变量的导数,我们得到一个列向量作为结果。

让我们考虑以下我们想要求导的向量值函数。

逐个向量求导

当对一个以向量为值的函数进行导数时,我们得到一个矩阵。我使用一个有2个输出值和3个输入变量的函数作为例子。

你可以把它看成是 "标量乘矢量 "和 "矢量乘标量导数 "的结合。我们沿着行改变函数输出的元素,沿着列改变变量的元素。

得到的矩阵的维度为:(输出的大小,输入的大小)

现在我们通过一个例子说明:

总结

矢量链法则

让我们考虑以下情况。向量𝑓是向量𝑔的一个函数。向量𝑔本身是向量𝑥的函数。因此,𝑓(𝑔(𝑥))相对于𝑥的导数可以通过以下方式计算。

我们可以看到,向量链法则与标量链法则看起来几乎一样。点积仍然在公式中,我们必须构造一个一个向量的导数矩阵。

这里有一个小例子。

我们计算偏导数。

现在我们展开点积。

最后进行简化,得到结果。

常数的点积

我们可以把常数矩阵和向量看作是标量常数。允许对它们进行因式分解。但是请记住,对于两个非标量之间的点积来说,顺序很重要。

现在我们可以把矩阵𝑋分解出来,如果它是一个常数并且不依赖于𝑤的话。

我们用向量导数矩阵来构造向量:

对角线上有1,其他地方有0的矩阵被称为单位矩阵。所有与它相乘的东西都保持不变。因此,最终结果是:

有趣的是,尽管整个方程包含了向量和矩阵,但我们得到的结果与我们根据标量微积分所预期的一样。然而,情况并非总是如此,因为并非所有标量微积分的规则都适用于多变量微积分。

最后

我很高兴你服用了红色药丸,加入了我在矩阵微积分领域的深入研究。如果这对你来说比较陌生,那么你应该多加练习,自己去看一些例子。

(0)

相关推荐

  • 如何学好数学?

    如何学好数学?应该从三个方面着手,一是理解知识点,提升数学直觉:二是积累解题技巧:三是构建积极的数学心态.本章就和大家谈谈这三部分,其中提到的知识点在后面十章中都有详细的讲解. 理解知识点 我们知道痛 ...

  • 【AI白身境】入行AI需要什么数学基础:左手矩阵论,右手微积分

    今天是新专栏<AI白身境>的第九篇,所谓白身,就是什么都不会,还没有进入角色. 咱们这个系列接近尾声了,今天来讲一个非常重要的话题,也是很多的小伙伴们关心的问题.要从事AI行业,吃这碗饭, ...

  • 【机器学习】总结了九种机器学习集成分类算法(原理 代码)

    大家好,我是云朵君! 导读: 本文是分类分析(基于Python实现五大常用分类算法(原理+代码))第二部分,继续沿用第一部分的数据.会总结性介绍集成分类算法原理及应用,模型调参数将不在本次讨论范围内. ...

  • 【夏宇聊交易】从指标原理到如何构建自己的系统

    第一讲的题目是<会技术分析不一定会交易>.当时提到的问题,我是希望能够在后面一些内容讲解之后,让大家感觉讲的内容能够帮助我们解决一些问题.至少对技术分析的理解加深了,然后到了觉得要自己利用 ...

  • 从传感器到算法原理,机器人、视觉避障都在这里了

    避障是指移动机器人在行走过程中,通过传感器感知到在其规划路线上存在静态或动态障碍物时,按照 一定的算法实时更新路径,绕过障碍物,最后达到目标点. 不管是要进行导航规划还是避障,感知周边环境信息是第一步 ...

  • 常见的人工智能机器学习算法优缺点

    众所周知机器学习是人工智能领域中的主要领域之一,机器学习算法有很多,例如:分类.回归.聚类.推荐.图像识别领域等等.要想找个合适算法是非常不容易的,为了能够寻找到合适的算法,需要明白机器学习算法的优缺 ...

  • 机器学习算法集锦:从贝叶斯到深度学习及各自优缺点

    本文转自:视学算法 在我们日常生活中所用到的推荐系统.智能图片美化应用和聊天机器人等应用中,各种各样的机器学习和数据处理算法正尽职尽责地发挥着自己的功效.本文筛选并简单介绍了一些最常见算法类别,还为每 ...

  • 教程 | 算法太多挑花眼?教你如何选择正确的机器学习算法

    选自Hackernoon 作者:Rajat Harlalka 机器之心编译 参与:Geek AI.张倩 机器学习算法虽多,却没有什么普适的解决方案.决策树.随机森林.朴素贝叶斯.深度网络等等等等,是不 ...

  • 为什么机器学习算法难以优化?一文详解算法优化内部机制

    作者|小舟 来源|机器之心 损失线性组合是正确的选择吗?这篇文章或许能够给你答案. 在机器学习中,损失的线性组合无处不在.虽然它们带有一些陷阱,但仍然被广泛用作标准方法.这些线性组合常常让算法难以调整 ...

  • 普林斯顿博士:手写30个主流机器学习算法,全都开源了!

    机器之心报道 参与:思源.一鸣.张倩 用 NumPy 手写所有主流 ML 模型,普林斯顿博士后 David Bourgin 最近开源了一个非常剽悍的项目.超过 3 万行代码.30 多个模型,这也许能打 ...

  • 自动驾驶技术的算法原理、技术大图,以及未来发展

    导读:车在给人们生活带来便利的同时,也导致了交通拥堵.环境污染.交通事故等诸多问题.交通事故不仅带来巨大的经济损失,对生命健康的危害更加严重.实现安全.智能化的自动驾驶技术成为了人们的愿望.阿里巴巴布 ...