研究视频 Research Videos

官方信息技术老师·32 页·深入(追求细节与边界)·0 次浏览·2 天前
计算思维医学研究范式转变边界与盲区

计算与医学研究

看完能讲清计算思维重塑医学研究的三条路径与边界

按 空格/→ 演示下一步

1 / 32 页

全部页面点击任意一页,跳回舞台从这页播放

计算思维医学研究范式转变边界与盲区

计算与医学研究

看完能讲清计算思维重塑医学研究的三条路径与边界

1第 1 页 · 计算与医学研究

医学研究中的计算挑战

上页我们看到计算已经渗透到医学的每个角落。但当一个基因测序仪一天产出20TB数据、医院一天产生上万张影像切片时,挑战的真正面目才浮出水面——海量数据本身成了最难处理的对象。

数据体量爆炸
单次全基因组测序可达数百GB,一所三甲医院年增影像数据量达PB级
模态高度异构
影像、基因序列、电子病历、传感器信号各成体系,难以用同一管线统一处理
存储带宽瓶颈
高速写入与跨节点读取跟不上产出速度,数据常常「写得进、读不出」
算力与时延矛盾
临床场景要求分钟级响应,但模型训练动辄数小时,结果出来时已错过决策窗口
雨季城市的排水管网对应 →医学研究的数据流水线

雨量超过管网容量就会内涝,数据超出算力就只能排队或丢弃

2第 2 页 · 医学研究中的计算挑战

计算工具在医学中的应用

一个医生面前堆着10万张CT影像、一个基因测序仪每天吐出几TB原始碱基——这些'原材料'本身不是知识,必须经过计算工具的层层加工,才能变成可指导决策的发现。

数据预处理
清洗噪声、填补缺失、校正偏差,让数据干净可比
特征与模式识别
从海量变量里提取与疾病真正相关的信号
模型推断与预测
用统计或学习方法建立从输入到结局的映射
验证与临床翻译
检验泛化能力,把数字结果翻译为医学可用的结论
铁矿石对应 →可用的钢材

铁矿石不经提炼只是石头,要筛选→熔炼→锻打才能成钢;数据也要这样一步步加工才能成知识

3第 3 页 · 计算工具在医学中的应用

基因组测序的数据分析流程

把FASTQ原始数据一步步加工成可信的变异位点列表,是计算基因组学的核心流水线。

1
QC质控
用FastQC评估read质量,过滤接头与低质量碱基
2
序列比对
将百万条reads比对到人类参考基因组,建立坐标
3
后处理校正
去PCR重复、局部重比对、碱基质量再校正
4
变异调用
用统计模型识别SNP与Indel,区分真实变异与噪声
5
过滤注释
按人群频率、功能预测、临床数据库筛选并注释
4第 4 页 · 基因组测序的数据分析流程

药物研发的计算模拟

从左到右读:先准备靶点与化合物库两层输入,经粗筛到精算两层过滤,最终把 Top 化合物送上实验台。

图解渲染中…
b2虚拟筛选:用打分函数快速过滤百万级化合物d1分子对接:模拟小分子在蛋白口袋里的结合姿态d2亲和力评分:能量越低,预测结合越稳定
5第 5 页 · 药物研发的计算模拟

随机性的本质

上一节药物模拟动辄跑百万次「随机」采样——但你按下回车那一刻,计算机真的在「随机」选吗?这一页拆穿这件事。

真随机
源自物理世界的不可预测现象:放射性衰变、热噪声
伪随机
确定算法按规则生成序列;看似随机,实则可重现
种子 Seed
伪随机的起始值;种子相同,序列完全一致
科研够用原则
多数研究只需伪随机;可复现性比「真」更重要
真正洗扑克牌对应 →伪随机序列

真洗牌连洗牌人也无法预测;伪随机是暗中排好的牌序,记下顺序即可复现

6第 6 页 · 随机性的本质

伪随机数生成原理

计算机是确定性的机器——给定相同输入,永远吐出相同输出。那临床试验的随机分组、蒙特卡洛模拟的随机抽样,怎么做到「随机」?答案:伪随机数生成器,用确定公式制造看似无规律的数列。

线性同余
递推公式简单,速度极快但周期短
梅森旋转
比特位旋转,周期达 2^19937-1
种子决定一切
同种子必同序列——可复现、非真随机
医学应用
临床随机分组、蒙特卡洛模拟、抽样检验
固定菜谱的厨师对应 →伪随机数生成器

种子如同食材,算法如同菜谱——换食材变菜,但菜谱不变则菜品确定

Xn+1=(aXn+c)modmX_{n+1} = (a \cdot X_n + c) \bmod m
7第 7 页 · 伪随机数生成原理

蒙特卡洛方法

前页我们造出会'扔骰子'的伪随机数——那用这些'数字骰子'能算什么?蒙特卡洛方法给了一个经典答案:扔够多次,答案自己浮现。

核心思想
用大量随机样本的统计结果逼近难以直接求解的真实值
大数定律
样本均值依概率收敛于期望值,是方法的数学根基
收敛速率
误差量级约 σ/√N,精度翻一倍需样本量翻 4 倍
医学应用
药物构象采样、剂量-反应曲线、临床试验蒙特卡洛模拟
在地图上撒米粒对应 →蒙特卡洛求面积

落在某区域内的米粒比例,就是该区域面积占比的近似

abf(x)dxbaNi=1Nf(xi)\int_a^b f(x)\,dx \approx \frac{b-a}{N}\sum_{i=1}^{N} f(x_i)
8第 8 页 · 蒙特卡洛方法

蒙特卡洛积分的计算步骤

用随机抽样反推定积分,几何上就是把点数比例放大成包围盒里的面积。

1
撒随机点
在面积已知的包围盒内,按均匀分布投掷大量随机点。
2
数落入点
逐点判断其是否落在积分区域内,统计命中点数 M。
3
算命中比
用 M 除以总点数 N,得到落入目标区域的频率。
4
乘框面积
把频率乘以包围盒面积 A,得到积分的蒙特卡洛估计。
9第 9 页 · 蒙特卡洛积分的计算步骤

随机算法实战演示

python

用药物浓度曲线演示蒙特卡洛采样与积分估计

代码高亮加载中…

高亮行把上一页的"建模—采样—估计"三步翻译成代码:模型是积分对象,种子保证可复现,均匀采样是核心动作,最后两行分别演示"均值×长度"与"样本比例"两种估计。

10第 10 页 · 随机算法实战演示

随机算法vs确定算法

两者都求真值,但路径不同——一个靠采样,一个靠穷举,根本分歧在速度与精度。

随机算法
  • 通过随机采样逼近真值
  • 高维问题下速度优势明显
  • 结果有统计误差,可控
确定算法
  • 通过确定性推导求精确解
  • 高维时遭遇维度灾难
  • 结果可复现,无随机误差
维度高、求速度、容许小误差 → 随机算法;维度低、需精确、要求可复现 → 确定算法。
11第 11 页 · 随机算法vs确定算法
机器人感知决策自主系统

机器人系统概述

看完你能亲手拆解机器人从感知到执行的全链路闭环

12第 12 页 · 机器人系统概述

机器人传感与数据采集

上一页我们看了机器人系统的整体框架。它凭什么知道自己在哪、手臂转了多少?全靠传感器。

内部本体传感
关节编码器、IMU、电流环——闭着眼也能感知自己姿态
视觉与测距
RGB相机、深度相机、LiDAR把世界变成像素或三维点云
触觉与力觉
触觉阵列、关节扭矩、末端六维力传感器
多模态融合
不只用一种,视觉+IMU+触觉互补,覆盖盲区提升鲁棒性
人体感觉器官对应 →机器人传感器

眼睛→摄像头、内耳前庭→IMU、皮肤→触觉阵列

13第 13 页 · 机器人传感与数据采集

机器人控制系统

传感器告诉你「世界长什么样」,接下来该让电机怎么转?这就到了控制系统登场——是机械地按指令执行,还是根据反馈实时修正?这一步决定了机器人在变数面前能不能「临场应变」。

开环控制
按预设指令执行,不看实际结果,简单但脆弱
闭环控制
持续测量输出,把误差送回输入端持续修正
误差信号
目标值减实际值,告诉系统「还差多少」
PID 控制器
按比例、积分、微分三项合成修正量
蒙眼走路 vs 看路走路对应 →开环 vs 闭环

蒙眼只按记忆迈步对应开环;睁眼随时调整对应闭环

e(t)=r(t)y(t);u(t)=Kpe+Kiedt+Kde˙e(t) = r(t) - y(t);\quad u(t) = K_p e + K_i \int e\,dt + K_d \dot e
14第 14 页 · 机器人控制系统

运动规划的基本步骤

把机器人从起点送到目标,分四步走:先建地图,再找路,再磨平,最后真跑。

1
建模
把连续世界离散成图或采样点
2
搜索
在构型空间里找无碰撞连通路径
3
平滑
把折线变曲线,优化时间与能耗
4
执行
控制器把轨迹转成指令并实时纠偏
15第 15 页 · 运动规划的基本步骤

机器人控制代码演示

python

一个最小可运行的"感知→决策→控制→观测"闭环,机器人沿直线逼近目标。

代码高亮加载中…

L7 感知目标、L11 阈值决策、L15/L16 把任意方向归一化后乘速度×时间推进——即运动规划里"沿梯度走"的最小实现。

16第 16 页 · 机器人控制代码演示

机器人应用案例

从左到右环境开放程度递增,节点代表机器人在不同领域的典型应用,复杂度随位置提升。

图解渲染中…
a1工厂结构化环境,任务与轨迹完全可预编程b1仓储或室内半结构化,需避障与人机共存c1城市道路开放场景,长尾问题最多、决策最难
17第 17 页 · 机器人应用案例

数据库存储架构演进

前面提到机器人、基因组、药物研发都在爆发式产出数据。当数据量从 GB 跨入 TB,传统「一行一个对象」的存储开始吃力——为什么分析查询会越来越慢?

行式存储
一行的所有字段连续存,按行读取;适合频繁读写单条记录的事务型场景
列式存储
一列的所有值连续存,按列读取;适合对少数列做聚合的分析型场景
列式的三大收益
只读需要的列省 IO、同值相邻利于压缩、CPU 可向量化一次处理一批
代价与边界
写入要刷新多列位置反而变贵;全行读比行式更慢;事务场景仍归行式
超市按品类陈列货架对应 →列式存储

同类商品紧挨摆放=同列值连续存;盘点某品类只需沿货架走一次

18第 18 页 · 数据库存储架构演进

列式存储核心原理

行式数据库像一本合订册,每页就是一个人的完整档案;列式存储却把所有人的姓名、年龄、身高分别装进不同抽屉。查询只关心某一列时,列式存储不必翻完全部档案——只拉对应抽屉就行。

列式分块存储
每列单独写入连续数据块(column chunk),块内按行号对齐
同列同类型
一列通常只含一种数据类型,便于 RLE、字典、差值等压缩
列裁剪优化
查询只读所需列的块,跳过无关列,大幅降低 I/O
写入与更新权衡
追加顺序写最友好,单点更新代价高,常配合 LSM 思想
医院病历柜对应 →列式存储

所有病人姓名集中一抽屉、所有血压集中另一抽屉;查血压平均值只需翻一个抽屉

19第 19 页 · 列式存储核心原理

列式vs行式数据库对比

研究视频每秒几十个特征,分析时遍历某一列——列式一定比行式快吗?

行式数据库
  • 一行所有字段连续存于磁盘
  • 单行增删改快,OLTP 首选
  • 取整行只需一次 I/O
列式数据库
  • 一列所有值连续存于磁盘
  • 单行写入慢,OLAP 批量导入快
  • 只读所需列,省去无关字段 I/O
查询某几列做聚合选列式;频繁增删整行记录选行式;混合负载可用 HTAP 或读写分离
20第 20 页 · 列式vs行式数据库对比

列式数据库查询流程

从一条 SQL 出发,看谓词下推与向量化执行在哪个环节发力。

图解渲染中…
a3优化器决定把 WHERE 条件压到扫描层a4只读需要的列,跳过无关列文件a5按 row group 元数据先粗筛a6按 1024 行一批做 SIMD 运算
21第 21 页 · 列式数据库查询流程

列式查询代码演示

python

用 pandas 体验列式存储的三大操作:投影、聚合、过滤

代码高亮加载中…

投影只读必要列、聚合走连续内存、过滤先在列上做谓词下推——这正是列式数据库查询计划的三个核心动作。

22第 22 页 · 列式查询代码演示

列式数据库自测

点击作答

对于只涉及少数几列的分析型查询(如统计某一列的平均值),列式数据库为什么通常比行式数据库更快?

23第 23 页 · 列式数据库自测
计算模拟虚拟世界算法可视化

3D图形学导论

看懂虚拟世界从规则定义到可视化呈现的构建全过程

24第 24 页 · 3D图形学导论

3D坐标与几何变换

上一页我们认识了3D场景的基本元素。这一页要把里面的物体「挪一挪、转一转、变大小」——这正是平移、旋转、缩放三种基本几何变换。

3D坐标系
用(x,y,z)三个数定位空间中的点,三轴两两垂直
平移矩阵
所有点统一加上位移向量,整体移动不变形
旋转矩阵
绕某轴转动,用sin/cos构建正交矩阵,保长度
缩放矩阵
各轴按比例放大缩小,等比时保持形状相似
齐次坐标
升到4维用4×4矩阵,让三种变换统一为乘法
导演指挥演员走位对应 →3D几何变换组合

移动=平移、转身=旋转、远近=缩放,三步连续执行构成完整动作

p=T(t)R(θ)S(s)pp' = T(t) \cdot R(\theta) \cdot S(s) \cdot p
25第 25 页 · 3D坐标与几何变换

投影变换流程

从左到右看:3D 点如何一步步变成屏幕像素。每个方块是一个坐标系,箭头是把它送过去的变换。

图解渲染中…
c1裁剪空间 = 投影矩阵作用后的齐次坐标d1NDC = 归一化设备坐标,范围 [-1,1]³e1屏幕空间 = 像素坐标,含 viewport 变换
26第 26 页 · 投影变换流程

光照与着色模型

投影只决定了「点该出现在屏幕哪里」,但每个点该是什么颜色、亮不亮、要不要反光——这是光照模型的工作。没有光,3D场景就是一张灰色线稿。

Phong 经验模型
把光拆成环境光、漫反射、高光三块叠加,靠经验参数调出效果
PBR 物理渲染
基于微表面理论与能量守恒,材质参数对应真实物理量
核心差异
PBR 用物理约束替代手工调参,不同光照下材质表现一致
油画 vs 照片对应 →Phong vs PBR

油画靠画师经验调配明暗高光,照片记录真实光线的物理作用

I=kaIa+kd(NL)Id+ks(RV)αIsI = k_a I_a + k_d (\vec{N} \cdot \vec{L}) I_d + k_s (\vec{R} \cdot \vec{V})^\alpha I_s
27第 27 页 · 光照与着色模型

渲染管线全流程

本页用流程图展示渲染管线三大阶段——顶点处理→光栅化→片元处理,讲解 GPU 如何把 3D 模型变成屏幕像素。

图解渲染中…
a2对每个顶点做坐标变换与光照初步计算b1把三角形几何转成屏幕上的离散像素c1对每个候选像素计算最终颜色d1显存中等待显示的最终图像缓存
28第 28 页 · 渲染管线全流程

GPU渲染加速

上一页的渲染管线每帧要处理几百万三角形和上亿像素,CPU 串行执行扛不住 60fps。GPU 用并行架构和可编程着色器,把繁重工作拆给数千小核心同时干。

SIMT并行架构
数千核心同指令处理不同数据,吞吐量远超CPU
顶点着色器
对每个顶点并行做MVP变换与光照计算
片元着色器
对每个像素并行计算颜色与纹理采样
显存高带宽
HBM/GDDR带宽达TB/s级,喂饱并行核心
工厂车间对应 →GPU并行架构

上千工位同时做同一步操作,工位数决定并行产能

TframeNpixelsncoresrper_coreT_{\text{frame}} \approx \frac{N_{\text{pixels}}}{n_{\text{cores}} \cdot r_{\text{per\_core}}}
29第 29 页 · GPU渲染加速

光栅化vs光线追踪

实时与真实感的权衡

光栅化vs光线追踪
实时与真实感的权衡
30第 30 页 · 光栅化vs光线追踪

知识点总结

  • 算力延伸认知边界,替代昂贵实验
  • 数据规模倒逼算法与存储升级
  • 随机性可解确定性问题
  • 硬件特性决定软件最优架构
  • 分层抽象让复杂系统可控
延伸主题:深度学习与神经网络高性能计算与并行化科学计算开源生态
31第 31 页 · 知识点总结

深入思考

三个问题,先自己想再翻答案。有些问题没有标准答案。

1列式存储在分析查询上大幅领先行式存储,根本原因仅仅是「连续读取同类数据」吗?还有哪些容易被忽视的设计在起作用?

参考答案不止连续读取。同类数据相似度高带来更好的压缩,向量化批处理对CPU SIMD指令更友好,还有预计算的聚合与索引。连续读取只是必要条件,不是全部原因。

2蒙特卡洛方法用随机采样逼近真实值。即便计算机能产生「真正随机」的数,蒙特卡洛积分的精度极限由什么决定?

参考答案即便样本完美随机,精度仍受采样数N的平方根限制(标准差∝1/√N)。这是统计学的基本极限,与算法或随机数质量无关。想提高精度,只能增加采样量。

3光栅化和光线追踪的取舍,本质上是实时性与真实感的权衡。在医学影像三维可视化或机器人路径仿真中,你会如何选择?

参考答案医学影像可视化交互少、对真实感要求高,更适合光线追踪;机器人路径仿真需要毫秒级实时反馈,光栅化更合适。核心看「实时」与「真实」哪个优先级更高。

32第 32 页 · 深入思考