当前位置: 首页 > 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 …...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

Java数值运算常见陷阱与规避方法

整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...

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

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

GitHub 趋势日报 (2025年06月06日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...