Deep Learning,小白杂记

深度学习门槛儿略高啊,以前学过基础的线性回归、逻辑回归,也了解过神经网络前向和和反向,然并卵,愣是不知道深度学习怎么搞。

配了Caffe看不懂文档,发现Keras对Windows用户友好很多,正在研究。 这篇博客总结自己遇到的问题和对网上搜到的解答的理解,持续更新。

初学者,理解可能有误,如发现指出不胜感谢。

Q:卷积(Convolution)层是干什么的

A: 卷积学过,但卷积层是什么呢。Andrew NG的教程上解释,本来神经网络是全连接的,但是图像大了的话,全连接的运算复杂度太高,于是先来一两层卷积,一个n*m的卷积核在图像上走一遍,就得到了一个和原图像差不多大小的、每个像素都包含了n*m范围信息的“图像”,多个核就能得到多个这样的“图像”,核的每个元素就是要训练的参数。 卷积层之后,再把得到的这些“图像”做Pooling,就是计算一个个n'*m'互不相交的大块区域的均值或最值或其他值,得到更小的矩阵,这样规模就小到可以做全连接了。

Q:非线性激励函数(Activation Function)是做什么的

A: 只做卷积、全连接,下一层得到的结果就只是上一层的线性组合,这样用再多层,也不过是第一层的线性变换,直觉上好像这样的话它们不是能化简成一次性的线性变换了么。。。于是做一些非线性变换,这才有神经网络的感觉。至于具体的relu、tanh、sigmoid如何选用等等,就具体问题具体分析了。

Q:为什么要Dropout

A: 大意就是让迭代过程中部分节点不工作,这样的破坏参数训练效果的“扰动”反而降低了过拟合。

~~~待续