一、向量的概念
向量是數學中的一個重要概念,用於描述由一個點向另一個點的箭頭,它包含兩個要素:大小(magnitude)和方向(direction)。
向量可以用一個有序數組表示,數組中的元素表示向量在每個方向上的分量,例如二維向量(2,5)表示它在x軸上的分量為2,在y軸上的分量為5。
二、向量的長度和範數
向量的長度定義為其大小的平方和的平方根,也就是向量的歐幾里德範數(Euclidean norm),通常用符號∥?∥表示。
def euclidean_norm(vector): squared_sum = sum([i**2 for i in vector]) return squared_sum ** 0.5
向量的長度可以用數學公式表示為:
如果向量的長度為1,則稱其為單位向量。將向量除以其長度即可得到單位向量。
def normalize(vector): norm = euclidean_norm(vector) if norm == 0: return vector return [i/norm for i in vector]
向量的範數(Norm)定義為將向量中每個分量的絕對值相加的結果,通常用符號∥?∥?表示,其中?表示範數的階數。不同的範數在不同的場景中有不同的作用。
如L1範數(manhattan norm)表示為向量中每個元素的絕對值的和。下面是L1範數的示例代碼:
def l1_norm(vector): return sum([abs(i) for i in vector])
同樣的,L2範數表示向量長度的平方和的平方根,即向量的歐幾里德範數。下面是L2範數的示例代碼:
def l2_norm(vector): return euclidean_norm(vector)
三、範數的應用
範數常用於機器學習領域中的特徵工程,用於對數據進行預處理和歸一化操作。
在圖像處理中,L1範數常用於稀疏編碼和圖像去噪。
在自然語言處理中,L1範數常用於文本分類和特徵選擇。
在機器學習領域中,範數正則化(norm regularization)是一種常用的防止過擬合的方法。通過在模型損失函數中加入範數(通常是L1或L2範數)懲罰項,可以促使模型參數稀疏,並減少過擬合的風險。
四、小結
本文對向量的長度計算方法和不同範數的定義進行了闡述,並給出了示例代碼。範數在機器學習領域中有廣泛的應用,希望本文能夠對讀者理解和應用範數有所幫助。
原創文章,作者:ZHNIW,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/330662.html