机器学习的算法, 基本就那几大类, 都是根据各种教授研究员们的论文出来的, 各种库也有了, 我们非科研人员能做的就是利用现有的深度学习 /机器学习的库给的 API, 拿一批种子数据训练一下, 然后拿另一批数据验证, 调一下参数. 然后呢? 普通程序员 /架构师在这方面的价值在哪里?
还请给专家指点.
1
q397064399 2017-01-27 05:09:19 +08:00
你有听说一种职业 叫做 调参狗
|
2
snnn 2017-01-27 05:13:16 +08:00 via Android 1
举个例子,几个月不写 c++,你会觉得自己什么都懂了,语法上没有什么需要继续学的。但是一旦回到天天写 c++的日子,就会时不时的有新收获,发现要学的还很多,这东西很难
机器学习呢,现在还是很幼稚的阶段,理论欠缺甚多,远未成熟。实际做事也是,摸索着前进。 |
3
murmur 2017-01-27 05:16:12 +08:00 1
这跟普通程序员没多大关系,但是培训班是绝对不会讲这些东西的,就算是调参要么靠直觉要么靠数学两个都不会你能干嘛
一个训练程序多少个参数呢 都是阿尔法北塔伽马的 这是核心竞争力 对了 调参你以为很简单么?训练数据放多少合适?迭代次数多少合适?多了会不会过拟合? 当然了,迫于经济压力,现在的机器学习算法都给竞价排名让步了 |
4
bravecarrot 2017-01-27 08:10:20 +08:00 via iPhone
调参方法都是商业秘密
model 都差不多 看谁调参厉害 |
5
binux 2017-01-27 09:32:57 +08:00 via Android 2
机器学习是一个工具,在不同的场景需要搭建大量的 pipeline 才能使用。而大量现成的库和模型让一般程序员也能利用机器学习的成果。
其次机器学习,数据远比模型重要,你其实并不需要一个 ML 博士,也有可能做得更好。即使你做不到最优的模型,一个最简单的概率模型也能带来 80%的提升。 最后,机器学习不是魔法,它无法噗地一下就解决你的问题,启发式算法并不可耻。详见 rules of ml 我觉得写得很好。 |
6
UnknownR 2017-01-27 10:04:24 +08:00
什么火做什么,乘机捞一笔走了,跟着资本走才有钱赚,只要不忘了技术的本质就好,或者能下定决心跳槽
|
7
18600491593 2017-01-27 10:28:48 +08:00 via Android
人的作用在于,思想创作。
|
8
tinybaby365 2017-01-27 10:48:42 +08:00 via iPhone
@snnn 深度神经网络理论早已提出,后来的 GPU 计算能力也证明其可行。现在各种接近梯度消失,训练过拟合的方法不断出现。图像的机器分离效果已经超过人类,再觉得不成熟就是保守了。
|
9
matrix67 2017-01-27 10:52:36 +08:00
广告推荐啊,滴滴打车最短路径选择啊。我就想的到这些东西了。
还有比如知乎你一点进去很多乱七八糟的你不感兴趣,以后会有更好的 feed 流推荐? |
10
ipwx 2017-01-27 11:08:51 +08:00 5
首先反驳“机器学习的算法就这么几种”这一观点。少年你得去看看 Graphical Models ,针对每一个实际问题要先建概率图模型,这一步就得兼顾可计算性和对问题的刻画能力。然后你找一种分布式算法去算吧, Parameter Servers 在向你招手。可以说每一个不同的数学模型建出来的 Graphical Model 就是一个不同算法,要是不同意,你就得承认 HMM 和 Logistic Regression 是同一种算法(都可以由 Graphical Model 刻画)。
要能精确通过数学语言刻画一个实际问题,这就是功力。 如果你不想用 Graphical Model 而投降“黑箱”算法——深度(神经网络)学习。呵呵,你真以为神经网络是完全黑箱吗?你明白 CNN 是针对数据的什么特性在工作吗?( local receptive field + 平移不变性)应用到具体的问题上就更复杂了,比如两分类,我如果保证正例标注只会漏标不会错标,你如何修改标准的 loss function 以提升在这个具体问题上的性能? 神经网络现在有很多零件,包括结构上比如 CNN, LSTM, Auto-Encoders ,启发式约束比如 L1/L2 正则化,各种 Sparsity Constraint ,训练方法比如 Nesterov Momumtum (一阶方法), L-BFGS (二阶方法)。网络结构尚且不说,其他每一个超参都会影响到最终训练出来的模型。如何训练神经网络是一种艺术而非技术。 |
11
ipwx 2017-01-27 11:10:53 +08:00
接上面没说完的话。楼主问普通程序员的价值在哪里?那我可以明确说,价值就在调参。每一个公司、每一个不同应用,都是要调参的,不可能让学术界的人在这上面浪费大量时间(他们还要研究新的结构、新的模型呢)。
而调参需要很多知识,否则你只能暴力调参,吃力不讨好。所以现在的“普通程序员”是没有调参的能力的。至于怎么办?我不知道。如何培养“普通程序员的调参能力”,这需要工业界去摸索。 |
12
laoyuan 2017-01-27 11:19:08 +08:00
干什么都脱离不了业务
|
13
t6attack 2017-01-27 12:04:07 +08:00
你不知道做什么,那对你来说就没价值。
|
14
zgqq 2017-01-27 12:11:22 +08:00 via Android
这个领域太高深,普通人能连砖都没得搬
|
15
wdlth 2017-01-27 12:35:58 +08:00 1
比如把静态分析加上机器学习,可以研究出写多少代码后就会出现大 BUG ……
|
16
snnn 2017-01-27 12:36:07 +08:00
还是那句话,你懂得越少,越是觉得什么都知道。你懂得越多,越发现这简直就是伪科学。
举个例子, SGD 被用了 10 几年,这东西真有什么理论基础吗?要说 paper ,早在 1950s 就有了。可是如果你拿它和 GD 、 BFGS 之流相比,你根本说不出来这东西为什么会 work ,你连优化的目标函数是什么都不一定能搞清楚。 |
17
snnn 2017-01-27 12:40:05 +08:00
你要是身在此行,必定需要经常读 paper ,关注行业动态。每年那么多大会,那么多 paper 发出来,总有几篇会启发到你,需要你去尝试。这时候你需要去准备 data ,去写 code , 去尝试你的想法。在别人那工作的好好的东西,在你这未必就有效。可能是他在撒谎,也可能是你工作做的不细致。总之,你不能坐等着,等着别人把这些都在 tensorflow 上面实现了,等着别人把一切都准备好了你只管输入几个参数点下 run 。那你就等着吧,等个 3-5 年肯定会有的。
|
18
ipwx 2017-01-27 16:53:01 +08:00
@snnn 我觉得随机梯度下降优化的是整体目标函数的期望,随机变量是 mini-batch 。收敛性可能不满足,但是大体思想是没错的。至于收敛性…… 有多少数学方法的收敛性在实际计算机应用的时候是仔细考量过的?差不多收敛就行了。
http://i1.piimg.com/4851/bb15e992a91de3c8.png |
19
googlebot 2017-01-27 17:27:31 +08:00 via Android
看着像江湖骗子,和治疗癌症一样,整天都有所为新的突破,都在忽悠,
不过治疗癌症能骗钱,看来机器学习也能骗钱, |
20
Neveroldmilk 2017-01-27 18:25:07 +08:00
|
21
tinybaby365 2017-01-27 18:25:25 +08:00
@googlebot 不要坐井底之蛙,举个看得见的技术:人脸识别, https://www.faceplusplus.com.cn/,很多公司都在使用。
|
22
googlebot 2017-01-27 18:41:40 +08:00 via Android
我 10 年前看过人脸识别,没任何难度,有个机构采集 30000 多个样本,共享出来,这个很牛,结果全世界的阿猫阿狗带会人脸识别,没有什么实际产品,
我想说人工学习的实际用途, 家里一个安全摄像头,能自动学习认识家庭成员,有陌生人时报警, 这是一个非常实际的需求,现在没有一个产品,所有家庭智能产品都在偷窥你隐私,把你的数据偷偷上传, |
23
googlebot 2017-01-27 18:43:22 +08:00 via Android
@tinybaby365 你人脸识别牛,就搞个认识陌生人的摄像头,自动学习的
|
25
ipwx 2017-01-27 19:27:39 +08:00
@snnn 我还是认为从原理上,它是符合那个期望的期望的式子的。只不过实践中,我觉得 batchsize 为 1 会导致很严重的收敛问题罢了。
|
27
tinybaby365 2017-01-27 20:26:47 +08:00
@googlebot face++的在线 demo 你可以试一试。人脸识别:识别出图片中的人脸(不在训练集中的)标记出特征点,年龄等数据。你说的案例属于人脸检测,现在的应用有: iOS 的相册, Google 照片, Lightroom 。
|
28
shijingshijing 2017-01-27 20:34:27 +08:00
这么说吧,这一块科学家、研究员相当于设计师,负责想 idea ,出蓝图;程序员相当于搬砖的民工,负责把蓝图盖成大楼。
|
29
hanbing135 2017-01-27 20:50:52 +08:00 via Android
Lz 想太多了 程序员在哪都没实际价值啊 (^0^)
|
30
googlebot 2017-01-27 22:29:56 +08:00 via Android
@tinybaby365 你根本没明白,是家庭安全产品,陌生人登门时马上报警,非常急需的一个安全产品
|
31
murmur 2017-01-28 00:06:32 +08:00
@matrix67 广告推荐国内真没有用算法的。。都是竞价排名。。一个推荐比一个垃圾 满地都是页游广告
估计最基本的关联规则都没人上 |
33
lcqtdwj 2017-01-28 01:53:44 +08:00
我浅薄的理解,机器学习大部分还是基于统计理论,读研的时候学过,后来觉得很失望,因为并没有创新,只是计算能力和数据量的提升。现在我很怀疑自动驾驶,因为统计总有个置信度,即使可以达到 n 个 9 ,小概率事件还是有可能发生,造成灾难。
|
34
wjidea 2017-01-28 05:07:43 +08:00
|
35
paulagent 2017-01-28 05:51:58 +08:00
@googlebot 你说急需就急需啦,做出来有几个人会买? 报警给谁,给你自己让你回家看还是报警给警察? 这种产品和国外的房屋警报系统有什么区别? 在国内这个产品能有什么市场
|
36
googlebot 2017-01-28 08:48:36 +08:00 via Android
国内盗贼还少?这摄像头放家里,家里有陌生人,就手机发消息,这东西绝对是重新定义安全监控,
|
37
northisland 2017-01-28 08:51:24 +08:00
大概程序按照原理分 2 类:
I. 基于规则的(语言解释器,编译器,支付,查询,计算平台等) II. 基于 AI 算法的(语音输入,手写识别,阿法购) 大部分系统都是 I 类(你不希望你按规则写的代码,被不同的编译器读出不同的意思),大部分程序员从事的也都是 I 类。即使 II 类项目,也要有大量的 I 类程序作为接口。 |
38
northisland 2017-01-28 08:56:52 +08:00
机器学习套路比较深,不是李航那本蓝皮书就能概括的,起码得看懂 PRML 吧。
普通做 I 类的也别想掺和了, 做好 I 类, II 类的项目也需要 I 类的接口。 作出稳定的 II 类系统很吃功夫的。 I 类用好就很不错的,用不着羡慕 II 类。 |
39
ipwx 2017-01-28 12:24:23 +08:00
|
40
eric227 2017-01-28 13:20:06 +08:00
我理解一个是 rule based, 一个是 data driven ,但都是工具;前一个需要稳定兼容,后一个需要不断学习提升,就像一个人的身体+脑子
|
41
cpygui 2017-01-28 16:20:04 +08:00 via Android
@snnn 卧槽,说到心坎了。有好几篇 paper 的算法我怎么搞也弄不出来,后来都怀疑到智商问题了。还好我朋友提醒我有些 paper 有坑
|
42
murmur 2017-01-28 17:54:23 +08:00
@lcqtdwj 自动驾驶的永远不是技术问题,是法律问题,没有立法搞清楚机器人驾车把人撞了算谁的,谁敢上无人驾驶
都以为是 B 公司用真人做 test case 啊 |
43
viator42 2017-01-28 20:47:17 +08:00 via Android
学起来需要姿势水平实在太高,入门的书都一大堆数学公式。
|
44
taowen 2017-01-28 23:17:11 +08:00
机器学习是需要大量离线和在线数据的。大部分搬砖的,就是把数据从一个地方搬运到另外一个地方。然后让这些数据更加遍历于在线和离线的机器决策。这就是一个搬砖的觉悟。
|
45
minvacai 2017-01-29 14:50:16 +08:00 via Android
@viator42 其实我觉得神经网络入门涉及的数学不算很深,就目前来看就是普通的工科涉及的那些数学书而已,不过要在机器学习这一块有大的斩获的话数学应该是越精越好吧,早知现在会做码农的话当年专业就选数学了
|
46
RockStar 2017-01-29 20:35:19 +08:00 1
我在机器学习研究生马上毕业了,说说法国的现状吧。现在做机器学习研究有两批人,一批是统计出身的,一批是计算机搞人工智能出身的,论出文章的数量和 citation 数量,统计出身是碾压计算机出身的。研究方向的话,我的老师都在 clustring 和神经网络。机器学习最后都转化为了 optimization 问题。本科学校时的大 boss 是 optimization 大牛,现在已成法国 svm 研究方向的领军人物。现在学过了机器学习之后,觉得这个学科对计算机出身的人并没有什么先天优势(我是计算机出身),比如物理出身的搞矩阵,做模型比计算机的有先天优势,现在机器学习语言 Python 和 R 学习曲线很友好,其他出身的很容易赶上来,而 R 语言对于物理出身的来说简直就是无缝衔接(语法很像 matlab )。对传统程序员的话,要补的东西太多了,矩阵,概率,统计,而每个机器学习模型后都是数学公式来定义的,补起来需要更长的时间。
|
47
Izual_Yang 2017-01-31 16:40:40 +08:00
@RockStar
说到统计出身,我突然想起来王小波当年就是教统计学的,还能自己写程序 |