引言
文章根據(jù)udacity 的機(jī)器學(xué)習(xí)視頻進(jìn)行整理舔糖,提供給初學(xué)者進(jìn)行參考展辞,為了降低學(xué)習(xí)門檻媳叨,文中盡量避免了復(fù)雜的數(shù)學(xué)公式蕉朵,使用比較簡單的例子敘述相關(guān)原理崔涂。如發(fā)現(xiàn)錯(cuò)誤歡迎指正。
相關(guān)參考學(xué)習(xí)視頻:
udacity--機(jī)器學(xué)習(xí)(PS:國外導(dǎo)師視頻課程始衅,中文字幕冷蚂。課程簡潔易懂、生動(dòng)形象汛闸。具有項(xiàng)目實(shí)戰(zhàn)蝙茶、導(dǎo)師項(xiàng)目審核特色。比較推薦入門诸老。點(diǎn)擊此處可獲得課程優(yōu)惠券)
coursera--吳恩達(dá)機(jī)器學(xué)習(xí)(PS:? 吳恩達(dá)的機(jī)器學(xué)習(xí)一直備受入門的歡迎隆夯。內(nèi)容詳細(xì)、由淺入深。)
1. 隨機(jī)投影
1.1 概述
隨機(jī)投影是一種比較有效的降維方法蹄衷,在計(jì)算上比主成成分分析更有效忧额。它通常應(yīng)用于當(dāng)數(shù)據(jù)有太多維度,假定運(yùn)行程序的資源有效宦芦,主成成分分析無法有效的計(jì)算時(shí)候宙址。
一個(gè)簡單化的案例,對PCA 和 隨機(jī)投影调卑。如下圖:
PCA:將一個(gè)數(shù)據(jù)集從 二維降至一維抡砂,PCA的做法是尋找方差最大化的方向,然后將數(shù)據(jù)投影到最大化方差的方向恬涧。該過程將產(chǎn)生損傷最小注益。
隨機(jī)投影:在數(shù)據(jù)有很多維度時(shí),會消耗一定的資源溯捆。通常情況下會隨機(jī)選擇一條直線丑搔,任何一條進(jìn)行投影。在某些情景下沒有太大的意義提揍,但在更高緯度下效果比較好啤月,且效率高。
1.2 基本實(shí)現(xiàn)
隨機(jī)投影的基本前提是:用數(shù)據(jù)集乘以一個(gè)隨機(jī)矩陣來減少其中的維度劳跃。在某種程度上講谎仲,這就是隨機(jī)投影。
一個(gè)簡單的案例刨仑。如下圖
假如數(shù)據(jù)集有 12000 列郑诺,1500 個(gè)樣本。這已經(jīng)可以說是高緯度數(shù)據(jù)集了杉武。將數(shù)據(jù)集輸入到sklearn中隨機(jī)投影辙诞,返回到結(jié)果是6268 列、1500 個(gè)樣本的數(shù)據(jù)集:
在隨機(jī)投影中轻抱,其實(shí)是將原數(shù)據(jù)集乘以一個(gè)隨機(jī)矩陣就可以被映射成低緯的空間飞涂。在這種程度下,每兩點(diǎn)之間的距離十拣、每對之間的距離在某種程度下得到了保留封拧。這很重要,因?yàn)樵诜潜O(jiān)督學(xué)習(xí)和監(jiān)督學(xué)習(xí)中夭问,很多算法都與點(diǎn)之間的距離有關(guān),所以需要保證距離有些失真曹铃,但可以保留缰趋。
如何保證投影之后的距離得以保留?Johnson-Lindenstrauss引理出:投影后兩點(diǎn)的距離平方值稍有壓縮。它大于原數(shù)據(jù)集兩點(diǎn)之間的平方值乘以 (1 - eps) 秘血;小于原數(shù)據(jù)集兩點(diǎn)之間的平方值乘以(1 + eps) 味抖。
如果兩點(diǎn)之間距離的平方值為 125.6 。 eps 為 0 ~ 1 之間的值灰粮,在sklearn中默認(rèn)為 0.1仔涩。
eps 如同一個(gè)操作桿,用于計(jì)算產(chǎn)生了多少列粘舟,并在此維度是可接受的失真水平熔脂。eps 是輸入到函數(shù)中,用此來在此程度下保證距離柑肴。
1.3 sklearn 中的隨機(jī)投影
sklearn 中隨機(jī)投影的案例:http://lijiancheng0614.github.io/scikit-learn/auto_examples/plot_johnson_lindenstrauss_bound.html#example-plot-johnson-lindenstrauss-bound-py
sklearn 中隨機(jī)投影API:http://lijiancheng0614.github.io/scikit-learn/modules/generated/sklearn.random_projection.SparseRandomProjection.html#sklearn.random_projection.SparseRandomProjection
2. 獨(dú)立成分分析-ICA
2.1 概述
獨(dú)立成分分析(ICA) 是同主成成分分析(PCA) 和 隨機(jī)投影相似的方法霞揉。同樣會通過一些數(shù)據(jù)集特征產(chǎn)生另一個(gè)作用數(shù)據(jù)集。但不同的是PCA用于最大化方差晰骑,ICA 則假設(shè)這些特征是獨(dú)立源的混合适秩。并嘗試分離這些獨(dú)立源。
獨(dú)立成分分析(ICA) 一個(gè)典型的案例(代碼實(shí)現(xiàn)可見2.4章節(jié)):
假定有三個(gè)朋友參加藝術(shù)展覽硕舆,展覽會上同時(shí)有著鋼琴聲秽荞、小提琴聲、電視聲抚官。三個(gè)人各在不同聲音的旁邊扬跋,同時(shí)用手機(jī)錄取下來聽到的聲音。
三個(gè)朋友錄取的聲音都有不同的來源耗式,靠近鋼琴的朋友胁住,錄取到的鋼琴聲比較明顯;而其他聲音則比較弱刊咳。其他兩個(gè)也是彪见,一個(gè)錄取的小提琴聲音比較明顯,一個(gè)錄取電視聲比較明顯娱挨。
是否可以運(yùn)用ICA剝離出源聲音呢余指?答案是可以。輸入收集的三種數(shù)據(jù)集跷坝,利用ICA算法剝離出源數(shù)據(jù)酵镜。這里的源組成分(這里等于3)
2.2 ICA 算法
簡單介紹 ICA 算法的原理。不會涉及復(fù)雜的數(shù)學(xué)知識柴钻。詳細(xì)的信息可查看論文獨(dú)立成分分析:算法與應(yīng)用淮韭。
現(xiàn)在假設(shè)有數(shù)據(jù)集 X , 假設(shè) X 數(shù)據(jù)集是由源信號 S 乘以混合矩陣 A 產(chǎn)生的贴届, X = AS靠粪。如下圖:
但是現(xiàn)在有數(shù)據(jù)集 X 蜡吧,也就是原錄音。S 信號源是需要計(jì)算得到的結(jié)果占键,A 為混合矩陣昔善。如此需要變換公式,即 S = WX 畔乙。 W 為 A 的倒數(shù)君仆,如果A是混合矩陣,W 即為非混合矩陣牲距。
在 S = WX 公式中返咱, X 為輸入的源數(shù)據(jù)集。需要得到想要的 S 結(jié)果嗅虏,就需要計(jì)算 W 洛姑,所以獨(dú)立分析算法和其過程全部目標(biāo)是趨近 W ,或者給出最佳的 W? 與 X 相乘來產(chǎn)生原始信號皮服。論文獨(dú)立成分分析:算法與應(yīng)用 對算法做出了清楚的解釋楞艾。
2.3 ICA 應(yīng)用
ICA 被廣泛應(yīng)用于醫(yī)學(xué)掃描儀。一個(gè)叫做 EEG或MEG的腦部掃描儀的例子龄广。論文:Independent Component Analysis of Electroencephalographic Data
將 ICA 應(yīng)用于金融中的因子模型硫眯。論文:Applying Independent Component Analysis to Factor Model in Finance
2.4 sklearn 中的ICA
sklearn 中 ICA 的API:http://lijiancheng0614.github.io/scikit-learn/modules/generated/sklearn.decomposition.FastICA.html
2.5 項(xiàng)目
使用 ICA 提取混合的音頻信號。與上述例子一樣择同。在此下載 文件两入,使用 jupyter notebook 打開查看。