2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

只有高中数学基础,要如何掌握数据科学的数学?

  • 2019-06-20
  • 本文字数:2764 字

    阅读完需:约 9 分钟

只有高中数学基础,要如何掌握数据科学的数学?

导读: 本文是作者 Ajit Jaokar 即将出版的《Mathematical foundations of Data Science》(《数据科学的数学基础》中的一部分。在这篇文章中,作者用感知器算法(Perceptron algorithm)来填补高中数学和深度学习之间的鸿沟。

背景

作为高校课程主任,我负责讲授《Artificial Intelligence: Cloud and Edge Implementations》(《人工智能:云计算和边缘计算的实现》),但我看到的现状是,太多的学生熟悉的是编程方面,而不是数学方面。


他们上次学习数学,还是在大学里学的,已经是几年前的事情了。然后,当他们开始学习数据科学时,突然发现,他们需要跟矩阵、线性代数等等打交道。


他们原本以为,大学毕业以后就不会再碰数学了。更槽糕的是,他们发现,在很多情况下,他们并不知道这些概念到底是用于数据科学的哪些领域。


如果你要考虑学习数据科学所需的数学基础,那么你可以将它们分为四个关键领域:


  • 线性代数

  • 概率论与统计学

  • 多元微积分

  • 优化


所有这些基础都是在高中(14 到 17 岁)所教授的内容(至少是部分内容)。


在本文中,我们从这些想法开始,并将它们与数据科学与人工智能联系起来。

理解线性回归

让我们从线性回归开始讲起。


线性关系意味着可以用直线表示两组变量之间的关系。许多现象可以用线性关系来表示。我们可以用线性方程的形式来表示这种关系,形式如下:


y = mx + b


其中,“m” 表示直线的斜率;“x”表示直线上的任一点(一个输入或 x 值),“b”是直线与 Y 轴相交的位置。


这种关系可以表示如下:



如果我们将这个等式扩展到 n 个变量,我们就会得到:



现在,让我们将工具切换到一种新的模型,即从线性回归到感知器学习。我们展示了这个新模型和线性回归的关系。此外,感知器学习可以扩展到多层感知器,即深度学习算法。

感知器学习

感知器可以看作是“人工神经元”,也就是生物神经元的简化版。感知器如下图所示。感知器接受多个输入:x1、x2、……,并产生一个二进制输出:



图:感知器


展开上面的内容,在下面的示例中,我们现在考虑加权输入。感知器有三个输入,x1、x2、x3 和权重 w1、w2、……。w1、w2、……是实数,用来表示各个输入对输出的重要性。感知器的输出是 0 还是 1,要取决于加权和“∑jwjxj”是小于还是大于某个阈值。我们可以把感知器看作是一种通过权衡证据来作出决策的设备。这个概念类似于我们之前见过的多元线性方程。这个概念可以表示为如下所示的函数:



图:感知器的一般表示


它确实与我们以前所见到的多元线性回归方程相似。


感知器:不仅仅是历史上的一个脚注

作为一种算法,感知器有一段有趣的历史。感知器最初是在硬件上实现的。感知器算法的第一个实现是 Mark I 感知器。感知器算法于 1957 年由 Frank Rosenblatt 在 Cornell Aeronautical Laboratory 发明的。感知器被设计成一台机器而不是一个程序。这台机器是为图像识别而设计的:它有一个由 400 个光电管组成的阵列,随机连接到“神经元”上。权重编码在电位器中,学习过程中的权重更新由电动机执行。事后证明,当时人们对感知器的乐观态度实际上是错误的。在 1958 年由美国海军组织的新闻发布会上,Rosenblatt 发表了关于感知器的声明,引起了当时羽翼未丰的人工智能界的争议。根据 Rosenblatt 的声明,《New York Times》报道称,“感知器是一台电子计算机的雏形,(美国海军)希望它能够走路、说话、看物、写字、复制自己,并能够意识到自己的存在。”


虽然感知器最初看起来很有前途,但人们很快就证明了感知器并不能被训练来识别许多类的模式。这种错位的乐观主义导致神经网络领域多年来停滞不前,直到人们认知到,具有两层或更多层(也成为多层感知器)的前馈神经网络比只具有一层(即单层感知器)的感知器具有更强大的处理能力。单层感知器只能学习线性可分模式。


下面是(单层)感知器的学习算法的示例。一个图表显示了一个感知器随着更多训练样本的增加而更新其线性边界。



图:感知器分类


以上对感知器和图像的描述,改编自 WikiPedia:https://en.wikipedia.org/wiki/Perceptron


因此,虽然感知器具有历史意义,但它毕竟是一种功能性算法,即线性分类器。线性分类器虽然很有趣,但就最初的承诺和潜力而言,它还不够引人注目。


然而,对我们来说,感知器不仅仅是历史上的一个脚注。这是一种将你的高中基础知识与深度学习联系起来的方法。

使用非线性激活函数克服感知器学习的局限性

要克服感知器仅作为线性分类器的局限性,一个步骤是考虑非线性激活函数。在上图中(图:感知器的一般表示),函数 f 表示激活函数。对于感知器来说,激活函数只是一个阶跃函数。阶跃函数输出表示感知器的输出。阶跃函数的输入是加权输入。下面我们将更详细地讨论激活函数。但就目前而言,重要的是要认识到感知器的激活函数是一个阶跃函数。


1969 年,在 Marvin Minsky 和 Seymour Papert 合著的一本知名图书《Perceptrons》(《感知器》)中指出,感知器不可能会学习异或函数(XOR function)。但是,如果我们对感知器使用非线性激活函数(而不是阶跃函数),那么这个限制就不适用了。事实上,通过使用非线性激活函数,我们就可以对比逻辑异或更复杂的函数进行建模(哪怕只有单层)。如果我们添加更多的隐藏层来创建多层感知器,那么这个想法就可以得到扩展。


激活函数的工作原理可以通过在给定 x.sigmoid、tanH、ReLu 的曲线上找到 y 的映射值来理解。例如,sigmoid 激活函数映射 0 到 1 之间的值范围。这意味着,对于 x 在负无穷到正无穷之间的值,y 值将通过 Sigmoid 函数映射到 0 到 1 之间。对于每个节点,Sigmoid 激活将输出作为 sigmoid (dot(input, weights) ) + b,其中,函数的输入表示每个节点的 x 值和权重的点积。矩阵 b 表示偏差矩阵。类似的,tanh 函数表示结语 -1 和 +1 之间的输出。激活函数必须是可微分的,因为函数的导数表示更新步骤时的变化方向。


所以,我们来总结一下:


  • 感知器是生物神经元的简化模型。

  • 感知器是一种学习二元分类器的算法:一种将输入映射到输出值(单个二元指)的函数。

  • 感知器是一个人工神经元,使用阶跃函数作为激活函数。感知器算法也被称为单层感知器,以区别于多层感知器。

  • 虽然感知器算法具有历史意义,但它为我们提供了一种弥补线性回归和多层感知器之间差距的方法,即深度学习。

多层感知器

我们现在来讨论多层感知器(Multi-layer perceptron,MLP)的概念。多层感知器通过以下三种方法克服了上一节中讨论的感知器算法的局限性:


  1. 通过使用非线性激活函数

  2. 通过使用多层感知器(而非单层感知器)

  3. 使用不同的训练方法,即 MLP 需要结合反向传播和梯度下降进行训练



图:多层感知器


因此,多层感知器可以看作是一个复杂的感知器网络(具有非线性激活函数),它们可以在逐层权衡证据的基础上作出微妙而复杂的决策。




英文原文:


https://www.datasciencecentral.com/profiles/blogs/how-to-learn-the-maths-of-data-science-using-your-high-school


2019-06-20 17:016881
用户头像

发布了 376 篇内容, 共 209.2 次阅读, 收获喜欢 949 次。

关注

评论

发布
暂无评论
发现更多内容

java培训redis集群原理分享

@零度

redis JAVA开发

helm test 测试

ghostwritten

Kubernetes Helm

2022年5月中国数据库排行榜:墨天轮榜单榜首易位,前九三商三云三开源

墨天轮

数据库 opengauss TiDB 国产数据库 达梦

ansible 模块:yum

ghostwritten

ansible yum

用一个性能提升了666倍的小案例说明在TiDB中正确使用索引的重要性

TiDB 社区干货传送门

helm 自动滚动部署

ghostwritten

Kubernetes Helm

TiDB【城市开拓招募帖】回答“社区活动什么时候来我的城市?”

TiDB 社区干货传送门

helm v2 公共源大全

ghostwritten

Kubernetes Helm

helm 命名模板

ghostwritten

Kubernetes Helm

helm 插件:helm-schema-gen——yaml转换json

ghostwritten

Kubernetes Helm

web前端培训vue3响应式reactive源码分析

@零度

前端开发 Vue 3

helm 注意事项

ghostwritten

Kubernetes Helm

helm charts openshift Certified 实践

ghostwritten

Kubernetes Helm

如何使用 ansible 变量

ghostwritten

ansible

helm 3.8 命令指南

ghostwritten

Kubernetes Helm

TiDB 6.0 Book Rush!一起来分布式创作 6.0 的使用手册吧!

TiDB 社区干货传送门

【刷题第四天】剑指 Offer II 076. 数组中的第 k 大的数字

白日梦

5月月更

开源项目丨 Taier 1.1 版本正式发布,新增功能一览为快

袋鼠云数栈

大数据

数据增强(二)-SamplePairing

AIWeker

人工智能 深度学习 数据增强 5月月更

helm v2 hooks

ghostwritten

Kubernetes Helm

转行运维工程师之后,我先把这几个Linux 命令记在了本子上,实干9场景

梦想橡皮擦

5月月更

ansible 远程容器机种方法

ghostwritten

Docker ansible

【ELT.ZIP】OpenHarmony啃论文俱乐部——即刻征服3D网格压缩编码

ELT.ZIP

3D OpenHarmony ELT.ZIP 图像视觉

5. helm charts 基础入门

ghostwritten

Kubernetes Helm

helm 模板函数与管道

ghostwritten

Kubernetes Helm

公有云厂商有哪些?排名是怎样?

行云管家

云计算 公有云 企业上云 云厂商

helm charts 内置函数

ghostwritten

Kubernetes Helm

helm values.yaml

ghostwritten

Kubernetes Helm

helm NOTES.txt

ghostwritten

Kubernetes Helm

helm 控制流程:循环、判断

ghostwritten

Kubernetes Helm

ansible 安装 httpd

ghostwritten

ansible httpd

只有高中数学基础,要如何掌握数据科学的数学?_AI&大模型_Ajit Jaokar_InfoQ精选文章