第二章 学习技术技能,开启美好的 AI 职业生涯(学习章节)
在上一章中,我介绍了在人工智能领域开启职业生涯的三个关键步骤:学习基础技术技能、参与项目和寻找工作,所有这些步骤都需要加入社区的支持。在本章中,我将更深入地探讨第一步:学习基础技能。
人工智能领域发表的研究论文数量之多,超过了任何人一生所能阅读的数量。因此,在学习时,优先选择主题至关重要。我认为,对于机器学习技术职业而言,最重要的主题是:
基础机器学习技能: 例如,理解线性回归、逻辑回归、神经网络、决策树、聚类和异常检测等模型非常重要。除了具体的模型之外,理解机器学习工作原理背后的核心概念也至关重要,例如偏差/方差、成本函数、正则化、优化算法和误差分析。
深度学习: 深度学习已成为机器学习的重要组成部分,如果不了解它,很难在该领域脱颖而出!了解神经网络的基础知识、使其工作的实用技能(例如超参数调优)、卷积网络、序列模型和 Transformer 非常有价值。
与机器学习相关的数学: 关键领域包括线性代数(向量、矩阵及其各种运算)以及概率和统计学(包括离散概率和连续概率、标准概率分布、独立性规则和贝叶斯规则等基本规则以及假设检验)。此外,探索性数据分析 (EDA)——使用可视化和其他方法系统地探索数据集——是一项被低估的技能。我发现 EDA 在以数据为中心的人工智能开发中特别有用,分析错误并获得洞察力可以真正推动进步!最后,对微积分的基本直观理解也会有所帮助。做好机器学习所需的数学知识一直在变化。例如,尽管某些任务需要微积分,但改进的自动微分软件使得无需进行任何微积分即可发明和实现新的神经网络架构成为可能。这在十年前几乎是不可能的。
软件开发: 虽然仅凭机器学习建模技能就能找到工作并做出巨大贡献,但如果你还能编写优秀的软件来实现复杂的人工智能系统,你的就业机会将会更高。这些技能包括编程基础知识、数据结构(尤其是与机器学习相关的数据结构,例如数据帧)、算法(包括与数据库和数据操作相关的算法)、软件设计、熟悉 Python 以及熟悉 TensorFlow 或 PyTorch 和 scikit-learn 等关键库。
要学的东西太多了! 即使你掌握了清单上的所有内容,我仍然希望你能够继续学习,不断深化你的技术知识。我认识很多机器学习工程师,他们受益于在自然语言处理或计算机视觉等应用领域,或在概率图模型或构建可扩展软件系统等技术领域的深厚技能。
如何获得这些技能? 互联网上有很多好的内容,理论上,阅读几十个网页是可行的。但当你的目标是深入理解时,阅读零散的网页效率低下,因为它们往往重复内容,使用不一致的术语(这会减慢你的速度),质量参差不齐,并且会留下空白。这就是为什么一门好的课程——将大量的材料组织成连贯且合乎逻辑的形式——通常是掌握有意义知识体系最省时的方法。当你吸收了课程中的知识后,你就可以转向研究论文和其他资源。
最后,没有人能够在一个周末甚至一个月内把所有需要学习的知识都硬塞进去。我认识的每一位机器学习高手都是终身学习者。鉴于我们这个领域变化如此之快,如果你想跟上时代,除了不断学习别无选择。
如何才能多年保持稳定的学习节奏?如果你能养成每周学习一点点的习惯,你就能以更少的努力取得显著的进步。
养成新习惯的最佳方法
我最喜欢的书之一是 BJ Fogg 的《微习惯:改变一切的小改变》。Fogg 解释说,养成新习惯的最佳方法是从小事做起,并取得成功,而不是从大事做起而失败。例如,他建议与其每天锻炼 30 分钟,不如立志做一个俯卧撑,并坚持下去。
这种方法或许对那些想花更多时间学习的人有所帮助。如果你一开始就要求自己每天观看 10 秒钟的教育视频——并且坚持下去——那么每天学习的习惯就会自然而然地养成。即使你在这 10 秒钟里什么也没学到,你也养成了每天学习一点的习惯。有时候,你最终可能会学习一个小时甚至更长时间。