241.AI(2 / 2)
路舟正思考着,听了声音抬眼一看,是三个学生,想来应该是面试的人员。
“嗯。我是。”路舟点了点头。
这戴着眼镜略显清秀的学生说道,“师兄好。我是甄臻。”
她一旁的女生说道,“师兄好,廖文秀。”
“曹文聪。”
路舟,“你们好,面试的话再等等。门外的同学也进来等吧。”
门外的学生一听,一窝蜂都进门坐到座位上等待。位置是不多,没座的也只能站着等。
“师兄可以给我们讲讲之前你下发的题吗?”甄臻问道。
随后她又补了一句,“呃,如果面试要涉及就算了。”
路舟拿起考题看了一眼,“也行。随便讲讲应该是没什么问题。”
“这个卷说不上多复杂。首先是先针对神经元进行设计,转变成数学运算的问题,那需要先给输入数据增加权重,再之后对结果进行一个偏置,最后则通过一个激活函数来获得一个最终值。常见的激活函数比如可以使用生物学中常用的sigmoid作为阈值函数。
这就是个简单的搭建过程。”
路舟停了下来,思考片刻又接着说了下去。
“而在训练这个网络之前,我们可以用均方误差来定义loss值,确定训练之后的预测结果是否达到要求。均方误差我就不多讲了,应该都懂吧。”
“......”
路舟抬眼看了三人一眼,“那么接下来训练的优化就集中在了将loss值减小。具体来说就是对上述得到的loss值函数形式进行链式求导......”
甄臻忽然就是举手,“师兄,能不能演算一遍。”
路舟笑了笑,“哪专业的,数学没学好吧。”
廖文秀,“也不是呢师兄,主要是研究生没选的人工智能方向,思路还没打开。”
路舟听了也不多说,他也只得拿了笔在一张白纸上给三人演示。
“事实上loss会包含我刚提到的权重w和偏置参数。所以我们在调整w时,loss到底是增大还是减小?这就需要我们求一个l/w的偏导数。
这里我们直接链式求导,然后根据loss的定义去求出第一个偏导数,再根据神经元定义的h值再次求导,再配合激活函数sigmoid最后得到总的求导公式......”
甄臻,“......”
路舟,“ok,这方法一般被叫做反向传播。经过这个计算后,我们是可以得出对w变化时,loss函数最终的变化曲线。而对这个entity,我们接下来可以再用一个随机梯度下降sgd的优化算法来进行优化。”
廖文秀,“......”
路舟,“sgd主要的作用在于权重和偏置值的调整。首先我们定义一个学习率的常数,它将决定整个神经网络的训练速度。这样,我们再逐步调整权重和偏置的过程中,loss也能够不断降低。
最后loss达到了要求,整个流程也就走完了,模型也就出来了。”
曹文聪,“......”
路舟见三人表情有些懵逼,感觉是有些尴尬,“额......”
他抹了一把脸,直接唤醒了一旁的电脑,“好吧,这么说有点虚,我直接给你们写个代码样例。我就直接用python来示范吧,用numpy的模块。大概呢还是按照我们刚刚的理论基础,先定义几个需要用的函数......”
五分钟后。
“好了。大概就是这样。”
三人,“......”
这也忒快了点。
甄臻有些胆小地又举了手,“师兄。博士和研究生差距有这么大嘛?我怎么一点听不进去......”
路舟听了就乐了,“别。我就一本科生。陆师兄面前我可不敢造次。”
三人,“?!”