自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

16歲高中生的「卷」,用13000+行代碼,從頭寫了一個C++機器學(xué)習(xí)庫

人工智能 機器學(xué)習(xí)
今天要介紹的就是一位從頭構(gòu)建 C++ 機器學(xué)習(xí)庫的 16 歲少年(@novak-99),他的自薦帖在 reddit 上獲得了數(shù)百的點贊量。

一個熱愛計算機的少年,16 歲就已經(jīng)可以做出點東西來了,比如開發(fā)個粵語編程語言、拿個 Kaggle 冠軍、寫個游戲、開發(fā)個加密貨幣投資機器人、從頭構(gòu)建一個 C++ 機器學(xué)習(xí)庫什么的。

今天要介紹的就是一位從頭構(gòu)建 C++ 機器學(xué)習(xí)庫的 16 歲少年(@novak-99),他的自薦帖在 reddit 上獲得了數(shù)百的點贊量。

他構(gòu)建的這個庫(ML++)有 13000 多行代碼,涵蓋了統(tǒng)計、線性代數(shù)、數(shù)值分析、機器學(xué)習(xí)和深度學(xué)習(xí)等主題。

項目地址:https://github.com/novak-99/MLPP

@novak-99 表示,他之所以構(gòu)建這個庫,是因為 C++ 是他所選擇的語言,但到了 ML 前端,C++ 卻用得非常少。

C++ 是高效的,而且有利于快速執(zhí)行。所以大多數(shù)庫(如 TensorFlow、PyTorch 或 Numpy)都使用 C/ C++ 或某種 C/ C++ 衍生的語言來優(yōu)化和提高速度。

但當他查看各種機器學(xué)習(xí)算法的前端實現(xiàn)時,他注意到大多數(shù)算法是用 Python、MatLab、R 或 Octave 實現(xiàn)的。他認為,C++ 之所以在 ML 前端用得比較少,主要是因為缺乏用戶支持,以及 C++ 語法比較復(fù)雜。

與 Python 相比,C++ 的機器學(xué)習(xí)框架少得可憐。此外,即使在流行的框架(如 PyTorch 或 TensorFlow)中,C++ 的實現(xiàn)也不像 Python 的實現(xiàn)那樣完整,存在的問題包括:缺少文檔;并不是所有的主要函數(shù)都存在;沒有多少人愿意貢獻,等等。

此外,C++ 不支持 Python 的 ML 套件的各種關(guān)鍵庫。Pandas 和 Matplotlib 都不支持 C++。這增加了 ML 算法的實現(xiàn)時間,因為數(shù)據(jù)可視化和數(shù)據(jù)分析的元素更難獲得。

因此,他就決定自己寫一個 C++ 的機器學(xué)習(xí)庫。

他還注意到,由于 ML 算法非常容易實現(xiàn),所以一些工程師可能會忽略它們背后的實現(xiàn)和數(shù)學(xué)細節(jié)。這可能會帶來一些問題,因為在不了解數(shù)學(xué)細節(jié)的前提下,針對特定用例定制 ML 算法是不可能的。所以除了庫之外,他還計劃發(fā)布全面的文檔,以解釋庫中每個機器學(xué)習(xí)算法背后的數(shù)學(xué)背景,涵蓋統(tǒng)計、線性回歸、雅可比矩陣和反向傳播等內(nèi)容。以下是關(guān)于統(tǒng)計的部分內(nèi)容:

打開項目,我們可以看到其中的一些細節(jié):

涵蓋 19 大主題,這個 ML++ 足夠大且全

與大多數(shù)框架一樣,這位高中生創(chuàng)建的 ML++ 庫是動態(tài)的,不斷地在變化。這點在機器學(xué)習(xí)的世界尤為重要,因為每天都會有新的算法和技術(shù)被開發(fā)出來。

目前,ML++ 庫中正在開發(fā)以下模型和技術(shù):

  • 卷積神經(jīng)網(wǎng)絡(luò)(CNN)
  • 支持向量機(SVM)的內(nèi)核
  • 支持向量回歸

整體而言,ML++ 庫包含了 19 大主題以及相關(guān)細分內(nèi)容,分別如下:

  • 回歸(線性回歸、邏輯回歸、Softmax 回歸、指數(shù)回歸、Probit 回歸、Cloglog 回歸、Tanh 回歸)
  • 深度、動態(tài)、規(guī)?;窠?jīng)網(wǎng)絡(luò)(激活函數(shù)、優(yōu)化算法、損失函數(shù)、正則化方法、權(quán)重初始化方法、學(xué)習(xí)率規(guī)劃器)
  • Prebuilt 神經(jīng)網(wǎng)絡(luò)(多層感知機、自編碼器、Softmax 網(wǎng)絡(luò))
  • 生成建模(表格對抗生成網(wǎng)絡(luò))
  • 自然語言處理(Word2Vec、詞干提取、詞袋模型、TFIDF、輔助文本處理函數(shù))
  • 計算機視覺(卷積操作、最大 / 最小 / 平均池化、全局最大 / 最小 / 平均池化、Prebuilt 特征向量)
  • 主成分分析
  • 樸素貝葉斯分類器(多項分布樸素貝葉斯、伯努利分布樸素貝葉斯、高斯分布樸素貝葉斯)
  • 支持向量分類(原始形成、對偶形成)
  • K-Means 算法
  • K 最近鄰算法
  • Outlier Finder(使用標準分數(shù))
  • 矩陣分解(SVD 分解、Cholesky 分解、QR 分解)
  • 數(shù)值分析(數(shù)值微分、Jacobi 向量計算器、Hessian 矩陣計算器、函數(shù)近似器、微分方程求解器)
  • 數(shù)學(xué)變換(離散余弦變換)
  • 線性代數(shù)模塊
  • 統(tǒng)計模塊
  • 數(shù)據(jù)處理模塊(特征縮放、均值歸一化、One Hot 表征、反 One Hot 表征、支持的顏色空間轉(zhuǎn)換類型)
  • 實用工具(TP/FP/TN/FN 函數(shù)、精度、召回率、準確率、F1 分數(shù))

更多細節(jié)內(nèi)容請參考原項目。

網(wǎng)友:這么卷,我怎么辦

對于 16 歲就能做出如此出色的項目,有網(wǎng)友不禁感嘆,這個世界上的高中生都在干些什么啊?!我在他們這個年紀還在『啃手指頭』。而他們已經(jīng)在 ICLR、NeurIPS 會議上發(fā)表論文了……

還有網(wǎng)友表示,如果高中生都在做這些事,想象一下幾年后博士申請會有多激烈吧。現(xiàn)在,你只需要發(fā)表 3 篇以上的 NeurIPS 論文,將來就得獲得圖靈獎了。

看似開玩笑的話,也可以說是目前某種程度上的「卷」吧。

不過,也有網(wǎng)友指出,項目中有 13000 行代碼卻沒有測試?另一位網(wǎng)友認為,這是一個基于個人愛好創(chuàng)建的項目(pet project),并不適用于實際用例。因此,測試在這里并不重要。

參考鏈接:

https://www.reddit.com/r/MachineLearning/comments/srbvnc/p_c_machine_learning_library_built_from_scratch/

責任編輯:趙寧寧 來源: 機器之心
相關(guān)推薦

2021-08-02 10:40:45

機器人人工智能算法

2021-01-14 16:25:18

iPhone 7服務(wù)器開發(fā)者

2020-10-09 10:29:05

Python 開發(fā)編程語言

2021-06-10 12:50:02

編程語言PythonJava

2024-09-29 13:24:41

2025-03-21 13:05:18

模型評測基準

2019-07-04 15:57:16

數(shù)據(jù)安全互聯(lián)網(wǎng)

2020-06-22 14:10:45

編程語言蘋果開發(fā)者

2024-06-13 08:36:11

2024-12-16 09:05:00

2009-05-20 09:02:53

IT職業(yè)培訓(xùn)就業(yè)高中生

2024-08-15 14:48:57

2025-03-31 09:20:00

AI模型測試

2023-06-20 18:33:00

DOM框架React

2011-04-19 09:40:31

2020-03-11 11:10:12

開發(fā)技能代碼

2015-10-20 17:40:42

2021-08-20 16:24:16

算法圓周率技術(shù)

2009-08-10 17:08:52

計算機專業(yè)就業(yè)IT培訓(xùn)

2009-04-14 15:30:25

點贊
收藏

51CTO技術(shù)棧公眾號