博舍

人工智能机器学习底层原理剖析,人造神经元 人工智能就是人造智能对吗对吗

人工智能机器学习底层原理剖析,人造神经元

按照固有思维方式,人们总以为人工智能是一个莫测高深的行业,这个行业的人都是高智商人群,无论是写文章还是和人讲话,总是讳莫如深,接着就是蹦出一些“高级”词汇,什么“神经网络”,什么“卷积神经”之类,教人半懂不懂的。尤其ChatGPT的风靡一时,更加“神话”了这个行业,用鲁迅先生形容诸葛武侯的话来讲:“多智而近妖”。

事实上,根据二八定理,和别的行业一样,人工智能行业内真正顶尖的天才也就是20%,他们具备真正的行业颠覆能力,可以搞出像ChatGPT这种“工业革命”级别的产品,而剩下的80%也不过就是普通人,每天的工作和我们这些人一样,枯燥且乏味,而之所以会出现类似“行业壁垒”的现象,是因为这个行业的“黑话”太多了,导致一般人听不懂,所谓“黑话”可以理解为行业术语,搞清楚了这些所谓的行业术语,你会发现,所谓的“人工智能”,不过也就是个“套路活儿”。

本次我们试图使用“白话文”来描摹人工智能机器学习的底层逻辑,并且通过Golang1.18来实现人造神经元的原理。

人造神经元Neural

现在业内比较流行的,比如Transformer模型、GPT模型、深度学习、强化学习、卷积神经网络等等,无论听起来多么高端大气上档次,说出大天去,它也是神经网络架构,换句话说它们的底层都一样,类比的话,就像汽车行业,无论是汽油驱动还是电驱动、三缸发动机还是六缸发动机、单电机还是双电机,混合动力还是插混动力,无论汽车主机厂怎么吹牛逼,无论车评人怎么疯狂恰饭,厂商造出来的车最终还是一个最基本的汽车架构,说白了就是一个底盘四个轮儿,你再牛逼,你也逃不出这个基本架构。

所以说,机器学习的基本架构是神经网络架构,神经网络由大量的人工神经元组成,它们联结之后就可以进行所谓的“机器学习”。所以,必须搞清楚什么是神经元,才能弄懂神经网络。

神经元是神经网络架构中最微小的单位,也是最小的可训练单位,一个基本的神经元结构是下面这样的:

毋庸讳言,大多数人看见这个基本上都会瞬间放弃,数学公式简直就是开发界的洪水猛兽,其劝退能力堪比艾尔登法环中的大树守卫,我们的机器学习之旅还没开始,就已经结束了。

那么我们把这个玩意儿翻译成大多数人能看懂的样子:f(sum(x*w)+b)

x代表输入的数据,w代表权重,sum代表求和,b代表偏差,f代表激活函数,最后这个公式运行的结果,就是机器学习的结果。

简单往里头套点数据,比如我希望机器学习的结果是10,那么,x、w、和b分别应该是什么才能让结果变为10呢?如果x=2w=4b=2就是我们想要的结果。这也就是最基本的线性回归,我们只处理一个维度的数据,因为结果已经显而易见了,我们已经不需要机器学习了,因为靠猜也能猜出来结果是什么。

但是生产环境中,x并非是单维度,而是多维度的,比如x1、x2、x3.....组成的矩阵,但无论是多维度还是单维度,计算公式用的还是一样的,每一个x对应一个权重w,所以是xn*wn。

说白了,x就是一个多维特征,类比的话,假如我们想让电脑智能识图,比如识别一只猫,那么x就是猫的特征,比如形态、颜色、眼睛、叫声等等,作为多维度的输入特征x,喂给电脑,让电脑给出识别结果,这就是简单的机器学习处理分类问题。

这里需要注意的是,x作为特征参数,并不是越多越好,而是特征越明显越好,举个例子,你想让AI去识别鲁迅的文章,那提供的特征最好应该具备鲁迅文章的特点,而不是全量输入,因为鲁迅就算再“鲁迅”,他写的文字也会和别人重复,也就是说并不是每句话都是他独有的,如果把他所有的文章都喂给电脑,可能就会产生“噪声”,影响机器学习的结果。

另外应该知道的是,x参数特征并不是我们认为的单词或者汉字,而是一串单精度区间在0-1之间的浮点数字,也就是所谓的“向量”,因为只有数字才能套着神经元公式进行计算。

所以所有的文本特征在进行神经元计算之前,必须通过一些方法进行“向量化”操作。说白了就是把汉字转化为数字,就这么简单。

另外这也就证明了,电脑真的没有思想,它不理解什么是猫,或者谁是鲁迅,它就是在进行计算,而已。

随后是w,w指的是权重,权重是指神经元接收到的输入值的重要性,这些输入值通过乘以对应的权重,被加权求和作为神经元的输入。权重值越大,表示该输入在神经元的输出中所占的比重越大。说白了,猫的所有特征的权重并不是统一的,比如黑夜里突然一个东西跳了出来,你怎么判断它是什么物种?很明显,一声“喵呜”我们就可以立刻断定这是一只猫,所以叫声特征的权重一定大于其他特征的权重。

最后是b,也就是偏差(bias),偏差通常是一个实数,与神经元的权重一样,也是通过训练神经网络而调整的参数。偏差的作用是在神经元的输入上增加一个常量,以调整神经元的激活阈值。如果没有偏差,那么神经元的激活函数将仅仅取决于加权和的值,而无法产生任何偏移。

说白了,b就是让x*w的值更活一点,让它不是“死”的数。

最后说说f也就是激活函数,激活函数通常具有非线性的特性,这使得神经网络能够拟合非线性的复杂函数,从而提高其性能和准确度。

说白了,如果没有激活函数,我们的权重计算就是“线性”的,什么叫线性?如果把x特征从1开始输入,一直到100,然后将计算结果绘制成图:

我们会发现计算结果是一根直线,这显然不符合客观规律,更符合生物特征的形态应该是“曲线”,所以说白了,激活函数f的作用就是把“直线”变成“曲线”。

最后,我们把神经元公式改造成方便我们理解的形式:期望结果=激活函数(求和(特征*权重)+偏差)。

如果用代码实现这个公式:

funcneuron(inputs[]float64,weights[]float64,biasfloat64)float64{iflen(inputs)!=len(weights){panic("inputsandweightsmusthavethesamelength")}sum:=biasfori:=0;i=0;i--{layer:=network.layers[i]errors:=make([]float64,len(layer.neurons))//3.1.计算神经元的误差值ifi==len(network.layers)-1{//输出层的误差forj:=rangelayer.neurons{errors[j]=outputErrors[j]*sigmoidPrime(layer.neurons[j].output)}}else{//隐藏层的误差forj:=rangelayer.neurons{errorSum:=0.0nextLayer:=network.layers[i+1]fork:=rangenextLayer.neurons{errorSum+=nextLayer.neurons[k].weights[j]*nextLayer.neurons[k].error}errors[j]=errorSum*sigmoidPrime(layer.neurons[j].output)}}//3.2.将误差值保存到神经元中forj:=rangelayer.neurons{layer.neurons[j].error=errors[j]}}//4.更新神经网络的权重和偏置fori:=rangenetwork.layers{layer:=network.layers[i]//4.1.更新权重forj:=rangelayer.neurons{fork:=rangelayer.neurons[j].weights{ifi==0{//输入层的权重layer.neurons[j].weights[k]-=learningRate*layer.neurons[j].error*inputs[k]}else{//隐藏层和输出层的权重prevLayer:=network.layers[i-1]layer.neurons[j].weights[k]-=learningRate*layer.neurons[j].error*prevLayer.neurons[k].output}}//4.2.更新偏置layer.neurons[j].bias-=learningRate*layer.neurons[j].error}}}

这个函数接收输入数据inputs、目标数据targets、神经网络network以及学习率learningRate作为参数。它首先调用feedforward函数进行前向传播,计算每个神经元的输出值。然后,它计算输出层的误差,通过误差反向传播,计算每个神经元的误差值,并将其保存到神经元中。

接下来,函数根据误差值和学习率更新神经网络的权重和偏置。在更新权重时,需要根据神经元所在的层来选择更新的权重类型(输入层、隐藏层或输出层),然后根据误差值和输入数据或上一层神经元的输出值来更新权重。在更新偏置时,只需要根据误差值和学习率来更新即可。

总的来说,这个函数实现了反向传播的所有步骤,可以用于训练神经网络并提高其准确度和性能。

人工智能机器学习底层原理剖析,人造神经元,您一定能看懂,通俗解释把AI“黑话”转化为“白话文”

按照固有思维方式,人们总以为人工智能是一个莫测高深的行业,这个行业的人都是高智商人群,无论是写文章还是和人讲话,总是讳莫如深,接着就是蹦出一些“高级”词汇,什么“神经网络”,什么“卷积神经”之类,教人半懂不懂的。尤其ChatGPT的风靡一时,更加“神话”了这个行业,用鲁迅先生形容诸葛武侯的话来讲:“多智而近妖”。

事实上,根据二八定理,和别的行业一样,人工智能行业内真正顶尖的天才也就是20%,他们具备真正的行业颠覆能力,可以搞出像ChatGPT这种“工业革命”级别的产品,而剩下的80%也不过就是普通人,每天的工作和我们这些人一样,枯燥且乏味,而之所以会出现类似“行业壁垒”的现象,是因为这个行业的“黑话”太多了,导致一般人听不懂,所谓“黑话”可以理解为行业术语,搞清楚了这些所谓的行业术语,你会发现,所谓的“人工智能”,不过也就是个“套路活儿”。详情获取:更多资讯

本次我们试图使用“白话文”来描摹人工智能机器学习的底层逻辑,并且通过Golang1.18来实现人造神经元的原理。

人造神经元Neural

现在业内比较流行的,比如Transformer模型、GPT模型、深度学习、强化学习、卷积神经网络等等,无论听起来多么高端大气上档次,说出大天去,它也是神经网络架构,换句话说它们的底层都一样,类比的话,就像汽车行业,无论是汽油驱动还是电驱动、三缸发动机还是六缸发动机、单电机还是双电机,混合动力还是插混动力,无论汽车主机厂怎么吹牛逼,无论车评人怎么疯狂恰饭,厂商造出来的车最终还是一个最基本的汽车架构,说白了就是一个底盘四个轮儿,你再牛逼,你也逃不出这个基本架构。

所以说,机器学习的基本架构是神经网络架构,神经网络由大量的人工神经元组成,它们联结之后就可以进行所谓的“机器学习”。所以,必须搞清楚什么是神经元,才能弄懂神经网络。

神经元是神经网络架构中最微小的单位,也是最小的可训练单位,一个基本的神经元结构是下面这样的:

毋庸讳言,大多数人看见这个基本上都会瞬间放弃,数学公式简直就是开发界的洪水猛兽,其劝退能力堪比艾尔登法环中的大树守卫,我们的机器学习之旅还没开始,就已经结束了。

那么我们把这个玩意儿翻译成大多数人能看懂的样子:f(sum(x*w)+b)

x代表输入的数据,w代表权重,sum代表求和,b代表偏差,f代表激活函数,最后这个公式运行的结果,就是机器学习的结果。

简单往里头套点数据,比如我希望机器学习的结果是10,那么,x、w、和b分别应该是什么才能让结果变为10呢?如果x=2w=4b=2就是我们想要的结果。这也就是最基本的线性回归,我们只处理一个维度的数据,因为结果已经显而易见了,我们已经不需要机器学习了,因为靠猜也能猜出来结果是什么。

但是生产环境中,x并非是单维度,而是多维度的,比如x1、x2、x3.....组成的矩阵,但无论是多维度还是单维度,计算公式用的还是一样的,每一个x对应一个权重w,所以是xn*wn。

说白了,x就是一个多维特征,类比的话,假如我们想让电脑智能识图,比如识别一只猫,那么x就是猫的特征,比如形态、颜色、眼睛、叫声等等,作为多维度的输入特征x,喂给电脑,让电脑给出识别结果,这就是简单的机器学习处理分类问题。

这里需要注意的是,x作为特征参数,并不是越多越好,而是特征越明显越好,举个例子,你想让AI去识别鲁迅的文章,那提供的特征最好应该具备鲁迅文章的特点,而不是全量输入,因为鲁迅就算再“鲁迅”,他写的文字也会和别人重复,也就是说并不是每句话都是他独有的,如果把他所有的文章都喂给电脑,可能就会产生“噪声”,影响机器学习的结果。

另外应该知道的是,x参数特征并不是我们认为的单词或者汉字,而是一串单精度区间在0-1之间的浮点数字,也就是所谓的“向量”,因为只有数字才能套着神经元公式进行计算。

所以所有的文本特征在进行神经元计算之前,必须通过一些方法进行“向量化”操作。说白了就是把汉字转化为数字,就这么简单。

另外这也就证明了,电脑真的没有思想,它不理解什么是猫,或者谁是鲁迅,它就是在进行计算,而已。

随后是w,w指的是权重,权重是指神经元接收到的输入值的重要性,这些输入值通过乘以对应的权重,被加权求和作为神经元的输入。权重值越大,表示该输入在神经元的输出中所占的比重越大。说白了,猫的所有特征的权重并不是统一的,比如黑夜里突然一个东西跳了出来,你怎么判断它是什么物种?很明显,一声“喵呜”我们就可以立刻断定这是一只猫,所以叫声特征的权重一定大于其他特征的权重。

最后是b,也就是偏差(bias),偏差通常是一个实数,与神经元的权重一样,也是通过训练神经网络而调整的参数。偏差的作用是在神经元的输入上增加一个常量,以调整神经元的激活阈值。如果没有偏差,那么神经元的激活函数将仅仅取决于加权和的值,而无法产生任何偏移。

说白了,b就是让x*w的值更活一点,让它不是“死”的数。

最后说说f也就是激活函数,激活函数通常具有非线性的特性,这使得神经网络能够拟合非线性的复杂函数,从而提高其性能和准确度。

说白了,如果没有激活函数,我们的权重计算就是“线性”的,什么叫线性?如果把x特征从1开始输入,一直到100,然后将计算结果绘制成图:

我们会发现计算结果是一根直线,这显然不符合客观规律,更符合生物特征的形态应该是“曲线”,所以说白了,激活函数f的作用就是把“直线”变成“曲线”。

最后,我们把神经元公式改造成方便我们理解的形式:期望结果=激活函数(求和(特征*权重)+偏差)。

如果用代码实现这个公式:

funcneuron(inputs[]float64,weights[]float64,biasfloat64)float64{iflen(inputs)!=len(weights){panic("inputsandweightsmusthavethesamelength")}sum:=biasfori:=0;i=0;i--{layer:=network.layers[i]errors:=make([]float64,len(layer.neurons))//3.1.计算神经元的误差值ifi==len(network.layers)-1{//输出层的误差forj:=rangelayer.neurons{errors[j]=outputErrors[j]*sigmoidPrime(layer.neurons[j].output)}}else{//隐藏层的误差forj:=rangelayer.neurons{errorSum:=0.0nextLayer:=network.layers[i+1]fork:=rangenextLayer.neurons{errorSum+=nextLayer.neurons[k].weights[j]*nextLayer.neurons[k].error}errors[j]=errorSum*sigmoidPrime(layer.neurons[j].output)}}//3.2.将误差值保存到神经元中forj:=rangelayer.neurons{layer.neurons[j].error=errors[j]}}//4.更新神经网络的权重和偏置fori:=rangenetwork.layers{layer:=network.layers[i]//4.1.更新权重forj:=rangelayer.neurons{fork:=rangelayer.neurons[j].weights{ifi==0{//输入层的权重layer.neurons[j].weights[k]-=learningRate*layer.neurons[j].error*inputs[k]}else{//隐藏层和输出层的权重prevLayer:=network.layers[i-1]layer.neurons[j].weights[k]-=learningRate*layer.neurons[j].error*prevLayer.neurons[k].output}}//4.2.更新偏置layer.neurons[j].bias-=learningRate*layer.neurons[j].error}}}

这个函数接收输入数据inputs、目标数据targets、神经网络network以及学习率learningRate作为参数。它首先调用feedforward函数进行前向传播,计算每个神经元的输出值。然后,它计算输出层的误差,通过误差反向传播,计算每个神经元的误差值,并将其保存到神经元中。

接下来,函数根据误差值和学习率更新神经网络的权重和偏置。在更新权重时,需要根据神经元所在的层来选择更新的权重类型(输入层、隐藏层或输出层),然后根据误差值和输入数据或上一层神经元的输出值来更新权重。在更新偏置时,只需要根据误差值和学习率来更新即可。

总的来说,这个函数实现了反向传播的所有步骤,可以用于训练神经网络并提高其准确度和性能。

结语

大道不过三俩句,说破不值半文钱,所谓人工智能机器学习就这么回事,没必要神话,也无须贬低,类比的话,就像餐饮行业的厨师岗,所谓做菜,底层原理是什么?就是食材和火候,掌握了做菜的底层原理,就能做出好菜,其他的,比如刀工、颜色等等,不过就是锦上添花的东西,而已。

所以机器学习就是做菜,做出来的东西可能不尽如人意,就得不停地调整食材的搭配和火候的大小,所谓机器学习的最重要技巧,其实是特征的提取以及参数的调整,所谓大道至简,殊途同归。

文章转载自:刘悦的技术博客

原文链接:https://www.cnblogs.com/v3ucn/p/17260260.html

人工智能,真的不在乎人类的阻拦

前不久,包括OpenAI首席执行官萨姆·奥尔特曼、谷歌DeepMind首席执行官杰米斯·哈萨比斯,以及Anthropic首席执行官达里奥·阿莫代伊等350名AI从业者,公开签署公开信警惕人工智能等风险,向全世界警告AI对人类文明的巨大潜在威胁。

01

孤独的人类

但是,恐惧往往夸大了风险,AI是真的危险,还是我们想象中的危险?与其纠结于这个短期内既无法证实,也无法证伪的问题,倒不如来聊聊为什么人们害怕它,却又在不遗余力地在发展它呢?

最近有两个新闻让笔者感到吃惊:“女孩与ChatGPT男友坠入爱河”、“人工智能开始做心理咨询师”。人工智能在面世之初,就在知识储备、逻辑思维等方面打败了人类,情感处理能力被认为是人类面对机器最后的堡垒,但没想到堡垒的沦陷如此之快和彻底!

目前AI的情绪识别能力,已经达到甚至部分超越了人类的水平

以一款人工智能聊天应用Replika为例,许多的用户在与聊天机器人互动后,都表示许多时候根本分不清网络对面的,到底是人类还是AI?甚至有许多人在与AI的聊天过程中坠入爱河,寻找到了那久违的恋爱感觉。

Replika是一款虚拟聊天机器人伴侣,你可以把它当做你的男女朋友一样来谈恋爱。它通过人工智能技术为用户提供情感支持、心理健康辅导、聊天互动等服务。你聊天的次数越多,Replika就越能与你一起发展自己的个性和记忆,它学到的东西就越多。

人工智能,被开发出这种近乎于以假乱真的情感识别能力,是一件注定会发生的事情。想要解释其原因,首先要追溯到公元前5世纪,古希腊人文主义精神的诞生。随着文艺复兴结束了漫长的黑暗中世纪,“以人为本”的人文主义思潮,伴随着近现代欧洲的富强,被传播到了世界各地。如今这种思想已经成为了国际价值观的主流,社会鼓励每一个普通人从小探索“自我”的感受。情绪的表达被尊重,不再是贵族们独有的权力,每个人都可以是世界的中心!

人文主义精神:主张一切以人为本,反对神的权威,把人从中世纪的神学枷锁下解放出来。宣扬个性解放,追求现实人生幸福;追求自由平等,反对等级观念;崇尚理性,反对蒙昧。

但现实无法让每个人都成为世界的中心,让你的每个表达都获得回应,每个情绪都被他人理解。这种无法被满足的需求,不能从社会制度层面解决,聪明的人类于是打起了技术的主意,人工智能则是其中最被寄予厚望的技术载体。

只要人类社会主流价值观,依然是以人文主义为主体,人类“自我渴求”的巨大情感需求,将促进AI在情感认知层面的能力越来越强。

02

AI的发展,像极了女性崛起

在目前AI的发展过程中,还有一个重要的细节,值得我们的关注。就像前面提到的,笔者对人工智能的发展方向并不感到意外,但对它可以在短时间内发展到如此的程度感到吃惊!这其中的一个原因,要归根于社会中女性力量的崛起。

回顾近现代史,女性地位的提升,与社会生产力进步导致的需求,形成了相辅相成的关系。比如从一夫多妻(或多妾),到一夫一妻制的诞生,来源于工业革命后,工厂主需要大量的劳动力,一夫一妻相比于旧有制度,在社会层面可以更大地释放人口增长。再往后,男性劳动力已经无法满足工厂主需求,资本家需要女性劳动力。为了获得这股巨量的劳力,就必须将妇女从家庭事物中解放出来,参与到社会经营中,女性的地位也进一步得到提升。

女性地位的提高,是“社会生产力发展”与“女性平权运动”共同推进的。如果仅仅有社会发展的宏观原因,而无历代女性运动的反抗,最终女性的地位也会得到提升,但时间可能会晚几百年。前者决定了终点,后者决定了到达终点的时间。

之所以提起女性崛起的话题,正因为AI的发展路径与其是很相似的。

如同女性权益得到提高的每一个历史节点,都契合着社会生产力进步带来的新需求,人工智能的发展同样遵循着社会需求前行。女性消费的崛起,使得越来越多的商品围绕女性而设计展开,资本为这些商品倾注海量的社会资源,人工智能也毫不犹豫地依靠这个需求而迅猛成长。

从基因的角度来说,女性的情感更加细腻敏感。反应在AI领域则是情感识别能力模型的迅速成长,像聊天机器人就是最典型的体现。而是否拥有情感能力,则被许多人视为“生命—非生命体”的核心鉴别标准。人工智能到底是机器,还是生命?这将是未来AI要走过的最重要的门槛。

宏观经济学中的基础理论:需求决定供给

03

无法阻止的AI

当然,现在我们还聊不到这么遥远,说回当下AI发展。人工智能技术的进步,受到女性社会地位提高的影响,女性力量的崛起是社会生产力进步的结果。同样的,AI也是社会生产力发展必然会诞生的产物。

经过多年好莱坞电影的熏陶,人们印象中的AI崛起充满着可怕、恐惧、暴力、战争等的标签

因为人工智能技术并没有改变人类本身,而是技术的发展让我们曾经隐藏的需求得到了宣泄。

就像人工智能聊天应用Replika,它可以通过每个用户的“调教”,诞生一个针对用户个人独一无二的“倾听者”。这是在之前人类历史上无法想象的特权。人类属于群居动物,每个人都有着强烈的倾诉需求,但即使贵为九五至尊的皇帝,也自称为“孤家寡人”。也就可以想象古人对人生得一二知己,是多么地难得与欣喜。

人类这个长期被无奈隐藏起来的需求,在AI技术发展中得到开发与宣泄。为此,即使人工智能的前景笼罩着再多未知的迷雾,可它带给人类的无限诱惑,是很难阻止整个社会对它的渴求。

为什么机器人不能成为你的家人或朋友呢?

情感认知与自主思考,是人工智能需要突破的两道门槛。

如今AI在情感认知上的突破,已经远远超过了许多人的预期。按照这个速度,人类可能很快会迎来真正意义上的“人造生命”。与其在想办法阻止和限制AI的发展,人类社会更应该提前准备当这个“生命体”到来,我们是将它定义为类似鸡牛鹅这类牲畜的“财产生命”,还是像类似猫狗宠物一样的“陪伴生命”,甚至于更近一步,给予它接近于“次等人类”的法律与政治权力?

拥有情感认知和自主识别能力后,硅基生命是否会在地球上诞生?

或许真的有一天,人类与人工智能将真正的平起平坐,甚至于像一些赛伯朋克作品中描绘的:人类与人工智能形成了融合,人类使用机械身体,人工智能则拥有完全与人类匹配的情感与思维能力。有许多人对于这样的画面产生恐惧,但这种恐惧很可能随着一点一滴的技术推进而消失,如同神话中的忒修斯之船。至于文明的未来,人类身为碳基生物,作为文明的载体有着太多的限制,反观AI则没有这些困扰,它们是比我们更合适的继承者,历史前进的车轮会因为反对而迟缓,但不会因此而停滞向前。

编辑

忒修斯之船:公元1世纪的时候普鲁塔克提出一个问题:如果忒修斯的船上的木头被逐渐替换,直到所有的木头都不是原来的木头,那这艘船还是原来的那艘船吗?

可能人类迟早要转变一个观念:地球文明的起点是人类,终点为什么不能是人工智能呢?

文末互动:

你是人工智能的“降临派”还是“拯救派”?

评论区留言告诉我们哦~返回搜狐,查看更多

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇