深度学习笔记(43) Siamese网络
深度学习笔记(43) Siamese网络
- 1. Siamese网络
- 2. 建立人脸识别系统
- 3. 训练网络
1. Siamese网络
深度学习笔记(42) 人脸识别 提到的函数ddd的作用:
输入两张人脸,然后告诉它们的相似度
实现这个功能的一个方式就是用Siamese网络
经常看到这样的卷积网络,输入图片x(1)
然后通过一些列卷积,池化和全连接层
最终得到这样的特征向量(编号1)
有时这个会被送进softmax单元来做分类,但在这里不会这么做
关注的重点是这个向量(编号1),假如它有128个数,它是由网络深层的全连接层计算出来的
要给这128个数命个名字,把它叫做f(x(1))
可以把f(x(1))看作是输入图像x(1)的编码,取这个输入图像(编号2)
在这里是大雄的图片,然后表示成128维的向量
2. 建立人脸识别系统
建立一个人脸识别系统的方法就:
如果要比较两个图片的话,例如这里的第一张(编号1)和第二张图片(编号2)
要做的就是把第二张图片喂给有同样参数的同样的神经网络
然后得到一个不同的128维的向量(编号3),这个向量代表或者编码第二个图片
要把第二张图片的编码叫做f(x(2))
用x(1)和x(2)仅仅代表两个输入图片
他们没必要非是第一个和第二个训练样本,可以是任意两个图片
最后如果相信这些编码很好地代表了这两个图片,要做的就是定义ddd
将x(1)和x(2)的距离定义为这两幅图片的编码之差的范数:
对于两个不同的输入,运行相同的卷积神经网络,然后比较它们
这一般叫做Siamese网络架构
这里提到的很多观点,都来自于Yaniv Taigman,Ming Yang,Marc’ Aurelio Ranzato,Lior Wolf的论文
他们开发的系统叫做DeepFace
3. 训练网络
不要忘了这两个网络有相同的参数,所以实际要做的就是训练一个网络
它计算得到的编码可以用于函数ddd,它可以告诉你两张图片是否是同一个人
更准确地说,神经网络的参数定义了一个编码函数f(x(i))
如果给定输入图像x(i),这个网络会输出x(i)的128维的编码
要做的就是学习参数,使得如果两个图片x(i)和x(j)是同一个人
那么得到的两个编码的距离就小
前面几个幻灯片我都用的是x(1)和x(2),其实训练集里任意一对x(i)和x(j)都可以
相反,如果x(i)和x(j)是不同的人,那么会想让它们之间的编码距离大一点
如果改变这个网络所有层的参数,会得到不同的编码结果
要做的就是用反向传播来改变这些所有的参数,以确保满足这些条件
参考:
《神经网络和深度学习》视频课程
相关推荐:
深度学习笔记(42) 人脸识别
深度学习笔记(41) 候选区域
深度学习笔记(40) YOLO
深度学习笔记(39) Anchor Boxes
深度学习笔记(38) 非极大值抑制
谢谢!
深度学习笔记(43) Siamese网络相关推荐
- 深度学习笔记-----多输入网络 (Siamese网络,Triplet网络)
目录 1,什么时候需要多个输入 2,常见的多输入网络 2.1 Siamese网络(孪生网络) 2.1 Triplet网络 1,什么时候需要多个输入 深度学习网络一般是输入都是一个,或者是一段视频切片, ...
- 【深度学习】图像匹配Siamese网络实验记录
图像匹配Siamese网络实验记录 Ⅰ. Siamese 网络介绍 Ⅱ. 数据集 AT&T 分拣行李匹配图像 Ⅲ. 实验记录 A. 模型1 1. 实验1 2. 实验2 3. 实验3 B. 模型 ...
- 深度学习笔记之lSTM网络
解决梯度爆炸问题可以利用LSTM网络 也可以用clip gradients 算法https://blog.csdn.net/jiachen0212/article/details/80285648 相 ...
- 深度学习笔记(46) 深度卷积网络学习
深度学习笔记(46) 深度卷积网络学习 1. 学习内容 2. 第一层 3. 第二层 4. 第三层 5. 第四层 6. 第五层 1. 学习内容 深度卷积网络到底在学什么? 来看一个例子,假如训练了一个卷 ...
- 深度学习笔记(30) Inception网络
深度学习笔记(30) Inception网络 1. Inception模块 2. 瓶颈层 3. Inception网络 4. Inception网络的细节 1. Inception模块 构建卷积层时 ...
- 深度学习笔记(27) 经典卷积网络
深度学习笔记(27) 经典卷积网络 1. 前言 2. LeNet-5 3. AlexNet 4. VGGNet 1. 前言 讲了基本构建,比如卷积层.池化层以及全连接层这些组件 事实上,过去几年计算机 ...
- 深度学习笔记(12) Batch归一化网络
深度学习笔记(12) Batch归一化网络 1. Batch归一化 2. 激活值归一化 3. 特殊情况不归一化 4. mini-batch上的Batch归一化 1. Batch归一化 Batch归一化 ...
- HALCON 21.11:深度学习笔记---网络和训练过程(4)
HALCON 21.11:深度学习笔记---网络和训练过程(4) HALCON 21.11.0.0中,实现了深度学习方法.关于网络和训练过程如下: 在深度学习中,任务是通过网络发送输入图像来执行的.整 ...
- HALCON 20.11:深度学习笔记(4)--- 网络和训练过程
HALCON 20.11:深度学习笔记(4)--- 网络和训练过程 HALCON 20.11.0.0中,实现了深度学习方法.关于网络和训练过程如下: 在深度学习中,任务是通过网络发送输入图像来执行的. ...
最新文章
- 学python需要学数据库吗-Python学什么数据库
- cms系统与dreamweaver建站
- ansible(6)——模块命令command、shell详细用法
- 您是否也想过让你的电脑百毒不侵呢!
- JAVA_if或者怎么用,Java If语句
- android跨进程事件注入(程序模拟用户输入)
- sigkill mysql_Ubuntu不能停止mysqld
- 笔记本显示服务器,如何将笔记本电脑用作无头服务器的键盘,显示器和鼠标
- 04_数字的处理方法(保留小数点两位、将数字转化为千分位格式)
- c语言大作业背单词,c语言必背代码 c语言入门必背单词 c语言必背100代码
- 不要太在意别人的看法
- 【评测】各种细胞治疗处理技术设备
- react native使用echarts图表
- C语言快速排序,以及注意点。
- 新版TCGA的突变SNP数据添加临床信息
- oracle temporarily delayed,temporarily closed造句
- 上官婉儿墓志 - 还原历史真相
- vue项目将px转为rem实践
- IoT开源平台Thingsboard二次开发研究
- 谷歌浏览器被搜狗劫持问题
热门文章
- IT人不可不听的10个职场故事
- 大屏监控系统实战(7)-后端整合MybatisPlus并暴露服务
- 少年,你知道怎么用一行代码解决分布式事务问题吗?
- 程序员的进阶课-架构师之路(18)-图
- 2459: 爱你多少年呢
- vs studio2015导入本地项目_Visual Studio2019自定义项目模板
- 4x3矩阵键盘扫描法c语言,四种4*4矩阵键盘的扫描方法
- html批量导入excel表格,html 导入excel表格数据格式-如何将网页中的表格快速复制到EXCEL中...
- Python全栈开发之数据类型
- 想和人脑一样智能? IBM 的芯片级模仿才是关键