向量大小和归一化(vector magnitude & normalization)、向量范数(vector norm)、标量/向量/矩阵/张量

您所在的位置:网站首页 unity向量归一化 向量大小和归一化(vector magnitude & normalization)、向量范数(vector norm)、标量/向量/矩阵/张量

向量大小和归一化(vector magnitude & normalization)、向量范数(vector norm)、标量/向量/矩阵/张量

2023-08-06 22:34| 来源: 网络整理| 查看: 265

一、向量大小

首先一个向量\vec{v}的长度或者大小一般记为\left \| \vec{v} \right \|。上图中的平面向量\vec{v}(x,y)的大小计算如下:

\left \| \vec{v} \right \|=\sqrt{v_x*v_x+v_y*v_y}

空间向量\vec{v}(x,y,z)的大小计算如下:

\left \| \vec{v} \right \|=\sqrt{v_x*v_x+v_y*v_y+v_z*v_z}

n维复向量\vec{v}(x_1,x_2,...,x_n)的大小计算如下:

\left \| \vec{v} \right \|=\sqrt{v_1*v_1+v_2*v_2+...+v_n*v_n}

二、向量归一化

向量归一化即将向量的方向保持不变,大小归一化到1。向量\vec{v}的归一化向量\hat{v}为:

\hat{v}=\frac{\vec{v}}{\left \| \vec{v} \right \|}

三、向量范数

范数是一种加强了的距离或者长度定义,比距离多一个数乘的运算法则。有时候范数可以当距离来理解。

0、L_0范数,为向量\vec{v}的所有元素非0的个数

\left \| \vec{v} \right \|_0=\left \| \bold{v} \right \|_0=\#(v_i|v_i\neq 0)

1、L_1范数,为向量\vec{v}的所有元素绝对值之和:

\left \| \vec{v} \right \|_1=\left \| \bold{v} \right \|_1=\sum_i^n\left | v_i \right |

L_1范数求优化解min\left \| \vec{v} \right \|_1,是想得到一个稀疏解。所以L_1可以实现特征的稀疏(通过权重趋于0实现),去掉一些没有信息的特征,例如在对用户的电影爱好做分类的时候,用户有100个特征,可能只有十几个特征是对分类有用的,大部分特征如身高、体重等可能关系不大,利用L_1范数可以过滤掉。

2、L_2范数,为向量\vec{v}的所有元素的平方和求正根:

\left \| \vec{v} \right \|_2=\left \| \bold{v} \right \|_2=\sqrt{\sum_i^n\left |v_i \right | ^2}

L_2范数求优化解min\left \| \vec{v} \right \|_2,通常用来做优化目标函数的正则化项,防止模型为了迎合训练集而过于复杂,造成过拟合的现象,用来提高模型的泛化能力。

3、L_p范数,为向量\vec{v}的所有元素的p次方之和开p次方的正根:

\left \| \vec{v} \right \|_p=\left \| \bold{v} \right \|_p=\sqrt[p]{\sum_i^n\left |v_i \right |^p}

4、L_{\infty}范数,为向量\vec{v}的所有元素绝对值的最大值:

\left \| \vec{v} \right \|_{\infty}=\left \| \bold{v} \right \|_{\infty}=max_i\left | v_i \right |

四、标量(Scalar)、向量(Vector)、矩阵(Matrix)、张量(Tensor)

An example of a scalar, a vector, a matrix and a tensor

标量是一个数值(1):

x=2

向量是一列数值(1*n),有大小和方向:

\textbf{\textit{x}} =\begin{bmatrix} x_1 \\ x_2 \\ \cdots \\ x_n \end{bmatrix}

矩阵是二维的两列数值(m*n),表示一个面:

\textbf{\textit{A}}= \begin{bmatrix} A_{1,1} & A_{1,2} & \cdots & A_{1,n} \\ A_{2,1} & A_{2,2} & \cdots & A_{2,n} \\ \cdots & \cdots & \cdots & \cdots \\ A_{m,1} & A_{m,2} & \cdots & A_{m,n} \end{bmatrix}

张量是多维的多列数值(m*n*h),可以表示多维空间(如3维,4维,5维...)。

注意,标量可以看成0维张量,向量看成1维张量,矩阵看成2维张量。

对于矩阵、张量的范数计算,可以分别拉平到向量应用向量范数计算公式得到。

import tensorflow as tf import numpy as np >>> v=tf.ones([3,3]) >>> v >>> v1=tf.norm(v,ord=1) >>> v1 >>> v2=tf.norm(v,ord=2) >>> v2 >>> v3=tf.norm(v,ord=3) >>> v3 >>> vinf=tf.norm(v,ord=np.inf) >>> vinf 五、Keras的regularizers

1、L_1

#L1 class tf.keras.regularizers.l1(l1=0.01, **kwargs) The L1 regularization penalty is computed as: loss = l1 * reduce_sum(abs(x))

2、L_2

#L2 class tf.keras.regularizers.l2(l2=0.01, **kwargs) The L2 regularization penalty is computed as: loss = l2 * reduce_sum(square(x))

3、L_1\&L_2

#l1_l2 function tf.keras.regularizers.l1_l2(l1=0.01, l2=0.01) Create a regularizer that applies both L1 and L2 penalties. The L1 regularization penalty is computed as: loss = l1 * reduce_sum(abs(x)) The L2 regularization penalty is computed as: loss = l2 * reduce_sum(square(x)) 引用

【1】https://www.khanacademy.org/computing/computer-programming/programming-natural-simulations/programming-vectors/a/vector-magnitude-normalization

【2】https://hadrienj.github.io/posts/Deep-Learning-Book-Series-2.1-Scalars-Vectors-Matrices-and-Tensors/

【3】https://www.overleaf.com/learn/latex/Bold,_italics_and_underlining

【4】https://blog.csdn.net/nanhuaibeian/article/details/103727168

【5】https://blog.csdn.net/a493823882/article/details/80569888

【6】https://keras.io/api/layers/regularizers/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3