机器学习从入门到放弃:我们究竟是怎么教会机器自主学习的?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.强化学习算法详解:从理论到实践的完整指南强化学习算法详解:从理论到实践的完整指南 强化学习概述 强化学习是一种机器学习方法,旨在让智能体从与环境的交互中学习最佳行为策略,以最大化累积奖励。强化学习的核心思想是通过与环境的不断交互来学习最优的行为策略,从而实现自主学习和决策。与监督学习和无监督学习相比,强化学习具有更强的自主性和灵活性,适用于复https://www.jianshu.com/p/f1948a5d95cc
2.自主学习:未来技术的驱动力3.自然语言处理(natural language processing,NLP):NLP是一种自主学习方法,它通过分析文本数据来发现语言的结构和意义。 4.深度学习(deep learning):深度学习是一种自主学习方法,它通过多层神经网络来学习复杂的表示和模式。 在接下来的部分中,我们将详细介绍这些核心概念和算法的原理和具体操作步骤,以及如何使用代码实https://blog.csdn.net/universsky2015/article/details/135810419
3.AI是如何做到自主学习的?通过无监督学习和强化学习,机器学习算法可以自主学习,并在面对新的数据和任务时,自适应地调整自己的模型和行为,从而提高自己的能力和性能。这种自主学习的原理使得AI可以在许多领域具有广泛的应用前景。是如何做到的 AI自主学习的实现需要依赖于一系列技术和方法。以下是一些常见的实现方法:1、深度学习:深度学习是指https://baijiahao.baidu.com/s?id=1761745891894984650&wfr=spider&for=pc
4.自主学习神经网络算法研究针对算法自身的缺陷,根据BP算法的基本原理,结合自主学习的特点及自主学习研究的基本模型,本文构建了自主学习神经网络模型,提出了具有寻找全局最优值的自主学习神经网络ALBP算法,并且对算法中比较重要的激励函数进行改进,加入神经元学习误差函数,对权值的变化增加了松紧变量,让学习率动态变化等,从而利用改进BP算法的自主https://wap.cnki.net/touch/web/Dissertation/Article/1011138784.nh.html
5.推荐一些用于智能体自主学习的有效算法或框架在设计具有自主学习能力的智能体时,可以考虑使用一些有效的算法或框架,如AgentGym、AgentEvol、DQN(深度Q网络)等。这些算法和框架能够帮助智能体在多种环境和任务中进行自我进化,提高其泛化能力和适应性。例如,AgentGym提供了一个交互平台,支持大语言模型智能体轨迹采样、自我进化、能力评测的框架,特点是提供多样、实时https://www.ctyun.cn/developer/article/589070045204549
6.一年级减法教学设计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
7.使用分层自主学习提高粒子群优化算法的收敛精度和收敛速度的详细针对粒子群优化(PSO)算法容易陷入局部最优、收敛精度不高、收敛速度较慢的问题,提出一种基于分层自主学习的改进粒子群优化(HCPSO)算法。首先,根据粒子适应度值和迭代次数将种群动态地划分为三个不同阶层;然后,根据不同阶层粒子特性,分别采用局部学习模型、标准学习模型以及全局学习模型,增加粒子多样性,反映出个体差异https://m.elecfans.com/article/1282810.html
8.生成式AI如何赋能城市治理?大模型可打破“算法孤岛”自主学习“同一个摄像头的数据中,违章停车是一个算法,老人或孩子走丢是一个算法,重点人群盯防是一个算法……同一批数据需要重复计算多次,但大模型来了之后,单个事件的算法就不存在了。”杨旭青解释道,“大模型不再是很多琐碎的算法,而是根据上亿级别的大量参数去自主学习,你只要把一段摄像头视频交给它,大模型就会自己去找https://m.thepaper.cn/kuaibao_detail.jsp?contid=23778412
9.北师大版四年级数学上册《买文具》教案设计(精选11篇)(一)上单元我们学习了神奇的计算工具和一些有趣的计算,其实在数学计算中,还有许多运算规律,你们想研究和学习吗?这节课开始,我就来探究和学习一些有关数学计算的规律。 (二)自主学习 出示课件,创设情境,交流算法。 (1)从图中你能知道哪些数学信息? https://mip.cnfla.com/jiaoan/1049568.html
10.两位数减两位数退位减法教案(精选11篇)1.知识目标:深化两位数减法的整理分类和归纳,熟练两位数减法的各种算法。 2.能力目标: 培养学生整理、分类的能力,培养学生的算法思维,提高自主学习的能力。 3.情感目标: 让学生在分类、整理的过程中,感受数学的逻辑性和严谨性。 教学重点: 熟练两位数减法的各种算法 https://www.ruiwen.com/jiaoan/4904552.html
11.数字经济专题大数据算法的价格合谋问题研究[4]OECD(2017)进一步梳理了引发算法价格合谋的大数据算法,即监督算法、平行算法、信号算法和自主学习算法,并指出垄断协议的认定困境给算法价格合谋行为的反垄断法规制带来了巨大挑战,提出应该采取事前并购审查、引入市场研究机制等补救措施加以应对。[5]不过,也有https://mp.weixin.qq.com/s?__biz=MzA4NzUxNjQ2MA==&mid=2651151347&idx=1&sn=b6e0f36c89555f0ce17acde48e440bc6&chksm=8bc9cfb0bcbe46a62bf3942b7cfea1bd7e28b707bed2dda2029e76b13001443e3ced2745ed1e&scene=27
12.一类面向动态模糊数据的学习算法研究学位尤其是面对海量数据中的不确定数据,更需要机器学习算法的参与。因此,本文主要针对动态模糊数据,提出了一类动态模糊机器学习算法,包括:动态模糊局域线性嵌入算法;动态模糊单参数嵌入学习算法;动态模糊关系学习算法和动态模糊自主学习算法等。 综上所述,本文的创新点主要体现在从动态模糊数据具有的特征出发,引用动态模糊集和https://d.wanfangdata.com.cn/thesis/Y1637981
13.密码算法工程师怎么考呢?需要哪些条件?好考吗?可以参加相关培训课程、自主学习密码算法工程师所需的专业知识和技能,包括密码学原理、加密算法、解密算法、密钥管理、安全协议等方面的知识。 参加考试:按照考试安排,按时参加考试。考试形式通常为线上机考,题型可能包括选择题、简答题或实际操作等。 领取证书:在通过考试后,你将收到密码算法工程师证书和认证号码,这将https://m.sohu.com/a/786833893_121968535
14.人工智能重塑商业:从畅想到实际行动科技空客开始采用人工智能,将过去生产项目中的数据与当前A350生产项目中提供的实时数据相结合,通过模糊匹配和自主学习算法发现生产问题的规律。在某些领域,这套系统为约70%的生产故障匹配到了之前用过的解决方案,速度近乎实时。埃文斯描述了AI助力整个空客生产线快速学习、应对商业挑战的过程: https://www.ceconline.com/it/ma/8800090814/01/
15.机器学习驱动中医诊断智能化的发展现状问题及解决路径(3)针对“病”“证”分类目标,综合选用合适的ML算法,以设计、优化、完善更适合智能辨病辨证的智能分类自主学习算法[61]。丁琪等[62]基于DL在处理非线性、复杂多层数据方面的优势,将四诊信息作为输入层,证型、治法为隐藏层,方剂、药物为输出层,通过DL的反向传播反馈以调整缺失值,建立了“症-病-证-药”的关联https://www.91xueshu.com/l-zyjclllw/90042.html
16.升学e网通打造智能系统,助力考生科学填报志愿依托先进的AI自主学习算法,考生只需输入高考分数、位次以及所选科目,系统将迅速且精确地为用户筛选出理想的院校名单。 为了让每一位家长和考生都能得到更为贴心的建议,我们精心设置了多重个性化选项,允许考生根据自身偏好筛选院校,如:设定心仪的省份、筛选公立或民办性质院校、探寻具备特色专业的学府、定位所需的专业类https://tech.china.com/article/20240612/062024_1533108.html
17.避免公共领域算法决策价值偏差公共领域算法决策必须直面算法价值偏差问题并加以妥善解决。 “算法黑箱”带来算法决策价值偏差 “算法黑箱”指人们能看到输入算法的数据和算法输出的结果,但不具备专业知识的人无法理解算法的计算过程,算法的运行逻辑呈现“黑箱”状态。在大数据时代,以人工神经网络为代表的机器学习算法基于训练数据进行自主学习生成算法模型https://k.sina.cn/article_7517400647_1c0126e4705903ww22.html