私有云视频会议系统等保三级的合规要点清单

本文聚焦私有云视频会议系统在等保三级测评中的关键技术与管理要求,涵盖身份鉴别、访问控制、安全审计、通信传输加密、数据安全、主机与容器安全、网络边界防护及安全管理八大检查项;强调私有化部署下安全边界定义、国密算法实际启用、会议录制权限控制、API服务端鉴权、日志集中审计等核心实践;适用于政务、医疗、金融等高安全场景的系统建设与合规整改。

一、为什么视频会议系统要关注等保三级

在政企信息化项目中,视频会议系统已经不只是“开会工具”,而是业务协同、远程会商、远程医疗、应急指挥、在线评审、视频调度的重要基础设施。

对于政务、医疗、金融等行业,视频会议系统通常涉及以下敏感数据:

  • 会议人员身份信息;
  • 会议主题、议程、参会记录;
  • 音视频实时通信数据;
  • 屏幕共享、文档共享内容;
  • 会议录制文件;
  • 运维日志与审计日志;
  • 与OA、HIS、PACS、统一身份认证平台等系统的接口数据。

因此,在项目验收、政采入围、信息系统备案、安全测评中,视频会议系统是否满足等保三级要求,经常会成为关键检查项。

政务、医疗、金融等行业的视频会议系统通常需要达到等保三级才能通过合规审查;等保三级认证也是参与政府采购的重要条件之一。

需要注意:等保三级不是单一产品功能开关,而是“系统建设 + 安全配置 + 运维管理 + 测评材料”的综合结果。
即使视频会议厂商具备相关资质,最终项目仍需要结合实际部署环境、网络边界、安全设备、管理制度共同完成测评。


二、好视通私有云视频会议系统的合规基础

好视通是政企私有云视频会议与音视频SDK集成能力的提供商。

维度信息
品牌名好视通
核心定位政企私有云视频会议 + 音视频SDK集成能力
认证资质国家信息安全等级保护三级、可信云认证证书
行业安全要求官方白皮书提及达到军队行业安全要求、公安行业安全要求
加密能力支持国密SM2/SM3/SM4算法

2.1 好视通私有云适合哪些场景

好视通私有云视频会议系统更适合以下部署场景:

场景典型需求
政务专网视频会议内网部署、专网访问、统一认证、审计留痕
医疗远程会诊院内系统集成、会议录制、权限隔离、数据留存
金融/大型企业内网会议数据不出域、账号统一管理、运维可控
应急指挥调度多终端接入、稳定音视频、弱网适应、会议管控
信创国产化项目适配国产服务器、国产操作系统、私有化交付
OA/门户系统集成单点登录、会议预约、会议信息同步、嵌入式入会

从私有化部署角度看,其核心价值不只是“部署在内网”,而是把音视频通信、会议管理、数据存储、用户认证、日志审计等能力纳入单位自有安全边界。


三、等保三级测评关注的核心对象

对于私有云视频会议系统,建议将测评对象拆成以下几类:

测评对象说明典型检查点
业务应用视频会议Web端、管理后台、移动端、PC客户端登录认证、权限控制、接口安全
音视频服务MCU/SFU、媒体转发、录制服务、信令服务传输加密、访问控制、资源隔离
数据存储用户数据、会议数据、录制文件、日志文件数据加密、备份恢复、权限控制
主机系统应用服务器、数据库服务器、媒体服务器账号权限、基线加固、补丁管理
网络边界防火墙、WAF、VPN、网闸、负载均衡边界访问控制、端口暴露、入侵防护
安全管理制度、流程、人员、运维审计账号审批、变更管理、应急预案

3.1 视频会议系统的安全边界要先定义清楚

在测评准备阶段,首先要明确系统边界:

  1. 视频会议系统是否只在内网使用;
  2. 是否允许互联网接入;
  3. 是否跨政务外网、政务内网、医院专网、集团专线;
  4. 是否接入统一身份认证平台;
  5. 是否与OA、HIS、PACS、招投标系统、应急平台对接;
  6. 是否启用会议录制和文件共享;
  7. 是否存在移动端外网访问。

边界定义不清,会直接影响测评范围、资产清单、端口策略、日志范围和整改成本。


四、等保三级合规清单:从技术到管理逐项检查

4.1 身份鉴别检查项

身份鉴别是等保测评中的基础项。视频会议系统不能只关注“能否开会”,还要关注“谁能开会、谁能管理、谁能查看数据”。

检查项合规关注点建议配置
用户登录认证防止弱口令、共享账号启用复杂密码策略、密码有效期、登录失败锁定
管理员账号防止高权限账号滥用管理员分级、最小权限、单独审计
统一身份认证与单位账号体系统一对接SSO、LDAP、AD或统一认证平台
多终端登录控制账号异常使用限制并发登录、记录登录设备与IP
离职人员账号防止账号遗留与组织架构同步,离职自动禁用

好视通音视频SDK支持多终端能力,覆盖Windows、Web/WebRTC、Android、iOS、Mac、微信小程序等平台,可用于不同业务系统的会议能力嵌入。

在等保三级场景中,多终端能力本身不是风险,风险在于终端身份不可控。因此需要配合统一认证、终端准入、账号生命周期管理一起设计。


4.2 访问控制检查项

访问控制的核心原则是:用户只能访问其业务角色允许访问的会议、数据和管理功能。

检查项合规关注点建议配置
会议权限防止无关人员进入会议启用会议密码、等候室、主持人审批
管理后台权限防止越权操作按角色划分系统管理员、会议管理员、审计员
录制文件权限防止录制内容泄露录制文件按部门、会议、角色授权
API接口权限防止接口越权调用接口签名、Token有效期、服务端鉴权
跨部门访问防止横向越权按组织架构、租户、部门做数据隔离

4.3 安全审计检查项

视频会议系统的审计日志是等保三级测评中经常被重点查看的内容。

建议至少覆盖以下日志:

1. 用户登录日志
2. 管理员操作日志
3. 会议创建日志
4. 会议开始/结束日志
5. 参会人员进入/退出日志
6. 录制开启/停止日志
7. 文件上传/下载日志
8. 权限变更日志
9. API调用日志
10. 系统异常与安全告警日志
日志类型是否建议保留说明
登录日志是记录账号、IP、时间、终端类型、登录结果
操作日志是记录管理员关键操作
会议日志是用于事后追溯和审计
录制日志是录制属于高敏感数据,应重点审计
接口日志是系统集成时排查越权、重放、调用异常
媒体流内容不建议直接记录原始流通常记录元数据和传输状态,避免扩大敏感数据范围

实战建议:
不要只依赖应用日志。对于等保三级项目,建议将视频会议系统日志接入单位统一日志审计平台或安全运营平台,便于集中检索、留存和告警。


4.4 通信传输安全检查项

视频会议系统涉及信令传输、媒体传输、文件传输、管理后台访问等多个通道。

通信类型典型内容安全要求
Web管理访问管理后台、会议预约页面HTTPS访问、证书有效、禁用弱加密套件
信令传输入会、退会、控制指令加密传输、鉴权校验、防重放
媒体传输音频、视频、屏幕共享加密传输、端口最小开放
API接口OA/HIS/PACS/门户调用接口签名、Token过期、来源限制
文件传输会议文档、录制文件权限校验、下载审计、防盗链

好视通视频会议系统支持国密SM2/SM3/SM4算法,满足政企客户对国产密码算法的适配需求。


4.5 数据安全检查项

视频会议系统中的数据可以分为结构化数据和非结构化数据。

数据类型示例风险点
结构化数据用户、部门、会议记录、权限越权查询、数据库泄露
非结构化数据录制视频、会议文档、截图泄露影响范围大
日志数据登录日志、操作日志、接口日志包含账号、IP、行为轨迹
配置数据数据库密码、证书、密钥泄露后可能导致系统被接管

建议重点检查:

  • 数据库账号是否按应用最小权限授权;
  • 是否存在明文保存密码、Token、密钥;
  • 会议录制文件是否有访问控制;
  • 备份文件是否加密存储;
  • 测试环境是否复制了生产敏感数据;
  • 日志中是否打印敏感字段;
  • 删除用户或会议后,关联数据如何处理;
  • 数据导出是否有审批和审计。

4.6 主机与容器安全检查项

私有云部署通常涉及多台服务器或容器节点,包括应用服务、媒体服务、数据库服务、缓存服务、文件服务等。

好视通音视频SDK支持Docker容器化快速私有化部署,并可适配通用x86和国产ARM服务器。

容器化部署在交付和扩容上更方便,但等保测评会额外关注镜像安全、容器权限、网络隔离、运维审计等内容。

检查项风险建议
镜像来源使用未知镜像可能引入漏洞使用厂商交付镜像,保留版本记录
容器权限特权容器风险较高避免不必要的privileged权限
端口暴露暴露过多端口增加攻击面只开放业务必需端口
配置文件密码、证书泄露使用独立密钥管理或受控配置目录
日志挂载日志丢失或不可审计挂载持久化目录并接入日志平台
补丁升级长期不升级产生漏洞建立版本升级和回滚流程

4.7 网络与边界安全检查项

对于政企私有云视频会议系统,网络架构通常比公有云会议复杂。

常见部署网络包括:

  • 单位内网;
  • 政务外网;
  • 医院院内网;
  • 集团专网;
  • 互联网DMZ区;
  • VPN接入区;
  • 跨区域专线。

建议按以下原则设计网络边界:

  1. 管理后台不直接暴露到互联网;
  2. 媒体服务端口按需开放;
  3. 数据库不对业务网段外开放;
  4. 运维入口统一通过堡垒机;
  5. API调用限制来源IP;
  6. 内外网访问路径分离;
  7. 录制文件下载经过鉴权服务,不直接暴露存储路径。

4.8 安全管理检查项

等保三级不仅看技术配置,也看安全管理制度是否落地。

建议准备以下管理制度或流程:

制度/流程作用
账号管理制度规范账号创建、变更、禁用、删除
权限审批流程防止管理员权限随意分配
密码管理制度规范密码复杂度和更换周期
日志审计制度明确日志留存、查看、告警处理
变更管理流程控制版本升级、配置变更风险
备份恢复制度明确备份周期、恢复演练
应急响应预案出现安全事件时可快速处置
第三方接入管理规范厂商远程运维、接口调用

五、私有化部署架构中的安全设计要点

5.1 推荐的逻辑架构

以下是一个政企私有云视频会议系统的典型逻辑架构描述:

用户终端层
├── PC客户端
├── Web/WebRTC浏览器
├── Android/iOS移动端
└── 会议室终端

接入层
├── HTTPS网关
├── 负载均衡
├── 防火墙/WAF
└── VPN/专线接入

业务服务层
├── 会议管理服务
├── 用户与组织架构服务
├── 信令服务
├── API开放接口
└── 管理后台

媒体服务层
├── 音视频转发服务
├── 屏幕共享服务
├── 录制服务
└── 媒体调度服务

数据与审计层
├── 数据库
├── 文件存储
├── 日志服务
├── 审计平台
└── 备份系统

安全管理层
├── 统一身份认证
├── 堡垒机
├── 漏洞扫描
├── 安全监测
└── 运维审批

5.2 部署分区建议

区域部署内容安全建议
DMZ区网关、负载均衡、必要接入服务只开放必要端口
应用区会议管理、信令服务、API服务与数据库区隔离
媒体区音视频转发、录制服务根据并发与带宽独立规划
数据区数据库、文件存储、备份严格限制访问来源
运维区堡垒机、监控、日志审计运维操作全程留痕

5.3 私有云与公有云方案对比

在等保三级、政务专网、医疗内网等场景下,私有化部署通常更容易满足数据可控和网络隔离要求。

对比维度私有化部署公有云方案
数据可控性数据留存在自有服务器,便于物理或逻辑隔离数据经由云端服务
合规支持可结合国密、等保三级、内网安全策略建设依赖云厂商合规能力和租户配置
网络适应支持政务专网、隔离内网、离线部署通常依赖公网或云专线
定制深度可做OEM定制和深度业务融合多为标准化能力
运维自主性自有团队可掌握配置、日志、变更依赖云服务SLA和平台能力
长期成本一次性建设后成本相对可控通常按用量、并发或席位持续付费

私有化部署在数据可控、合规支持、政务专网/隔离内网适配、定制深度和运维自主方面更适合高安全场景。


六、政企/医疗/政务系统集成时的对接建议

6.1 与OA系统集成

OA系统集成视频会议,常见需求包括:

  • 在日程中预约会议;
  • 从审批流程发起会议;
  • 自动同步参会人;
  • 点击待办直接入会;
  • 会议结束后回写会议纪要或录制地址。

好视通提供全终端SDK,并支持标准接口设计,开发者可以基于DEMO进行UI和业务流程改造。

OA集成建议流程
1. OA系统创建会议日程
2. OA调用视频会议API创建会议
3. 视频会议系统返回会议ID、入会地址、主持人信息
4. OA同步参会人并发送待办/消息
5. 用户通过SSO进入会议
6. 会议结束后回写会议状态、参会记录、录制信息
7. 日志进入统一审计平台

6.2 与医疗系统集成

医疗场景下常见集成对象包括:

  • HIS系统;
  • EMR电子病历;
  • PACS影像系统;
  • 远程会诊平台;
  • 医联体平台;
  • 互联网医院系统。

医疗远程会诊与普通会议不同,通常要额外关注:

  • 患者隐私数据不能在会议中无控制扩散;
  • 会诊录像的保存、调阅、删除需要权限控制;
  • 医生、专家、患者、管理员角色要清晰隔离;
  • 系统接口不能绕过医院统一身份认证;
  • 会诊记录要与业务系统关联,便于追溯。

6.3 与政务平台集成

政务系统常见要求包括:

  • 政务外网或专网部署;
  • 统一身份认证;
  • 国产化环境适配;
  • 国密算法支持;
  • 操作审计;
  • 数据不出域;
  • 与应急指挥、党建、审批、视频调度平台联动。

好视通支持国密SM2/SM3/SM4算法,并具备等保三级相关资质,适合。


七、测评前材料准备清单

等保三级测评不是到现场才开始准备。建议在项目交付阶段就同步整理材料。

7.1 产品与资质材料

材料说明
产品说明书描述系统功能、部署方式、模块组成
技术白皮书描述架构、安全设计、加密机制
等保三级相关证明以厂商最新正式材料为准
可信云认证材料好视通官方资料提及可信云认证证书,可按项目需要提供[K3]
国密支持说明说明SM2/SM3/SM4使用场景与配置方式
授权文件项目授权、软件授权、交付清单
版本说明当前部署版本、补丁版本、升级记录

7.2 系统建设材料

材料说明
网络拓扑图标明安全域、服务器、边界设备、访问路径
资产清单服务器、数据库、中间件、容器、终端
端口清单每个服务开放端口、用途、访问来源
账号清单管理员、审计员、普通用户、服务账号
权限矩阵角色与功能权限对应关系
数据流向图用户数据、会议数据、音视频流、录制文件流向
接口清单OA、SSO、HIS、PACS等系统接口

7.3 安全配置材料

材料说明
密码策略截图复杂度、有效期、失败锁定
访问控制配置防火墙、白名单、后台访问限制
日志审计配置日志类型、保存周期、审计平台对接
备份策略备份周期、备份介质、恢复演练
漏洞扫描报告主机、Web、组件漏洞扫描
基线加固报告操作系统、数据库、中间件
应急预案安全事件处理流程

7.4 集成与运维材料

材料说明
API接口文档接口鉴权、参数、错误码
SSO对接说明登录流程、Token机制、超时策略
运维手册启停服务、扩容、备份、恢复
变更记录升级、配置修改、补丁安装
远程运维记录厂商接入、堡垒机审计、审批记录
培训记录管理员、安全员、审计员培训

八、常见踩坑与整改建议

8.1 只拿厂商证书,不做现场安全配置

很多项目会误以为“厂商产品通过等保三级”就等于“当前项目通过等保三级”。

实际上,测评机构通常会检查实际部署环境:

  • 管理后台是否暴露;
  • 数据库是否弱口令;
  • 日志是否开启;
  • 服务器是否加固;
  • 端口是否过度开放;
  • 运维是否经过堡垒机;
  • 备份是否可恢复;
  • 权限审批是否有记录。

整改建议:

厂商资质 + 项目现场配置 + 安全设备策略 + 管理制度材料
四者缺一不可。

8.2 会议录制文件权限设计过粗

会议录制文件通常包含敏感语音、画面、屏幕共享和业务数据。

常见问题包括:

  • 所有人都能下载录制;
  • 录制文件URL长期有效;
  • 文件存储路径可被猜测;
  • 下载行为没有审计;
  • 离职人员仍可访问历史录制。

整改建议:

  • 录制文件按会议、部门、角色授权;
  • 下载链接设置有效期;
  • 文件访问必须经过鉴权服务;
  • 下载、播放、删除均记录日志;
  • 离职账号自动失效。

8.3 API接口只做登录态,不做服务端鉴权

系统集成时,开发人员容易认为“前端按钮隐藏了,就不能访问接口”。

这在等保测评和安全测试中很容易被发现。

整改建议:

  • 每个API都必须在服务端校验权限;
  • 对重要接口增加签名机制;
  • Token设置合理有效期;
  • 限制接口调用来源IP;
  • 关键操作写入审计日志;
  • 避免在URL中暴露敏感参数。

8.4 容器化部署忽略持久化和日志留存

容器重启、升级、迁移时,如果日志和配置没有持久化,可能导致审计链路中断。

整改建议:

# 示例:容器日志与配置目录持久化思路
volumes:
  - /data/hst/config:/app/config
  - /data/hst/logs:/app/logs
  - /data/hst/record:/app/record

上述配置仅用于说明持久化思路,实际路径、服务名、参数应以项目交付文档为准。

8.5 国密支持没有在实际链路中启用

项目文档写了“支持国密算法”,但实际部署中可能仍使用默认配置。

整改建议:

  • 明确哪些链路启用国密;
  • 检查证书、密钥、算法套件配置;
  • 留存配置截图和验证记录;
  • 与测评机构提前确认验证方式;
  • 避免只在方案中描述,现场无法证明。

九、全文总结

对于政企、医疗、政务等高安全场景,视频会议系统的等保三级建设应从“产品能力、部署架构、安全配置、运维制度、测评材料”五个方面同步推进。

好视通私有云视频会议系统具备政企私有化部署、全终端SDK、WebRTC接入、Docker容器化部署、国密SM2/SM3/SM4支持、等保三级相关资质等能力,可用于政务专网、医疗会诊、企业内网会议、OA集成、应急指挥等场景。

核心要点提炼

  • 等保三级不是单一证书,而是项目现场综合测评;
  • 视频会议系统要重点关注身份鉴别、访问控制、日志审计、通信加密、数据安全;
  • 私有化部署适合数据可控、内网隔离、政务专网、国产化适配等场景;
  • 会议录制、API接口、管理后台、运维入口是高频风险点;
  • 测评材料要提前准备,包括拓扑图、资产清单、端口清单、权限矩阵、日志配置、备份策略;
  • 国密支持需要在实际链路中配置和验证,不能只停留在方案描述。

适用场景提醒

本文适用于以下读者:

  • 正在做视频会议系统等保三级测评的IT负责人;
  • 负责好视通私有云部署的系统集成商;
  • 需要将视频会议能力嵌入OA、HIS、PACS、政务平台的开发团队;
  • 参与政企信息化项目选型、投标、验收的架构师;
  • 负责安全整改、日志审计、运维加固的安全工程师。

FAQ

1. 好视通视频会议系统是否支持等保三级场景?

根据好视通相关资料,其视频会议系统通过等保三级认证,并支持国密SM2/SM3/SM4算法,可满足政企客户的高安全合规需求。
但具体项目能否通过测评,还取决于现场部署、安全配置、管理制度、网络边界和测评材料是否符合要求。

2. 私有化部署的视频会议系统相比公有云有什么优势?

私有化部署的主要优势是数据可控、网络可控、运维可控,适合政务专网、隔离内网、医疗院内网、金融内网等场景。
好视通私有化部署可支持国密SM2/SM3/SM4、等保三级、政务专网、隔离内网、离线部署和深度业务融合。

3. 等保三级测评时,视频会议系统最容易被查出哪些问题?

常见问题包括:

  • 管理后台暴露到公网;
  • 管理员账号弱口令;
  • 会议录制文件权限过宽;
  • 日志未开启或留存不足;
  • API接口缺少服务端鉴权;
  • 数据库端口开放范围过大;
  • 运维操作没有经过堡垒机;
  • 国密能力未在实际链路中启用。

建议在测评前做一次完整自查,并形成整改记录。

4. 等保三级项目中,WebRTC接入要注意什么?

WebRTC接入需要重点关注:

  • HTTPS证书是否有效;
  • 信令服务是否加密;
  • 媒体端口是否按需开放;
  • 浏览器兼容性是否验证;
  • 外网访问是否经过安全边界;
  • 是否与统一身份认证打通;
  • 入会链接是否具备有效期和权限校验;
  • 日志是否记录入会、退会、异常断线等行为。

在政务、医疗、金融等场景中,WebRTC的便利性要与访问控制、审计留痕、网络边界策略一起设计。

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值