自学成才的机器学习工程师十诫

作者:Daniel Bourke
编译:ronghuaiyang
导读
使用数学 , 代码和数据来揭示大自然的秘密 。
自学成才的机器学习工程师十诫文章插图
写代码可能会让人变得有点沮丧 , 需要让自己的周围充满色彩
自律和自学这两个词不能掉以轻心 。 一个人必须对自己的教育和启蒙负责 。 如果你忽略它 , 别人就会为你做选择 。
1. 数学 , 代码和数据是你最重要的三大项任何有效的机器学习管道都是数学、代码和数据的交叉 。 每一项只有和另一项在一起时才会有效果 。
如果你的数据质量很差 , 那么无论你的数学计算多么优雅或代码多么高效都没用 。
如果你的数据质量最高 , 但你的数学计算错误 , 那么你的结果可能会不是很好 , 甚至会更糟 , 造成伤害 。
【自学成才的机器学习工程师十诫】如果你的数据和数学都是世界级的 , 但是你的代码效率很低 , 那么你将无法获得扩展带来的好处 。
数据为你提供了一个包含自然瑰宝的采矿地点 。 数学就是你的鹤嘴锄 。 代码可以让你建立一支挥舞着鹤嘴锄的机器人队伍 。
自学成才的机器学习工程师十诫文章插图
这三大项是你系统的输入(你拥有的)和输出(你想要的)之间的桥梁 。
注:三大项中的数学分支也包含统计和概率 。
2. 三大项之外的唯一例外除了不能平衡这三大项之外 , 还有一个更大的罪过:忘记这三大项是为谁服务的 。 即使是执行得最好、由最优雅的数学驱动的代码 , 如果不能为客户提供服务 , 从最丰富的数据中获得洞察也毫无意义 。
工程师经常会发现自己迷失在一个过程中 , 忘记了最初想要的结果 。 尽管他们怀着良好的意图进行 , 但他们忘记了 , 意图并不像行动那么重要 。
三大项至少要为客户提供点好处 , 总比什么都不提供要好 。
需要澄清的是 , 如果你的先进模型需要47倍的时间才能提高1%的准确率 , 那么它是否提供了最好的体验?
3. 不要被三大项给骗了无论你多么崇拜这三大项 , 你都不应该被你的爱蒙蔽 。 自学成才的机器学习工程师是他们自己的最大的怀疑者 。
他们知道 , 数据不能进行证明 , 只能进行反驳(只要在十亿数据中有一个数据点就能证明之前的概念是错误的) , 一点点糟糕的数学运算就会产生极端的后果(自然不是线性的) , 代码的效率只有在它最薄弱的地方才有 。
无论三大项多么神圣 , 直觉也不应被忽视 。 如果一个结果好得令人难以置信 , 除非你很幸运 , 否则它很可能就是错的 。
4. 和你需要提供服务的客户保持好关系让机器做它们擅长的事情(反复重复过程) 。 让你去做你擅长的事情时(关心、设身处地、提问、倾听、领导、教学) 。
你的客户不像你那样关心三大项 。 他们关心他们的需求是否得到满足 。
5. 向那些为你奠定基础的人致敬当你想到计算机、机器学习、人工智能、数学等领域时 , 你会想到谁的名字?
Ada Lovelace , Geoffrey Hinton , Yann LeCun , Yoshua Bengio , Alan Turing , Fei Fei Li , Grace Hopper , Andrew Ng , Jon Von Neumann , Alan Kay , Stuart Russel , Peter Norvig?
当然 , 在你听到或记住的所有名字中 , 有1000个名字功不可没 , 但却从历史书中消失了 。
后起之秀应该认可前辈们做出的巨大努力 , 但也应该认可他们中的每一个人都会告诉这位新晋的机器学习工程师同样的事情:这个领域的未来取决于你的工作 。
6. 不要低估了完全重写的力量你的目标应该是在第一时间构建可靠的东西 。 但随着技能的提高 , 你可能会想重构之前的作品 , 拆掉它们 , 用新的视角重新创造它们 。
自学成才的机器学习工程师都明白 , 就像大自然一样 , 软件和机器学习项目永远不会完成 , 它们一直在运动 。 数据变化 , 代码在新的硬件上执行 , 一个天才发现了一个计算高效 , 低内存依赖的优化器适合 , 并称之为Adam 。
你不仅应该对这些变化持开放态度 , 还应该欢迎它们 。 一旦它们出现 , 请使用你最好的判断力来判断它们是否值得实现到你的系统中 —— 仅仅因为有些东西是新的 , 并不意味着它是必需的 。
7. 避免在工具上滥情在编程界 , 一个常见的轶事是粉刷自行车棚 。 它说的是一个程序员 , 或者一组程序员 , 担心的是车棚应该是什么颜色 , 而不是问一些重要的问题 , 比如车棚是否真的可以存放自行车 。