深度学习算法背后的数学
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深度学习算法背后的数学
Python软件基金会成员(Contibuting Member)Vihar Kurama简要介绍了深度学习算法背后的数学。
深度学习(Deep Learning)是机器学习的子领域。而线性代数(linear algebra)是有关连续值的数学。许多计算机科学家在此方面经验不足(传统上计算机科学更偏重离散数学)。想要理解和使用许多机器学习算法,特别是深度学习算法,对线性代数的良好理解是不可或缺的。
为什么要学数学?
线性代数、概率论和微积分是确切地表达机器学习的“语言”。学习这些主题有助于形成对机器学习算法底层机制的深入理解,也有助于开发新的算法。
如果我们查看的尺度足够小,那么深度学习背后的一切都是数学。所以在开始深度学习之前,有必要理解基本的线性代数。
标量、向量、矩阵、张量;图片来源:hadrienj.github.io
深度学习背后的核心数据结构是标量(Scalar)、向量(Vector)、矩阵(Matrix)、张量(Tensor)。让我们通过编程,使用这些数据结构求解基本的线性代数问题。
标量
标量是单个数字,或者说,0阶(0th-order)张量。x ∈ℝ表示x是一个属于实数集ℝ的标量。
在深度学习中,有不同的数字集合。ℕ表示正整数集(1,2,3,…)。ℤ表示整数集,包括正数、负数和零。ℚ表示有理数集(可以表达为两个整数之比的数)。
在Python中有几个内置的标量类型:int、float、complex、bytes、Unicode。Numpy又增加了二十多个新的标量类型。
import numpy as np
np.ScalarType