12课,神经网络、反向传播
首先看看生物学的神经元,神经细胞的主要特点是其有轴突和树突,他们之间通过神经递质发挥作用,突触的作用大小也不同,因此突触权重不同。另外还有积累效应,就是说对突触的刺激要积累到一定程度。此外,还有all or not,意思是突触对信息的传递是all or not的。
神经元还有很多的特点,但是这里我们只看这几个特征。
下面考虑这几个特征进行建模,首先有一些输入,对输入有不同的权值,将其求和,达到临界函数的要求后会产生输出。过程大致如下图所示。
输出z=f(x,w),x为输入,w为权值
理想答案d=g(x)
还需要,
性能函数p(d,z)=-½*||d-z||²(为了方便)
然后我们找到一组好的权重w就好了。
技巧1:临界值可以做为-1输入,然后他的权重是w0,这样最后我们的临界值就变为0,而不需要为临界值设置一个额外的变量。
技巧2:权值△w=权值梯度,用爬山算法,但是梯度要求函数平滑,这儿的是跃迁的,因为在临界值前是一个固定值,临界值后是另一个固定值。
技巧3:我们可以将函数曲线变得平滑,使用1/(1+e^-α)。
w2依赖于x和y,w1依赖于w2,x,y
即使有很多也只依赖于已经计算过的值和相邻的东西。
这个算法叫做反向传播算法,因为先算出w2就能往回一部计算出前一个值。
关于函数的构造和求导等过程见老师的课程视频。
问题1:实际做了什么?
根据理想输入,得到一组输出。
问题2:如何将手里的数据编码成参数进行输入,这往往是最难的地方
问题3:为了拟合样本点,会出现过度拟合的现象
问题4:需要调整速率常数,避免猛烈的正反馈