日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

矩阵/向量的范数

發布時間:2024/8/26 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 矩阵/向量的范数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

來自吳恩達 深度學習 第二周作業第一部分和三位圖靈獎獲得者的著作花書《Deep Learning》。

# GRADED FUNCTION: normalizeRows
import numpy as np

def normalizeRows(x):
    """
    Implement a function that normalizes each row of the matrix x (to have unit length).
    
    Argument:
    x -- A numpy matrix of shape (n, m)
    
    Returns:
    x -- The normalized (by row) numpy matrix. You are allowed to modify x.
    """
    
    ### START CODE HERE ### (≈ 2 lines of code)
    # Compute x_norm as the norm 2 of x. Use np.linalg.norm(..., ord = 2, axis = ..., keepdims = True)
    x_norm = np.linalg.norm(x, axis=1, keepdims = True)

    x = x / x_norm

    return x

其中ord指定范數的階數。

范數簡述

我們知道距離的定義是一個寬泛的概念,只要滿足非負、自反、三角不等式就可以稱之為距離。

范數是一種強化了的距離概念,它在定義上比距離多了一條數乘的運算法則。有時候為了便于理解,我們可以把范數當作距離來理解。

即表示一種到坐標原點距離的度量。

例如:二階范數(也稱L2范數)是最常見的范數,即歐幾里得距離。

L

p

L^p

Lpnorm

x

p

=

(

i

(

x

i

)

p

)

1

p

||x||_p=(sum_i(x_i)^p)^{frac{1}{p}}

∣∣x∣∣p?=(i∑?(xi?)p)p1?

更加嚴謹的定義:

范數即為滿足以下三個性質的函數:

f

(

x

)

=

0

?

x

=

0

f(x)=0Rightarrow x=0

f(x)=0?x=0

f

(

x

+

y

)

f

(

x

)

+

f

(

y

)

f(x+y) leq f(x)+f(y)

f(x+y)≤f(x)+f(y) (the triangle inequality)

?

α

R

,

f

(

α

x

)

=

α

f

(

x

)

forall alpha in mathbb{R},f(alpha x)=|alpha|f(x)

?α∈R,f(αx)=∣α∣f(x)

Euclidean norm

L

2

n

o

r

m

L^2 norm

L2norm

x

2

=

(

i

(

x

i

)

2

)

||x||_2=sqrt{(sum_i(x_i)^2)}

∣∣x∣∣2?=(i∑?(xi?)2)

?

p

=

2

p = 2

p=2時,

L

2

L_2

L2?范數被稱為歐幾里得范數(Euclidean norm)。它表示從原點出發到向量x 確定的點的歐幾里得距離。

L

2

L_2

L2?范數在機器學習中出現地十分頻繁,經常簡化表示為

x

∥x∥

∥x∥,略去了下標2。平方

L

2

L_2

L2?范數也經常用來衡量向量的大小,可以簡單地通過點積

x

?

x

x^?x

x?x 計算。
平方

L

2

L_2

L2? 范數在數學和計算上都比

L

2

L_2

L2?范數本身更方便。例如,平方

L

2

L_2

L2?范數對x 中每個元素的導數只取決于對應的元素,而

L

2

L_2

L2?范數對每個元素的導數卻和整個向量相關。但是在很多情況下,平方

L

2

L_2

L2? 范數也可能不受歡迎,因為它在原點附近增長得十分緩慢。

L

1

L_1

L1? norm

在某些機器學習應用中,區分恰好是零的元素和非零但值很小的元素是很重要的。在這些情況下,我們轉而使用在各個位置斜率相同,同時保持簡單的數學形式的函數:

L

1

L_1

L1? 范數。

L

1

L_1

L1?范數可以簡化如下:

x

1

=

i

x

i

||x_1||=sum_i{x_i}

∣∣x1?∣∣=i∑?xi?
當機器學習問題中零和非零元素之間的差異非常重要時,通常會使用

L

1

L_1

L1?范數。每當x 中某個元素從0 增加?,對應的

L

1

L_1

L1?范數也會增加?。

L

0

L_0

L0? norm

有時候我們會統計向量中非零元素的個數來衡量向量的大小。有些作者將這種函數稱為"

L

0

L_0

L0? 范數",但是這個術語在數學意義上是不對的。向量的非零元素的數目不是范數,因為對向量縮放

α

alpha

α倍不會改變該向量非零元素的數目。因此,

L

1

L_1

L1? 范數經常作為表示非零元素數目的替代函數。

L

L_infty

L∞?

另外一個經常在機器學習中出現的范數是

L

L_infty

L∞?范數,也被稱為最大范數(maxnorm)。這個范數表示向量中具有最大幅值的元素的絕對值:

x

=

m

a

x

i

x

i

||x_{infty}||=max_i|x_i|

∣∣x∞?∣∣=maxi?∣xi?∣

Frobenius norm

有時候我們可能也希望衡量矩陣的大小。在深度學習中,最常見的做法是使用Frobenius 范數(Frobenius norm),

A

F

=

i

,

j

A

i

,

j

2

||A||_F=sqrt{sum_{i,j}A^2_{i,j}}

∣∣A∣∣F?=i,j∑?Ai,j2?

?
其類似于向量的

L

2

L_2

L2?范數。

點積使用范數來表示

兩個向量的點積(dot product)可以用范數來表示。具體地,

x

?

y

=

x

2

y

2

c

o

s

θ

x^?y=||x||_2||y||_2cos heta

x?y=∣∣x∣∣2?∣∣y∣∣2?cosθ
其中

θ

heta

θ表示x和y之間的夾角。

參考資料

http://www.deeplearningbook.org/

總結

以上是生活随笔為你收集整理的矩阵/向量的范数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。