人生是一个梯度上升算法

谈人生是把妹的必备技巧, 今天是情人节, 这篇应该还算应景.

先简单介绍下梯度上升算法:

  1. 选择一个起始点
  2. 计算当前所在点的梯度, 并往梯度的方向迈一步
  3. 重复 N 步或者达到收敛条件则停止

在一个二维的曲线上, 梯度只有可能在两个方向, 以下为一个简单的示例

它和人生的相似之处在于:

  1. 只能到达一个局部的峰值

    1. 除非曲线是一个凸函数 - 命运如此
    2. 人生的结果是受很多因素影响的结果, 而人不可能考虑到所有的因素, 对于梯度上升算法来说则是不能计算出每个变量的梯度, 结果也就或多或少依赖于 - 运气
    3. 总是基于当前所知作出选择
  2. 起始点和步伐大小决定所能到达的峰值

    1. “起始点” 的重要性不用提, “拼爹” 和 “不要让孩子输在起跑线” 的言论随处可见
    2. “步伐大小” 是一个人的天赋, 同样的时间成本所取得的成果决定到达峰值的速度. 当然, 有时候太快并不是好事.