hello大家好!机器学习的小文章如期而至~
还是和数据结构的顺序一样,也是从头开始描述,有基础的朋友可以看目录划重点哈
OK,咱们话不多说,直奔主题!
本次介绍也是根据我之前学习的经验来选择相应的内容,也参考了带我的教授的一些教学内容,所以可以说是经历之谈,不是那种方方面面俱全的百科,略写的部分后续的文章还会展开讲的,不好理解的地方也带过了或者没有提及,毕竟是入门嘛(顺带一提,这位教授来自MIT,大家可以看看外国顶级大学的教学有什么不一样)
一、什么是机器学习
1、基本介绍
机器学习(Machine Learning)是一种通过数据驱动的方法让计算机自动改进和学习的技术。它属于人工智能的一个分支,核心在于构建算法和模型,使计算机能够在没有明确编程指令的情况下从数据中提取规律和知识,从而进行预测或决策。
我们可以将其总结成一句话:与传统编程不同,机器学习是通过收集对某些现象的观察结果,让程序学习潜在的模式。
以下图为例:
2、机器学习的发展历史与生命周期
机器学习的发展历程从1943年建立人工神经元模型开始,1957年感知器的发明奠定了早期基础,1986年反向传播算法推动了神经网络的复兴,2012年卷积神经网络在ImageNet竞赛中获胜标志着深度学习的突破,2016年AlphaGo击败围棋冠军展示了强化学习的潜力,2017年Transformer架构提出改变了自然语言处理的格局,未来的发展趋势包括了自动化机器学习和联邦学习。
我们可以总结出以下几个重要的里程碑:
1949——唐纳德-赫伯创建了一个基于脑细胞相互作用的模型。
1957——第一台神经计算机 "Mark 1 感知器 "被设计出来。
1967——近邻算法的出现,首先是解决了 TSP 问题。
1960s——在感知器中使用了多层结构,从而产生了前馈神经网络(FFNN)和反向传播(BP)算法
1969——使用反向传播算法(Backpropagation)训练多层神经网络
1996——IBM的深蓝(Deep Blue)计算机战胜了当时的国际象棋世界冠军加里·卡斯帕罗夫(Garry Kasparov)。
1990s——统计方法开始主导机器翻译领域。
2010——IBM的沃森(Watson)参加了电视问答节目《危险边缘!》(Jeopardy!),并击败了两位前冠军。
2016——Google的AlphaGo以4比1的比分击败了围棋世界冠军李世石。
#大家有兴趣的可以去查查资料,这里就不展开说了,了解为主。
#里面翻译错了,是训练不是火车...这部分也是,了解即可
3、机器学习的分类
对于其内部进行分类,我们大致可以将他分为三类:监督学习、无监督学习、强化学习。
在监督学习中,模型从标记数据中学习,即每个输入数据都对应一个已知的输出。主要应用包括分类和回归任务
在无监督学习中,模型从未标记的数据中学习,即输入数据没有对应的已知输出。主要应用包括聚类、降维和关联规则挖掘
#二者区别主要是数据集的结果或影响是否已知
在强化学习中,智能体通过与环境的交互来学习策略,以最大化某种累积奖励。主要应用包括游戏AI、机器人控制和自动驾驶(你也可以理解为做对了就狠狠地奖励,让你好好记住要怎么做)
而对外部展开来分,可以大致的说一下大家很容易混淆的点
#可以看到,AI是一个总括性的领域,研究如何让计算机模拟或超越人类智能。机器学习是AI的一个子领域,专注于让计算机系统通过从数据中学习和改进性能,而无需明确编程指令,而深度学习是机器学习的一个子领域,使用多层神经网络来模拟人脑的结构和功能,从而自动提取和学习数据的高级特征。
二、机器学习的实现
1、数学基础
数学在机器学习中起着至关重要的作用,它为机器学习算法的开发、分析和应用提供了理论基础
首当其冲的就是线性代数,他非常重要。机器学习里面有大量的矩阵运算,用矩阵和向量表示和操作数据集更是家常便饭,就好像你说话用母语文字一样的基础
再者是微积分,我们所熟知的也是几乎固定模式的优化算法方法,如梯度下降,用于最小化损失函数,就是使用的导数与梯度。其链式法则在反向传播算法中计算神经网络的梯度。
还有概率与统计,我们使用概率分布来描述和建模不确定性和随机变量,用期望值和方差描述数据特性和模型性能,以及众所周知的贝叶斯公式。
#上述只是举例几个重要的例子,当然数学与机器学习的关系不止于此,有兴趣的朋友可以去网络上拓展一下~
2、模型实现
模型的实现离不开算法与代码的支撑,他们都是机器学习的基石
以下是常见的机器学习模型,这里简单介绍,后续的文章都会一一讲解
- 线性回归(Linear Regression):通过拟合一条直线来预测连续变量。
- 逻辑回归(Logistic Regression):使用Sigmoid函数进行二分类预测。
- 支持向量机(Support Vector Machine, SVM):通过寻找最佳超平面来进行分类或回归。
- 决策树(Decision Tree):通过递归地分割数据集进行分类或回归。
- 随机森林(Random Forest):通过集成多个决策树进行分类或回归。
- K近邻(K-Nearest Neighbors, KNN):通过计算距离预测最近邻样本的类别或数值。
- 朴素贝叶斯(Naive Bayes):基于贝叶斯定理和独立假设进行分类。
- K均值(K-Means):通过迭代分配数据点到K个簇进行聚类。
- 主成分分析(Principal Component Analysis, PCA):通过线性变换将数据投影到低维空间进行降维。
- 神经网络(Neural Networks):通过多个层次的节点(神经元)进行复杂的模式识别和预测。
至于代码方面,我们最常用我个人认为也是最好用的就是Python了,这个编程语言真是太强大了,成千上万个库可以让你轻松完成整个机器学习的生命周期,基本不需要其他的插件帮助(但是由于库太多了,版本也超级多,所以需要装一个anaconda来管理环境,否则你会崩溃的,而且带来的成本也是超级高)
常见的用于机器学习的库有Numpy、pandas、Scikit-learn、PyTorch,有兴趣的朋友可以了解一下,我在后面的文章也会详细的提到。
下面给一个线性回归的简单实例:
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.datasets import make_regression
# 生成数据
X, y = make_regression(n_samples=100, n_features=1, noise=0.1)
# 分割数据
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
# 创建模型并训练
model = LinearRegression()
model.fit(X_train, y_train)
# 预测
y_pred = model.predict(X_test)
三、机器学习的实际运用
机器学习在许多领域中有广泛的实际应用。以下是一些常见的应用领域和具体实例
图像和视频处理:使用卷积神经网络(CNN)将图像分类到不同的类别中,如猫、狗、汽车等,应用于图像搜索和自动标注;使用生成对抗网络(GAN)生成逼真的图像,应用于艺术创作和虚拟现实。
自然语言处理(NLP):文本分类为不同的类别,如垃圾邮件检测、情感分析,应用于电子邮件过滤和市场情感分析;使用序列到序列模型(Seq2Seq)将一种语言翻译成另一种语言,应用于翻译服务。
自动驾驶:使用传感器数据(如摄像头、激光雷达)识别道路、车辆和行人,应用于自动驾驶汽车;通过机器学习算法实时规划车辆的行驶路径,确保安全高效地到达目的地。
医疗健康:使用机器学习模型分析病人的历史数据和医学影像,预测疾病风险,如癌症检测;根据患者的基因数据和病历信息制定个性化的治疗方案。
#机器学习的实际运用远远不止于此,这里只是冰山一角。不过我们也可以看到其对于人类文明发展的重要价值,不得不感叹前人的智慧与力量,让人心生敬佩
四、结语
本次文章没有太多的知识性或者技术性的深入描述,主要以简单介绍为主,给之前没有了解过的朋友一点基础印象(仅作为科普,如有引用概不负责哈)大家也不用担心,前面埋下的坑,后面会慢慢填上的~
大家也可以去看看其他博主的文章交叉学习一下,或者自己去找资料再拓展一下。小编的一家之言确实可能会有许多不太准确的地方,大家还是要自己判断一下,网上冲浪嘛~~
好啦,本次文章就到这里啦,希望大家都有所收获呀~~~