91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

機器學(xué)習(xí)中Kernel的秘密

WpOh_rgznai100 ? 來源:YXQ ? 2019-06-19 09:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文探討的不是關(guān)于深度學(xué)習(xí)方面的,但可能也會涉及一點兒,主要是因為 Kernel(內(nèi)核)的強大。Kernel 一般來說適用于任何機器學(xué)習(xí)算法,你可能會問為什么,我將在文中回答這個問題。

一般來說,在機器學(xué)習(xí)領(lǐng)域中,我們要把相似的東西放在相似的地方。這個規(guī)則對所有的機器學(xué)習(xí)算法都是通用的,不論它是有監(jiān)督、無監(jiān)督、分類還是回歸。問題在于我們應(yīng)該如何準(zhǔn)確地確定什么是相似的?為了揭示這個問題,我們將從 Kernel 的基礎(chǔ)開始學(xué)習(xí)。

兩個向量之間的點積是一個神奇的東西,可以肯定地說,它在一定程度上度量了相似性。通常在機器學(xué)習(xí)的文章中,點積表示成以下形式:

這表示了向量x和x'之間的點積。注意,為了簡便起見,此處省略了向量符號的箭頭。這個符號是向量分量乘積之和的簡寫:

巧合的是,向量的范數(shù)是點積的平方根,可以這樣表示:

這當(dāng)然不是全部的。我們肯定知道余弦定理,即點積等于向量之間角度的余弦與它們范數(shù)的乘積(這很容易用簡單的三角函數(shù)來證明):

談?wù)摻嵌群头稊?shù)的好處在于,我們可以想象出這個點積是什么樣子。讓我們畫一下這兩個向量,它們之間的夾角為 α:

因此,如果我們采用點積作為相似性的度量,那么,它在什么時候會達(dá)到最大呢?這意味著是這些向量最相似的時候。顯而易見,當(dāng)余弦等于 1 的時候,就會發(fā)生這種情況,也就是當(dāng)角度為 0 度或者弧度的時候。如果向量的范數(shù)都是相同的,那么顯然我們討論的是同一個向量!很好,讓我們把目前為止學(xué)到的東西寫下來:

點積是向量間相似性的度量

現(xiàn)在你應(yīng)該希望了解一下談?wù)擖c積的意義。

當(dāng)然,點積作為相似性的度量,在實際問題中可能會有用,或者一點兒用也沒有,這取決于你要解決的問題。因此,我們需要對輸入空間進(jìn)行某種轉(zhuǎn)換,使點積作為相似性的度量起到實際的作用,用 ? 來表示轉(zhuǎn)換?,F(xiàn)在,我們可以定義 Kernel 的含義了,映射空間中的點積:

Kernel 的定義非常直接,是對映射空間相似性的度量。實際上,數(shù)學(xué)家喜歡具體化。由于Kernel 所處理的底層函數(shù)和空間不應(yīng)該存在隱含的假設(shè),因此,通過函數(shù)分析 Kernel 背后存在著很多的理論,需要在其它的文章中來探索這方面的問題。簡而言之,我們需要明確地說明想以什么樣的函數(shù)來表示 ?:

我們需要一個從 X 域映射到點積被定義好的空間的函數(shù),這意味著它是一個很好的相似性度量。

Kernel 可以用作任何在點積過程(或相關(guān)范數(shù))中定義的算法的泛化。最有名的是使用 Kernel 作為基礎(chǔ)算法例子是支持向量機(Support Vector Machines)和高斯過程(Gaussian Processes),但也有一些是 Kernel 與神經(jīng)網(wǎng)絡(luò)一起使用的例子。

我們實際上需要 Kernel 和映射函數(shù) ? 的另一個原因是輸入空間可能沒有定義明確的點積??焖俚匮芯恳粋€文檔分析的例子,我們只想根據(jù)兩個文檔的主題來得出它們之間的相似性,然后可能會對它們進(jìn)行分類。那么,這兩個文檔之間的點積究竟是什么呢?一種選擇是獲取文檔字符的 ASCII 碼,并將它們連接到一個大的向量中 —— 當(dāng)然,這不是你在實踐中要做的工作,而是僅供思考。

我們現(xiàn)在已經(jīng)將文檔定義為向量了,然而問題還是在于文件的長度,即不同文件的長度不同。這沒什么大不了的,我們可以通過在較短的文檔中填充一定長度的 EOS 字符來應(yīng)對這個問題。然后我們就可以計算這個高維空間中的點積了。但還有一個問題是,這個點積的相關(guān)性,或者更確切地說,這個點積實際上意味著什么。顯然,字符的細(xì)微變化會改變點積。即使我們用同義詞來替換,它一樣會改變點積。這是在比較兩個文檔的主題時要避免的問題。

那么,Kernel 是如何在此發(fā)揮作用的?理想的情況下,你需要找到一個映射函數(shù) ? 將輸入空間映射到一個特征空間,其中點積具有你想要的意義。在剛才文檔比較的例子中,對于語義相似的文檔,點積值是很高的。換句話說,這種映射應(yīng)該使分類器的工作更容易,因為數(shù)據(jù)變得更容易分離。

我們現(xiàn)在可以看一下典型的 XOR 示例來進(jìn)一步理解概念。XOR 是一個二進(jìn)制函數(shù),如下所示:

藍(lán)色的點以 0 來分類,紅色的點以 1 來分類。我們可以假設(shè)這是一個有噪音的 XOR 函數(shù),因為集群的分布范圍很廣。我們馬上注意到了一個問題,數(shù)據(jù)是不可線性分離的。也就是說,我們不能在紅點和藍(lán)點之間劃一條線來分離它們。

在這種情況下能做些什么呢?我們可以應(yīng)用一個特定的映射函數(shù),以使工作變得更容易。具體來說,要創(chuàng)建一個映射函數(shù),它將對通過紅點集群的線附近的輸入空間進(jìn)行單側(cè)反射。我們將表示出這條線下面附近的所有點。那么,映射函數(shù)將會得到以下結(jié)果:

在映射之后,數(shù)據(jù)會變得很容易進(jìn)行線性分離,因此如果我們有一個模型試圖擬合一個分離的超平面(例如感知器),這就是一個理想的情況。顯然,線性可分離很好,但是為了構(gòu)建有效的模型,我們不一定需要線性可分離的,這就意味著并非所有的映射函數(shù)都需要得到線性可分離的數(shù)據(jù)才能構(gòu)建有效的模型。

人們時常地混淆使用 Kernel 和使用映射函數(shù)的概念。Kernel 函數(shù)的輸出是一個標(biāo)量,是對兩個點的相似性或相異性的度量,而映射函數(shù)的輸出則是一個提供相似性計算的向量。Kernel 的有趣之處在于,有時我們可以計算原始空間中映射的點積,而無需顯式地進(jìn)行輸入映射。這就允許我們處理無限維度空間的映射!這是一個很難理解的事情,所以我將在后面的文章中進(jìn)行討論。

最后,我想推薦一下 Smola 和 Schoelkopf 的書:《Learning with Kernels》。本書對 Kernel 核心及其理論背景進(jìn)行了全面的闡述。

機器學(xué)習(xí)中Kernel的秘密(二)

在《機器學(xué)習(xí)中Kernel的秘密(一)》一文中,我用最簡單的方法解釋了 Kernel。在讀本文之前,我建議你先快速地閱讀一下這篇文章,了解一下 Kernel 是什么。希望你能得出這樣的結(jié)論:Kernel是映射空間中兩個向量之間的相似性的度量。

現(xiàn)在,我們可以討論一些比較有名的 Kernel,以及如何結(jié)合這些 Kernel 來構(gòu)建其它的 Kernel。記住,對于我們將要使用的示例,x’ 是用于繪圖的一維向量,我們將 x’ 的值設(shè)置為 2。不再多說,讓我們開始吧。

線性 Kernel

這個 Kernel 的超參數(shù)是 sigma 和偏差參數(shù) c。直觀地說,這個 Kernel 是什么呢?如果我們?nèi)∫粋€特定的 x,并將它與所有其它的 x’ 相比較,就會得到一條直線。這就是它被稱為線性 Kernel 的原因。不變的 x 值和變化的 x' 值有效地說明了我們沿著這條直線移動。

這個 Kernel 的另一個特點是,它具有非穩(wěn)定性,這意味著它的值相對于 x’ 的絕對位置而不是相對位置發(fā)生了變化。另一個優(yōu)點是,由于它是線性的,所以在優(yōu)化過程中可以進(jìn)行高效計算。

多項式 Kernel

顧名思義,這個 Kernel 是一個帶有偏差量 c 的多項式函數(shù)。我認(rèn)為值得花點時間來考慮會產(chǎn)生Kernel 的映射函數(shù) ?,因為 Kernel 是在映射空間中的一個相似性函數(shù)(點積),所以它會返回一個標(biāo)量。在二維空間中二階多項式 Kernel 的映射函數(shù)表示如下:

當(dāng)增大輸入維度 d 的值和多項式的階數(shù)時,映射的特征空間就會變得相當(dāng)大。那么,我們可以計算點積而不是進(jìn)行轉(zhuǎn)換,如上面的公式中所列的那樣。這是 Kernel 理論中許多很不錯的公式之一。

徑向基函數(shù) Kernel

這是一個非常有名的,并經(jīng)常使用的 Kernel。注意,由于指數(shù)中負(fù)指數(shù)的存在,所以指數(shù)的取值要在 0 到 1 范圍之間,這是一個不錯的特性,因為我們可以說 1 表示非常相似,或者相同,而接近 0 的值則表示完全不同。指數(shù)中的參數(shù) σ 控制著 Kernel 的靈敏度。對于較低的 σ 值,我們只期望那些非常接近的點是相似的。對于較大的 σ 值,我們放寬了相似性標(biāo)準(zhǔn),因為越遠(yuǎn)的點就越相似。

當(dāng)然,Kernel 看起來是這樣,因為我們把 x 設(shè)置為 0,并改變了 x’,邏輯上我們想要計算點之間整個 X 域的相似性。這就得出了一個平面,正是這個平面,才是描述一個 Kernel 的例子:

如圖所示,Kernel 的值在對角線處最高,其中 x 和 x' 是相同的。

周期 Kernel

當(dāng)你考慮周期性的時候,就會馬上想到周期函數(shù),比如正弦函數(shù)和余弦函數(shù)。從邏輯上講,周期 Kernel 中有正弦函數(shù)。Kernel 的超參數(shù) σ 還是表示了相似性的靈敏度,但是我們還有表示正弦函數(shù)周期的參數(shù) p。另外,還要注意徑向基 Kernel 和周期 Kernel 之間的相似性,它們都被限定為輸出 0 到 1 范圍之間的值。

什么時候使用周期 Kernel?這是非常合乎邏輯的,假設(shè)你想要為一個類正弦函數(shù)建模,從這個函數(shù)中取 2 個點,它們相對于歐式距離比較遠(yuǎn),這并不意味著函數(shù)的值有什么不同。為了解決這類問題,就需要周期 Kernel。為了完整性起見,看看當(dāng)我們調(diào)整周期 Kernel 的周期性時會發(fā)生什么(什么也沒有):

局部周期 Kernel

我們基本上是通過徑向基 Kernel 與周期 Kernel 的乘積得到了局部周期 Kernel。我們用這個方法得到的結(jié)果是,得到的 Kernel 的值隨 x 和 x' 之間距離的變化而變化,而不僅僅是隨距離的周期性變化而變化,這就導(dǎo)致了所謂的局部周期性。

只是因為我很好奇,用 3D 模式來繪制了這個 Kernel,并得到以下這個還不錯的形狀:

構(gòu)建新 Kernel

到現(xiàn)在為止,我們接觸到了一些 Kernel 的例子。問題來了,我們拿什么來構(gòu)建新的 Kernel 呢?Kernel 有以下兩個很好的特性:

1. 添加一個帶有 Kernel 的 Kernel 會產(chǎn)生一個新的 Kernel;

2. 多個 Kernel 的乘積會產(chǎn)生一個新的 Kernel;

以上兩個特性基本上可以讓你在不做太多數(shù)學(xué)運算的情況下構(gòu)建新的 Kernel,也是非常直觀的。乘積可以看作是一個與運算,特別是在考慮 0 和 1 范圍之間的 Kernel 時。于是,我們可以將周期 Kernel 與徑向基函數(shù) Kernel 相結(jié)合,得到一個局部周期 Kernel。

這幾個例子,可以讓你開始 Kernel 之旅。當(dāng)然,也還有一些沒有被提及的 Kernel。針對實際問題進(jìn)行的 Kernel 設(shè)計是一項非常重要的任務(wù),要想學(xué)好它,需要一定的經(jīng)驗。此外,在機器學(xué)習(xí)中有一個專門用于學(xué)習(xí) Kernel 函數(shù)的領(lǐng)域。

由于算法上的要求,Kernel 設(shè)計也比較復(fù)雜。由于許多基于 Kernel 的算法都涉及到一種反向的被稱為“Gram”的矩陣,因此我們要求 Kernel 是正定的,但這是我將來要探討的內(nèi)容。

現(xiàn)在我們已經(jīng)了解了一些有用的 Kernel,可以更深入地研究 Hilbert 空間的理論以及它們與Kernel 的關(guān)系,但是這必須要等到下一篇文章了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8554

    瀏覽量

    136986
  • Kernel
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

    12077

原文標(biāo)題:解密Kernel:為什么適用任何機器學(xué)習(xí)算法?

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    機器學(xué)習(xí)特征工程:分類變量的數(shù)值化處理方法

    編碼是機器學(xué)習(xí)流程里最容易被低估的環(huán)節(jié)之一,模型沒辦法直接處理文本形式的分類數(shù)據(jù),尺寸(Small/Medium/Large)、顏色(Red/Blue/Green)、城市、支付方式等都是典型的分類
    的頭像 發(fā)表于 02-10 15:58 ?346次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>特征工程:分類變量的數(shù)值化處理方法

    深入剖析ARM64內(nèi)核關(guān)鍵文件:kernel-6.1/arch/arm64/kernel/head.S

    在 ARM64 架構(gòu)的 Linux 內(nèi)核開發(fā),arch/arm64/kernel/head.S是一個繞不開的關(guān)鍵文件—— 它是內(nèi)核啟動早期的 “橋梁”,承接 Bootloader 與內(nèi)核初始化核心
    的頭像 發(fā)表于 02-04 17:35 ?1193次閱讀
    深入剖析ARM64內(nèi)核關(guān)鍵文件:<b class='flag-5'>kernel</b>-6.1/arch/arm64/<b class='flag-5'>kernel</b>/head.S

    人工智能與機器學(xué)習(xí)在這些行業(yè)的深度應(yīng)用

    自人工智能和機器學(xué)習(xí)問世以來,多個在線領(lǐng)域的數(shù)字化格局迎來了翻天覆地的變化。這些技術(shù)從誕生之初就為企業(yè)賦予了競爭優(yōu)勢,而在線行業(yè)正是受其影響最為顯著的領(lǐng)域。人工智能(AI)與機器學(xué)習(xí)
    的頭像 發(fā)表于 02-04 14:44 ?502次閱讀

    機器學(xué)習(xí)和深度學(xué)習(xí)需避免的 7 個常見錯誤與局限性

    無論你是剛?cè)腴T還是已經(jīng)從事人工智能模型相關(guān)工作一段時間,機器學(xué)習(xí)和深度學(xué)習(xí)中都存在一些我們需要時刻關(guān)注并銘記的常見錯誤。如果對這些錯誤置之不理,日后可能會引發(fā)諸多麻煩!只要我們密切關(guān)注數(shù)據(jù)、模型架構(gòu)
    的頭像 發(fā)表于 01-07 15:37 ?206次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>和深度<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>中</b>需避免的 7 個常見錯誤與局限性

    基于ETAS嵌入式AI工具鏈將機器學(xué)習(xí)模型部署到量產(chǎn)ECU

    AI在汽車行業(yè)的應(yīng)用日益深化,如何將機器學(xué)習(xí)領(lǐng)域的先進(jìn)模型(如虛擬傳感器)集成到ECU軟件,已成為業(yè)界面臨的核心挑戰(zhàn)。
    的頭像 發(fā)表于 12-24 10:55 ?6135次閱讀
    基于ETAS嵌入式AI工具鏈將<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>模型部署到量產(chǎn)ECU

    量子機器學(xué)習(xí)入門:三種數(shù)據(jù)編碼方法對比與應(yīng)用

    在傳統(tǒng)機器學(xué)習(xí)數(shù)據(jù)編碼確實相對直觀:獨熱編碼處理類別變量,標(biāo)準(zhǔn)化調(diào)整數(shù)值范圍,然后直接輸入模型訓(xùn)練。整個過程更像是數(shù)據(jù)清洗,而非核心算法組件。量子機器
    的頭像 發(fā)表于 09-15 10:27 ?784次閱讀
    量子<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>入門:三種數(shù)據(jù)編碼方法對比與應(yīng)用

    如何在機器視覺中部署深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

    人士而言往往難以理解,人們也常常誤以為需要扎實的編程技能才能真正掌握并合理使用這項技術(shù)。事實上,這種印象忽視了該技術(shù)為機器視覺(乃至生產(chǎn)自動化)帶來的潛力,因為深度學(xué)習(xí)并非只屬于計算機科學(xué)家或程序員。 從頭開始:什么
    的頭像 發(fā)表于 09-10 17:38 ?911次閱讀
    如何在<b class='flag-5'>機器</b>視覺中部署深度<b class='flag-5'>學(xué)習(xí)</b>神經(jīng)網(wǎng)絡(luò)

    如何解決開發(fā)機器學(xué)習(xí)程序時Keil項目只能在調(diào)試模式下運行,但無法正常執(zhí)行的問題?

    如何解決開發(fā)機器學(xué)習(xí)程序時Keil項目只能在調(diào)試模式下運行,但無法正常執(zhí)行的問題
    發(fā)表于 08-28 07:28

    【HZ-RK3568開發(fā)板免費體驗】3、開啟Linux Kernel RT功能

    Kernel-5.10下的補丁應(yīng)用到內(nèi)核配置。 cd /path/to/kernel-5.10/ patch -p1 < ../docs/Patches/Real-Time-Performace
    發(fā)表于 07-22 14:03

    FPGA在機器學(xué)習(xí)的具體應(yīng)用

    ,越來越多地被應(yīng)用于機器學(xué)習(xí)任務(wù)。本文將探討 FPGA 在機器學(xué)習(xí)的應(yīng)用,特別是在加速神經(jīng)網(wǎng)
    的頭像 發(fā)表于 07-16 15:34 ?2907次閱讀

    邊緣計算機器學(xué)習(xí):基于 Linux 系統(tǒng)的實時推理模型部署與工業(yè)集成!

    你好,旅行者!歡迎來到Medium的這一角落。在本文中,我們將把一個機器學(xué)習(xí)模型(神經(jīng)網(wǎng)絡(luò))部署到邊緣設(shè)備上,利用從ModbusTCP寄存器獲取的實時數(shù)據(jù)來預(yù)測一臺復(fù)古音頻放大器的當(dāng)前健康狀況。你將
    的頭像 發(fā)表于 06-11 17:22 ?1010次閱讀
    邊緣計算<b class='flag-5'>中</b>的<b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>:基于 Linux 系統(tǒng)的實時推理模型部署與工業(yè)集成!

    使用MATLAB進(jìn)行無監(jiān)督學(xué)習(xí)

    無監(jiān)督學(xué)習(xí)是一種根據(jù)未標(biāo)注數(shù)據(jù)進(jìn)行推斷的機器學(xué)習(xí)方法。無監(jiān)督學(xué)習(xí)旨在識別數(shù)據(jù)隱藏的模式和關(guān)系,無需任何監(jiān)督或關(guān)于結(jié)果的先驗知識。
    的頭像 發(fā)表于 05-16 14:48 ?1461次閱讀
    使用MATLAB進(jìn)行無監(jiān)督<b class='flag-5'>學(xué)習(xí)</b>

    【「# ROS 2智能機器人開發(fā)實踐」閱讀體驗】視覺實現(xiàn)的基礎(chǔ)算法的應(yīng)用

    人部署,詳細(xì)介紹了基于顏色閾值和深度學(xué)習(xí)的巡線方法。 二維碼識別則廣泛應(yīng)用于機器人定位與任務(wù)觸發(fā),例如AGV(自動導(dǎo)引車)的路徑規(guī)劃。 深度學(xué)習(xí)機器人視覺
    發(fā)表于 05-03 19:41

    **【技術(shù)干貨】Nordic nRF54系列芯片:傳感器數(shù)據(jù)采集與AI機器學(xué)習(xí)的完美結(jié)合**

    和更多外設(shè)接口。無論是運行還是休眠狀態(tài),功耗表現(xiàn)都非常出色! 3. 在傳感器數(shù)據(jù)采集與AI機器學(xué)習(xí)的優(yōu)勢? 答:主頻高、功耗低,內(nèi)置專用核處理數(shù)據(jù)采集,還配備AI加速器,讓AI算法運行更高效! 4.
    發(fā)表于 04-01 00:00

    請問STM32部署機器學(xué)習(xí)算法硬件至少要使用哪個系列的芯片?

    STM32部署機器學(xué)習(xí)算法硬件至少要使用哪個系列的芯片?
    發(fā)表于 03-13 07:34