您的位置:首页 > 其它

深度学习线性代数基础

2017-08-24 15:33 344 查看
基于DL4J和ND4J API的学习代码:
https://github.com/deeplearning4j/oreilly-book-dl4j-examples
什么是机器学习?

通过算法从原始数据中获取结构描述。

结构描述的形式有哪些?

包括:

1.决策树(规则)

2.线性回归(参数)

3.神经网络(权重)

什么是数据挖掘?

从数据中抽取信息。

关系:机器学习重在指在数据挖掘过程中使用的算法,是数据挖掘中最关键的一环。

生物学小常识:大脑大约有860亿个神经元和500万亿个连接。

当信息经过神经元时,神经元会把信息做些处理,只前转那些对构建更大的目标有用的信号,没用的信息被过滤掉。

蚂蚁是通过何种算法,在分布式的环境做出近拟最优方案,完成协作类任务的?这个问题很有意思。

什么是深度学习?

神经元网络超过2层就算是深度学习,比较以前的模型,神经元更多,连接方式更复杂,需要更多的计算资源,能自动抽取特征。

深度学习四种基本架构:

1.无监督的预训练网络;

2.卷积网

3.循环网(Recurrent neural networks)

4.递归网(Recursive neural networks)

可以是以上四种的组合,那就复杂了。

什么是特征抽取?

决定数据的哪些特点可以做为可靠标识这些数据的指标或指示器。深度学习强大之处,在于可以自动抽取这些指标。

自动分类是深度学习最擅长的。

让机器去学习某著名画家的画作,创作相拟风格的画作,也是个有趣的例子。

数据+模型=机器学习

线性代数基础:

标量scalar:一个数,一个变量。

向量Vector:由n个元素或标量组成的元组(n-tuple)、有序集合或数组。n个标量组成向量的过程称为向量化。

列向量:是一个 n×1 的矩阵,即竖着写的向量。

向量长度:欧几里德距离(Euclidean distance),点到原点的距离。

矩阵Matrice:二维数组,也可以看成是具有相同长度的一组向量。

n*m: 有n行,m列,第一个数是行数,第二个数是列数。

张量Tensor:多维数组,其含义也包括了二维和一维。

rank:张量的维度数,标量是0,向量是1,矩阵是2等等。

超平面Hyperplanes:一维的超平面是一个一维的子空间,二维的超平面是一维,三维的超平面是二维。

百度百科对超平面的解释:超平面是n维欧氏空间中余维度等于一的线性子空间(也就是必须是(n-1)维度)。这是平面中的直线、空间中的平面之推广(n大于3才被称为“超”平面),是纯粹的数学概念,不是现实的物理概念。因为是子空间,所以超平面一定经过原点。

一个n维空间,只要有划分,就分有超平面的概念。

比如一个平面必须用一条线(平面的超平面)去划分,划分是与分类相联系的。优化这条直线的参数,即超平面的参数,是线性模型的核心概念。

点乘Dot product:也称为标量乘或内乘,指两个长度相同的向量,对应位置的元素相乘,再求和,返回一个数。这个数含有很多信息。

用法:

1.点乘是对每个向量中元素大小的一种度量,如大的元素会产生更大的点乘(2*2=4),小的元素(小数)会产生更小的点乘(0.2*0.2=0.04)。

2.在标准化后,点乘可以是两个向量相似度的一种度量,在数学上称为余弦相似度(cosine similarity)。

标准化:向量内积的结果是没有界限的,一种解决办法是除以长度之后再求内积,这就是应用十分广泛的余弦相似度(Cosine similarity)。

直观的解释是:如果 x 高的地方 y 也比较高, x 低的地方 y 也比较低,那么整体的内积是偏大的,也就是说 x 和 y 是相似的。

举例,第一组比第二组相似性高:

[0.4,0.6],[0.3,0.7]的点乘为:0.504

[0.4,0.6],[0.7,0.3]的点乘为:0.264

元素级的乘element-wise product:又称为哈达马乘(Hadamard product),和内乘比较,只是不求和,其它一样,返回一个shape相同的向量。

外乘Outer product:又称张量乘,shape(m,k)乘shape(k,n)得到shape(m,n)。

在机器学习中,需要把文本,时间序列,音频,视频,图片等原如数据全部转为浮点向量,才能使用线性代数。

svmlight文件格式举例:

1.0 1:0.7500000000000001 2:0.41666666666666663 3:0.702127659574468 4:0.5652173913043479

2.0 1:0.6666666666666666 2:0.5 3:0.9148936170212765 4:0.6956521739130436

2.0 1:0.45833333333333326 2:0.3333333333333336 3:0.8085106382978723 4:0.7391304347826088

第一列:lable. 其它列:features,每个feature前面有位置下标。这种格式适于稀疏矩阵。

Ax = b中,矩阵A的每个列向量都视为一个独立的feature. x是参数向量。

如果x有解,则方程是一致性方程。需要用到A的逆运算。并不是所有的矩阵都是可逆的。

可逆矩阵是线性代数中的一个矩阵,其定义为在线性代数中,给定一个 n 阶方阵A,若存在一个n 阶方阵B, 使得AB=BA=In(或AB=In、BA=In 任满足一个),其中In 为n 阶单位矩阵,则称A 是可逆的,且B 是A 的逆阵,记作 A^(-1)。

若方阵A 的逆阵存在,则称A 为非奇异方阵或可逆方阵。

A是可逆矩阵的充分必要条件是 |A|不等于0. (方阵A的行列式不等于0)。

给定一个 n 阶方阵 A,则下面的叙述都是等价的:

A 是可逆的。

A 的行列式不为零。

A 的秩等于 n(A 满秩)。

A 的转置矩阵 AT也是可逆的。

AAT 也是可逆的。

存在一 n 阶方阵 B 使得 AB = In。

存在一 n 阶方阵 B 使得 BA = In。

如何求解线性方程?

直接计算:如高斯消元法(Gaussian Elimination)和正规方程法(Normal Equations)

迭代计算:如随机坡度下降(Stochastic Gradient Descent SDG),共轭斜量法(Conjugate Gradient Methods),交替最小二乘法(Alternating Least Squares)

我们得到的样本数据,就是矩阵A,标签就是b,训练出来的参数就是系数x。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: