S'S ALGORITHM

机器学习和它的分类总结


虽然已经学习了很多次,对于各种机器学习方法(除了遗传算法)也都有学习和实践。接下来准备对已经学习过的算法投入实践,再次学习,做项目,巩固和加深理解,希望有新的所得,这里重新整理一下机器学习领域的各种问题类型,从全局再思考一下,希望看到的同好也可以加深对它的分类的理解和全局把握。

注意,这并不是一篇详细的指南,只是一个小的总结和另一轮实践开始的引导。

领域划分

亚瑟·塞缪尔(Arthur Samuel)是一位美国计算机科学家,也是游戏和人工智能领域的先驱。与自然智能不同,人工智能是机器表现出的智能。机器学习是人工智能的分支之一。 Arthur Samuel 创造了机器学习的以下定义:“Field of study that gives computers the ability to learn without being explicitly programmed. (赋予计算机无需明确编程即可有学习能力的研究领域)”。

表达各个领域的关系的时候,最上层的是 AI 人工智能领域,内涵一圈是机器学习 Machine Learning,再内涵一圈就是深度学习 Deep Learning。所以深度学习虽然是一个很新的领域,但是由于他的势头很强,以及产生了优异成果,以至于很多人以为它是一个新兴的领域,但是其实他是 ML 的子分支。

机器学习问题分类

总结一下我对机器学习所解决的问题的分类,可能和很多地方不一样的,但是现阶段我的理解就是如此的一种分类方式,它代表了我的理解和我的世界观。

  1. 回归(Regression)分类(Classification): 回归分析用于预测连续型变量的数值输出。在回归问题中,模型试图通过输入变量的特征来预测输出变量的值,例如房屋价格预测。分类任务是将数据分为不同的类别或标签。在分类问题中,模型通过学习输入数据和相应的标签之间的关系,来预测新数据点所属的类别。例如,电子邮件分类为“垃圾邮件”或“非垃圾邮件”。我将这两个类别放在了一起,是因为从量子力学角度来说,不存在绝对连续的空间,即是是非常小粒度的回归问题,也是一种多分类问题。在某些模型中,可以将连续时间间隔划分为许多小的时间段,并假设在每个小时间段内事件的发生遵循泊松分布。这种假设使得可以使用泊松分布的属性来描述在连续时间范围内事件的发生情况。这对我来说是一个很新颖的观点,让我对时间有了新的看法。

  2. 聚类(Clustering): 聚类是将数据集中的样本分组到具有相似特征的簇中的任务,而无需事先知道每个样本的标签。聚类算法试图发现数据中的内在结构,并根据相似性将样本划分为不同的组。例如,将顾客按其购买行为分成不同的市场细分。

  3. 生成(Generation): 生成模型用于从已知数据中学习并生成新的数据样本,这些样本具有与原始数据相似的特征分布。生成模型可以用于图像、文本和音频等数据类型的生成。例如,生成对抗网络(GANs)用于生成逼真的图像。

  4. 策略(Reinforcement Learning): 策略学习是一种通过与环境交互来学习最优决策策略的机器学习方法。在策略学习中,智能体通过尝试不同的行动来学习,然后根据行动的结果调整其策略以获得最大的奖励。例如,在游戏中训练智能体学习最佳策略。比如,强化学习,是一种通过试错学习来制定最佳行动策略的方法。它通常涉及智能体与环境的交互,并根据行动的结果来调整其行为以最大化累积奖励。

  5. 降维(Dimensionality Reduction): 降维技术旨在减少数据集的特征维度,同时尽可能保留数据的重要信息。降维可以通过特征选择或特征提取来实现,有助于可视化、压缩和简化数据,并提高模型的效率和性能。这个领域也是我的难点,涉及很多我想对自己进行补充学习的数学知识。

还有许多问题的分类,比较特别,小众,新颖且重要,但是他们也都是从基础问题中推导出来的,比如序列建模,异常检测等。暂且不赘述,问题的分类只是为了从另一个角度理解这个领域,每个人都可以有自己的理解。

机器学习方法的分类

有监督学习

也就是有标签学习。分为回归和分类。

回归概念取自推论统计。

推论统计是统计学中的重要分支,主要关注如何通过样本数据对总体进行推断。它的目标是根据样本数据推断总体的特征、参数或者规律,并对推断的结果进行合理的统计推断和分析。

推论统计通常分为两大类:参数估计和假设检验。在参数估计试图通过样本数据来估计总体的未知参数,比如总体的均值、方差等。而假设检验通过样本数据来检验关于总体的某些假设,比如两个总体的均值是否相等、总体的分布是否符合某种特定的分布等。

推论统计方法可以帮助我们从样本数据中获取有关总体的信息,进而做出合理的推断和决策。它在科学研究、商业分析、医学诊断等领域都有广泛的应用。

在推论统计中,回归分析是一种重要的统计方法,用于探索自变量与因变量之间的关系,并对这种关系进行推断和解释。回归分析的主要目的是建立一个数学模型,描述自变量与因变量之间的关系,并利用该模型对未知数据进行预测或推断。

回归分析通常分为线性回归和非线性回归两种类型。线性回归假设自变量与因变量之间的关系是线性的,而非线性回归则允许自变量与因变量之间的关系呈现非线性形式。在推论统计中,我们利用样本数据来估计回归模型的参数,并对这些参数进行推断,以了解自变量与因变量之间的关系是否显著、模型的拟合程度如何等。

回归分析在推论统计中具有重要的地位,它不仅可以帮助我们理解变量之间的关系,还可以用于预测和控制因变量的变化。通过对回归模型的推断,我们可以评估模型的有效性、确定性和可信度,从而做出合理的决策和推断。

我在学习统计推论的时候就很好奇这里面的回归,实际上统计学中的回归才是最初的回归。

分类问题分为二分类和多分类。就是字面意思的分类。

我们对特征有很多叫法,维度、特征、列和属性,都是指结构化表的单个列的相同术语。

线性模型最适合线性可分的问题,并产生可产生输入和输出线性组合的模型。其中包括线性回归或逻辑回归。非线性模型最适合解决不可线性分离的问题。其中包括神经网络或带有内核的支持向量机。经验法则是从线性模型开始解决问题,如果表现不佳,则转向非线性模型。

回归和分类是我们入门机器学习的初级学问,虽然他们很简单,但是他们非常重要,大部分的神经网络问题中都是无处不在的线性模型。

另外,逻辑回归这个同学叫做回归其实是分类算法。

无监督学习

在无监督学习中,数据集没有预定义的标签,这意味着它是未标记的。无监督学习的目标是在不提供监督的情况下学习数据集中的模式。无监督学习问题涉及聚类和关联规则挖掘。

聚类是指将相似的数据项放入同一组的过程。同一组或簇中的项目被认为具有相同的标签或 ID。

聚类示例涉及以下内容:根据社交媒体的使用情况对用户进行聚类,根据图像和视频的内容和其他属性对图像和视频进行聚类,对从具有相似属性和内容的搜索引擎检索到的报纸文章和搜索结果进行聚类。

关联规则挖掘属于无监督学习的范畴。关联规则挖掘帮助我们找到一起出现或相关的特征或维度。

相关算法比如先验算法,FP增长算法。这俩算法我也不太懂,原本我无监督学习就接触的不多,这一轮的实践中,多接触一下。

强化学习

强化学习是一种机器学习方法,旨在让智能体通过与环境的交互来学习如何在某个任务中获得最大的累积奖励。在强化学习中,智能体通过尝试不同的行动来探索环境,并根据行动的结果获得奖励或惩罚,从而调整其行为以最大化长期奖励。这种学习方式类似于人类学习的方式,通过尝试和反馈不断提升自己的技能。

强化学习中的一个经典案例是AlphaGo,它是由DeepMind开发的围棋程序。AlphaGo通过与人类围棋选手进行对弈,并根据对局结果进行学习,逐渐提升自己的水平。最终,AlphaGo在2016年击败了世界围棋冠军李世石,引起了广泛的关注。

在强化学习中,常见的学习方法包括价值迭代、策略迭代、Q学习、深度Q网络(DQN)等。这些方法在不同的环境和任务中表现出不同的性能,可以根据具体的问题选择合适的方法。例如,Q学习和DQN适用于离散动作空间的问题,而策略迭代适用于连续动作空间的问题。

强化学习是一种强大的学习方法,可以应用于各种复杂的任务中,如游戏、机器人控制、自动驾驶等领域,并取得了许多令人瞩目的成果。

最近在参加公司的AWS Deepracer 小组活动。缩小版的赛车比赛是否能以最快的速度跑完赛道,类似于自动驾驶。虽然抢护学习的原理就是环境,代理,观察,动作空间,奖励等,但是其实一个使用了强化学习的领域要使用很多技术。

比如自动驾驶领域,强化学习通常与很多其他技术结合:

  1. 深度强化学习(Deep Reinforcement Learning): 深度强化学习结合了深度学习和强化学习的方法,用于从传感器数据中学习驾驶策略。通过将感知数据(例如摄像头图像、激光雷达数据)输入到深度神经网络中,并结合强化学习算法,车辆可以学习在不同场景下做出正确的驾驶决策。

  2. 模型预测控制(Model Predictive Control,MPC): MPC是一种基于模型的控制方法,它通过建立车辆动态模型来预测未来状态,并根据这些预测结果来调整控制输入。在自动驾驶中,MPC可以用于规划车辆的轨迹和速度,以实现安全而高效的驾驶。

  3. 感知和定位技术: 自动驾驶车辆通常配备了多种传感器,包括摄像头、激光雷达、毫米波雷达等,用于感知周围环境。同时,定位技术如全球定位系统(GPS)和惯性导航系统(INS)用于确定车辆的位置和姿态。这些感知和定位技术为强化学习提供了输入数据。

  4. 环境建模和仿真: 在自动驾驶研究中,使用仿真环境可以大大加速算法的开发和测试过程。通过建立精确的虚拟环境和车辆模型,研究人员可以在仿真环境中对自动驾驶系统进行大规模测试,并改进驾驶策略。

  5. 监督学习和无监督学习: 除了强化学习,监督学习和无监督学习也被广泛应用于自动驾驶领域。监督学习用于从标记的数据中学习驾驶行为和环境感知,而无监督学习则用于从未标记的数据中发现数据的隐藏结构和特征。

这些技术的结合使得自动驾驶系统能够感知环境、规划路径、做出决策,并执行控制,从而实现安全、高效和自主的驾驶。但是每一个单独拿出来都有很多东西,所以这个领域很难,但是对我吸引力也非常大。它是一个很综合的领域。

深度学习

总之就是当下最火的人工智能领域,常用的工具库是PyTorch,和 Tensorflow。从我自己看到的和听到的来说,PyTorch的使用者都是想从底层开始构架自己的网络,学术界,state of art上的模型很多都是 Torch 出品。Google 的 Tensorflow 更被工业界推崇,你要构架一个生产系统,使用 Tensorflow 方便快捷,一开始我自己学习的就是 Tensorflow,做的第一个卷积项目是狗种类识别,那时候迷迷糊糊就做完了还没弄明白,但是能感觉到这个框架的强大,接口非常清楚,构架使用 keras 接口,我说不上来但是就是很帅气。从模型到优化函数损失函数,一路定义然后就可以训练了。只要明白模型背后的原理,基本 keras 接口用熟了就是信手拈来。无论如何我还是很喜欢 Google 的产品,包括现在做的 Google cloud 的项目。

深度学习中包括很多延伸内容比如循环神经网络,卷积神经网络,还有最新的生成式AI都是深度学习延伸。突然这个领域就跳出来出现在世人眼前,不是巧合,是一个量变到质变的过程,作为机器学习领域的一个子集,在过去几十年里经历了巨大的发展。它的快速崛起可以归因于以下几个关键因素:

  1. 大数据的崛起: 随着互联网的发展和技术的普及,数据的产生和存储成本大幅降低,导致了数据量的爆炸性增长。这为深度学习提供了丰富的训练数据,使得模型能够更准确地捕捉数据中的规律。

  2. 计算能力的提升: GPU(图形处理单元)等高性能计算硬件的出现和普及,大大加速了深度学习模型的训练速度。此外,云计算和分布式计算技术的发展也为大规模训练深度学习模型提供了有效的解决方案。

  3. 算法的改进: 深度学习算法本身的不断改进也是快速发展的重要原因。例如,卷积神经网络(CNN)在图像识别领域取得了巨大成功,循环神经网络(RNN)在自然语言处理领域表现突出,而生成式对抗网络(GAN)等新型网络结构则推动了生成式模型的发展。

  4. 开源框架和社区贡献: 诸如TensorFlow、PyTorch等开源深度学习框架的出现,使得深度学习技术更加易用和普及。同时,庞大的开源社区和众多研究机构的贡献,为深度学习算法的不断改进和优化提供了源源不断的动力。

充满了机遇和挑战,也让人害怕,因为你知道为什么它这么厉害,却无法从第一性原理上讲明白它的底层逻辑。这才是最让我迷惑的地方。也是让我想在这方面进行研究的原因。

Recap

总的来说我会跟进上述的内容进行下一个阶段的继续实践,对于强化学习虽然不是主流,但是我非常喜欢这个领域,我决定在适合的时候,自己找素材进行学习和实践。

还有许多其他的领域,遗传算法,量子计算,都充满了新奇,时间有限,探索无涯。

没有实践的学习,没有思考的学习,都是对知识的不尊重。