‘壹’ 安海兵:人工智能神经网络在训练的过程中,训练的是什么
训练的目的是使神经网络能够以最小的错误率来对输入和输出之间的关系进行建模。根据查询相关公开信息显示,神经网络在训练的过程中,训练的是权重和偏置,权重和偏置是神经网络的参数,它们代表着神经网络中神经元之间的连接强度,训练的目的是使神经网络能够以最小的错误率来对输入和输出之间的关系进行建模。
‘贰’ 什么是神经网络中的训练样本
指对人工神经网络训练。向网络足够多的样本,通过一定算法调整网络的结构(主要是调节权值),使网络的输出与预期值相符,这样的过程就是神经网络训练。根据学习环境中教师信号的差异,神经网络训练大致可分为二分割学习、输出值学习和无教师学习三种。
‘叁’ 神经网络的训练,究竟在训练什么
前面我们已经了解到神经网络进行预测的过程,但是仍然留下许多疑问,比如权重值如何获得,如何训练神经网络等,这些问题我们将在本文展开。
权重值也就是前文所提到的小蜘蛛的道具,没有看过的朋友可以先看看我的上一个博客。
权重值该如何获得呢?
我们以最简单的三个神经元的神经网络举例子:
最左边的神经元是起点,最右边的是终点,只有中间的神经元有权重值。
我们先来 离散 的获得一部分点:
我们可以隐约地看到这些点大约分布在一条直线附近, 我们把这条直线画出来
那我们如何通过这几个点来获得这条红色的线呢?
这十个已知的点分别是什么?
第一列表示x轴的坐标,第二列表示y轴的坐标
其实思路就是用最小二乘法,先假设随便画一条线
我画了一条 y=0.1x+0.1 的线如图所示
显然我们画的线差距很大,此时使用最小二乘法,就是每个点到直线的距离加起来,再用梯度下降法来优化!
好的,如果我这么说,肯定和每说一样,那么我 一步一步 来
第一个点的坐标是(1, 0.16375502570787515),我们把x=1带入y=0.1x+0.1这个函数,得到y=0.2
显然我们正确的y应该是0.163,那么正确的y,和我们在y=0.1x+0.1得到的y值差距是多大呢?差距是:(0.163-0.2)^2
我们要想办法减小这个差距
差距是怎么得到的? 预测值减去真实值再平方 ,用数学语言就是(0.1*1+0.1-0.2)^2 ==> (wx+b-2)^2
就是说我们要对函数 (y - wx+b)^2 获得的值最小,也就是求这个函数的 最小值 ,高中数学就讲到求函数最小值的方法就是 求导 ,这是二元函数,就是高考最喜欢做的题目!!!求导之后画出导数函数的图像,然后与0相交的点就是极小值点!大家应该很熟悉这个步骤。
不过
这个函数有w和b两个未知数,我们的思路是正确的,只是不能通过这种方式获得最小值,所以这里我们求的是对w和对b的偏导数,( 这里需要微积分学历 )对w的偏导数就是 2w(wx+b-y) 。对b的偏导数就是 2(wx+b-y) 。
此时我们把第一个点的数据代入 x=1, y=0.163, w=0.1, b=0.1
对w的偏导数等于 0.0326
对b的偏导数等于 0.326
此时,我们设定一个步长,也叫学习率,假设等于0.2吧,
那么,
我们已经更新了w和b的值,只要重复这个步骤足够多的次数,那么就可以得到很接近红色的线。
其实,这就是神经网络的训练过程。
先把我们已经有的值传入网络,网络一开始的权重值是随机的,传入网络得到一个预测值,这个预测值会和真实值有一定的差距,那么我们优化这个差距,让这个差距变小,其实这就是一个反向传播的过程,我们用数学计算来更新了w和b的值,那么下一次传入网络得到的预测值与真实值之间的距离就会减小,周而复始,这个距离不断减小,我们就可以得到一个预测能力比较好的w和b,也就是拟合能力比较强的网络,就可以对未知的数据得到较为准确的结果。