工业界和学术界最大区别是什么?

作者丨蛤蟆仙人、小米君、留德华叫兽

来源丨知乎问答

编辑丨极市平台

本文均经过原作者授权,未经允许不得任意转载。

导读

 

宅实验室专心科研的生活自由但无硬核的工作像是在空中跳舞,学术界人才济济而职称的坑位少,大家相见即交锋。面对这样的环境感觉到现实非常的残酷,那么工业界又是怎样的一种状态呢?来听听大家对于该问题的看法吧~ >

原问题:鄙人能源类工科博士在读,正在面临工业界和学术界的抉择,想知道两者的区别,以便提前做好准备。科研状态自我感觉挺舒适,习惯了自由自在,没有太大约束的生活,但是感觉自己做的东西浮在空中,落地会摔粉碎。学术圈目前应该是越来越难了吧,人才多,评职称艰难。隔壁实验室的讲师每天走得比我还晚(一般12点走),所以很想知道工业界又是怎么样一种状态?

问题链接:https://www.zhihu.com/question/332602866

# 回答一

‍作者:蛤蟆仙人

来源链接:
https://www.zhihu.com/question/332602866/answer/2145469028

我的背景更偏学术界,我对两边都有了解,我谈一点自己粗浅的看法。我的讨论范围限定在(1)机器学习领域,(2)能力在前10%~50%的正常人,不讨论改变世界的大神。

简单粗暴的结论:

(1)高校的研究能力在工业界很有用,但是高校的成果几乎(99.9%)在工业界都没有用。或许高校的education的作用更大,期望高校做出改变工业界的学术成果不太现实。

(2)工业界的研究院其实属于学术界,本质跟高校区别不大。他们比高校做的东西更有用,但是研究院做的不是核心技术,只是外围、边缘的技术而已。

先说说高校的科研。 高校绝大多数的研究都是各种问题的corner case,在公开的数据集上跑几个实验,claim自己是SOTA,发篇论文。但这些东西在工业界用途非常非常小。我举几个例子。

  • 近年来学术界搜索、推荐的论文不少,但在工业界能用的几乎没几个。学术界的做法是“改进模型,在MovieLens等数据集上做个实验,提升几个点,发表论文”。但学术界的成果在工业界几乎都不work。在工业界真正能改进模型效果的方法大多是标注数据、处理数据、调特征、修bug。少数能用的学术成果都是Google等公司发表的。

  • 最近几年联邦学习很热门,每个会议都有上百篇联邦学习的投稿。这些文章中90%以上都是在解决corner case,比如XXX设定下的收敛、XXX设定下的XXX差分隐私方法、用XXX方法防御XXX假设下的拜占庭错误。有脚指头想想也知道,这些corner case在工业界是没有用的。工业界用的是简单、好调、scalability能上得去的方法,而且要考虑自身系统平台的支持。

  • 最近一两年,有N篇基于vision transformer的论文,都是对vision transformer做一点改进,在公开数据集上top-1 accuracy提升一点点。在绝大多数工业应用里面,没人在乎一点点准确率的提升。好好处理数据、标注数据、再加点小trick,带来的提升比模型大得多。说实话,ResNet之后所有的模型带来的提升全加起来,还没JFT一个数据集带来的提升多。

工业界里重要的问题非常多,但是没有足够的人力去解决,只能挑收益最大的做。而高校乌央乌央的人扎堆挤到一些很小的问题上,研究各种各样的corner case,比如上面讨论的几个问题。这就是为什么我打算离开高校。

再说说工业界的研究院。

  • 工业界研究院有一部分人做纯科研,做出了非常牛逼的工作。Google、Deepmind、MSR、NVIDIA等公司的研究院都有非常厉害的成果。Transformer、AlphaGo这些成果确实改变了世界。其余影响力小一些的论文也起到了PR的作用。

  • 工业界研究院有相当多的人在为业务、技术部门服务。可惜的是研究院做的通常不是核心技术,而是可有可无的边缘技术。研究院的人看不到完整的核心技术。举几个例子:

    • 推荐算法团队跟研究院合作,希望“试一试”强化学习、图神经网络这些技术。重点在“试一试”,也就是说可有可无,不是核心技术。能带来零点几个点的增长最好,没有也无所谓。

    • 技术部门发现强化学习在网约车派单上好用,收益挺大。上线之后,让研究院做进一步的探索,目标是用更fancy的技术取得marginal improvement。

为什么工业界研究院接触不到完整的、核心的技术?核心技术肯定在业务部门手里,重要性次一级的工具在技术中台手里。由于利益原因,没人愿意把自己重要的东西交给别人做,除非是自己不愿做、没精力做、没能力做。

说一下工业界的技术团队。 工业界的工作并不美好,有很多脏活累活要干,没有学术界看起来高大上,而且KPI压力很大。有一部分人在推着技术走,这种工作的成就感会比较高。另一部分人被业务推着走,比如这个地方掉点了,那个地方有个bad case,要修一下。。。很明显,前者的技术含量高,成长更快,在就业市场上很抢手;后者的技术含量低,是高档人肉电池,容易被换掉。

最后说说人。 学术界的人才密度远远大于工业界。拿到985学校的讲师(所谓助理教授)职位,比公司SP offer还难。工业界研究院里各个都是有不错成果的博士。而工业界的技术部门里,人才密度低得多。哪里更容易出头是显而易见的。在跳槽的时候,研究院出身的不那么受欢迎,跟核心技术团队的人差距巨大。

# 回答二

作者:小米君

来源链接:

https://www.zhihu.com/question/332602866/answer/2139752924

个人观点:学术界就像谈恋爱,有不错的motivation和idea你只用锻造技术去给一个solution就完了,最后呈现的方式是publication。你可以更自由,可以天马行空,可以各种魔改,甚至不需要考虑落地成为一个paperer守着ppt过一辈子。

工业界就是结婚过日子,柴米油盐,衣食住行,你就不得不考虑商业化和市场,平衡各方利益,调动各种资源上下游的关系。有这个idea的可能很多,但是你可以做出实打实得产品,并将其推给用户,为该领域起到推动作用,这就不是简单的publication可以呈现的。同样,没有爱情的婚姻质量不高,没有重大innovation支撑的产品也不长久。

总之,paper 不代表一切~却是一切美好的开始……

多加几句:从社会责任的角度来看,不以结婚为目的的谈恋爱都是耍流氓,婚姻里连流氓都不愿意耍的是搭伙过日子,只是完成国家规定的结婚kpi,给娃(产品)上户口。

# 回答三

作者:留德华叫兽

来源链接:https://www.zhihu.com/question/332602866/answer/2146972009

学术界水了5年,工业界摸鱼了3年,谈谈我的浅见(IT、人工智能)。

一、工程能力、数据之于业界的重要性

当你进入到工业界会发现,原来世界500强公司的机器学习团队也大都只是Git clone市面上开源的代码,调整一些参数/用自己的数据集训练,有那么几个复现能力强的算法工程师,足矣。。

不同深度学习模型在大数据燃料的驱动下,差别几乎可以忽略。

相反,学术界take for granted的数据集才是工业界的命脉,得数据者得天下,对于互联网公司更是如此。

2f861d75e10bf4de6d9d3f2cdefe4ec2.png

标注一张语义分割图片需要1个小时

标注一张语义分割图片需要1个小时,相比花里胡哨的深度学习模型,业界更需要海量大数据收集/管理/读取/active learning的能力、把算法工程(产品)化的能力、算法写进板子的能力、软件开发和迭代的能力以及ppt和有效沟通的能力。

二、 产品才是业界的核心

如果说学术界KPI是顶刊和引用数,那么业界的KPI便是尽量提升用户数和满意度

企业最终卖的是产品和解决方案,而算法只是其中很小的一部分。并且对于大多数中小企业来讲是很微不足道的部分,而大头都是软件开发相关,什么前端、后端、美工、产品经理--这也是作为数学建模、算法出身的我最近几年才认识到的“残酷”现实。

开发才是业界的刚需!

设想一个做导航软件的小公司,导航软件里最核心的算法便是@运筹OR帷幄 最经典的最短路径算法。但作为用户,你最关心的导航软件一定是它的UI(用户操作界面)以及支持的功能(例如是否有限速提醒、探头提醒等),还有数据库(是否导航中的信息足够详尽和精确),算法部分只要够用就行。

作为用户,你会不会打开俩个导航软件对比哪个软件的线路更短、用时更快?比如搜索一段路径:百度地图给出的路径长53.5公里、用时52分钟,而腾讯地图给出的路径长53.7公里、用时56分钟。

05576cb532f38f2201df3e9f4bbccb9a.png

fe589553711a9351ff6d5e66a342ff5f.png

而作为用户的你,是因为这多出来的0.2公里和4分钟才选择的百度而不是腾讯么?因此(中小)公司宁愿选择砸钱雇很多前端(UI、美工设计师)也不愿花钱雇第二个运筹学算法工程师。只有那些头部大厂才舍得花钱砸算法工程师去改进算法提升那么一点点的软件运行效率

而当公司面临财务危机的时候,第一批卷铺盖走人的也肯定是算法工程师(或研发科学家),毕竟他们工资高得吓人。

三、为别人打工 VS 为自己打工

学术界即使博士后、青椒,毕竟发的文章署名是自己的,多半还是在为自己打工,因此即使007也心甘情愿。

然而残酷的事实是学术界卷得厉害,007也不一定能换来终身教职并且还得饱受清贫之苦。为了所谓的学术理想是否值得,是需要深思的。

工业界就不一样的,国内996大厂好歹有加班补贴。作为码农按时计费,超一小时就要算上一小时的钱或者绩效那边补上(奖金)。欧洲这边则是965每周工作40小时,到点下班、加班一小时都不可能。

感激博士毕业求职季把我拒掉的两个博后岗位,让我提前脱离“苦海”,提前“上岸”,成为了快乐的德国“摸鱼”人。

觉得还不错就给我一个小小的鼓励吧!
<think>好的,我现在需要回答用户关于CNNPyTorch之间关系的问题。用户之前已经询问过CNN在风电行业的应用,现在进一步想了解CNN与PyTorch的关系。首先,我需要确认用户可能已经知道CNN是什么,但可能需要更基础的解释两者的联系。 首先,我应该明确CNN(卷积神经网络)是一种深度学习模型,而PyTorch是一个深度学习框架。用户可能想知道PyTorch如何支持CNN的实现,或者PyTorch在CNN开发中的作用。接下来,我需要组织信息,分步骤解释两者的关系,可能需要从PyTorch的基本功能讲起,然后说明它如何支持CNN的构建、训练部署。 我需要考虑用户可能的背景。他们可能对深度学习框架不太熟悉,所以需要用通俗易懂的语言,避免过于技术性的术语,但同时也需要准确。可能需要提到PyTorch的特点,如动态计算图、易用性、社区支持等,以及这些特点如何促进CNN模型的开发。 同时,用户之前的对话中已经涉及CNN的应用案例,这里可以适当连接,例如在风电行业中,使用PyTorch搭建CNN进行故障检测等。这有助于用户理解实际应用中的结合点。 需要确保回答结构清晰,可能分为几个部分:PyTorch的定义,CNN的定义,两者的关系,PyTorch如何支持CNN,以及实际应用中的例子。还要注意使用中文,避免使用Markdown格式,保持口语化,但之前用户提供的示例回答使用了较正式的结构格式,可能需要调整。 需要验证PyTorch是否确实是广泛用于CNN开发的框架之一,是否有其他框架比如TensorFlow,但用户特别问的是PyTorch,所以重点在此。可能需要提到PyTorch的模块,如torch.nn中的卷积层、池化层等,以及如何简化CNN的实现。 另外,可能需要提到PyTorch的动态计算图(如Eager执行模式)对于调试灵活性的优势,这对于构建复杂的CNN模型可能有帮助。还可以提及预训练模型社区资源,如TorchVision中的模型,这些资源如何让用户更容易地应用CNN到实际问题中。 需要注意不要混淆概念,比如PyTorch是一个工具,而CNN是一种模型结构,两者是工具与实现方式的关系。需要明确区分,避免用户误解PyTorch就是CNN或者反之。 最后,总结两者的关系,强调PyTorch作为工具如何赋能CNN的开发应用,以及在工业界学术界中的普及程度。可能还需要给出一个简单的例子,比如在PyTorch中定义一个简单的CNN模型的代码结构,但用户的问题可能不需要代码,所以用文字描述即可。 需要检查是否有遗漏的关键点,例如PyTorch的自动微分、GPU加速等功能,这些对于训练CNN模型的重要性。可能还需要对比其他框架,但用户没有问,所以简要提及即可。 确保回答逻辑连贯,从定义到关系,再到具体支持实例,逐步展开,帮助用户逐步理解。同时,保持回答的准确性专业性,但不过于晦涩。</think>### CNN与PyTorch的关系 #### 1. **基本定义** - **CNN(卷积神经网络)**:一种深度学习模型,专为处理**网格结构数据**(如图像、时序信号)设计,通过卷积层、池化层等结构提取局部特征。 - **PyTorch**:一个开源的**深度学习框架**,由Facebook(现Meta)开发,提供灵活的编程接口高效的计算支持,用于构建、训练部署神经网络模型。 #### 2. **核心关系** PyTorch是**实现CNN的工具**,而CNN是PyTorch支持的**模型类型**之一。 - **PyTorch的作用**: 提供预定义的模块(如卷积层、损失函数、优化器)底层计算库(如GPU加速),让开发者能便捷地搭建、训练CNN模型。 - **CNN的实现**: 在PyTorch中,通过`torch.nn`模块直接调用`Conv2d`(二维卷积层)、`MaxPool2d`(最大池化层)等组件,快速构建CNN结构。 --- ### 为什么PyTorch适合实现CNN? #### 1. **动态计算图(Eager Execution)** - PyTorch支持**即时执行模式**,允许逐行调试代码,直观查看中间结果(如特征图),这对调试复杂CNN结构(如ResNet、U-Net)至关重要。 #### 2. **丰富的预定义模块** - **卷积相关组件**: `torch.nn.Conv1d/2d/3d`(一维/二维/三维卷积)、`torch.nn.functional.conv2d`(自定义卷积操作)等。 - **示例代码片段**: ```python import torch.nn as nn class SimpleCNN(nn.Module): def __init__(self): super().__init__() self.conv1 = nn.Conv2d(in_channels=3, out_channels=16, kernel_size=3) # 输入3通道,输出16通道,3x3卷积核 self.pool = nn.MaxPool2d(2) # 2x2最大池化 self.fc = nn.Linear(16*13*13, 10) # 全连接层(假设输入图像为28x28) def forward(self, x): x = self.pool(torch.relu(self.conv1(x))) x = x.view(-1, 16*13*13) x = self.fc(x) return x ``` #### 3. **GPU加速与自动微分** - PyTorch通过CUDA支持GPU计算,大幅提升CNN训练速度(尤其对高分辨率图像)。 - **自动微分(Autograd)**:自动计算梯度,简化反向传播过程,例如: ```python loss = criterion(output, target) loss.backward() # 自动计算所有参数的梯度 optimizer.step() # 更新参数 ``` #### 4. **生态系统支持** - **TorchVision**:提供预训练的CNN模型(如ResNet、VGG)、数据集加载工具(如ImageFolder),方便迁移学习。 - **部署工具**:支持将训练好的CNN模型导出为ONNX格式或通过TorchScript部署到生产环境。 --- ### 实际应用中的结合(以风电为例) 假设使用PyTorch搭建CNN进行**风机叶片损伤检测**: 1. **数据准备**:无人机拍摄的叶片图像 → 预处理(缩放、归一化)。 2. **模型构建**:通过PyTorch定义包含卷积层、池化层的CNN。 3. **训练与调优**:利用PyTorch的优化器(如Adam)损失函数(交叉熵)进行训练。 4. **部署**:将训练好的CNN模型集成到风电运维系统中,实时分析叶片图像。 --- ### 与其他框架的对比 | 框架 | CNN开发特点 | |-----------|-----------------------------------------| | PyTorch | 动态图、易调试、研究友好 | | TensorFlow| 静态图、生产部署成熟(但2.x支持动态图) | | Keras | 高层API,快速原型设计 | --- ### 总结 - **PyTorch是工具**:提供构建CNN所需的基础设施(计算、梯度、模块化组件)。 - **CNN是模型**:通过PyTorch实现其结构定义、训练优化。 - **核心优势**:PyTorch的灵活性、高效性社区资源,使其成为实现CNN的主流选择之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值