初学siameseNet网络,希望可以用于信号的识别分类应用。此文为不间断更新的笔记。

siameseNet简介

全连接孪生网络(siamese network)是一种相似性度量方法,适用于类别数目多但是每类的样本数少的分类问题。

Siamese Network 是一种神经网络的框架,而不是具体的某种网络,就像seq2seq一样,具体实现上可以使用RNN也可以使用CNN。

简单的说,Siamese Network用于评估两个输入样本的相似度。网络框架:

Siamese Network有两个结构相同,且共享权值的子网络。分别接收两个输入X1 与X2 ,将其转换为向量Gw(X1) 与Gw(X2) ,再通过某种距离度量的方式计算两个输出向量的距离Ew 。

训练Siamese Network采用的训练样本是一个tuple (X1,X2,y) ,标签y=0 表示X1 与X2 属于不同类型(不相似、不重复、根据应用场景而定)。y=1 则表示X2 与X2 属于相同类型(相似)。

LOSS函数的设计应该是:
1. 当两个输入样本不相似(y=0

)时,距离Ew

越大,损失越小,即关于Ew

的单调递减函数。
2. 当两个输入样本相似(y=1

)时,距离Ew

越大,损失越大,即关于Ew

的单调递增函数。

Loss函数怎么定义,其实就是Logistic Regression的Loss函数,这里值得注意的是最后一层的激活函数要用Sigmoid Function。Loss函数如下:

用L+(X1,X2)

表示y=1

时的LOSS, L−(X1,X2)

表示y=0

时的LOSS,则LOSS函数可以写成如下形式

总结下来:

1、输入不再是单个样本,而是一对样本,不再给单个的样本确切的标签,而且给定一对样本是否来自同一个类的标签,是就是0,不是就是1
2、设计了两个一模一样的网络,网络共享权值W,对输出进行了距离度量,可以说l1、l2等。
3、针对输入的样本对是否来自同一个类别设计了损失函数,损失函数形式有点类似交叉熵损失。

最后使用获得的损失函数,使用梯度反传去更新两个网络共享的权值W。

这个网络主要的优点是淡化了标签,使得网络具有很好的扩展性,可以对那些没有训练过的类别进行分类,这点是优于很多算法的。而且这个算法对一些小数据量的数据集也适用,变相的增加了整个数据集的大小,使得数据量相对较小的数据集也能用深度网络训练出不错的效果。

实验的时候要注意,输入数据最好打乱,由于这样去设计数据集后,相同类的样本对肯定比不相同的样本对数量少,在进行训练的时候最后将两者的数据量设置成相同数量。

参考

https://blog.csdn.net/thriving_fcl/article/details/73730552

https://github.com/ardiya/siamesenetwork-tensorflow

https://blog.csdn.net/sxf1061926959/article/details/54836696

https://www.jianshu.com/p/1df484d9eba9?utm_source=oschina-app

siameseNet网络以及信号分类识别应用的更多相关文章

  1. 用python实现数字图片识别神经网络--启动网络的自我训练流程,展示网络数字图片识别效果

    上一节,我们完成了网络训练代码的实现,还有一些问题需要做进一步的确认.网络的最终目标是,输入一张手写数字图片后,网络输出该图片对应的数字.由于网络需要从0到9一共十个数字中挑选出一个,于是我们的网络最 ...

  2. OverFeat:基于卷积网络的集成识别、定位与检测

    摘要:我们提出了一个使用卷积网络进行分类.定位和检测的集成框架.我们展示了如何在ConvNet中有效地实现多尺度和滑动窗口方法.我们还介绍了一种新的深度学习方法,通过学习预测对象边界来定位.然后通过边 ...

  3. Pytorch CNN网络MNIST数字识别 [超详细记录] 学习笔记(三)

    目录 1. 准备数据集 1.1 MNIST数据集获取: 1.2 程序部分 2. 设计网络结构 2.1 网络设计 2.2 程序部分 3. 迭代训练 4. 测试集预测部分 5. 全部代码 1. 准备数据集 ...

  4. Ubuntu 14.04 LTC 有线网络--网线不识别,灯不亮问题

    sudo ethtool -s eth0 autoneg off speed 100 duplex full

  5. 深度卷积网络(DCNN)和人类识别物体方法的不同

    加州大学洛杉矶分校在PLOS Computing Biology上发表了一篇文章,分析了深度卷积网络(DCNN)和人类识别物体方法的不同:深度卷积网络(DCNN)是依靠物体的纹理进行识别,而人类是依靠 ...

  6. 利用神经网络进行网络流量识别——特征提取的方法是(1)直接原始报文提取前24字节,24个报文组成596像素图像CNN识别;或者直接去掉header后payload的前1024字节(2)传输报文的大小分布特征;也有加入时序结合LSTM后的CNN综合模型

    国外的文献汇总: <Network Traffic Classification via Neural Networks>使用的是全连接网络,传统机器学习特征工程的技术.top10特征如下 ...

  7. 基于CNN网络的汉字图像字体识别及其原理

    现代办公要将纸质文档转换为电子文档的需求越来越多,目前针对这种应用场景的系统为OCR系统,也就是光学字符识别系统,例如对于古老出版物的数字化.但是目前OCR系统主要针对文字的识别上,对于出版物的版面以 ...

  8. 深度学习——手动实现残差网络ResNet 辛普森一家人物识别

    深度学习--手动实现残差网络 辛普森一家人物识别 目标 通过深度学习,训练模型识别辛普森一家人动画中的14个角色 最终实现92%-94%的识别准确率. 数据 ResNet介绍 论文地址 https:/ ...

  9. 基于Deep Learning 的视频识别方法概览

    深度学习在最近十来年特别火,几乎是带动AI浪潮的最大贡献者.互联网视频在最近几年也特别火,短视频.视频直播等各种新型UGC模式牢牢抓住了用户的消费心里,成为互联网吸金的又一利器.当这两个火碰在一起,会 ...

随机推荐

  1. 手撕面试官系列(八):分布式通讯ActiveMQ+RabbitMQ+Kafka面试专题

    ActiveMQ专题 (面试题+答案领取方式见主页) 什么是 ActiveMQ? ActiveMQ 服务器宕机怎么办? 丢消息怎么办? 持久化消息非常慢. 消息的不均匀消费. 死信队列. Active ...

  2. (五)pdf的构成之文件体(catalog对象)

    引自:https://blog.csdn.net/steve_cui/article/details/82735039 目录(catalog): 文档目录包含对定义文档内容的其他对象的引用.它还包含声 ...

  3. 【EBS】XLA_GLT表的清理

    一.Xla_glt*在出现在日记账导入中的阶段 与R11使用gl_interface表不同,R12中大部分情况下使用的是XLA_GLT_<groupId>表:子帐传送到总账的过程中,会动态 ...

  4. python 打包前三天日志

    日志格式 app-2019-07-24.log app-2019-07-24.1.log 该脚本适合一天之内有多个日志文件 # /usr/bin/python #-*- coding: utf-8 - ...

  5. HTML5 极简的JS函数

    页面初始化 mui框架将很多功能配置都集中在mui.init方法中,要使用某项功能,只需要在mui.init方法中完成对应参数配置即可,目前支持在mui.init方法中配置的功能包括:创建子页面.关闭 ...

  6. linux端口映射

    参考文章: http://jingyan.baidu.com/article/ed15cb1b2a332e1be36981ed.html http://www.myhack58.com/Article ...

  7. Drool7s kmodule的作用--系列02课

    本文是介绍drool7s kmodule. 一.为什么komdule.xml文件一定要放在resources下的META-INF文件夹中 --->直接看源码吧,请看下图,应该都知道为什么要放在固 ...

  8. 多次执行echarts时出现 there is a chart instance already initialized on the dom

    原因,多次使用 echarts.init(document.getElementById(this.options.zid)); 解决方案 设为全局

  9. Quartz时间配置(周期任务)

     序号 说明  是否必填  允许填写的值 允许的通配符  1  秒  是  0-59    , - * /  2  分  是  0-59   , - * /  3 小时  是  0-23   , - ...

  10. 如何在Job中获取 IOC applicationcontext

    如何在Job中获取 IOC applicationcontext https://segmentfault.com/q/1010000008002800 SpringBoot之整合Quartz调度框架 ...