向量与矩阵:把多字段记录组织成计算
- 把一条记录写成有顺序的向量
- 解释矩阵形状、点积与加权预测
多个输入需要统一顺序
只看积木数量往往不够,体验站还想使用此前练习次数。一条任务记录可以写成向量,也就是按固定顺序排列的一组数。本例约定第一项是积木数量,第二项是此前练习次数,十块、练习两次写成十和二。向量不仅是两个数字并排,还包含顺序、单位和含义。若另一人把练习次数放在第一项,后续加权计算就会错配。开始计算前应写出字段顺序,让每个位置都对应明确的现实属性。
点积是对应相乘再相加
设权重向量为零点五和负一,表示每块积木增加半分钟、每次此前练习减少一分钟。把输入向量十和二与权重对应相乘,得到五与负二,再相加为三;这种对应相乘后求和的操作叫点积。若另有两分钟固定项,预测总用时是五分钟。负权重并不是负用时,而是某个输入对总预测的减少作用。固定项可以单独保留,也可以给输入向量增加一个恒为一的位置,但初学时分开写更容易看清含义。
矩阵把多条记录堆在一起
把三条输入分别写成十和二、十二和一、八和零,按行排成矩阵。它有三行两列,形状写作三乘二:三行代表三次尝试,两列代表两个特征。用同一个两项权重计算三行,结果分别为三、五、四,再加固定两分钟得到五、七、六。矩阵乘法在这里就是把相同加权规则批量应用到多条记录。不是任意两个矩阵都能相乘,本例每行有两个位置,因此权重必须也有对应的两个位置,内部维度需要匹配。
距离之前先考虑尺度
向量还可以用来比较任务相似程度,但数值尺度会影响距离。积木数从八到二十变化十几,练习次数可能只从零到三;若直接计算位置差,积木数量可能天然占据更多影响。把分钟改成秒也会放大这一维,虽然实际内容没变。缩放是把不同尺度调整到更可比较的范围,不意味着抹掉单位,也不一定适合所有模型。应从训练数据确定缩放规则,并原样应用到其他集合,避免用测试分布反过来决定输入处理。
数字化不意味着含义可以忽略
任务类型桥梁和塔楼可以编码,但若用一和二直接计算距离,就默认类别间有数值顺序及差距,这通常没有依据。独热编码会为每个类别建立一个位置,例如桥梁为一和零,塔楼为零和一,表示是否属于该类。它只是常见方案,不代表任何类别都必须这样编码。矩阵让计算高效,数据字典让计算有意义,两者缺一不可。看到模型接受某个形状的数组时,仍应核对每列意义、缺失处理、类别规则和预测时点。
本节要点
- 向量位置必须与字段顺序一一对应
- 点积是对应相乘再相加
- 矩阵形状、单位和编码共同决定计算含义
动手练习:用三行矩阵手算加权用时
- 写输入矩阵三行分别为十和二、十二和一、八和零
- 标注第一列积木数、第二列此前练习次数
- 用权重零点五、负一分别计算三行点积
- 每行再加固定两分钟
- 把第一行字段交换,说明为什么必须连权重一起调整
自查清单
- 形状与字段顺序明确
- 三项输出五、七、六正确
- 解释交换顺序导致错配
先自己做,再查看参考答案
输入矩阵形状是三行两列,三条记录共享相同字段顺序。第一行点积为十乘零点五加二乘负一,等于三;第二行是六减一,等于五;第三行是四加零,等于四。加固定两分钟后,预计用时分别为五、七、六分钟。负一权重表示每次此前练习减少模型预测的一分钟,不意味着实际一定如此。若第一行交换为二和十,仍使用原权重就会错误地把练习次数当积木数;需要同步交换权重和字段说明,保证每个数值仍乘到对应特征的系数。