HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

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

  • 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:016415
用户头像

发布了 375 篇内容, 共 186.7 次阅读, 收获喜欢 945 次。

关注

评论

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

【 Flutter 手势探索】我的第二本小册来了,看完我工资从12K变成了20K

android 程序员 移动开发

【Android面试】热修复,赶紧收藏备战金三银四

android 程序员 移动开发

『Android 技能篇』优雅的转场动画之 Transition,kotlin安卓开发教程视频

android 程序员 移动开发

【Android高级架构师系统学习文章】Android基础-Activity全方位解析

android 程序员 移动开发

【原理+实战,android音视频开发何俊林

android 程序员 移动开发

【Flutter 专题】126 图解自定义两侧对齐 ACETabBar 标签导航栏

android 程序员 移动开发

百度智能云天工获评2021世界物联网新技术新产品新应用成果金奖

百度大脑

人工智能 百度

【Java转Android】60,androidx86输入法

android 程序员 移动开发

【Jetpack篇】LiveData取代EventBus,2021年Android知识体系总结

android 程序员 移动开发

技术创新+开放共赢 华为云GaussDB加速企业数字化转型

华为云数据库小助手

GaussDB GaussDB(for openGauss) 华为云数据库

【孔乙已】生产者消费者有四样写法,android插件化和组件化

android 程序员 移动开发

薪水被应届生倒挂,四年Java老鸟,28岁的我裸辞了,在闭关三个后拿到阿里Offer

收到请回复

程序员 java面试 Java后端

技术面试感觉什么都会,面试官一问回答不上来怎么办?

Java高级开发

面试 性能优化 编程语言 Java 分布式

35w奖金池,腾讯云TDSQL精英挑战赛等你来战!

腾讯云数据库

数据库 腾讯云 tdsql

【中级—,android项目驱动式开发教程

android 程序员 移动开发

【从入门到实用】android启动优化深入解析,安卓系列学习进阶视频

android 程序员 移动开发

【9月Android面经分享】惜挂阿里三面,Android最新实习面试经验总结

android 程序员 移动开发

【Android 功能库】1,醍醐灌顶

android 程序员 移动开发

喜报!百度获国家技术发明奖

百度大脑

人工智能 百度

【中级—(1),Android资深架构师分享学习经验及总结

android 程序员 移动开发

直播回顾 | MatrixDB 定义下一代时序架构(内附PPT下载)

YMatrix 超融合数据库

车联网 物联网 时序数据库 MatrixDB 超融合时序数据库

GaussDB的技术发展以及在金融核心数据库国产化的最佳实践丨DAMS峰会

华为云数据库小助手

GaussDB 大会 华为云数据库

【Android】金三银四面试集合,android面试题大全

android 程序员 移动开发

MSE | 阿里巴巴云原生网关三位一体的选择与实践

阿里巴巴中间件

阿里云 微服务 云原生 中间件 网关

【Android面试技巧】当面试官问你glide的时候,android嵌入式开发实战pdf

android 程序员 移动开发

【Flutter 专题】113 图解自定义 ACEPieWidget 饼状图 (二)

android 程序员 移动开发

【Java转Android】29,2021最新网易Android面试题目

android 程序员 移动开发

【原理+实战(1),fluttertextfield高度

android 程序员 移动开发

Vue3.x 关于组件的那些变化(新手必看篇)

码仔

vue.js 大前端 组件化 组件

【Flutter 专题】114 图解自定义 ACEProgressPainter 对比进度图

android 程序员 移动开发

【Android Jetpack高手日志】ViewModel 从入门到精通,kotlin中文文档

android 程序员 移动开发

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