本文主要是介绍李宏毅机器学习 CNN+莫凡Python CNN笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
下学期要学CV了 又要换电脑 干脆把笔记记在这上面 以后也好找
李宏毅机器学习笔记
https://www.youtube.com/watch?v=FrKWiRv254g&list=PLJV_el3uVTsPy9oCRY30oBPNLCo89yu49&index=19(李宏毅)为什么要使用CNN而不是全连接神经网络
如果要使用全连接神经网络,那么每一层的参数就过于多了,如果需要处理高清或者超清图片,这个计算量就真的很大了 所以我们需要一种更好的网络结构来帮助我们进行训练。而CNN做的事就是把一些我们知道的不必要的参数给过滤,这样计算量就会大幅度下降了。
可以拿掉多余参数的原因:
1.每个neuron只用观察一张图片的某一个区域即可,不需要观察整张图就能判断出他需要的特征是否存在。比如一只鸟的照片,只需要观察某一指定位置,就能知道鸟嘴是否存在
2.同样的pattern可能会出现在图片的不同部分 鸟嘴可能出现在左上部分 也有可能出现在中间的地方 我们不需要两个neuron来做一样的事 只是为了侦测仅仅一个pattern
3. 我们可以对图片做subsampling,一个图片能拿掉一些像素,去掉这些像素后仍然可以让我们看出这是一个鸟 而不会变成其他什么乱七八糟的东西 所以我们可以用这个概念把我们需要处理的数据变小
CNN结构
图片---->卷积层--->池化层--->卷积层---->池化层.....--->Flatten--->全连接神经网络----->结果
中间有几层卷积和几层池化由开发者自己决定,对于CNN前面的两个特征 是由卷积层来做的 subsampling 是由池化层来进行处理
每个层的功能:
卷积层:这有一个6*6的图片,其中1代表他是有东西在图片上的 0代表没有,然后在卷积层里有很多不一样的过滤器(Filter),如下图所示,每个Filter里面的值就跟全连接网络的W和b是一样的,是需要去训练出来的,对于图中这个例子,Filter的大小是3*3,意味着他只用判断一个3*3的范围里是否出现了他想要的pattern。
这篇关于李宏毅机器学习 CNN+莫凡Python CNN笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!