当前位置: 首页 > news >正文

基于逻辑回归和支持向量机的前馈网络进行乳腺癌组织病理学图像分类

CNN(卷积神经网络)通过使用反向传播方法来学习特征,这种方法需要大量的训练数据,并且存在梯度消失问题,从而恶化了特征学习。

CNN卷积神经网络

CNN由一个多层神经网络组成,该网络从标记的训练数据集中学习一组卷积滤波器。传统上,滤波器学习是通过迭代优化过程(反向传播算法)来实现的,该算法逐步更新滤波器,直到分类误差达到预定于的阈值。

①难以对大量超参数(层数、滤波器的数量和大小)进行调优;②滤波器学习过程缓慢,并且需要庞大的训练图像数据集;③用于学习滤波器的反向传播算法存在梯度消失问题。

由于组织病理学图像的固有特征(高视觉可变性),最先进的CNN方法需要大量的计算资源,以及可用的标记组织病理学图像数据集的规模较小,仍然存在大量的开放研究领域。

组织病理学图像分类

传统的方法是基于从这些图像中提取的手工特征进行分类,通常提取三种类型的特征:

低级、对象级和高级。

低级特征与纹理、强度和颜色有关;

对象级技术提取组织学对象的形状和形态信息;

高级技术提取组织学对象之间的空间关系。

用于组织病理学图像分类的传统分类方法:支持向量机、随机森林、Adaboost、朴素贝叶斯、集成学习、决策树和KNN分类器。

前向传播方法使用预定义的 滤波器 或者在模型外部学习的滤波器以前馈方式应用。

两种前馈方法的适用性:卷积逻辑回归网络(CLR)组织病理学图像的卷积支持向量机网络(CSVM-H),两种方法能够有效地从少量乳腺癌图像中学习表示,减少了全切片组织病理学图像分类中的内存占用。

主要研究内容

  1. 采用卷积支持向量机网络对组织病理学图像进行分类
  2. 提出了两种基于前向传播卷积网络的组织病理学图像分类方法。使用逻辑回归和支持向量机学习网络中的滤波器
  3. 在小型数据集上使用前馈方法优于反向传播

相关工作

CNN使用了两种滤波器学习方法:反向传播方法和前向传播方法

反向传播方法

在反向传播方法中,卷积滤波器权重最初被赋予随机值,这些值以前馈方式跨网络层应用,然后将得到的预测值与真值进行比较。执行反向滤波器更新过程以纠正计算出的预测误差。

前向传播方法

首先在模型外部学习滤波器,然后以前馈方式应用于提取特征。将提取到的特征输入到分类器中对组织病理学图像进行分类。

SQUH数据集

该数据集由158个不同患者的图像组成。采集标本作为手术活检和切除标本,用厚度为3 μm的切片机进行转化;然后将它们安装在载玻片上,使用苏木精和伊红(HE)染色。染色过程后,每个样品都用盖盖安装。SQUH的解剖病理学分析师在光学显微镜下通过对组织切片的视觉分析确定了每张幻灯片中的肿瘤区域。数据集的每张图像都有4种放大倍数(4倍、10倍、20倍和40倍)。在这项工作中,我们使用了所有的放大图像。该数据集由158张1920 × 1200大小的组织病理图像组成,其中58张为良性肿瘤,100张为恶性肿瘤。

网络的主要模块

滤波器学习、特征提取层、分类层

滤波器学习

滤波器是从输入训练图像提取的补丁中学习的。首先,从训练集中提取p个补丁,x_{1},x_{2},\dots x_{p}及其对应的标签。补丁大小与目标滤波器大小相同,然后随机选择r个补丁进行滤波器学习。通过最小化目标函数来学习滤波器:

min_{F,b_{0}}\frac{1}{2}F^{T}F+C\sum_{i=1}^{r}l(F,b_{0};x_{i},y_{i})

其中C>0为正则化参数,F和b_{0}分别为滤波器和偏置,{(xi, yi)}为patch及其标签的集合,l(F,b_{0};x_{i},y_{i})是损失函数

对于CSVM-H模型

min_{F,b_{0}}\frac{1}{2}F^{T}F+C\sum_{i=1}^{r}max(1-y(tr(F^{T}x_{i})),0)

对于CLR模型

min_{F,b_{0}}\frac{1}{2}F^{T}F+C\sum_{i=1}^{r}log(1+e^{-y_{i}(tr(F^{T}x_{i}))})

特征提取层

从滤波器学习阶段学习到的滤波器与图像(来自前一层的训练图像或特征映射)进行卷积,然后将ReLU激活函数应用于结果,以处理类的非线性可分性,并强制结果的稀疏性,从而促进泛化,最后加入池化操作,在不丢失重要信息的情况下减小特征映射的大小。然后,引入全局池化层提取最终的特征。

分类层

进行滤波器的学习之后,可以将训练过程应用到分类层。

在此过程中,训练数据集的图像在输入到分类器之前经过两次转换:

①使用学习到的滤波器进行特征提取

②然后进行全局池化以提取判别性高级特征(提取特征图与两种类别之间存在的相关性,避免过拟合)

CSVM-H和CLR的体系结构是基于对几种体系结构的实证分析而选择的,这些体系结构是通过改变以下超参数产生的:(i)网络中的总层数,(ii)过滤器的总数,以及(iii)过滤器的大小。

我们提出了一种基于前馈的CNN方法用于组织病理学图像的分类。该方法在小数据集上优于常用的反向传播方法VggNet-16、ResNet-50。所提出的方法得到的结果总体上优于VggNet-16、CSVM和最先进的方法ResNet-50。我们将我们的结果与最先进的工作进行了比较,并说明了所提出模型的局限性和未来的工作。对于二元分类任务,所提模型获得了最佳的AUC和灵敏度,优于所有其他深度学习模型。

相关文章:

基于逻辑回归和支持向量机的前馈网络进行乳腺癌组织病理学图像分类

CNN(卷积神经网络)通过使用反向传播方法来学习特征,这种方法需要大量的训练数据,并且存在梯度消失问题,从而恶化了特征学习。 CNN卷积神经网络 CNN由一个多层神经网络组成,该网络从标记的训练数据集中学习…...

35-4 fastjson漏洞复现

环境准备:35-2 fastjson反序列化漏洞介绍 及漏洞环境搭建-CSDN博客 fastjson_tool.jar下载:fastjson_rce_tool: fastjson命令执行自动化利用工具, remote code execute,JNDI服务利用工具 RMI/LDAP (gitee.com) 一、攻击机kali开启nc监听6666端口(或其他端口也行,只要不…...

Qt-控件篇

QPushbutton 1、设置按钮文本 pushButton->setText("按钮"); 2、获取按钮文本 pushButton->text(); 3、设置按钮的大小为特定值(宽度和高度) pushButton->setFixedSize(width,height); 4、设置按钮悬停时的工具提示文本。 pushButto…...

实现 Table 的增加和删除,不依赖后端数据回显

需求 删除前 删除后 分析 首先写一个 Table <a-card style"width:100%"><template#extra><a-button type"text" click"addSelectItem" style"margin-right: 5px">添加</a-button><a-button type&quo…...

个人网站开发记录(七)——三系统后端nodejs+express

前言 这种已经完全工程化了的&#xff08;&#xff09;后端其实已经没啥好说的了&#xff0c;因为就是单纯的写接口然后调用接口就完事了&#xff01; 正文 唯一值得一提的大概是我在写这个系统的时候搞了https的链接&#xff0c;具体来说就是先申请一个ssl证书&#xff0c;…...

C#入门理解设计模式的6大原则

**设计模式的原则是指导设计模式创建和应用的基本原则&#xff0c;这些原则有助于创建灵活、可维护且可扩展的软件系统。**1. 单一职责原则&#xff08;Single Responsibility Principle, SRP&#xff09; 单一职责原则指出一个类应该只有一个引起它变化的原因。换句话说&…...

Linux如何切换root用户

Linux如何切换root用户 sudosudo -i想一直使用root权限&#xff0c;可以使用su命令 sudo 执行命令后&#xff0c;输入用户密码可以短暂的获取root权限 sudo -i 通过此命令直接输入当前管理员用户的密码就可以进入root用户了 想一直使用root权限&#xff0c;可以使用su命令 …...

uniapp小程序编译报错

说明 微信小程序编译每次都出现[ project.config.json 文件内容错误] project.config.json: libVersion 字段需为 string, 解决 找到manifest.json文件 添加&#xff1a;"libVersion": "latest"&#xff0c;重新编译即可。...

van-uploader 在app内嵌的webview中的一些坑

问题&#xff1a; 部分版本在ios 中没有问题&#xff0c;但是安卓中不触发图片选择和拍照&#xff08;之前是可以的&#xff0c;可能是没有锁定版本&#xff0c;重新发版导致的&#xff09;。在ios中下拉文案是英文&#xff0c;html配置lang等于 zh 也没有用&#xff0c;ios里…...

使用Kotlin进行全栈开发 Ktor+Kotlin/JS

首发于Enaium的个人博客 前言 本文将介绍如何使用 Kotlin 全栈技术栈KtorKotlin/JS来构建一个简单的全栈应用。 准备工作 创建项目 首先我们需要创建一个Kotlin项目&#xff0c;之后继续在其中新建两个子项目&#xff0c;一个是Kotlin/JS项目&#xff0c;另一个是Ktor项目。…...

数据结构_带头双向循环链表

List.h 相较于之前的顺序表和单向链表&#xff0c;双向链表的逻辑结构稍微复杂一些&#xff0c;但是在实现各种接口的时候是很简单的。因为不用找尾&#xff0c;写起来会舒服一点。&#xff08;也可能是因为最近一直在写这个的原因&#xff09; #pragma once #include<std…...

常见的垃圾回收器(下)

文章目录 G1ShenandoahZGC 常见垃圾回收期&#xff08;上&#xff09; G1 参数1&#xff1a; -XX:UseG1GC 打开G1的开关&#xff0c;JDK9之后默认不需要打开 参数2&#xff1a;-XX:MaxGCPauseMillis毫秒值 最大暂停的时间 回收年代和算法 ● 年轻代老年代 ● 复制算法 优点…...

网桥的原理

网桥的原理 1.1 桥接的概念 简单来说&#xff0c;桥接就是把一台机器上的若干个网络接口“连接”起来&#xff0c;其结果是&#xff0c;其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。 交换机有若干个网口&#xff0c;并且这些…...

STM32 CAN过滤器细节

STM32 CAN过滤器细节 简介 每组筛选器包含2个32位的寄存器&#xff0c;分别为CAN_FxR1和CAN_FxR2&#xff0c;它们用来存储要筛选的ID或掩码 四种模式 模式说明32位掩码模式CAN_FxR1存储ID&#xff0c; CAN_FxR2存储哪个位必须要与CAN_FxR1中的ID一致 &#xff0c; 2个寄存器…...

网络编程(现在不重要)

目录 网络编程三要素与InetAddress类的使用 软件架构 面临的主要问题 网络编程三要素&#xff08;对应三个问题&#xff09; InetAddress的使用 TCP与UDP协议剖析与TCP编程案例&#xff08;了解&#xff09; TCP协议 UDP协议 例子 UDP、URL网络编程 URL&#xff1a;&…...

10-菜刀连接木马

找到了漏洞后&#xff0c;并且上传了木马之后才能使用的两款工具 中国菜刀和冰蝎 想办法获取别人的cookie&#xff0c;cookie中有session-id 一、中国菜刀 1、必须提前已经完成木马植入然后才能使用 2、木马必须是POST请求&#xff0c;参数自定义&#xff0c;在菜刀里给出…...

Unity数据持久化—Json存档

项目需求为&#xff1a; 1.实现存档列表&#xff0c;显示存档截图&#xff0c;可以查看之前保存的所有存档 2.点击存档直接加载到场景 首先&#xff0c;定义两个类&#xff0c;用于声明存档列表和存档所需要的List [System.Serializable] public class SaveData {//存储目标…...

基于SSM的在线学习系统的设计与实现(论文+源码)_kaic

基于SSM的在线学习系统的设计与实现 摘要 随着信息互联网购物的飞速发展&#xff0c;一般企业都去创建属于自己的管理系统。本文介绍了在线学习系统的开发全过程。通过分析企业对于在线学习系统的需求&#xff0c;创建了一个计算机管理在线学习系统的方案。文章介绍了在线学习系…...

数据库SQL语言实战(二)

目录 检索查询 题目一 题目二 题目三 题目四 题目五 题目六 题目七 题目八 题目九&#xff08;本篇最难的题目&#xff09; 分析 实现&#xff08;两种方式&#xff09; 模板 总结 检索查询 按照要求查找数据库中的数据 题目一 找出没有选修任何课程的学…...

idea错误地commit后如何处理

如果你想使用命令行重新初始化 Git 仓库&#xff0c;可以按照以下步骤进行&#xff1a; 删除该项目的.git文件夹 打开命令行终端。 切换到项目所在的目录&#xff0c;使用 cd 命令。 在项目目录下运行以下命令来重新初始化 Git 仓库 git init这将在当前目录下创建一个新的 Git …...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

(二)TensorRT-LLM | 模型导出(v0.20.0rc3)

0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述&#xff0c;后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作&#xff0c;其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

PAN/FPN

import torch import torch.nn as nn import torch.nn.functional as F import mathclass LowResQueryHighResKVAttention(nn.Module):"""方案 1: 低分辨率特征 (Query) 查询高分辨率特征 (Key, Value).输出分辨率与低分辨率输入相同。"""def __…...

【C++进阶篇】智能指针

C内存管理终极指南&#xff1a;智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

【Linux系统】Linux环境变量:系统配置的隐形指挥官

。# Linux系列 文章目录 前言一、环境变量的概念二、常见的环境变量三、环境变量特点及其相关指令3.1 环境变量的全局性3.2、环境变量的生命周期 四、环境变量的组织方式五、C语言对环境变量的操作5.1 设置环境变量&#xff1a;setenv5.2 删除环境变量:unsetenv5.3 遍历所有环境…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事&#xff0c;必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后&#xff0c;我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集&#xff0c;就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落&#xff0c;一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延&#xff0c;滚滚浓烟弥漫开来&#xff0c;周围群众的生命财产安全受到严重威胁。就在这千钧一发之际&#xff0c;消防救援队伍迅速行动&#xff0c;而豪越科技消防一体化安全管控平台构建的消防“…...