HLearn高性能機(jī)器學(xué)習(xí)庫
HLearn 是采用 Haskell 語言編寫的高性能機(jī)器學(xué)習(xí)庫,它對任意維度空間有著最快最近鄰的實(shí)現(xiàn)算法。
HLearn 同樣也是一個(gè)研究型項(xiàng)目。該項(xiàng)目的研究目標(biāo)是為機(jī)器學(xué)習(xí)發(fā)掘“最佳可能”的接口。這就涉及到了兩個(gè)相互沖突的要求:該庫應(yīng)該像由 C/C++/Fortran/Assembly 開發(fā)的底層庫那樣運(yùn)行快速;同時(shí)也應(yīng)該像由 Python/R/Matlab 開發(fā)的高級(jí)庫那樣靈活多變。Julia 在這個(gè)方向上取得了驚人的進(jìn)步,但是 HLearn “野心”更大。更值得注意的是,HLearn 的目標(biāo)是比低級(jí)語言速度更快,比高級(jí)語言更加靈活。
為了實(shí)現(xiàn)這一目標(biāo),HLearn 采用了與標(biāo)準(zhǔn)學(xué)習(xí)庫完全不同的接口。HLearn 中 H 代表三個(gè)獨(dú)立的概念,也是 HLearn 設(shè)計(jì)的基礎(chǔ):
一個(gè) H 代表 Haskell。通過采用 Haskell 中的 SubHask 庫獲得快速數(shù)值計(jì)算能力;
一個(gè) H 代表 Homomorphisms 。這是是抽象代數(shù)的基本概念,HLearn 將該代數(shù)結(jié)構(gòu)應(yīng)用于學(xué)習(xí)系統(tǒng)中;
一個(gè) H 代表 History monad ??稍谡麄€(gè)線程優(yōu)化代碼的過程中無需修改原代碼,減輕調(diào)試過程的工作量。
