对于深度学习入门我至少尝试过2次了,每次都是连门在哪儿没找到就撤回来了。。。不过这次不一样,毕竟我.....要开始新课题了。昨天开始刷莫烦Python和吴恩达的教学视频,配合过去2年在OPTIMAL的“耳濡目染”(虽然我不做深度,但实验室全是搞深度的 (^-^)V),边学边感叹。。。原来是这个样子噢。
接下来,我会将自己在整个深度学习过程中遇到的问题,学习到的基本框架都记录下来,也希望看到的老师朋友们能顺手指点一下。。。
今天是第一个三分钟:《CNN卷积神经网络》(本系列将全部采用PyTorch框架在Linux服务器上来进行网络的搭建)
目录:
- 卷积 filter
- 激活函数 activation function
- 池化层 pooling layer
- 全连接层 fully connection layer
- 使用pytorch快速搭建一个简单的CNN
一、卷积运算
CNN(convolutional neural networks)的核心也就是这个convolution。它与数学上的卷积有着联系又有很大不同。
(1)一维卷积
在高等数学中我们都学过卷积运算,f(t)和g(t)在连续空间上的卷积是:
观察公式:先将g(t)做一个关于Y轴的翻转 g(-t),然后沿着X轴平移x得到g(x-t),之后再将其与f(t)对应相乘,然后再求积分。这是一维连续卷积。说人话就是:卷积就是两个变量在某一个范围上对应相乘然后再对其进行求和的过程。(注意有个翻转概念)
离散卷积 把积分变成求和即可。
(2)二维离散卷积
数学上二维离散卷积的定义是:
f 是一个m*n的矩阵(上面的*表示卷积运算,这里的*是乘号)