机器学习从入门到放弃:我们究竟是怎么教会机器自主学习的?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.ykngnhhi.cn/ke-ji/548076.html
2.智能系统设计师手册理解和运用人工intelligence三大算法1. 人工智能三大算法概述 人工智能三大算法分别是机器学习(Machine Learning)、深度学习(Deep Learning)以及强化学习(Reinforcement Learning)。这三个概念虽然有着不同的具体实现,但它们都旨在通过数据驱动来提高计算机程序对环境变化的适应能力,并最终实现自主决策。 https://www.jvahvb5c.cn/shu-ma/524011.html
3.解锁动态规划的奥秘:从零到精通的创新思维解析(1)然而,初学者往往会被它的理论抽象和实现细节所困扰。本文将通过一道经典动态规划习题的详细讲解,帮助大家深入理解其本质,并掌握在实际问题中如何灵活运用。希望通过这篇文章,您能对动态规划的“自顶向下”与“自底向上”有更清晰的认识,从而在算法学习的旅程中迈出扎实的一步。下面我先从几个方面介绍动态规划。https://cloud.tencent.com/developer/article/2479413
4.自主学习:未来技术的驱动力3.自然语言处理(natural language processing,NLP):NLP是一种自主学习方法,它通过分析文本数据来发现语言的结构和意义。 4.深度学习(deep learning):深度学习是一种自主学习方法,它通过多层神经网络来学习复杂的表示和模式。 在接下来的部分中,我们将详细介绍这些核心概念和算法的原理和具体操作步骤,以及如何使用代码实https://blog.csdn.net/universsky2015/article/details/135810419
5.一年级减法教学设计8篇(全文)4.自主学习算法。 34-6,个位上4减6不够减怎么办? 摆小棒思考。 二、合作探究,释疑点拨 1.34-6的算理。 (1)小组内交流“34-6,个位不够减,怎么办?” (2)全班交流。 在黑板上演示小棒图: 3捆4根小棒表示34,要减掉6根小棒,遇到个位数4减6不够减时,要打开一捆小棒,由原来1个十变成现在10个一,这就https://www.99xueshu.com/w/filepaxem8cs.html
6.减法的教案今天我们就一起来学习两位数减一位数和整十数的计算本领!咦?真奇怪!这些题你们是怎么算出来的呢?能不能选一个自己喜欢的题,讲给小组的伙伴们听听。 二、自主学习探究算理 1、小组交流算法 2、全班交流说算法 师:谁愿给大家讲讲,你是怎么算的?(数的组成法。)(先减再加的方法。) https://mip.jy135.com/jiaoan/902476.html
7.人教版小学数学二年级上册解决问题教案(精选11篇)设计意图:采用尝试、交流、合作、探究的方法,使学生掌握两位数加两位数(不进位加)的计算方法,并初步体会算法的多样化,促进学生自主学习能力的培养。 应用新知,解决问题 1.读一读,算一算。 42+7=59+40=25+34= 35+53=31+12=22+11= 2.完成教材13页1、2题,并说一说计算方法。 https://www.unjs.com/jiaoan/shuxue/xiaoxue/20230207081123_6389918.html
8.北师大版四年级数学上册《买文具》教案设计(精选11篇)(一)上单元我们学习了神奇的计算工具和一些有趣的计算,其实在数学计算中,还有许多运算规律,你们想研究和学习吗?这节课开始,我就来探究和学习一些有关数学计算的规律。 (二)自主学习 出示课件,创设情境,交流算法。 (1)从图中你能知道哪些数学信息? https://mip.cnfla.com/jiaoan/1049568.html
9.自主学习神经网络算法研究针对算法自身的缺陷,根据BP算法的基本原理,结合自主学习的特点及自主学习研究的基本模型,本文构建了自主学习神经网络模型,提出了具有寻找全局最优值的自主学习神经网络ALBP算法,并且对算法中比较重要的激励函数进行改进,加入神经元学习误差函数,对权值的变化增加了松紧变量,让学习率动态变化等,从而利用改进BP算法的自主https://wap.cnki.net/touch/web/Dissertation/Article/1011138784.nh.html
10.《小数除以整数》说课稿范文(通用13篇)总之,本课力求让学生主动参与多,以计算技能的培养为主,以正确计算为最终目标的教学方法,而是始终关注学生的发展,创设各种条件让学生参与到知识的产生、形成、发展、运用过程中,通过教师的指导,学生自主学习讨论、合作交流和探索,去发现和小数除法的算理和算法,从而使不同层次水平的学生都在原有基础上有所提高,使学生https://www.ruiwen.com/shuokegao/3427800.html
11.吴晶辰·算法通识16讲14_机器学习:机器到底在学什么 1机器学习算法是一系列让计算机自主学习的算法。它们最适合用在人类没法用明确规则进行解决的问题上 2 机器学习学到了很多人类没教过、自己也不懂的事物细节。 3 机器学习学到的是事物之间的复杂关系。 15_学习策略:机器学习如何获得知识 https://m.douban.com/note/853714655/
12.人工智能算法是什么,能简述一下吗–PingCode人工智能算法是一系列能够模拟、扩展、甚至超越人类智能的计算程序和技术。这些算法通过学习、推理、自我修正来处理和分析大量数据,从而达到解决问题、作出判断的目的。其中,机器学习算法是人工智能算法中的一种,他们能在给定的数据集上通过自主学习来改善自身表现。 https://docs.pingcode.com/ask/197333.html
13.推荐一些用于智能体自主学习的有效算法或框架在设计具有自主学习能力的智能体时,可以考虑使用一些有效的算法或框架,如AgentGym、AgentEvol、DQN(深度Q网络)等。这些算法和框架能够帮助智能体在多种环境和任务中进行自我进化,提高其泛化能力和适应性。例如,AgentGym提供了一个交互平台,支持大语言模型智能体轨迹采样、自我进化、能力评测的框架,特点是提供多样、实时https://www.ctyun.cn/developer/article/589070045204549
14.许丽平台经济中轴辐共谋的违法性认定与责任承担再如,在美国优步(Uber)案中,司机们基于算法来实现价格合谋,实际上是由算法自动执行并形成动态定价,特别在自主学习算法合谋状态下,司机之间并未存在信息交流,主要是基于算法才形成的价格合谋,相互之间不存在横向价格协议,为此在反垄断执法过程中,很难对此类横向合谋进行判定。事实上,uber公司与所有网约车司机都签订纵向https://web.shobserver.com/sgh/detail?id=1397052
15.《圆的面积》的教学反思(合集15篇)【设计意图】让学生经历观察思考、分析推理等学习活动,得出公共边以及图形各要素之间的关系,自主地运用已有的知识达成问题的解决。教学过程中,注重把时间和空间还给学生,教师只用几个简单的设问,引出的却是学生自主学习的过程展示。 三、回顾反思,理解算法 https://www.hrrsj.com/jiaoxuexinde/fansi/346343.html
16.精打细算教学设计(通用8篇)[设计意图:学生是学习的主人。学生在自主尝试解决问题中能够提高解决问题策略的能力,真正成为学习的主体。同时能够呈现出算法多样化。] 3、展示学生探索成果并交流 教师通过展台将学生不同的解题方法展示出来,让其他学生来解读这些解题方法及计算过程。 生1:11.5元=115角,115÷5=23 11.5÷5=2.3(元)…… https://www.360wenmi.com/f/fileej2253na.html
17.什么是反向传播算法?–编程技术之美反向传播是神经网络得以广泛应用的重要算法,基本上所有的神经网络模型都采用反向传播算法进行训练。它通过误差反向传递,实现网络自主学习与优化。 理解反向传播算法需要理解神经网络,而反向传播算法也推动着神经网络的发展。二者相互促进,帮助我们构建更加强大的人工智能模型。http://www.itzhimei.com/archives/4651.html
18.电院计算机系卢策吾团队提出时空概念提取算法庞博上海交通大学电院计算机系在读博士生,上海交通大学计算机系学士。主要研究方向为计算机视觉和深度学习,尤其是视频理解算法包括动作理解,多目标跟踪,视频关键点估计等。 Homepage:https://bopang1996.github.io 汤佳俊上海交通大学电院计算机系在读硕士生,上海交通大学计算机系学士。主要研究方向为计算机视觉和深度学习https://www.seiee.sjtu.edu.cn/index_news/1802.html
19.机器学习151CTO博客概念<-> 数值、关系 <-> 运算的映射,造就了机器可以自主学习获得事物规律的可能 二 机器学习三要素:数据、模型、算法 算法通过在数据上进行运算产生模型 特征工程: 1.确定用哪些特征来表示数据; 2.确定用什么方式表达这些特征。 模型是机器学习的结果,这个学习过程,称为训练(Train)一个已经训练好的模型,可以被理https://blog.51cto.com/u_15088375/3249973
20.小学五年级数学小数除法教学反思(精选30篇)最后通过计算来总结计算方法,在教学中给了学生充分的自主学习空间,让学生在尝试、观察、比较、思考中完成新知与旧知同化,更新知识结构,收到了较好的效果。 四、巧用儿歌教学,帮助学生总结算法,突破难点 在计算的过程中,除数和被除数小数点位置的确定是一个难点,部分学生容易出现错误,适时引用儿歌可以帮助学生较好的突https://www.yjbys.com/jiaoxuefansi/xiaoxue/3428249.html
21.Reach检测是什么?Reach检测详解可以通过建立适应性的Reward函数和优化算法,实现自主学习和优化,从而提高Reach检测的准确性和效率。 本文探讨了以Reach检测为中心的策略是否可以实现更的结果。通过对Reach检测准确性评估、采用新方法、基于大数据分析和优化机器学习算法四个方面的研究,可以得出结论:通过探索新方法和技术,以Reach检测为中心的策略可以实现更https://www.hohenstein.cn/knowledge/info_1670.html
22.什么是ai算法二、主要特点 1. 模拟人类智能行为:AI算法通过模拟人类的思考过程,实现智能行为。例如,决策树算法可以模拟人类的决策过程,通过层层推理得出结论。2. 自主学习能力:一些AI算法,如深度学习算法,具有自我学习的能力。它们可以通过不断学习和调整参数,提高性能。3. 处理大数据的能力:AI算法能够处理和分析https://zhidao.baidu.com/question/692855066479337412.html