AI 的算法和数据结构中的算法一样吗, AI 的模型和数学建模一样吗?

2021-06-30 09:33:09 +08:00
 James369
现在 AI 这么火,但是有些概念没搞懂(如题),还有搭建神经网络 是不是就是在那做数学建模?。

另外什么是算法工程师,我感觉他们也没搞出什么算法,都在标注数据、训练、调参,完了继续重复上述过程(中间可能看看复杂的各种学术论文=天书)
3850 次点击
所在节点    程序员
42 条回复
James369
2021-06-30 13:37:26 +08:00
@pcslide @GrayXu 我遇到了几个,会写函数但不会写应用,会写模块但不会做系统,不会前后端不会 linux,甚至连动态库 /静态库的区别也不懂。
imn1
2021-06-30 13:48:45 +08:00
这样说吧,理论家和实业家
举个例子,那两位获得诺贝尔奖的硬盘之父之父,就是理论家,但他们能自己造出大家通用的硬盘么?估计够呛,还是需要实业家把他们的科学成果落地

AI 建模也是分理论和实体的,研究数学模型的人,把原本不可比较的数据,通过数学方法(降维、变形等等),实现“可比较”,但是这样的人,地球上少之又少,如果把具体的业务数据交给他们,他们可能也只能作出“数学结论”,而不是业务可用的报告
现在的算法工程师,是把别人的数学理论,落地到实用业务,他们需要了解所使用的数学知识,才能把“数学结论”转化为业务报告,但他们本身不需要创造这个数学计算过程,其实也很难创造

AI 算法,实际上已经是业务范畴了,它背后的数学原理,最初其实和 AI 没太大关系,最初的数学研究其实就是把不可比数据实现可比-->找出其中的数学规律,仅此而已,只是后来人把这套理论,发展到 AI 上,发扬光大
现在的算法工程师,可以说是后来人的后来人的后来人,就是逐步发展中产生的人才,也是业务具体化、实例化的实现者

实例化就是双向结合,例如人脸辨认中有一种算法 KNN 距离近邻,KNN 里面也有多种近邻方式,其中马氏距离(或叫闵氏距离、明氏距离,译音区别)、欧氏距离这些,远在 AI 这个概念出现之前就有了,逐渐产生分类、聚类算法时,也和 AI 扯不上关系,当时
而一些需要在实物生产中需要分类的实业家,例如制衣业衣服的大中小码,发现可以使用这些数学方法,把不同的人的身体的尺寸,应用到这些数学方法的“初始数据”,就能实现聚类出少数的几种尺码,大大降低生产的成本

AI 就是在聚类分析发展过程中的,第三、第四代产物
算法工程师就是把有意义的业务数据,代入数学原理中那些无意义的数字,使用其方法原理,产生数学结论,再把这些数学结论(结论也只是数字,也是没有实际意思),通过筛选和匹配,转化为有意义的业务结果,指导业务发展

“没有最佳、只有最适合”,这是数学建模中普遍说的一句话,算法工程师就是寻找这个“最适合”的人
root99527
2021-06-30 13:51:24 +08:00
@James369 不会 linux 这个有点夸张了。训练他咋训练的,win 么?
James369
2021-06-30 14:16:20 +08:00
@root99527 会几条命令而已,我不认为他懂原理。比如管道如何工作不懂,进程组会话不懂
VoidChen
2021-06-30 14:17:25 +08:00
你自身的水平决定了你身处的圈子,而圈子的天花板就是你认知的高度= =
James369
2021-06-30 14:26:16 +08:00
@imn1 看了这么多,我还是觉得离落地实现 有一定距离,也就是说算法还是需要 工程人员进行落地实现,这也是未来 AI 时代软件工程师的发展空间。算法工程师可以说是衔接在 研究员和程序员之间的桥梁吧。
imn1
2021-06-30 14:33:15 +08:00
@James369 #26
Y
AI 比较早应用的是语境翻译,但至今也没什么飞跃式的进展,可见 AI 目前还是“吹”的阶段
将来如何不知道,以我的认知不能做什么断言,反正也不知道能否活到那一天
GrayXu
2021-06-30 14:45:56 +08:00
@James369 21L,所以问题就变成了,你身边的“算法工程师”能否代表工业界算法工程师的普遍情况?
pcslide
2021-06-30 14:56:59 +08:00
@James369
你提的这些,好像除了不会 linux (应该指 shell ??),都不影响工作。。。。
我记得之前有教授说,现在软件变得非常复杂,对大多数使用者(工程师)来说,很多组件都是黑盒。人们不再在乎黑盒内部,而是通过 poking (尝试?),来琢磨如何使用。
就比如你说的”动态库 /静态库“,大多数情况下,对于要处理大量数据的进程(数据量远远大于代码),是动态库还是静态库(我理解得没错吧?)这点细微差别可以忽略不计。所以知不知道又有什么差别?
可能有些场景,你对系统了解些,你 debug 会快,程序效率会增加那么一点。但是经典算法已经被 n 多仙人打磨过了,轮不到你磨。自己造的轮子,更需要改进的是数据处理和算法本身,版本迭代比换新衣服还快,与其在乎增加那点点效率,不如放心思在容易看懂,容易修改方面比较实在。
pcslide
2021-06-30 15:08:48 +08:00
@James369 至于 linux 里得管道如何工作(还有进程如何会话),是通过文件还是通过内存或者是透过内核消息,这些对使用者并不重要。即使表面上透过文件读写来共享数据其实质也可能是内存共享,这些都是很好得抽象层。最重要的 posix 规范并不会去管你如何实现,一如 C 和 python 国际标准只会规范哪些函数需要 thread-safe,至于这些函数你怎么实现,没人管你。
James369
2021-06-30 15:09:20 +08:00
@GrayXu #28 不,我想阐述的观点就是,算法工程师与软件工程师各司其职,术业有专攻。
正如#29 楼所描述,这样的算法工程师仅仅只能做算法而已,做不了软件系统。
InvincibleDream
2021-06-30 15:10:00 +08:00
简单来说 AI 相关的算法一般是基于机器学习的,最终成品是结合了算法模型和数据。算法模型相同但是数据不同的情况下,在同一业务场景下成品的效果也不同。而数据结构的算法多数是不依赖数据的。从算法实现来讲,大部分 AI 算法与已有的数据结构算法实现不同,没法直接复用。AI 模型常用于解决一般性问题,比如 CV 中的目标检测,NLP 中的文本生成。我理解的数学建模一般是针对特定对象进行,比如供应链、客流量等。
pcslide
2021-06-30 15:20:49 +08:00
@James369 每个人得经历不一样,你可能碰到的是我这种比较菜的。我碰到过不少 nvidia,自动驾驶大厂,做机器学习专用芯片的算法工程师,人家搞 C 和系统就像砍瓜切菜一样。
GrayXu
2021-06-30 15:23:10 +08:00
@James369 这个我认可,在大厂里,这样的分工也很常见。不过研究算法的是研究员,整合系统做实现的叫“算法工程师”。
IgniteWhite
2021-06-30 15:56:45 +08:00
@pcslide #33 我有个牛逼同学博士也学这个的,直接优化给 ASIC 或者 FPGA 的机器学习算法,Python 那些个库都看不上。我个菜鸡以为用 Python 库就很高端了……
garvan
2021-06-30 17:27:26 +08:00
最基本的行业敬畏都不懂的吗。。。“我不要你以为,我要我以为....”
SmiteChow
2021-06-30 17:27:51 +08:00
算法内涵不一样 书上的算法是过程的经典实现 在实际场景中面对不同的输入效果好坏都不一定 所以需要估算时空复杂度

AI 的算法就不是时空复杂度能框定效果了,它的自由度更高,在不同的参数下效率有本质的不同,所以需要喂数据去拟合参数

至于模型就是一个通用的词,代表了某个场景的解决方案,所以数据建模是面向场景,你喂的数据也是来源场景的,故可以认为一样的含义
gy0624ww
2021-06-30 18:28:41 +08:00
你说只会 python 的不是算法工程师吧,技术运营岗位也偶差不多的工作。需要用 python 写模型
Huelse
2021-06-30 22:23:25 +08:00
@pcslide
我认为真正懂的人无论是基础理论还是对上层抽象实操起来都是得心应手的,我此前交流的一位 MIT CS Ph.D.就能做到,的确让人佩服

规范实现的好坏还是很重要的,同样是 c++编译器,msvc 和 gcc 风评就完全不一样,clang 也能独领风骚
akira
2021-06-30 22:41:37 +08:00
欢迎一起来炼丹

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/786596

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX