基于浏览器的深度学习 - (EPUB全文下载)
文件大小:0.5 mb。
文件格式:epub 格式。
书籍内容:
基于浏览器的深度学习
第1章 深度学习
第2章 神经网络架构
第3章 JavaScript深度学习框架
第4章 深度学习的JavaScript基础
第5章 基于WebGL的GPU加速
第6章 从浏览器中提取数据
第7章 高级数据操作的方法
第8章 基于TensorFlow.js构建应用
第1章 深度学习
本章简单介绍深度学习的主要的数学和实际概念以及架构。我们将聚焦监督学习中分类的数学概念。它是从标注的训练集中学习将新数据进行正确分类的过程。一旦你理解了概念,你能将相同的技术应用于其他监督学习任务,比如回归。
从本章开始,我们将介绍神经网络背后的数学知识。读完1.1节,你可以通过简单的预训练神经网络完成二分类任务。
接下来的1.2节讲解基于标注训练集训练神经网络的技术。然后,你会理解损失函数的重要性、反向传播算法如何工作、优化技术(比如梯度下降算法和牛顿动量势能算法)之间的区别。
1.1 深度神经网络的数学基础
本节介绍深度学习和神经网络背后的数学基础概念。我们主要关注从输入数据样本计算神经网络的输出,这通常称为模型推断。
这里展示的神经网络推断主要包括多个嵌套权重线性函数、非线性激活函数和归一化的组合。在二维世界里,权重线性函数是一个直线方程。激活函数就是,当输入值达到某个阈值时立即激活的函数。我们称它们为门限或者非线性函数,归一化函数主要由减去均值和除以标准差组成。
在简单的分类任务中,直线方程描述的是两个不同分类的元素间的分割直线。如果两个分类是线性可分的,则完美的分类器是分割直线将所有的元素分成两边。代入一个点坐标,直线方程返回一个到该直线的有符号距离的倍数,其中符号代表直线的一边。非线性激活函数将这个有符号距离转换为不同的值。比如,最流行的转换函数返回值的符号(+1或者-1),返回+1或者0,或者只返回正值和0。你将会在后续看到这些激活函数并讨论它们的数学特性。归一化函数将所有的数据点转化成中心点为0且标准差为1的归一化空间。
正如你所见,这些概念相当直观,在高中课程中就有介绍。我们下面用n维空间(代替二维)的操作和嵌套函数构建网络,这会增加一些复杂性。
1.1.1 感知机————门控线性回归
第一个高级的人工智能和机器学习的数学框架是在1958年由心理学家F. Rosenblatt提出的。他构建了一个神经脑细胞的简单数学模型——感知机(Perceptron),通过激活和重复模拟生物学习行为。
如图1-1所示,感知机计算所有输入变量xi的权重和,接着是通过阶跃函数表示的激活门函数。如果输入的权重之和大于0,则门限打开(输出1)。下面是感知机公式,它是由阶跃函数封装的输入权重之和:
图1-1
在这里显示的简单数学操作是在20世纪50年代提出的,它是现代深度神经网络的基石。此外,我们将解释,感知机数学概念和计算二分类是极其相似的,用多维直线方程作为二分类之间的分割直线。
1.1.1.1 直线方程
先介绍二维直线方程:
x2=k·x1+d
在上面的公式中,k是直线的斜率,d是偏离中心的位移。用变量a、b和c代替k和d(这里,)。你也可能看到如下的直线表示:
0=a·x1+b·x2+c
上面的公式有一个很好的特性,当代入一个数据点P=(p1,p2)到直线公式,结果的符号代表数据点P属于直线的哪一边。该函数形成一个训练好的线性分类器,它将数据点分为两个分类,分别位于直线的两边。
y=sign(a·p1+b·p2+c)
上面结果的绝对值是数据点到直线的最短距离的倍数:。该值也称为分类得分。
从上面的例子可以看出和感知机等式非常相似,唯一不同的是激活门函数用的是(sign符号)函数。想象一下数据点P是一个元素的两个维度,直线是二维二分类模型,y返回分类+1或者−1。寻找优化的分割直线将会在1.2节讨论。
1.1.1.2 超平面方程
紧接着,你可以用矩阵表示重写直线方程。这对处理大于二维的情况非常有用:
该直线方程由权重向量表示。现在这个方程可以用n维权重向量和输入向量扩展到n维空间。这个多维直线方程称为超平面(hyperplane)。
注意:在机器学习中,许多问题都是高维度的。计算机视觉是一个例子,其中深度学习模型操作像素值。对于灰度图,输入图形是100×100维,分割超平面将被定义为一个10 000维的空间。
1.1.1.3 线性二分类器
下面我们生成一个更通用的门限激活函数h(x),代替简单的阶跃函数或者符号函数作为门限。线性分类器等式如下,变量b表示偏置,代替二维中的变量c:
上面的公式是感知机的向量表示,带有更通用的激活函数。因此,你能认为感知机(也叫作神经元(Neuron))就像线性多维二分类器,通过线性超平面将数据点分为两类。
下面来看三种不同的有两类数据点的二维数据集。图1-2显示这些数据集,不同颜色的点代表属于不同的类别。将这些数据分类意味着绘制一个几何图形把所有相同类别的数据点划分在一边,而其他的样本数据点在图形的另外一边。
感知机作为一个线性分类器有极大的局限性:它只能正确地分类线性可分的元素;在二维空间中,分类器为直线。因此,只有左边图形表示的数据集可以用单个直线分开。异或(XOR)数据集只能用多个线性分割组合将它们分开,然后与对角线结合。我们将在下面介绍这种问题。右边图形的数据集需要更复杂的分类器将所有的数据点正确标记。
图1-2
1.1.2 多层感知机
感知机最大的缺陷是只能用来进行线性分类。因为感知机只由输入权重之和组成,它只能表示线性可分的函数。如果考虑XOR问题(所有的类别不能用单个直线分开),你需要寻找一个更灵活的解决方案,它能组合线性分割以解决更复杂的分类。
下面在一个层中聚合多个神经元,比如每个神经元生成一个输出yi。将当前层所有的神经元权重和偏置组合为一个权重矩阵W和一个偏置向量。
上面的公式经常被称为全连接层(fully-connected layer)。因此,一个全连接层是由神经元的数目定义的。n个神经元计算n个输出,其中每个输出都是感知机公式的结果。
多层感知机背后 ............
以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。
书云 Open E-Library » 基于浏览器的深度学习 - (EPUB全文下载)