第53章 显卡根本不是用来玩游戏的!(1 / 2)
老板说:「这卡算是卡皇级别的,这玩意打游戏效果非常好,你拿回去试试,如果不喜欢,拆下来退给我也行。」
苏舟看着配置单上的数字,心里默默地算了一笔帐。
整套下来五千一百块,减去旧机回收和三百块优惠,实际付四千二百二十块,手里还能剩一千八百一十块。
「成交。」苏舟爽快地说。
老板干活很利索,拆包丶装机丶走线丶理线丶装系统丶导旧电脑数据,一气呵成。
苏舟就站在旁边看着,偶尔递个螺丝刀,两人有一搭没一搭地聊着。
装好之后点亮测试,BIOS界面跳出来的那一刻,苏舟的眼睛亮了。
到家的时候已经是下午两点。
苏舟把新主机连上显示器和键盘,按下电源键,风扇转起来的声音都不一样了,旧电脑开机像拖拉机启动,这台听着根本没什么声音。
心情大好的苏舟装完开发环境后,闭上眼睛,在脑海中把整个神经网络的架构从头到尾过了一遍。
罗森布拉特给的红包在这一刻发挥了最大的作用。
苏舟脑子里面出现了一个从输入到输出的完整信息流动过程,每一层感知器接收信号,处理信号,传递信号,都像人类大脑中神经元的层层递进。
他打开编辑器,开始写代码搭建最基础的感知器模型。
这是罗森布拉特当年的起点,也是一切神经网络的根基。
一个感知器本质上就是一个函数,接收多个输入,乘以各自的权重,求和,再通过一个激活函数决定是否激发。
就像人脑中的一个神经元,电信号进来,强度够了就放电,不够就沉默。
苏舟用休学期间学到的C语言写了一个最简单的感知器,输入是两个数,输出是0或1。
跑了一下,能用,但毫无意义,一个感知器连复杂一点的运算都解决不了。
现在他需要把感知器叠起来。
单个神经元什么也干不了,但几十亿个神经元连在一起就成了人脑。
同理,单个感知器没用,但把成百上千个感知器排成层,层与层之间全连接,信息从输入层流向隐藏层再流向输出层,这就是多层感知器,也就是最基本的神经网络。
这个过程需要大量的矩阵运算。
每一层的输出都是上一层输出乘以权重矩阵再加偏置,然后过激活函数。
苏舟在纸上推了一遍矩阵,确认没问题后,开始编码。
莱布尼茨的万象归析技能在这里帮了大忙。
矩阵运算的本质是线性变换,线性变换的本质是空间映射。
苏舟不需要死记硬背公式,他能凭直觉想像数据的处理过程。
网络搭好了,但权重是随机初始化的,输出全是垃圾。
怎么让网络学习呢?
答案是反向传播算法,先算输出和正确答案之间的误差,然后把这个误差从输出层往回传,逐层计算每个权重对误差的贡献,最后按贡献大小调整权重。
这里就是微积分大展身手的地方了。
反向传播的核心是链式求导,也就是一层套一层的偏导数。
这东西写在教科书上能让研究生抓头发抓秃,但在苏舟眼里,链式法则就像一条河流倒着流,水从下游往上游涌,每经过一个分叉口就按比例分流,最终每一滴水都能追溯到它对水位涨落的贡献。
三重技能叠加之下,代码写得异常顺利。
到晚上八点,苏舟已经搭好了一个三层全连接神经网络,输入层784个节点,对应28×28像素的手写数字图片,隐藏层128个节点,输出层10个节点,对应0到9十个数字。
他从网上下载了手写数字数据集,六万张训练图片,一万张测试图片,灌进去,按下回车。
屏幕上的数字开始滚动。
↑返回顶部↑