如何系统学习机器学习?
如何系统学习机器学习?
机器学习是当前最热门的技术领域之一,它涉及数据科学、人工智能等多个前沿领域。对于想要系统学习机器学习的人来说,从基础概念到实践应用,需要掌握哪些知识?本文将为你提供一份全面的学习指南。
机器学习基础信息
概念
机器学习的核心在于让机器从历史数据中总结规律,进而解决新问题。其定义可以表述为:“一个电脑程序要完成任务(T),如果电脑获取的关于T的经验(E)越多就表现(P)得越好,那么我们就可以说这个程序‘学习’了关于T的经验。”
简单理解,机器学习就是机器从历史数据中提取规律(特征),总结训练出模型,并对新数据做出预测。
机器学习与人工智能、深度学习的关系
三者之间的关系是逐层递减的,可以用下面这个图片来理解:
应用方向
机器学习的应用面很广,在我们的生活中已经有很多方面都有相关的应用。比如:聊天机器人、人脸识别、垃圾邮箱拦截、语言翻译、计算机视觉、自然语言处理、数据挖掘等方面。
除了这些应用,还有现在出现的各种大模型也多是基于机器学习框架生成的。例如现在火遍全球的大模型,OpenAI表示大模型使用了一种名为“利用人类反馈强化学习”(RLHF)的机器学习技术进行训练的。
机器学习学习内容
机器学习三要素
三要素即为数据、模型、算法。三者贯穿机器学习整个过程,缺一不可。
机器学习是由数据驱动的,这些数据都是收集到的客观可量化数据;模型则是机器学习中采用什么样的模型或者说方法进行预测和拟合;算法可以理解为一个优化的过程,最终确定最优模型。
机器学习分类
机器学习可以分为监督学习、无监督学习、强化学习。
监督学习
通过有数据标签的数据进行训练,一般可以有回归和分类两类方式。
监督学习的算法主要有:线性回归、逻辑回归、支持向量机、决策树、随机森林、K-近邻、朴素贝叶斯、AdaBoost、梯度提升树、神经网络。
无监督学习
没有数据标签对的数据进行训练,这类方法的目标是找到数据集底层联系,有聚类和关联两类。
无监督学习的算法主要有:K-均值聚类、层次聚类、DBSCAN、主成分分析、独立成分分析、t-SNE。
强化学习
强化学习通过智能体与环境的交互和反馈,学习到最优的策略来最优化奖励。
强化学习的算法主要有:Q-学习、SARSA、深度Q网络、策略梯度方法、Actor-Critic 方法、Proximal Policy Optimization。
机器学习流程
- 收集数据
- 数据预处理:主要包括缺失值处理、异常值处理、重复值处理等。
- 训练模型:对经过预处理后的数据进行模型训练,结合自己的目的(分类、回归、聚类等)选择合适的训练方式。
- 模型评估:通过训练好的模型对数据测试集进行测试,通过评估指标来评价训练模型的好坏,一般评估指标有准确率、查准率、查全率、均方根误差、ROC 和 AUC等。
- 优化:这个也可以叫做调参过程,通过找到最好的参数可以让模型的性能提高一大截,有传统的手工调参、网格搜索、随机搜索、贝叶斯搜索等方法。
- 预测:最后一步,这是对新数据或新样本的推断或预测。
所需知识
学好机器学习需要有一定的数学基础和计算机编程基础。总结一下,学机器学习需要下面这几方面知识:
数学基础:机器学习中很多方面都设计到了数学知识,较好的数学知识可以在理解和应用机器学习中发挥积极的作用,一般包括线性代数、微积分、概率论和统计学等。
编程基础:这个是肯定的了,只有一定的编程基础,才能看得懂、用得了、写得好算法。现在常说的是Python,此外C++或java也可以。
了解数据结合和算法:算法涉及到了很多数据结构,如图、树、排序等,掌握这些数据结构和算法很重要。
基础机器学习算法知识:前文也说了机器学习中有很多算法,因此也需要掌握一些基础算法,例如支持向量机、神经网络、决策树、逻辑回归等。
此外还有一些知识也需要注意,比如特征提取、模型评估及调优等。
优质资源推荐
书籍
《机器学习》
又叫西瓜书,作者:周志华。这本书可以作为机器学习的入门读物。基本上涵盖了机器学习基础知识的方方面面。每章都附有习题并介绍了相关阅读材料,以便有兴趣的读者进一步钻研探索。
《统计学习方法》
作者:李航。这本书也是机器学习的入门级读物,本书机器学习原理的解释、公式的推导非常非常详尽。全面系统地介绍了统计学习的主要方法,现在有第二版,分为监督学习和无监督学习两个部分。
《机器学习实战》
作者:Peter Harrington。在看完前面两本书后,再跟着本书里的代码进行学习和实操,效果会更好。书中也精心编排了很多实例,从实例入手,更能帮助大家理解机器学习中的各种名词。
其他资源
吴恩达 deeplearning.ai
吴恩达机器学习课程是很多人的入门机器学习的第一堂课,之前的课程时间有点久了,可以看看2022年出的新版。
林轩田 机器学习基石
这个也是很多同学在学校的时候经常看到基础入门课。
李宏毅机器学习课程
大多数同学反应,李宏毅讲的课程相对于吴恩达更能接受一些。
各Python库的官方文档
TensorFlow:https://www.tensorflow.org/tutorials/
pytorch:Welcome to PyTorch Tutorials — PyTorch Tutorials 2.0.1+cu117 documentation
scikit-learn:https://scikit-learn.org/stable/index.html
numpy:https://numpy.org/
pandas:http://pandas.pydata.org/pandas-docs/stable/
matplotlib:https://matplotlib.org/stable/tutorials/index.html
学习建议
想要学好机器学习最重要的还是要实践。通过遇见问题、发现问题、解决问题不断地提高自己的能力。