聊点轻松的——新代iPhone与优化

本文收录在无痛的机器学习第二季目录

好久没有写一些轻松的话题文章了,这次借着新一代iPhone的发布,来聊一聊它们和优化的一点关系。

众所周知(当然不知就让你知一下),前两天新一代的iPhone亮相了。不同于以前的一次一系列的发布方式,这一回呈现在大家面前的有两个系列:iPhone 8和iPhone X(10),且不说小9被冷落在一旁无人问津,也不说好端端地数字被变成了罗马数字,我们就来看一看两款手机的主要新特点:

iPhone 8:一堆非刚需改进,被大家亲切地称呼为iPhone 7.1

iPhone X:刘海全面屏,Face ID啥啥啥,贵得一塌糊涂也吸引了最多的眼球

(关于Face ID多说一句,今年苹果的一篇将基于GAN的增强眼部识别的论文拿了CVPR 17的Best Paper,其实也可以猜到他们在面部识别下了很大的功夫,所以出来这个功能倒也是情理之中)

看了很多人给出的评价,都觉得对iPhone 8 的兴趣不大,对iPhone X的价格望而却步。我们先来看看iPhone 8,如果我们用优化问题的框架来描述,那么iPhone 8是什么样子呢?

max obj(iPhone)

s.t. 长相,交互方式等等...


也就是说,我们希望某些指标有所提升,但是其他很多的东西是要和上代保持兼容的,毕竟iPhone的用户非常多,重新搞一套学习成本也实在有些大。目标函数可以是性能,可以是一些基础功能的满意度,约束条件就是就是一些基本的操作。

那么如果回过头来看看iPhone 7呢?我们发现两个手机的约束和目标其实差不多。甚至再往回看看iPhone 6,其实也差不多。作为大屏时代的三款旗舰手机,他们的主要升级方向是一致的。

那么从模型训练的角度来看,我们可以理解为,苹果公司一直在“训练”一个叫iPhone的模型,他们的目标函数和对应的约束早已确定了。由于他们是一个公司,因此他们需要每年dump一个checkpoint的模型,拿出去售卖赚钱。于是大家手中拿着的其实是iPhone-checkpoint6,iPhone-checkpoint7,iPhone-checkpoint8而已,不同代之前的差异主要在于训练的轮数。

基于这个想法,我们就可以理解,iPhone7是iPhone6进行“finetune”后的版本,iPhone8同理也是这样。这样解释有什么好处呢?从训练优化的角度,我们更容易理解为什么大家在说苹果“缺乏创新”了。

大家对训练和优化都有一定的了解,一旦模型接近收敛,再做更多的训练不一定能再有多大的提升了。所以iPhone8的“创新乏力”,实际上是基于"iPhone7"的几乎收敛产生的。

当然大家一定会说:不是还有很多可以创新的地方么?你们可不可以大刀阔斧地改革一下?答案是不行的,这也是训练优化中的一个问题——iPhone系列应该是陷入了局部最优。顺着这条优化路径,他们已经尽可能地完成了“梯度下降”,到现在为止,梯度真的所剩不多了,所以留给他们的改进也有点少了。

这时候大家肯定会想,能不能跳出思维的惯性,来点破坏性的创新?优化方法中也有一些增强探索减少利用的方法,但是对于目前的形式,重利用少探索对于公司会更加稳妥。所以这个局部最优店还是不要跳出来为好。

那么问题来了。这样下去会被人骂吃老本的,怎么办?于是iPhone X诞生了。可以说,iPhone X和前面的系列的目标函数大体相同,但是唯一不同的是,它是可以重头训练的。由于loss surface的改变,重新训练的iPhone X不再踏入之前的局部最优,而是冲向了新的局部最优。当然,一般来说这个新的局部最优会更好些,但在未来的某一时刻,它也同样会存在一些局限性。

这个问题主要想说的就是这种迭代式的开发和优化的工作流程,实际上当大的基调确定后,后面的精雕细琢并不能实质性地改变事物,只能在局部改进。所以面对这样的困境,多产品线的思路可以从一定程度缓解这个问题。所以从增强学习的角度来说:

利用策略——iPhone 8

探索策略——iPhone X(单押*1)

两个产品名也很嘻哈(单押*2)


好了,闲聊结束,没钱的我选择继续观望……

私货时间

我的书《深度学习轻松学:核心算法与视觉实践》,感谢支持!

编辑于 2017-11-22

文章被以下专栏收录