聚书轩hbcjlp.com

繁体版 简体版
聚书轩 > 都市小说 > 重生学神有系统 > 第392章 深度卷积神经网络

第392章 深度卷积神经网络(2 / 2)

 推荐阅读: 重生之倾城药后 猎妻计划:老婆,复婚吧! 还你余生不负 未来聊天群 霸道总裁:女人,请负责 我不是克苏鲁 地球人都在为我出谋划策 农门弃妇:带着萌娃好种田 超级纨绔系统 早安,宝贝
最新网址:hbcjlp.com

毕竟在这里工作100个小时,外面只过去大约1个小时……

江寒思考了一会儿,很快就有了大概的思路。

首先,既然是图像识别,那么最适合的模型,自然是卷积神经网络CNN了。

以CNN为基础,打造一个深度学习网络,再进行一番优化,结合一些小技巧,大概率能取得极其优秀的成果。

江寒设想了一个多达十几层的卷积神经网络。

首先是输入层。

输入的图像数据,是n×n×3的RGB彩色图像,所以这一层的数据格式,可以定义为一个三维数组。

接下来是卷积层。

对于卷积神经网络来说,这自然是重中之重。

江寒花费了很大的心血,终于设计出一个全新的结构。

通过反复地卷积、池化和标准化,一步步提取图像的特征……

经过前面这些步骤,需要处理的神经元个数,和输入层相比,已经减少了很多。

接下来,就可以把数据送进全连接层,用softmax函数进行分类了。

最后还要有个输出层,对应1000种分类标签……

确定了大体思路之后,江寒又设计了一下网络的具体结构。

比如,应该有几层卷积层,每一层如何实现……

一般的神经网络里,激活函数主要使用Sigmoid和Tanh(双曲正切)函数。

但这两个函数……

在网络层次较浅时,问题可能还不是很大,网络层次一深,就容易梯度爆炸或者梯度消失。

江寒在研制OCR软件的时候,就发现了这个问题,所以这一次,他准备引入ReLU,作为卷积层的激活函数。

ReLU(RectifiedLinearUnit),一般称作“线性整流函数”,也可以翻译成“修正线性单元”。

这个函数其实很简单,表达式为F(x)=max(0,x)。

当自变量大于0时,它就是一个线性函数,相当于一次函数y=x;

当自变量≤0时,y≡0。

这个函数其实不是什么新鲜东西,只是在机器学习中,以前没人用过罢了。

所以这也算是一点小小的创举……

要说ReLU的好处嘛,那自然是不少的了。

一方面,可以有效缓解梯度消失、梯度爆炸。

并且,还能让梯度下降得更快,有效地提高训练效率。

另一方面,也比较符合仿生学原理。

生物神经细胞的工作模式,就和这个函数差不多……

江寒思考了一下,又在网络的最后几个全连接层中,使用了Dropout方法。

所谓Dropout,就是在前向传导时,以某个概率P,随机忽略部分神经元。

这样做,可以有效地避免过拟合。

在编写池化层时,江寒考虑了一下,使用了重叠的最大池化方法,而没有使用他此前在CNN论文中提到的平均池化。

因为后者有个副作用,容易导致模糊化。

同时,这样做还有另外一些好处。

比如,由于有部分重叠和覆盖,提取出来的特征,往往也会更加丰富……

在编写标准化层的时候,江寒考虑再三,运用了LRN机制,也就是局部响应归一化。

这样做的目的,是让局部神经元的活动,产生某种竞争机制,使得强者愈强、弱者愈弱。

归根结底,是为了提高模型的泛化能力。

为了尽可能加快训练速度,江寒甚至考虑过使用GPU编程。

虽然这个世界的GPU厂商,还没有发明CUDA技术,但硬件条件已经完全具备了。

毕竟从理论上来说,能挖矿的显卡,就能用于大数据计算。

只要编写出合适的驱动和代码,就能利用GPU,来进行大规模并行运算,显着地提高神经网络的训练速度。

可惜的是,单个显卡的显存比较有限,也就是说,可能承载不了太大的人工神经网络。

而这个深度CNN网络……

即使最保守的估计,也需要4~5GB的显存。

这样一来,就必须用两块显卡,交下火才行了……

江寒在虚拟空间中忙碌了几十个小时,终于把这个空前巨大的人工神经网络搭建了起来。

当然,今天是没法开始训练了,只能等到明天再说……

江寒想了想,又买了很多空白图纸,以及一些中性笔,开始草拟论文的初稿。

在这次的比赛中,没啥意外的话,自己这个“深度卷积神经网络”,应该能拿到不错的成绩。

到时候,万一有需要的话,现写论文就显得有点不够从容了。

所以江寒决定,今晚就把这个网络的框架,写成论文,保存起来。

等到训练完成,收集到足够的数据,再稍微修改下,就可以找个合适的时机,投出去了……

章节错误,点此举报(免注册),举报后维护人员会在两分钟内校正章节内容,请耐心等待,并刷新页面。
『加入书签,方便阅读』