机器学习从入门到放弃:我们究竟是怎么教会机器自主学习的?Blackbinbin

我相信你一定听过一个说法,那就是机器学习模型可以被视为函数的一种表示方式。它们通常是由多个函数组成的,这些函数通过参数连接在一起。我们让机器从数据中提取模式、规律和关联,然后使用这些信息来做出预测、分类、聚类等任务。所以从本质上来说,在机器学习中我们其实就是要找一个超级函数,我们已知的数据就是输入的参数,它通过算法和统计方法使计算机能够从大量的数据中学习,通过逼近拟合真实的超级函数,来根据学习到的知识做出决策或执行任务。

以classification(分类)任务来说,机器学习就是通过一堆训练集,然后根据lossfunction来查找到最拟合逼近真实函数的求解函数func(),从而实现分类的输出。

所以说嘛,机器学习也没有那么难~(bushi,你可以秒懂它。

二、LogiticRegression(逻辑回归)和NeuronNetwork(神经元网络)

我们还是以上面的分类问题类进行举例,在分类方法中,需要了解逻辑回归的概念。逻辑回归(LogisticRegression)虽然名字中带有"回归"一词,但实际上它是一种用于分类问题的统计学习方法,而不是回归问题。逻辑回归用于预测二分类问题,即将输入数据分为两个类别中的一个。

逻辑回归通过将线性函数的输出映射到一个介于0和1之间的概率值,来表示输入数据属于某个类别的概率。这个映射使用了逻辑函数(也称为sigmoid函数),它具有S形的曲线,这使得模型的输出在0和1之间变化。逻辑回归的公式如下:

其中,P(Y=1|X)是给定输入特征X条件下属于类别1的概率,beta_0,beta_1,beta_n是模型的参数,X_1,X_2,X_n是输入特征。模型的目标是通过调整参数,使得预测的概率尽可能接近实际观测值。在训练过程中,逻辑回归使用最大似然估计等方法来找到最佳的参数值,以使模型的预测结果与实际观测值之间的差异最小化。一旦训练好了逻辑回归模型,它可以用于预测新的数据点所属的类别。

那这个分类模型函数中怎么求解参数beta_0,beta_1....beta_n的呢?这里其实就是模型训练方法的求解,一般来说针对逻辑回归问题都是使用最大似然估计,来进行拟合确定曲线。

举个~

一个箱子里有蓝色和黄色的球,从箱子里取出5个球,然后分别计算篮球和黄球所占的比例是多少?

很显然,一眼看出,蓝球:黄球=3/2

但是真实中我们并不知道这个箱子内的球总数是多少,那么我们能否通过有限次的取球动作(训练),去拟合出真实的分类函数呢(模型求参),答案是可以的,那就是使用最大似然估计。

假设比例是p,那么每次取出来是篮球的概率就是p,取出来是黄球的概率就是1-p。

取球的结果符合0,1分布,也就是概率函数为:

对于真是的五次取出的结构,那么就是似然函数:

对于似然函数,不同的p的概率,求解出来的的L(p)似然函数肯定是不一样的。在概率分布中是指数分布族时,一般来说其似然函数都是凹函数,所以要最逼近真实的分类函数,那么就要求取最大似然估计的值,也就是两边求对数,然后求导,让导数为0:

带入p=3/5发现刚好导数等于0,那么也就是p=3/5就是最逼近真实篮球分布的概率。

上面的似然求解过程,其实也就是机器学习中咱们最常见的sigmoid函数,也叫Logistic函数。先来看看它长什么样子,如下图。

从上图可以看出,sigmoid函数的形状像一个S,自变量的取值范围是负无穷到正无穷,因变量的取值范围在0到1之间,而且,当自变量大于0时,因变量的值大于0.5,当自变量小于0时,因变量的值小于0.5。在二分类问题中,因变量y的值只能是0或者1,利用sigmoid函数的特征,如果把临界值设置为0.5,则当自变量大于0,因变量的取值范围在0.5和1之间时,让y等于1,相反,当自变量小于0,因变量的取值范围在0和0.5之间时,让y等于0。

在讲NeuronNetwork之前我想通过一个特殊的数据集来引出为什么机器学习要使用NeuronNetwork来解决模型求解的问题。

针对输入的两个数据参数,x1和x2我们在坐标系中分别标出这四组数据的坐标,其中class标识分类的不同。我们可以看到在坐标系中,我们是无法使用一个直线去划分两个分类的,不管你怎么画分类的直线,你都没办法把蓝色和红色的点分成两边。

所以应该怎么办呢?依旧在逻辑回归中去解决这个问题,有一种方法是FeatureTransformation,也就是变换你的参数,其实就是变换坐标系,如下,左边的坐标系经过变化就变成右边的样子:

现在的话逻辑回归可以解决这个问题了,可以找出一条直线来进行分类,

但是这个是人为的经验调参,不可能每一份数据我们都去观测一遍,然后再设计一个函数去转换坐标系吧?这样一点不人工智能,所以我们在此基础上,又将入参经过许多的前置函数,然后在拼接起来变成变成是可以一条直线进行分类的,那么这个过程就是NeuronNetwork(神经元网络)。如下如x1,x2经过两个前置函数的计算来进行transformation,变成Z逻辑回归函数可以直接分类的输入。

所以在神经元网络中,不断的重叠,拼接,只是为了不断的进行featuretransfomation,然后进行最后的分类的求解问题,而每一个LogticRegression函数都称作一个Neuron。而各种Neuron你可以用各种不同的方式连接起来,也就是不同的架构,比如上一篇中的transformer就是生成式AI使用的比较多的一种架构。

三、FullyConnectFeedforwardNetwork

全连接前馈神经网络(FullyConnectedFeedforwardNetwork),也被称为多层感知机(MultilayerPerceptron,MLP),是一种常见的人工神经网络结构。它是深度学习中最基本和常见的神经网络模型之一。

全连接指的是神经网络中的每一层都与前一层中的每个神经元相连接。在全连接前馈神经网络中,信息从输入层流经一个或多个隐藏层,最终到达输出层,每个隐藏层都包含一些神经元,这些神经元通过权重进行连接,并通过激活函数处理后传递给下一层。其中的每一个的neuronnetwork都有一组自己的weight(权重)和bias(偏置),而这两个是根据给出的traindata训练得来的。

比如输入x1=1,x2=-1,那么第一个neuronnetwork的输出就是:1*1+(-2*-1)+1=4,经过sigmoid函数后,输出等于0.98

假设每一个的neuronnetwork的weight和bias我们都知道,那么我们就可以计算出最终的output

所以这一大堆的neuron组成的就是一个函数,也就是机器学习中需要找到的functionset

如果我们扩充参数,那么真实的场景下的神经网络如下

在生成的outputs的时候,还记得上面我们提到的最大似然值吗,我们需要去评估这个预测生成的输出和真实的数据之间是否是拟合的。所以在logticregresssion分类的时候使用最大似然值去估计分类的概率,而当函数的输出不是分类,而是多个随机的值的时候也就是linearregression(线性回归)的时候,一般使用均方差来进行对比评估真实值和预测值。那么在寻找一组weight和bias来使得LOSS最小的情况,这个过程就是GradientDescent(梯度下降)

四、GradientDescent

在尝试理解梯度下降的时候,我一直会不太明白梯度的概念。不过我们对导数的概念都比较熟悉,导数就是和我们梯度最为相近的一个东西。一个函数的导数,它是定义一个函数在x处的变化量,也就是函数上某个点相切的斜率。因为导数的概念是一维函数,所以它描述的是x向左和向右的一个趋势。那么如果是一个三维的图像上,那么导数则是:

在这个类似马鞍形状的图形上,在某个点上的导数的方向应该怎么定义呢?貌似什么方向上去定义都可以,只要找到一个和图形表面相切的直线就行了。因为导数本身是一个标量,它只反映变化的程度,而具体的方向是哪里呢是人为给定的。比如确定某个方向,那么根据这个方向便可以求出变化率。上面的z对x和y的偏微分就是指的z在x和y方向的变化率。

而梯度呢,它的概念也很简单,就是所有参数的方向的向量:

那么在上面类似马鞍的图中,z的梯度就是(-2x,2y)。梯度不仅有大小,还有方向的概念,那么在具体的图形中,梯度主要表示了图形的“陡峭程度”,从某种程度来说就是一个函数的变化趋势。在图形的某个点上,梯度的大小表示函数增长的快慢,梯度的方向则是表示函数增长的趋势也就是方向。

那么怎么根据这个梯度,获取这个LOSS函数的极小值解呢?

参数根据上面的公式来进行更新,也就是更新weight和bias,带入公式:Weight(t+1)=Weight(t)-a*此参数weight梯度,其中a为学习率,使我们自己设定,比如我们可以设定一个比较小的值0.001。这样每次更新weight和bias后带入前面的神经网络函数,就能一步一步的找到LOSS的最小值,这个过程就是梯度下降。

以下面函数为例:

对参数进行更新:

函数对每个参数的梯度如下:

如果以一个如下的函数来说明的话,梯度下降算法查找的的过程就是,根据某一个初始的x0,然后根据梯度,这里梯度因为只有一个参数其实也就是f(x)的导数,去更新下一个x的值,当导数为0的时候也是就红色点最底部的时候,这个LOSS函数得到最小值,也就找到了最优解。

这里的learningrate设置为0.005,这个参数一般设置一个较小的值,这样才能逐步慢慢的梯度下降到我们需要找到的最优解,否则学习率太大的情况会导致红色的点在极值附近来回震荡。而这个LOSS梯度下降算法其实有很多,如下图,最常用的基本是SGD。而一个模型的训练效果究竟好好,也就在于LOSS能不能找到一个全局最小值。而影响此值的也很有很多,比如初始值的选取啊,学习率的设置大小,局部最小值和鞍点的出现等等。

五、BackpropagationAlgorithm(反向传播算法)

反向传播算法(BackpropagationAlgorithm)是一种用于训练人工神经网络的优化算法。它是训练多层神经网络、特别是全连接前馈神经网络(多层感知机)的核心算法之一。反向传播算法通过计算损失函数对网络中每个参数的梯度,然后根据梯度调整参数,以最小化损失函数。

反向传播算法的基本思想是将误差从输出层向输入层反向传播,逐层计算每个参数对误差的贡献,然后根据这些梯度信息来更新参数。算法的步骤如下:

如果你看明白了上一个关于梯度下降算法的原来,那么反向传播对你来说就非常好理解了!!

现在我们构建一个只有一层的神经网络:

假设每个样本入参都有两个维度的input,分别是x1和x2,每位维度的取值是:

而这个样本的真实值是:

神经网络中所有参数随机初始化:

那么根据神经网络的一个输出我们可以计算得到我们的估计值y'=2.9

这一轮的正向传播后我们就可以根据估算值和真实值,计算误差,假设我们这里设置的LOSS方程是一个均方差函数:

反向传播的过程其实就是求导的过程,就是为了求出参数w1~w6需要更新的值,以w5为例,通过链式法则,对其求导得:

LOSS函数在w5方向上的梯度就是:

那么w5则更新为:

而对于w1的更新则为:

带入参数后,计算可得w1方向的梯度为:

更新w1参数:

那么经过一轮的正向传播,然后再进行反向传播更新参数后,我们就得到了一组新的参数:

当第二轮正向传播的时候,我们会发现均方差LOSS函数计算的误差会比第一轮的值小了,2.205->1.3478:

THE END
1.AI技术革新自主学习能力的突破性进展尤其是自主学习能力的突破性进展,为此领域带来了前所未有的创新机遇。本文将深入探讨这些最新资讯新闻背后的科学原理,以及它们如何影响我们的生活和工作。 自主学习的概念与意义 自主学习是一种机器能够通过观察、模仿和实践来提升自身性能的能力。这种能力不仅限于单一任务,而是能够适应新的情境https://www.whhdaiezn.com/zhi-neng-zhuang-bei/776521.html
2.智能系统设计师手册理解和运用人工intelligence三大算法1. 人工智能三大算法概述 人工智能三大算法分别是机器学习(Machine Learning)、深度学习(Deep Learning)以及强化学习(Reinforcement Learning)。这三个概念虽然有着不同的具体实现,但它们都旨在通过数据驱动来提高计算机程序对环境变化的适应能力,并最终实现自主决策。 https://www.jvahvb5c.cn/shu-ma/524011.html
3.解析人工智能三大算法机器学习深度学习与强化学习的核心之旅解析人工智能三大算法:机器学习、深度学习与强化学习的核心之旅 人工智能三大算法是现代计算机科学领域中的重要组成部分,它们分别是机器学习、深度学习和强化学习。每种算法都有其独特的特点和应用场景,共同推动了人工智能技术的发展。 机器学习:数据驱动的革命 机器学https://www.fmovhaqkz.com/shou-ji/530948.html
4.算法原理与代码实例讲解:自主学习自主学习算法本文将介绍自主学习的核心概念和算法原理,以及如何使用深度学习来实现自主学习。同时,我们还将提供代码实例和详细解释说明,帮助读者更好地理解和应用自主学习技术。 2. 核心概念与联系 自主学习是指机器能够自主地从数据中学习知识和技能,而不需要人类的干预。自主学习的核心概念包括数据、模型和算法。 https://blog.csdn.net/m0_62554628/article/details/139816417
5.机器人运动平衡控制中自主学习算法的研究期刊模型与期望性能指标设计出模糊控制器,构建了基于模糊自适应算法的自主学习方法,并从理论上证明了算法的稳定性.仿真结果表明,所提自主学习算法能在机器人偏离垂直位置较大角度时,实现机器人直立平衡和速度跟踪,并与传统PID控制方法相比,消除了机器人各状态响应的抖动现象,具有较高的动态响应和稳态精度,体现了算法的有效https://d.wanfangdata.com.cn/periodical/jsjfz201406083
6.机器人自主学习新进展,百度飞桨发布四足机器人控制强化学习新算法百度的工作展现出,基于自主学习的方法在四足机器人控制上具有完全替代甚至超越经典算法的潜力,有可能成为强化学习和进化学习在复杂非线性系统中开始大规模落地和实用化的契机。 这不是百度在机器人方向上做的第一个强化学习工作,早在18年,他们就尝试将人工干预引入到强化学习中,以推进强化学习应用在在四轴飞行器控制等https://www.youuvs.com/news/detail/202109/34581_2.html
7.人工智能新算法,糅合VR技术“教”会机器人自主学习本周,OpenAI又推出了用于机器人仿真的开源软件Roboschool,它基于增强学习研究平台OpenAI Gym而开发的,提供了十几个新的操作环境,让用户可以在模拟环境中训练一个或多个机器人。 图丨Roboschool的训练画面 不过,相较以往,单次模仿学习算法的进步之处在于不需要人类操作者将动作反复重复,只要一次就足够人工智能来“领悟学https://m.sohu.com/a/676462821_121687414
8.六年级下册信息技术教案(集合15篇)机器人还有很多其他的功能,你对它们的哪些功能最感兴趣呢?在课后通过其他方式作进一步了解吧。 六年级下册信息技术教案7 学习目标: 1、了解编制程序解决问题的大致过程,会用流程图设计和描述循环结构算法。 2、在自主学习常用的程序流程图符号中了解流程图,在小组合作绘制“计算商品金额”流程图中加强对算法的理解,学https://www.fwsir.com/jiaoan/html/jiaoan_20230213091926_2377682.html
9.人工智能助推教师教育教学能力提升心得(精选13篇)网络学习与多参加线下培训学习方式自我成长,提高课程融合能力和课程开发能力;针对实施场地和怎么教的问题,大部分学校没有开展起来的原因可能主要也是因为资金对场地和平台投入比较大,但是可以利用信息技术课堂作为人工智能教育的切入点,融入数据、算法、程序设计、机器人课程、开源硬件类课程等,利用项目式教学或其他活动如https://www.jy135.com/jiaoxuexinde/913126.html
10.机器学习151CTO博客概念<-> 数值、关系 <-> 运算的映射,造就了机器可以自主学习获得事物规律的可能 二 机器学习三要素:数据、模型、算法 算法通过在数据上进行运算产生模型 特征工程: 1.确定用哪些特征来表示数据; 2.确定用什么方式表达这些特征。 模型是机器学习的结果,这个学习过程,称为训练(Train)一个已经训练好的模型,可以被理https://blog.51cto.com/u_15088375/3249973
11.电院计算机系卢策吾团队提出时空概念提取算法汤佳俊上海交通大学电院计算机系在读硕士生,上海交通大学计算机系学士。主要研究方向为计算机视觉和深度学习,尤其是视频动作理解算法。 卢策吾上海交通大学电院计算机系长聘教轨副教授。在他加入交大之前,他是斯坦福大学人工智能实验室研究员。他的研究兴趣主要集中在机器人、人工智能和机器人计算机视觉。他担任CVPR 2020的https://www.seiee.sjtu.edu.cn/index_news/1802.html
12.吴晶辰·算法通识16讲1机器学习算法是一系列让计算机自主学习的算法。它们最适合用在人类没法用明确规则进行解决的问题上 2 机器学习学到了很多人类没教过、自己也不懂的事物细节。 3 机器学习学到的是事物之间的复杂关系。 15_学习策略:机器学习如何获得知识 1 机器学习模拟了不同的学习模式,学习模式不同,学到的知识也不一样,但也许https://m.douban.com/note/853714655/
13.把看不懂的算法做成产品,「智铀科技」让AI小白也能上手机器学习凭着此前在百度的积累,智铀在算法调参、建模等方面较为擅长,包括怎么梳理客户的数据特征;怎么提炼用户画像和业务维度;如何调整参数让 F(x) 的效果更好,智铀可以将这些需要算法科学家完成的工作打包成一个 PC 端的产品,工程师只要将已有的数据导入“Ebrain”系统,就可实现机器的自主学习与判断。 https://www.tmtpost.com/3268558.html
14.机器学习和深度学习的常见概念总结(多原创图)4.不同优化算法的损失减少曲线理论对比图。 5. **优化算法的挑战** 5. **总结** 梯度下降(Gradient Descent) 1. **梯度下降的基本思想** 2. **梯度的含义** 3. **梯度下降的三种变体** 3.1. **批量梯度下降(Batch Gradient Descent)** http://www.zsrm.cn/news/167769.html
15.快速入门了解机器学习计算机程序自主学习任务T的经验E,随着提供大量,优质,合适的经验E,该程序对于任务T的性能逐步提高 过程 算法:根据业务需要和数据特征选择相关算法,也就是一个数学公式 模型: 基于数据和算法构建出来的模型 评估/测试:对模型进行评估的策略 机器学习是人工智能的一个分支,我们使用计算机设计一个系统,使他能够根据提供的https://www.jianshu.com/p/496b913a4ab0/