| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 人工智能 -> 李宏毅深度学习笔记(四)——卷积神经网络(CNN) -> 正文阅读 |
|
|
[人工智能]李宏毅深度学习笔记(四)——卷积神经网络(CNN) |
|
在图像处理中,神经网络的输入就是图像上的一个个像素,输入向量的维度就等于图像的像素数量,因此如果使用一般的神经网络(Fully?Connected?Feedforward?Network),会导致参数过多并且使得训练效率低下。于是,我们想到可以利用图像处理的一些特性得到一种更简单的神经网络,这就是卷积神经网络(CNN)。 1.图像处理的性质(1)决定一个图片的“模式”(比如图片里是否有某个物体)可以通过图像里面的一小部分决定。比如通过查看图片中是否包含鸟嘴来判断图片中是否有鸟。 (2)相同的特征可以出现在图片中的不同位置,它们是等价的。比如一只鸟出现在图片的任何地方都应当被识别出来。 (3)图像可以做subsampling。比如从一个图像中删除某几行几列的像素,对于图像的辨识几乎没有影响。 2.CNN的训练过程整体的过程如下图所示。输入图片以后,反复进行convolution和maxpolling,最后把flatten得到的结果输入一个Fully?Connected?Feedforward?Network得到结果。
(1)convolution? convolution主要针对的是图像处理的前两个性质。在convolution过程中,需要训练n个filter,filter就是一个矩阵,它代表了一个特征,因此希望特征出现在多大的范围内,filter就要多大。 如下图所示,假设输入是一张黑白的图片,每个像素点用0或者1来表示。首先想象有一个与filter大小相同的框,在图像的最左上角框出一个矩阵,把这个矩阵跟filter矩阵对应位置的元素相乘后相加,得到一个值。然后把框向后移动一个stride的长度并重复同样的操作。最后得到一个新的矩阵。
这个过程就相当于经过了一层特殊的神经网络。如图所示,filter中的值就相当于对应的weight,因此convolution的训练过程与一般的神经网络一样,可以使用Backpropagation来训练。
(2)maxpooling maxpooling的作用是进行subsampling的过程。把convolution得到的矩阵划分成几组,每组中取最大值,得到一个更小的矩阵。 (3)flatten 把多个filter产生的矩阵表示为一个一维向量作为下一个神经网络的输入。 CNN的应用不仅局限在图像识别上,包括deep?style(用一个图片的画风画出另一张图片),ALphaGo,语音识别(读频谱图)等。 |
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年12日历 | -2025/12/16 4:59:47- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |