返回首页 hi, 欢迎来到机器人在线 请登录/ 免费注册 扫码关注

16岁高中生的「卷」,13000+行代码,从头写了一个C++机器学习库

时间:2022-02-15 来源:机器之心Pro 阅读:6713

高中生拯救世界在人工智能领域也很流行?

一个热爱计算机的青少年可以在16岁时做一些事情,比如开发一种粤语编程语言,赢得Kagle冠军,写一个游戏,开发一个加密货币投资机器人,从零开始建立一个C++机器学习库。

今天要介绍的是一个16岁的男孩(@novak-99),他从零开始建立C++机器学习库,他的自荐帖在reddit上赢得了数百个赞。

机器学习库

他建造的库(ML++)有13000多行代码,涵盖统计、线性代数、数值分析、机器学习和深度学习等主题。、

机器学习库

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

@novak-99表示,他之所以建立这个库,是因为C++是他选择的语言,但是C++在ML前端很少使用。

C++效率高,有利于快速实施。因此,C/C++或某种C/C++衍生语言用于优化和提高大多数库(如TensorFlow、PyTorch或Numpy)的速度。

然而,当他检查各种机器学习算法的前端实现时,他注意到大多数算法都是由Python、Matlab、R或Octave实现的。他认为,C++之所以在ML前端使用较少,主要是因为缺乏用户支持,C++语法复杂。

与Python相比,C++的机器学习框架少得可怜。此外,即使在流行框架(如Pytorch或TensorFlow)中,C++的实现也不如Python完整,存在的问题包括:缺乏文档;并不是所有的主要函数都存在;愿意贡献的人不多,等等。

此外,C++不支持PythonML套件的各种关键库。Pandas和Matplotlib不支持C++。这增加了ML算法的实现时间,因为更难获得数据可视化和数据分析的元素。

因此,他决定自己写一个C++机器学习库。

他还注意到,由于ML算法很容易实现,一些工程师可能会忽略它们背后的实现和数学细节。这可能会带来一些问题,因为在不了解数学细节的情况下,不可能为特定用例定制ML算法。因此,除了图书馆外,他还计划发布全面的文档来解释图书馆中每个机器学习算法背后的数学背景,包括统计、线性回归、雅可比矩阵和反向传输。以下是统计数据的一部分:

机器学习库

打开项目,我们可以看到一些细节:

涵盖19个主题,ML++足够大和完整。

和大多数框架一样,高中生创建的ML++库是动态的,不断变化。这在机器学习的世界里尤为重要,因为每天都会开发新的算法和技术。

机器学习库

目前,ML++库正在开发以下模型和技术:

卷积神经网络(CNN)

支持向量机内核(SVM)。

支持向量回归。

总体而言,ML++库包含19个主题及相关细分,分别如下:

回归(线性回归、逻辑回归、Softmax回归、指数回归、Probit回归、Cloglog回归、Tanh回归)

深度、动态、规模化神经网络(激活函数、优化算法、损失函数、规则化方法、权重初始化方法、学习率规划器)

Prebuilt神经网络(多层感知机、自编码器、Softmax网络)

生成建模(表格对抗生成网络)

自然语言处理(Word2Vec、词干提取、词袋模型、TFIDF、辅助文本处理函数)

计算机视觉(最大/最小/平均池化、最大/最小/平均池化、Prebuilt特征向量)

主成分分析

简单贝叶斯分类器(多种分布简单贝叶斯,伯努利分布简单贝叶斯,高斯分布简单贝叶斯)

支持向量分类(原始形成,对偶形成)

K-Means算法。

K最近的邻近算法。

(使用标准分数)

矩阵分解(SVD分解,Cholesky分解,QR分解)

数值分析(数值微分,Jacobi向量计算器,Hessian矩阵计算器,函数近似器,微分方程求解器)

数学变换(离散余弦变换)

线性代数模块。

统计模块

数据处理模块(特征缩放,均值归一化,OneHot表征,反OneHot表征,支持颜色空间转换类型)

实用工具(TP/FP/TN/FN函数、精度、召回率、精度、F1分数)

详情请参考原项目。

网友:这么卷,我该怎么办?

对于16岁就能做出这么好的项目,有网友不禁感叹,这个世界上的高中生在做什么?!我在他们这个年纪还在啃手指。他们已经在ICLR和NeurIPS会议上发表了论文...

机器学习库

一些网民说,如果高中生正在做这些事情,想象几年后博士申请会有多激烈。现在,你只需要发表三篇以上的NeurIPS论文,并在未来获得图灵奖。

看似开玩笑的话,也可以说是目前某种程度的卷。

机器学习库

然而,一些网民指出,该项目中有13000行代码,但没有测试?另一位网友认为,这是一个基于个人爱好的项目(petproject),不适用于实际用例。因此,这里的测试并不重要。

机器学习库


机器

好的文章,需要您的鼓励

9

  • 最新资讯
  • 最新问答
推荐