searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

随便写点对AI的理解

2023-05-29 01:55:46
59
0

看了些AI相关的东西,记录一下自己的认知和理解。

 

AI由三个基本组件构成,模型函数,准则函数,反馈函数。其中模型是最核心的部分,负责推理,输出我们想要的结果。推理结果输出给准则,准则判断结果的好坏。反馈根据准则的结果,去修改模型。由此构成一个闭环。

虽说模型是AI的核心,但是AI相比原有的普通程序,最大的区别就在于准则和反馈。可以修正自己现有的参数,变得更加精准。一个普通程序运行起来以后,人发现他有bug,或者人发现它缺失一些功能,于是修改这个程序,让他变得更好,后面两个步骤是人来执行的。那么对应到人工智能,后两个步骤就变成机器自己执行。

对应到AI上,就是程序->模型,人发现bug->准则,人修改程序->反馈。将原本需要人来做的部分,变成程序自己来做,这样他就可以自己进化。当然,模型->准则->反馈这个循环还缺少一样东西,就是输入参数,也就是训练AI所需的训练数据,训练AI就是不断地给AI喂数据,重复这一循环,每次都会进步一点,当积累大量次数之后AI就会变得很强,如果没有数据,这个循环就转不起来了。

接下来分开讲讲三个组件。

模型。模型肯定是AI中最重要的部分。模型的核心思想,也是AI的核心思想,是用模型函数进行拟合,去模仿一个真实函数,让两者在输入相同的情况下,有相似的输出。可以说模型决定了AI的上限,很差的模型,无论怎么训练,也无法达到人的水平。可以用最简单的y=ax来举例,一个一元一次函数也可以是一个模型,但是,显然一个一元一次函数不可能用来识别一张照片中是不是拍到了一条狗。模型必须足够复杂足够强大,训练之后才能得到想要的结果。

我数学有点差,解释的可能不是很好,但是这里还是应该用数学来解释一下模型函数的概念。就用刚才的例子,我们把人眼看到图片之后,判断图片中拍摄到的是狗还是猫还是别的什么当作一个函数,那么我们假定这个人眼函数为Y=F(X),人眼收到的输入值为X=[x1, x2, x3, ......, xn],n的数量未知,我们不知道输入值的含义和数量,然后输出值为一个特定集合Y=[狗,猫,人,......],显然输出值这个集合也很大,很难枚举,并且不同的人看到相同图片后可能给出不同答案。我们想不考虑那么复杂,我们认为所有人都会给出同样回答。

现在,我们定义一个函数,Ya=Fa(Xa),Fa是一个模型函数,现代AI用的最多的就是神经网络,这个后面再解释。我们用一个假的例子来替代,Fa=a*x1+b*x2 +c*x1*x2 + d*x1^2 + ...... xk^m,等等,总之就是这样一个看起来很复杂的函数。可以看出这个函数的输入Xa=[x1, x2, x3, ......, xk],k为图片的像素数量,一张图片是由像素点构成的,所以图片可以由一个二维数组来表示,我们也可以把他转换为一维数组。那么可以看出,虽然无法证明,但是模型的输入Xa和人眼的输入X之前存在某种一一对应的映射关系。我们通过不断的训练,修改Fa的参数,a,b,c......,使得Fa近似于F,当F的任意一个输入X,他的映射为Xa,Fa(Xa)的结果和F(X)的结果间的误差都满足我们预设的误差。

如果我们得到了Fa,那么我们就可以用Fa去推测真实的函数F的输出结果,因为他们之间的误差很小,我们就可以用Fa的结果替代F的结果,也就是用AI的数据替代人的输出。

AI大部分时候可以输出我们满意的答案,但是在某些特定的场景下,AI输出的结果会让我们觉得可笑,原因就是拟合的不好,大多数输入值,误差都很小,我们觉得满意,但是个别输入值的误差很大,就出现一些人肯定不会犯的错误。

由此我们也可以看出,AI缺乏可解释性。这就像我们求解y=ax+bx^2,我们会先做因式分解,之后我们就可以知道当x等于几时,y等于零,我们明白因式分解的原理,所以可以得到理论解。但假设方程很复杂我不知道怎么因式分解呢?那我们可以用二分法去求近似解,二分法的次数越多,解的精度越高,但是无论精度多高也不是理论解,所以你问我时怎么求解这个方程的,我会告诉你我不知道怎么求解。AI就是如此,因为是求近似解,所以很多时候无法用理论来解释AI出现的误差很大的问题。

模型这部分,最后简单讲一下神经网络。模型有很多种,但是现在用的最多的就是神经网络。我决定从网上借一张图来帮助说明一下。

神经网络说白了就是模拟人的大脑的工作方式。如上图,A=[a1,a2,a3]为输入Z=[z1,z2]为输出,神经网络就是这样的一个函数组,他有6个参数w1-w6。显然这个模型很简单,但是我们可以看到,a的数量可扩展,z的数量也可扩展,中间的层数也可扩展。我们可以在中间增加一个B=[b1,b2,b3],A映射到B,B再映射到Z。还可以再加一层,想加多少层都行。这个模型扩展之后,参数可以达到几亿,甚至几百亿,就非常强大。根据我读到的文章,神经网络已经被数学上证明可以模拟任何函数,网络中的节点数量越多,拟合的精度越高。

准则。准则函数是用来判断结果好坏的,准则函数也是人为干预的环节。一张图片,内容是一条狗,a模型给出的答案是图片里是一只猫,b模型给出的答案是图片里是一只章鱼,两个答案都是错的,但是显然猫和狗长的像一些,章鱼就太离谱了。那么准则函数应该给b模型打出更低的分数,b模型的分数低,那么就说明b模型需要更大幅度的调整,反馈函数就需要加大力度修改参数。一般而言准则函数的输出结果是0-1之间的一个值,也就是他给出的分数,但真正的困难不在于输出值的域,而在于如何打分,这也是需要人为干预的原因。像alphaGo,他不需要人为干预,因为围棋有明确的输和赢的标准,白棋和黑棋谁赢了,具体赢了多少,都可以准确计算,用这些结果就可以相对轻松的给出准则函数的打分结果。但是像上面的例子,猫和章鱼,该怎么打分?更进一步,AI是不知道什么是猫什么是狗的,所以在训练前,就需要对训练数据做标注,需要人告诉AI这张图片里拍摄到的是什么。模型可以不关心图片里是什么,但准则必须知道,连准则函数都不知道图片里是猫还是狗的话,准则函数无法给出正确的打分。

反馈。反馈就是用准则给的结果去修改模型的参数,试图让模型在下一次给出更好的结果。反馈最常用的就是求导,既然模型是一个函数,我们就可以试图去求他的导数。导数为零时就说明这是一个顶峰或者谷底,可能会是一个局部或是全局最优解。当导数不为零时,反馈也可以根据导数的值找到前进的方向,沿着这个方向修改参数可以找到更优解。当然反馈也不会是这么简单,就如刚才所讲,当前的这个谷底,可能只是一个局部最小值,而不是全局的,就如同量子退火来让量子落入更稳定的态一样,如何跳出当前的坑,去寻找一个更深的坑,也是一个关键问题。如果不能跳出局部最优解,最终会导致模型的拟合结果差,如果跳出局部最优解的方法不好,会导致训练需要的次数大大增加,超出所能接受的成本范围。

讲完三个组件,最后提一下数据,也就是训练集。没有数据训练AI,一切都无从谈起,近几年科学家也发现除了数据数量外,数据质量的重要性。你给一个天才不断地训练中考题目,可以让他成为中考考霸,但是不能让他学会大学数学,因为没有教他,他永远也学不会中学内容以外的东西。AI也是一样的,用垃圾数据训练AI反而可能起到负面作用,就和人教育孩子yi'yang

0条评论
作者已关闭评论
z****n
1文章数
0粉丝数
z****n
1 文章 | 0 粉丝
z****n
1文章数
0粉丝数
z****n
1 文章 | 0 粉丝
原创

随便写点对AI的理解

2023-05-29 01:55:46
59
0

看了些AI相关的东西,记录一下自己的认知和理解。

 

AI由三个基本组件构成,模型函数,准则函数,反馈函数。其中模型是最核心的部分,负责推理,输出我们想要的结果。推理结果输出给准则,准则判断结果的好坏。反馈根据准则的结果,去修改模型。由此构成一个闭环。

虽说模型是AI的核心,但是AI相比原有的普通程序,最大的区别就在于准则和反馈。可以修正自己现有的参数,变得更加精准。一个普通程序运行起来以后,人发现他有bug,或者人发现它缺失一些功能,于是修改这个程序,让他变得更好,后面两个步骤是人来执行的。那么对应到人工智能,后两个步骤就变成机器自己执行。

对应到AI上,就是程序->模型,人发现bug->准则,人修改程序->反馈。将原本需要人来做的部分,变成程序自己来做,这样他就可以自己进化。当然,模型->准则->反馈这个循环还缺少一样东西,就是输入参数,也就是训练AI所需的训练数据,训练AI就是不断地给AI喂数据,重复这一循环,每次都会进步一点,当积累大量次数之后AI就会变得很强,如果没有数据,这个循环就转不起来了。

接下来分开讲讲三个组件。

模型。模型肯定是AI中最重要的部分。模型的核心思想,也是AI的核心思想,是用模型函数进行拟合,去模仿一个真实函数,让两者在输入相同的情况下,有相似的输出。可以说模型决定了AI的上限,很差的模型,无论怎么训练,也无法达到人的水平。可以用最简单的y=ax来举例,一个一元一次函数也可以是一个模型,但是,显然一个一元一次函数不可能用来识别一张照片中是不是拍到了一条狗。模型必须足够复杂足够强大,训练之后才能得到想要的结果。

我数学有点差,解释的可能不是很好,但是这里还是应该用数学来解释一下模型函数的概念。就用刚才的例子,我们把人眼看到图片之后,判断图片中拍摄到的是狗还是猫还是别的什么当作一个函数,那么我们假定这个人眼函数为Y=F(X),人眼收到的输入值为X=[x1, x2, x3, ......, xn],n的数量未知,我们不知道输入值的含义和数量,然后输出值为一个特定集合Y=[狗,猫,人,......],显然输出值这个集合也很大,很难枚举,并且不同的人看到相同图片后可能给出不同答案。我们想不考虑那么复杂,我们认为所有人都会给出同样回答。

现在,我们定义一个函数,Ya=Fa(Xa),Fa是一个模型函数,现代AI用的最多的就是神经网络,这个后面再解释。我们用一个假的例子来替代,Fa=a*x1+b*x2 +c*x1*x2 + d*x1^2 + ...... xk^m,等等,总之就是这样一个看起来很复杂的函数。可以看出这个函数的输入Xa=[x1, x2, x3, ......, xk],k为图片的像素数量,一张图片是由像素点构成的,所以图片可以由一个二维数组来表示,我们也可以把他转换为一维数组。那么可以看出,虽然无法证明,但是模型的输入Xa和人眼的输入X之前存在某种一一对应的映射关系。我们通过不断的训练,修改Fa的参数,a,b,c......,使得Fa近似于F,当F的任意一个输入X,他的映射为Xa,Fa(Xa)的结果和F(X)的结果间的误差都满足我们预设的误差。

如果我们得到了Fa,那么我们就可以用Fa去推测真实的函数F的输出结果,因为他们之间的误差很小,我们就可以用Fa的结果替代F的结果,也就是用AI的数据替代人的输出。

AI大部分时候可以输出我们满意的答案,但是在某些特定的场景下,AI输出的结果会让我们觉得可笑,原因就是拟合的不好,大多数输入值,误差都很小,我们觉得满意,但是个别输入值的误差很大,就出现一些人肯定不会犯的错误。

由此我们也可以看出,AI缺乏可解释性。这就像我们求解y=ax+bx^2,我们会先做因式分解,之后我们就可以知道当x等于几时,y等于零,我们明白因式分解的原理,所以可以得到理论解。但假设方程很复杂我不知道怎么因式分解呢?那我们可以用二分法去求近似解,二分法的次数越多,解的精度越高,但是无论精度多高也不是理论解,所以你问我时怎么求解这个方程的,我会告诉你我不知道怎么求解。AI就是如此,因为是求近似解,所以很多时候无法用理论来解释AI出现的误差很大的问题。

模型这部分,最后简单讲一下神经网络。模型有很多种,但是现在用的最多的就是神经网络。我决定从网上借一张图来帮助说明一下。

神经网络说白了就是模拟人的大脑的工作方式。如上图,A=[a1,a2,a3]为输入Z=[z1,z2]为输出,神经网络就是这样的一个函数组,他有6个参数w1-w6。显然这个模型很简单,但是我们可以看到,a的数量可扩展,z的数量也可扩展,中间的层数也可扩展。我们可以在中间增加一个B=[b1,b2,b3],A映射到B,B再映射到Z。还可以再加一层,想加多少层都行。这个模型扩展之后,参数可以达到几亿,甚至几百亿,就非常强大。根据我读到的文章,神经网络已经被数学上证明可以模拟任何函数,网络中的节点数量越多,拟合的精度越高。

准则。准则函数是用来判断结果好坏的,准则函数也是人为干预的环节。一张图片,内容是一条狗,a模型给出的答案是图片里是一只猫,b模型给出的答案是图片里是一只章鱼,两个答案都是错的,但是显然猫和狗长的像一些,章鱼就太离谱了。那么准则函数应该给b模型打出更低的分数,b模型的分数低,那么就说明b模型需要更大幅度的调整,反馈函数就需要加大力度修改参数。一般而言准则函数的输出结果是0-1之间的一个值,也就是他给出的分数,但真正的困难不在于输出值的域,而在于如何打分,这也是需要人为干预的原因。像alphaGo,他不需要人为干预,因为围棋有明确的输和赢的标准,白棋和黑棋谁赢了,具体赢了多少,都可以准确计算,用这些结果就可以相对轻松的给出准则函数的打分结果。但是像上面的例子,猫和章鱼,该怎么打分?更进一步,AI是不知道什么是猫什么是狗的,所以在训练前,就需要对训练数据做标注,需要人告诉AI这张图片里拍摄到的是什么。模型可以不关心图片里是什么,但准则必须知道,连准则函数都不知道图片里是猫还是狗的话,准则函数无法给出正确的打分。

反馈。反馈就是用准则给的结果去修改模型的参数,试图让模型在下一次给出更好的结果。反馈最常用的就是求导,既然模型是一个函数,我们就可以试图去求他的导数。导数为零时就说明这是一个顶峰或者谷底,可能会是一个局部或是全局最优解。当导数不为零时,反馈也可以根据导数的值找到前进的方向,沿着这个方向修改参数可以找到更优解。当然反馈也不会是这么简单,就如刚才所讲,当前的这个谷底,可能只是一个局部最小值,而不是全局的,就如同量子退火来让量子落入更稳定的态一样,如何跳出当前的坑,去寻找一个更深的坑,也是一个关键问题。如果不能跳出局部最优解,最终会导致模型的拟合结果差,如果跳出局部最优解的方法不好,会导致训练需要的次数大大增加,超出所能接受的成本范围。

讲完三个组件,最后提一下数据,也就是训练集。没有数据训练AI,一切都无从谈起,近几年科学家也发现除了数据数量外,数据质量的重要性。你给一个天才不断地训练中考题目,可以让他成为中考考霸,但是不能让他学会大学数学,因为没有教他,他永远也学不会中学内容以外的东西。AI也是一样的,用垃圾数据训练AI反而可能起到负面作用,就和人教育孩子yi'yang

文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0