无监督学习

让模型对输入的数据进行特征提取,从而实现无标签(无监督学习)
本质是编码,解码的过程。让模型在卷积编码(下采样)、卷积解码(上采样)的过程中。自我总结特征

目前常用于图像分割
(ps:图像分割又分为三种:普通分割、 语义分割、实例分割。此处的无监督学习现用于普通分割)

编码解码器的结构,就是无监督神经网络,每层结构类似(顺序不能变):
卷积 +
BtachNormal +
ReLU+
Pool(未定)+
Dropout
(同时这一结构也是后期大部分卷积网络的基本结构)
代码实现:

nn.Conv2d(16, 32, 3, 1, padding=1, padding_mode="reflect", bias=False),  # 普通卷积层,这里选择"3卷积核/1步长/1padding"的模板,不改变输入内容的尺寸,只进行特征提取
#注意: bias=False,是因为BatchNorm2d相当于进行了bias的操作(只不过是做乘法),所以手动去掉bias
nn.BatchNorm2d(32),
# 常规的Relu,
# 也可以换为LeakyReLU。但就要加上nn.Dropout(0.2)去掉一些多余的数据
nn.ReLU(),
# !!!最大池化/平均池化 的输入值都是“池化区大小”,别调太大!!!
nn.MaxPool2d(3),

由于编码(下采样)会丢失数据,所以需要在解码(上采样)里补充特征

如果编码(下采样)时压缩率过高,损失太高,解码(上采样)可能会失败

通道混洗(Group编组)

在不增加计算量的情况下,使通道充分融合
简而言之,即改形状(reshape)后转置/换轴(transpose),再改回来。实现打乱顺序,重新排序

注意:实现混洗的基础是,“上一个卷积层进行了分组”

layer1 = nn.Conv2d(12, 12, 3, 1, padding=1, groups=6)    # 深度可分离卷积
out = layer1(x)
print(out.shape)  #  1, 12, 32, 32
# 通道混洗(reshape)
out = out.reshape(1, 3, 4, 32, 32)
# 换轴
out = torch.permute(out, (0, 2, 1, 3, 4))
print(out.shape)  #  1, 4, 3, 32, 32
# 再换回来
out = out.reshape(1, 12, 32, 32)
print(out.shape)  # 1, 12, 32, 32

UNET(U型网络)

一种全卷积神经网络,用于图像分割
UNET本身就是编解码过程,下采样+上采样就是编解码。整体的结构类似↘↗

注意:LeakyReLU(在>0处有输出的relu)添加不少参数,需要Dropout出更多参数

注意:11的卷积核没有特征提取,还是推荐用33的

注意:构造序列器写起来简单,但不灵活(没办法加参数之类的)

注意:做数据集训练的过程,即为特征提取的过程

U2NET(复合型U型网络)

一种复合型的U型网络
主要用于显著目标检测(RSU)。可以自动识别输入图片中最大的物体

每一层都有

性能比UNET更强一些

一些小知识

batchSize:学生机可以设置4~8,建议4

VOC训练集-数据33260,训练集-标签2913
VOC数据集缺点:噪声大、背景复杂、标签不细致(效果不好)
优点:免费!样本多3w

训练集/对标签的要求

训练集必须:数据+标签
测试集可以不要标签,直接看效果就行

如何开启附加线程

batchSize旁边加一个num_workers=True开启附加线程

获取列表/元祖/矩阵中最大值的方法

argmax(获取列表/元祖最大值的索引)

宝可梦属性分类项目的实现思路

残差卷积+全连接,实现18分类,905数据

AI学习_无监督学习(编解码器)_图像分割_Unet/U2net相关推荐

  1. 监督学习无监督学习_无监督学习简介

    监督学习无监督学习 To begin with, we should know that machine primarily consists of four major domain. 首先,我们应 ...

  2. 有监督学习和无监督学习举例_对比自监督学习

    作者:Ankesh Anand 编译:ronghuaiyang 原文链接: 对比自监督学习​mp.weixin.qq.com 导读 利用数据本身为算法提供监督. 对比自监督学习技术是一种很有前途的方法 ...

  3. AI之强化学习、无监督学习、半监督学习和对抗学习

    1.强化学习 文章目录 1.强化学习 1.1 强化学习原理 1.2 强化学习与监督学习 2.无监督学习 3.半监督学习 4.对抗学习 强化学习(英语:Reinforcement Learning,简称 ...

  4. 深度学习与无人车导论_深度学习导论

    深度学习与无人车导论 改变游戏规则 图片的信誉归功于: https : //www.digitalocean.com/ 深度学习 已经成为许多新应用程序的主要驱动力,是时候真正了解为什么会这样了. 我 ...

  5. 《神经网络与深度学习》-无监督学习

    无监督学习 1. 无监督特征学习 1.1 主成分分析 1.2 稀疏编码 1.2.1 训练方法 1.2.2 稀疏编码的优点 1.3 自编码器 1.4 稀疏自编码器 1.5 堆叠自编码器 1.6 降噪自编 ...

  6. 强化学习——day30 无监督学习算法

    无监督学习算法 Sarsa 算法 从知道什么是好的,到如何做好行动 SARSA 使用SARSA的在线策略控制 伪代码 SARSA示例 Q学习(离线学习策略) 离线策略学习 Q学习 使用Q学习的离线策略 ...

  7. AI | 一次无监督学习的尝试(皮肤分类)

    作者:邵可佳 笔者一直对颜值评测领域问题感兴趣,而该领域的公开数据集有限,很难取得大规模的高质量标注数据,如何设计一套无需标注数据的颜值评测模型,一直是困扰笔者很久的问题. 而近期,笔者使用无监督技术 ...

  8. 有监督学习和无监督学习举例_监督学习入门学习笔记

    以下内容引用:An Introduction to Machine Learning with Python by Andreas C. Müller and Sarah Guido (O'Reill ...

  9. AI学习[随堂笔记1109]_交叉熵损失函数_方差损失函数_基础

    交叉熵损失函数 一种用于分类问题1的损失函数2,原理为:将模型输出的概率,与标准答案3的值对比. 和正确答案越接近,则计算结果:交叉熵越低,模型质量越好 和错误答案越接近,则交叉熵越大,模型质量越差 ...

最新文章

  1. Python游戏开发,pygame模块,Python实现打砖块小游戏
  2. 「基于GNN的图分类研究」最新2022综述
  3. mysql 启动个关闭命定_mysql利用phpmyadmin实现数据库同步更新
  4. [转] UML类图的几种关系总结
  5. 类与接口(二)java的四种内部类详解
  6. gradle编译打包过程 之 ProcessAndroidResources的源码分析
  7. JSP关于用户安全退出的问题
  8. java流的序列化_Java中的对象流和序列化介绍
  9. bash shell函数中返回任意值的四种方法
  10. rsyslogd以及日志轮替logrotate的梳理
  11. python定时启动代码_python每天定时运行某程序代码
  12. 号外号外~~OSS监控服务上线啦!!
  13. 开关电源中的电感电容
  14. matlab 多项式排序,MATLAB多项式
  15. (原创)虚拟机下Ubuntu共享主机文件(Ubuntu、VMware、共享)
  16. 十进制转换为三进制实例
  17. 计算机信息技术与幼儿教育论文,信息技术应用于幼儿教育论文
  18. 【渝粤教育】 广东开放大学21秋期末考试民事诉讼法学10680k2
  19. (MB) MRM域中的物理格式
  20. Python《成功破解简单的 动态加载 的爬虫》

热门文章

  1. 带管理口的mellanox交换机开启端口一分二特性
  2. Unity3D Shader编程】之四 热带雨林篇: 剔除、深度测试、Alpha测试以及基本雾效合辑
  3. 计算机网络(九):文件传输协议FTP
  4. Git命令大全或者使用Git命令操作也是Git命令总结
  5. 618比较不错的运动好物有哪些?实用性的运动好物推荐
  6. 基于视觉与板球系统的智能垃圾桶
  7. android-xBuild apk差分与合成,zip差分与合成,lua打包,apk打包,png/jpg图片压缩
  8. 使用jieba分析小说太古神王中,男主更爱谁?去文章中找答案吧!
  9. 元素入栈顺序确定,共有多少种出栈顺序?----Python
  10. Spring Cloud Alibaba参考文档