課程:無監(jiān)督學習
監(jiān)督學習
每個樣本都被標記為良性或是惡性寞射,對于監(jiān)督學習中的每個樣本我們已經(jīng)知道什么是所謂的正確答案蓬豁。
無監(jiān)督學習
- 都有相同的標簽,或是沒有任何標簽寝杖。
- 我們得到一個數(shù)據(jù)集型豁,但是我們不知道拿它來做什么,也不知道每個樣本點是什么尚蝌,我們只知道這里有一個數(shù)據(jù)集迎变,你能在其中找到某種結(jié)構(gòu)嗎?
在無監(jiān)督學習算法中飘言,可能判定衣形,該數(shù)據(jù)集中包含兩個不同的簇(clusters)。
這就是所謂的聚類算法
聚類算法的應用:
谷歌新聞:將成千上萬的新聞組合成一個個的專題(搜索成千上萬的新聞姿鸿,將其自動分簇谆吴,組成頁面顯示在一起)
其他的一些作用:
以上都是聚類算法的例子,而聚類只是無監(jiān)督學習的一種苛预。
Cocktail party problem(雞尾酒會問題)
一個宴會有句狼,一屋子人,大家都在一起說話热某,每個人都在同時說話腻菇,你幾乎很難聽清楚你前面的人說的話胳螟。
假設(shè)雞尾酒會上只有兩個人,兩個人同時說話筹吐。我們將兩個麥克風放在房間里糖耸,兩個麥克風與兩個人的距離都不同,每個麥克風記錄了來自兩人聲音的不同組合丘薛。
- 因為距離的不同嘉竟,麥克風收到的音量是不同的,但是每個麥克風都記錄了兩個說話者重疊的聲音洋侨。
- 將這兩個音頻交給雞尾酒會算法處理后舍扰,算法會分離出兩個不同發(fā)聲源發(fā)出的聲音。(視頻中還舉了人聲和背景聲分離的例子)
這個處理過程似乎要用到很多代碼凰兑,調(diào)用各種java妥粟,c++的庫來進行音頻處理,但是實際上要實現(xiàn)這種效果只需要一行代碼就可以了吏够。
雞尾酒會算法
- 當然研究人員花了很長時間勾给,才想出這行代碼,并不是說這是一個簡單的問題锅知。
- 但事實上如果你使用正確的編程環(huán)境播急,許多學習算法都可以是很簡短的程序。
這就是為什么在這門課中我們要使用 Octave的編程環(huán)境(Octave是一個免費的開源軟件)售睹,使用Octave或Matlab這類的工具桩警,許多學習算法都可以用幾行代碼來實現(xiàn)。
Octave實現(xiàn)了許多的函數(shù)昌妹,例如上面的SVD函數(shù)捶枢,已經(jīng)內(nèi)置在Octave中了,如果用C++或Java做這個將需要寫很多代碼飞崖,連接復雜的C++或java庫烂叔。當然可以在C++,Java或Python中實現(xiàn)這個算法固歪,只是會更加復雜蒜鸡。
Andrew Ng的建議是,使用Octave學習會更快牢裳,如果使用Octave作為學習工具和原型工具逢防,它將會使你更快學會學習算法,建立原型蒲讯。
在硅谷工作的人常常是用Octave建立學習算法原型只有算法原型能夠工作之后忘朝,再將其遷移到C++、Java或者其他編譯環(huán)境伶椿。
試題
answer:BC