目前为止已经开学两个月余几天了,首先在这里感谢宿舍高同学让我想起找个平台记录自己所学!!大学四年转瞬即逝留下东西不多,因此读研之后更想留下痕迹,这里废话不多说心路历程补充到结尾,CSDN上面写东西应该会持续三年,以后应该会不定期更新,如果有哪位同志发其中有什么不妥之处也希望可以给予指正。然后这个东西也会留在博客园,以后有什么“人生感悟”主要是写到博客里面,体验一下。
      本次作为第一次文章,我还是想从基础开始,刚好重新学习了吴恩达老师的神经网络的课程,也算有点收获,就先记录一下:


首先呢,众所周知神经网络是由很多的神经元构成:

神经网络——吴恩达视频结束

上图是一个含一个输入层,两个隐藏层,一个输出层的简单的神经网络。输入层顾名思义就是做输入用;隐藏层做计算,特征提取之用;输出层也是顾名思义。

神经网络——吴恩达视频结束

这是一个神经网络的必走流程,分别是先过一个神经元的计算然后进入成本函数,这个下面都会说。前向传播主要是计算,反向传播主要是优化。

简单介绍完神经网络那么开始说一下神经元。

神经网络——吴恩达视频结束

神经网络——吴恩达视频结束

这就是一个普通的神经元需要进行的运算。当有输入进来时,每个输入与他们对应的权重相乘,然后加上对应的偏置,最后经过**函数。一个神经元自己的作用便完成了。然后神经网络是通过许多的神经元加上最后的成本函数组成。那么问题来了,权重和偏置狠容易理解,但是什么是**函数呢?为什么要用它呢?都有什么**函数呢?

神经网络——吴恩达视频结束

神经网络——吴恩达视频结束

(由于这次准备比较仓促,属于心血来潮,但是又害怕心血下去了就放弃了,所以准备不够充分,下次一定注意!)

上面这几个就是常用的**函数,吴恩达老师说的话就是犹豫不决就用ReLU,而且从看的论文上说,确实只有好多年前的论文上sigmod比较常见(也可能是见识少)后来大部分都是ReLU。

讲完这个可以看一下成本函数,吴恩达老师的视频里的成本函数主要是用于二分法的一个成本函数,成本函数主要是用于计算数据集上的总成本和损失,这个很容易就能想到是用来优化函数的,肯定就是计算合适的权值和偏置最后使损失最小。

以上大概就是正向传播的东西了,然后就是当每一层的神经元变多,神经网络的层数变多,公式和主要思路变化不大,主要还是生成矩阵的维度的变化。

神经网络——吴恩达视频结束

至于反向传播吴恩达老师主要讲了梯度下降。梯度的意义从几何意义上讲,就是函数变化增加最快的地方。具体来说,对于函数f(x,y),在点(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。或者说,沿着梯度向量的方向,更加容易找到函数的最大值。反过来说,沿着梯度向量相反的方向,也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度减少最快,也就是更加容易找到函数的最小值。

神经网络——吴恩达视频结束

这基本上就是正向传播和反向传播的大概东西,当然这只是很粗糙的讲解,吴恩达老师的那个视频推导计算过程的比较多,还有一些代码实现,以及代码实现的优化。这块就略过了。

然后就是有一个初始化的问题,就是权重和偏置是不断优化的,但是初始值需考虑吧!

神经网络——吴恩达视频结束

假如这个网络的隐藏层的两个神经元对x1,x2的权重一样那么你得到的隐藏层的两个神经元的输出是一样的,你反向传播优化出来的结果也就是一样的,就没意思了。

最后咱们前面说的都是浅层网络,那么为什么现在做图像处理都要把网络做的很深呢?

神经网络——吴恩达视频结束

神经网络——吴恩达视频结束

当然神经网络层数也不是越深越好,以前的神经网络层数深了会面临很多问题,甚至按道理说神经网络越深得到的特征应该越详细,但是有的网络结构深了之后得到的结果不但没有优化有的反而更差了。这是以后的后话。


吴恩达老师的课程基本上就这么多,剩下一些维度计算,主要是因为就是在原来基础上引入维度,其实就是矩阵,我觉得现在能学神经网络的矩阵应该不差就不说了。如果有什么问题希望各位指正。

相关文章:

  • 2021-09-02
  • 2021-09-05
  • 2022-01-17
  • 2021-11-11
  • 2021-11-02
  • 2021-10-06
  • 2021-10-09
  • 2021-04-02
猜你喜欢
  • 2021-12-01
  • 2021-08-08
  • 2021-04-13
  • 2021-06-04
  • 2022-01-11
  • 2022-12-23
  • 2021-11-11
相关资源
相似解决方案