吴恩达深度学习笔记04(第三周和第四周)
吴恩达深度学习视频的第三周和第四周主要的内容包括单隐层神经网络和多隐层神经网络的讲解。
第二周的视频内容讲的是logistic回归,第三周的内容为单隐层神经网络,这两者之间的关系为组件与整体的关系。
单隐层神经网络,顾名思义只有一个隐藏层,而这一个隐藏层有多个节点,每一个节点就是一个logistic回归的模型,所以3个节点的隐藏层便可以看作是由3个logistic回归模型组成的。如下图
图中上面的是logistic回归,下面的是单隐层神经网络。
在这一部分有一点区别就是本节的内容里面又介绍了几种不同的**函数,之前就只有一个sigmoid函数,现在又介绍了tanh和ReLU两种**函数,三个**函数的图像如下
从图上可以看出tanh函数的值域更加的理想化,相比于sigmoid函数,它的至于更加的符合计算要求。接下来的ReLU函数的图像可以看出,在值为正的时候斜率是稳定不变的,所以这个函数在训练的过程中可以保持学习梯度,不会因为值得增大而导致学习得速度减小,这一点比tanh函数又要好一点,所以在选择**函数得时候基本上可以直接使用ReLU函数。
PS:视频中提到一个点,就是输出节点得**函数,如果是做二分类问题得话,就选择sigmoid函数作为**函数,因为这个函数的值域刚好是(0,1),非常符合二分类问题,其他的节点就不要考虑sigmoid函数了。
接下来就是计算导数进行反向传播的部分了,这一部分其实可以直接拆开来看,就是将每个节点分开来看,实际上就是logistic回归的导数计算的方法的扩展,只不过在这里使用向量化的方法来计算,可以加快运算的速度。
第四周的内容
这一周的内容就是多隐层神经网络,应该就是神经网络的完全体了,网络的图形如下
图中分别是logistic回归=>单隐层网络=>双隐层网络=>多隐层网络,感觉可以类比成:
点(logistic)=>线(单隐层)=>面(多隐层)
多隐层的神经网络中,**函数和正向传播和反向传播的计算方法和单隐层的计算方法是一样的,唯一的区别就是多隐层网络在向量化的时候可能更加的复杂,不是那么容易理清楚,但是如果单隐层的能够理解清楚的话,多隐层也可以很好的理解。
总结:
至此神经网络的原理部分全部学习完毕,课程作业部分使用前面的文章中的链接里面的内容进行了代码的实现,作业代码没有自己动手去一行一行的敲,所以印象不是很深刻。但是有了基本理论上的认识,再去学习进一步的其他的模型,就可以很好的理解了。