标量值函数返回一个确定类型的标量值,其返回类型除text、ntext、image、cursor、timestamp、和table类型外的其他数据类型,函数体语句定义在begin-end内部。在return(注意有带s)语句后定义返回值的数据类型,并且函数的最后一条语句必须为return。
21 函数的定义在理解泛函之前,我们首先需要重新审视函数这个基本概念。
函数可以说是在基本的分析问题中最常见的基本概念了。绝大多数人不会严格去思考函数的意义,而习惯于被动地使用它们。但理解函数本身对于理解泛函是有很大的帮助的。所以我们先从数学上严格定义函数。
我们知道,函数有自变量和因变量。函数的自变量可以用基本的向量
来表示。而函数 则是向量空间
上的映射。这里的两个数学符号需要解释一下。 数学上叫做基矢,它的意义是 这个方向上的单位向量,它的长度为1,方向指向 方向。 则是“直积”的意思,引入它的目的是为了扩展向量的涵义。向量本质上是一维的量,通过直积,就可以构建二维的,三维的乃至任意维度的有方向的量。实际上,可以将它看作构建坐标轴的代数表述。因为几何上构造坐标轴非常简单,就是画出来。但代数上则比较抽象。举个例子,如果存在多个方向,比如三维空间 ,就存在 三个方向
,那么
就代表了三维坐标轴。因此( ) 就表示N维空间中的坐标轴。函数的作用是将 映射到指定的空间 , 即
这种数学定义看起来比较难懂,但实际上很多概念都是从这个简单的函数定义延伸出来的。
既然是表述方向,那么向量空间 的各个方向的分量就必须是“正交归一的”。正交归一性包含两重含义,其一是“正交性”,它表示对于任意两个不同的方向矢量 , 它们都是互相垂直的。数学上的表示是内积为零
在这里我们将 , 是一种约定俗称的缩写记号。
内积为零这个正交性要求是非常重要的。因为如果两个不同方向的方向矢量内积不为零,就会导致在一个方向上的变化会影响另一个方向,物理上这种问题叫做量子纠缠态。这种纠缠问题在分析上就会造成非常严重的困难,原本的简单线性问题就会极其复杂,而且本质上无法完全求解。很多人学到无监督学习的时候会使用PCA方法来降维,但是不明白为什么要降维。实质上根本原因就是要让基矢尽可能正交化。另外,对于监督学习来说,如果选取的特征(features)不佳,就会选到高度相关的多个特征,这同样对于算法来说是一个灾难性的选择。虽然说矩阵计算可以做到将这些相关性较高的特征主值求逆,但最终学习结果仍然是泛化能力很差。
内积为零几何上代表的是互相垂直,但是内积的代数表述到底是什么呢?其实很简单,对于方向矢量来说,总可以表示成一个行矩阵或者列矩阵。我们习惯上使用列矩阵。比如在第5个方向上的方向矢量,用矩阵表述就是
其中 表示我们在使用矩阵表示。那么 如何用矩阵表达呢?很简单
这里的 的上指标 表示矩阵的转置(transpose),它将一个 矩阵逆时针旋转90度,转成一个 矩阵。在上面的例子中,它将 这个(N,1)列矩阵转成了一个 行矩阵。
至于“归一性”,实质上就是说方向矢量的长度是1。这个定义也可以用内积或者矩阵乘法来表示。即, 这个归一性在线性回归分析中就体现为要对所有的特征做标度变换 *** 作。比如通过房屋的大小,房间的数量等特征来预测房屋的价格。房屋的大小一般接近100平方米,而房间数一般只有2到5个。那么如果不进行归一化 *** 作,采取同样的递归速率就会导致在“大小”这个特征上的回归速率比在“房间数”这个特征上的回归速率慢20到50倍,这显然是极大的浪费算力。
回到函数的定义上来,函数实质上是定义了从定义域到值域(两者都是向量空间)的映射。如果函数是映射到具体的数的,那么这样的函数就是标量函数。如果函数是映射到向量的,那么就是一个矢量函数。如果函数是映射到值域上的张量的,那么就是张量函数。如果我们的函数是标量函数。那么在坐标轴空间画出来,就是一根曲线或者一个曲面或者一个复杂的几何体。但无论这个几何体多复杂,它上面每一个点都可以用
标记它的位置。用 标记它的值。如果对于定义域有取值范围,比如0到1之间,那么得到的值域也就同样是受到约束的。如果手动限制一个函数,可以采用如下的常见定义:
是约束函数,它限定了定义域的区间。
这样引入约束的办法很机械,而且对于计算机来说,事先定义出约束是很困难的。所以有没有一种“自动化”引入约束的办法?实际上当然存在这样的办法,我们将上面的式子改写成
这样,要使得上式取极值,就必须有
这恰好就给出了约束方程
这种引入约束的方法在泛函的分析中尤为重要,它一般被称作拉格朗日乘子法。
对于矢量函数或者张量函数,定义域中每一个位置除了定义出了值域中的一个数值之外,还定义出了在这个数值上的方向。这样定义出来的“东西”几何上已经不是曲线,曲面或者某个怪异几何体了。它有个非常数学化的称呼:纤维丛。关于纤维丛的概念,已经超出了本文的讨论范围,暂时不表。答:
不能,不管是标量函数,矢量函数,梯度函数,方向函数,复变函数等等,可导表征的就是单位增量,单位梯度,单位矢量,单位变化率,单位方向等的微小增量(该增量可以使标量,也可以使矢量,也可以是方向变化率等)下,因变量的变化率的极限。
该极限是否存在,取决于函数体和极限法则,而函数体的映射集合就构成了因变量的取值情况,因此,即使是导数为0,也必然和函数体所定义的集合有关!在SQLServer 的function中不能进行基本表的insert,delete,update *** 作,但是可以对函数内声明的局部临时表进行insert,delete,update *** 作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)