转载一篇比较好的文章,记叙了深度学习的一些宏观可做方向,感觉做这些需要读博了,目前我觉得模型可解释性和方向7框架翻译比较有意思。希望今后在特定的研究领域中可以穿插这两个。凸优化什么的当时学过,听了两次就觉得搞不了,迁移学习和记忆学习就不说了。
1、Semi-supervised, self-supervised, unsupervised learning. 俗话说“有多少智能就有多少人工”,那么能不能不需要太多标记样本,甚至不需要标记样本。
2、Transfer learning, generalization. 模型提取特征的能力也是需要大量数据加持,但不是所有应用场景都有大数据,比如医疗和遥感。所以如何利用别人已经训练精美的模型,是一个很值得思考的问题。换个一个角度思考,你已经学会识别大花猫了(训练好的模型),那么再给你一只蓝猫,你肯定也知道他是猫(transfer到其他猫),所以模型泛化能力也蛮重要的。
3、Imcremental learning, lifelong learning, online learning. 你今天有一批数据,训练了一个模型,过了一段时间积攒了一批新的训练数据(甚至包含了新的类别),想让模型学习一下,怎么办?用新数据接着训练旧模型?显然不行,旧样本的知识会产生“灾难性遗忘”。所以在原模型的基础上,如果只用新样本就能把模型调整好,甚至极端一点,一个样本只学习一次就能让模型记住,是不是非常节省时间。
4、Model Compression, lightweight model. 深度学习动辄百八十层,嵌入式场景下怎么办,所以要把大模型压缩成效果相当的小模型。同时训练大模型也劳民伤财吧,那么设计什么样的小模型和参数优化方法,能达到大模型的效果呢?
5、Model interpretation, domain knowledge. 你说你的模型好就好?准确率高模型就一定好?你说这一层提取了什么特征就提取了什么特征?那你具体说说到底提取了什么,别说提取了“局部视觉特征”。所以模型的可解释性非常重要,如果模型每个计算每个特征都有直观的含义,那么不但模型更加可靠,甚至调参都将会变得有依据。如果还能融入人类的生活经验以及领域专家的见解,那么模型更容易朝着我们想象的结果走。
6、Optimization. 机器学习模型利用各种凸优化的方法求解(求闭式解啊,交替迭代啊,还有梯度下降,牛顿,拟牛顿),深层网络也是基本靠反向传播(梯度下降),甚至也有另辟蹊径的(智能群体算法)。但是你获取的数据有很多问题(样本不均衡,多源数据,错误标记等等),而且优化的速度、消耗资源、解的质量(局部最优)都有待提升。这些问题解决的好,也能对上面几位的发展起到推动作用。
7、最后,编程框架翻译,虽然放在最后,但是这是我最想说的(当然这个东西并不存在)。不知道大家有没有因为找不到合适的开源代码而发愁,比如你擅长TensorFlow,但是代码却是PyTorch写的。虽说要有精通多个语言多个框架的能力,但是大部分人精力有限,而且读自己不擅长语言非常浪费时间。这个时候,如果可以把PyTorch翻译成TensorFlow该有多好,希望有大牛分分钟搞出来。嗯,苟富贵,毋相忘。
作者:青春没有终点
链接:https://www.zhihu.com/question/385326992/answer/1161171596
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。