|
mophia
| 来自北京
请推荐一个人工智能学习路线图?
按照我这个路线坚持完,你会变成一个人工智能的牛人的。它是假定一个没有人工智能基础的学习路线。大概分成下面几个阶段
- 全面的基础知识
- 熟悉编程框架
- 学习与复现现有的精典项目
- 自己的发展方向
- 自主
全面的基础知识
任何一门学科或者说一个技术,要学好它,最好的方式 是从基础开始了,而且它也是影响你未来的重要的一部分。不过对于人工智能这个方向来讲,基础有点儿多:
数学基础
线性代数:矩阵运算、特征值和特征向量、奇异值分解等。
概率和统计:概率论基础、贝叶斯理论、描述统计、推断统计等。
微积分:导数、积分、偏导数、梯度、泰勒展开等。
优化方法:凸优化、梯度下降法、牛顿法、随机梯度下降法等。
编程基础
Python:Python是AI领域最常用的编程语言。要学会基础语法、数据结构等。这个编程语言没有别的,只有 Python 。
数据处理:学会使用NumPy、Pandas等库进行数据预处理。这个会极大影响你的效率,所以要熟练掌握。
机器学习基础
下面这些主要是一些基础性的公式、简单的评估方法与模型的原理性的东西。如果要学习,最好是亲手写个代码。
监督学习:线性回归、逻辑回归、支持向量机、决策树、随机森林、K近邻、朴素贝叶斯等。
无监督学习:聚类、降维、密度估计等。
模型评估:交叉验证、偏差和方差、过拟合和欠拟合、性能指标(准确率、召回率、F1分数等)。
深度学习基础
尽管你不喜欢,但是这些基础性的原理还是要必须学会的。
神经网络基础:前馈神经网络、反向传播算法、激活函数等。
卷积神经网络(CNN):用于图像识别、对象检测等任务。
循环神经网络(RNN):用于序列数据,如自然语言处理、时间序列分析等。
Transformer:LLM 、及一切可能。
常见框架:TensorFlow、PyTorch、Keras的基础知识。
其他
有时其他不重要,有时又很重要,很显示,这是一个描述极少,但是有时能救你命的东西。你加油吧。因为它可能是你某一个时间点卡住你的东西。你不会,就真的会被卡住。不过要记得变通,要记得GPT4 与谷歌的存在。
数据获取:如何收集和使用数据,包括公开数据集、网络爬虫等。
版本控制:学会使用Git和GitHub进行版本控制和协作。
如果你会了这些基础了,那可以认为你具备了所有人工智能方向进发的能力了。
在这里我要真的介绍一下,最有效的帮助课程吧。时代变革了,学习什么的,最重要的就是学 AI。学工作什么的,最重要的就是用 AI。学人工智能的也要用 AI 啊。 而学习 AI,最好的方式应该是视频学习,类似 “知乎知学堂推出的《程序员的AI大模型进阶之旅》”, 其实就是一份非常有意思的 AI 大模型的介绍性入门课程,简单看看,你可能马上就对大模型了解了,而不是要大量阅读。这也是个非常有效的学习方法。还有哦,加小助手的微信,好像有惊喜呢。
熟悉编程框架
这个是快速实现你想法的基础了。如果你不能熟练的使用某一个 AI 的编程框架,那你怎么来验证你的想法是不是对的,是不是有用的,是不是真的能超过人类呢?因为我 pytorch 用的多,所以如何熟练用这个编程框架,我就以它为例吧。
了解PyTorch的基础结构和概念
张量(Tensor):理解PyTorch中的基础数据结构张量,它类似于NumPy的数组。
自动微分(Autograd):理解PyTorch的自动微分机制,如何利用它来自动计算梯度。
神经网络(nn.Module):学习如何使用PyTorch的nn.Module来定义神经网络。这个玩意是所有自定义模型的基础
学习构建基本的神经网络模型
要用 pytorch 能熟练的完成下面模型的编写工作。
前馈神经网络:学习如何构建和训练基本的前馈神经网络。你要会写输入、输出、隐藏层还有激活函数什么的。
卷积神经网络:用于图像识别等计算机视觉任务。像 LetNet 、 VGGNet 。
循环神经网络:适用于序列数据如文本、时间序列等。像 LSTM 、 GRU 类的网络。
Transformer:LLM 及一切任务,都能用它。BERT 与 GPT 是必练的模型。
模型的训练与验证
损失函数:理解不同任务的损失函数,如交叉熵损失、均方误差损失等。这个怎么用 pytorch 搞到你的模型里是个非常非常重要的工作。
优化器:掌握常见的优化器如SGD、Adam等,并了解它们的工作原理。跟损失函数同样重要。
模型验证和测试:学会如何在验证集上验证模型性能,并在测试集上进行测试。干活嘛,总要有标准,这个就是标准。你做的对不对,好不对,全看它了。
模型的保存和加载
学习如何保存和加载模型:包括模型结构和模型参数。Ctrl+S 你说重要不?
参考和复现别人的代码
GitHub:在GitHub上找到相关的项目,通过阅读和复现代码来提高自己的能力。
论文实现:尝试复现一些研究论文中的模型和实验。
参加线上比赛和挑战
Kaggle:可以参加Kaggle上的一些比赛,与他人竞争和学习。
持续关注PyTorch的更新和新特性
官方文档和论坛:定期查阅PyTorch的官方文档和论坛,了解最新的功能和最佳实践。
探索高级特性
自定义层和操作:学习如何在PyTorch中自定义神经网络层和操作。
分布式训练:了解如何利用PyTorch进行分布式训练。
掌握了这些内容后,你就可以说熟练掌握了PyTorch,可以用它来实现自己的深度学习模型和项目了。
学习与复现现有的精典项目
这个举些例子吧,用这些例子吧,主要是在 github 与 kanggle,可以通过学习与复现,得到非常不错的实际项目的锻炼。
GitHub开源项目
GitHub上有很多优秀的AI相关的开源项目,通过学习和参与这些项目,可以积累经验和提高技能。通常你一搜索就有一大堆的列表。
预训练模型和工具库
Hugging Face Transformers:一个非常流行的自然语言处理预训练模型库。要学会如何使用它,会是你更快的复现各种项目、论文的利器!
Pytorch 的精典模型库,要熟练使用才对。
深度学习框架
PyTorch:热门的深度学习框架,可以参与贡献或学习源代码。
TensorFlow Models:TensorFlow的模型库,包含各种预训练模型和示例。
教学和示例项目
fastai:一个简单易用的深度学习库,同时有配套教程。
DeepLearning.ai:包含各种深度学习课程的示例代码。
Kaggle竞赛
Kaggle是一个举办数据科学和机器学习竞赛的平台,可以通过参加竞赛来锻炼实战能力。如果你是工程 目标的,请一定要完成下面这些基本的比赛项目。
分类和回归竞赛
Titanic: Machine Learning from Disaster:一个入门级别的二元分类竞赛。
House Prices: Advanced Regression Techniques:一个房价预测的回归竞赛。
自然语言处理竞赛
Natural Language Processing with Disaster Tweets:通过推特预测灾害的发生。
计算机视觉竞赛
Digit Recognizer:基于MNIST数据集的手写数字识别竞赛。
时间序列预测竞赛
Web Traffic Time Series Forecasting:预测Wikipedia网页的未来访问量。
在学习和实践这些项目时,建议你:
- 代码实践:尝试运行代码,理解并修改代码。
- 深入学习:深入研究项目或竞赛的相关理论和技术。
- 社区互动:积极参与项目或竞赛社区的讨论,和他人交流学习。看看人家原来的思路是什么,碰到过什么问题。
自己的发展方向
从人工智能现阶段来看,大的方向就是两个自然语言处理与视觉,还有个小的方向 语音,还有个商业化最多的方向 推荐系统。在学习的过程中,明确自己的发展方向是非常重要的一步。要探索并找到自己感兴趣的人工智能子领域。你只有确定了自己的方向,才会找到自己的目标、乐趣与动力。但是大方向其实只有下面这几个:
- 自然语言处理(NLP):如果你对文本和语言处理感兴趣,可以考虑此方向。涉及文本分类、情感分析、机器翻译等。
- 计算机视觉(CV):对图像或视频处理感兴趣的可以选择此方向。例如图像分类、物体检测、图像生成等。
- 推荐系统:在这个方向,你可以研究如何根据用户的历史行为和偏好进行个性化推荐。差不多是离钱最近的方向,你每做好一点儿,在合适的平台上都有极大的放大。
- 语音处理:如果对语音识别、语音生成或其他音频处理任务感兴趣,可以考虑此方向。如自动语音识别(ASR)、语音合成(TTS)等。
- LLM(大语言模型):这个是最火的方向了,可能真的只有这个方向才是 AGI 的未来。
自主
“自主”在此指的是主动地、有计划地进行学习和实践。这包括项目实践、论文阅读、以及与其他学习者和专家的交流。以下是这几个方面的详细说明:
项目实践
项目实践是将所学知识应用于实际问题的过程,也是检验和加深理解的好方法。
个人项目:可以根据自己的兴趣和所学知识,选择一些实际问题来解决,如开发一个聊天机器人、做一个图片分类器等。
- 参与开源项目:在GitHub或其他开源平台上,参与一些有影响力的开源项目,可以学习到更多实战经验和最佳实践。
- 竞赛参与:如Kaggle、天池等平台的数据科学竞赛,可以在解决实际问题的同时,与其他选手竞争、学习他人的优点。
论文阅读
论文阅读可以帮助我们了解领域的最新研究动态和前沿技术。或者说是你成长的必备养份,不读论文,你可能一直只能是个底层实现者。
- 选择高质量的论文:如顶级会议和期刊的论文,arXiv预印本服务器的热门论文等。这个搜索与查询的方法可能要另外写一篇文章了。
- 定期阅读:可以制定计划,如每周阅读2-3篇论文,持续更新知识库。
- 深入理解和实践:尽量理解论文的每个部分,包括理论、实验、代码等。可以尝试复现论文的实验结果。尽管你可能没办法复现所有的,但是找一些精典与契合自己方向的来来做,真的有特别大的帮助 。
交流
交流是学习过程中非常重要的部分,可以帮助我们打开思路、解决问题。而且当你成长到一定时间,去找人交流可能会迅速提高你,因为一些大牛的眼界、直觉是远超常人的,你要相信人与人的差距,可能真的比人跟狗都大。下面是几个常见的交流方式:
- 线上社区:如Reddit、Stack Overflow、知乎等,可以提问、回答问题、参与讨论。
- 线下Meetup:参加一些线下的技术交流会,可以听到一些前沿的分享,也可以结识同领域的朋友。
- 参加研讨会和会议:可以听到领域内专家的讲座,也有机会提问和交流。
通过以上三个方面的自主学习,可以更全面、更深入地学习人工智能知识,也更有利于个人的专业成长。你不参加几个顶会,怎么见到更多的牛人呢?
要是看到这儿了,我想也不会介意再动下手,我觉得最好的方式应该是视频学习,类似 “知乎知学堂推出的《<a href="http://www.zhihu.com/search?q=%E7%A8%8B%E5%BA%8F%E5%91%98%E7%9A%84AI%E5%A4%A7%E6%A8%A1%E5%9E%8B%E8%BF%9B%E9%98%B6%E4%B9%8B%E6%97%85&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra=%7B%22sourceType%22%3A%22answer%22%2C%22sourceId%22%3A3166721473%7D#s30kds#1s2ecw" class="internal">程序员的AI大模型进阶之旅》”, 其实就是一份非常有意思的 AI 大模型的介绍性入门课程,简单看看,你可能马上就对大模型了解了,而不是要大量阅读。这也是个非常有效的学习方法。还有哦,加小助手的微信,好像有惊喜呢。 |
|