[Day 08] 从 tensorflow.keras 开始的 VGG Net 生活 (第一季)

-1. 序

OK,资料分析做完了,
现在要进入演算法的部分,
我们未来几天将从经典卷积神经网路架构中,
寻找适合FER2013资料集的演算法。
最後经由实验挑出最佳的CNN演算法。
在实验结果出来之前,
请让我来介绍一些知名CNN架构吧!

0. 前言

在唐朝,刘禹锡的〈陋室铭〉曾书「山不在高,有仙则名。水不在深,有龙则灵」。
但是,在深度学习的领域应该改为「山就要高,有ResNet则名。水就要深,有VGG则灵」
西元2014年,
〈Very Deep Convolutional Networks for Large-Scale Image Recognition〉横空出世,
当时没有人想到,居然有神经网路可以深到16层,甚至是19层。
它就是VGG Net


1. VGG16 网路架构详细图解

表格中D栏和E栏分别代表VGG16和VGG19的神经网路架构,
可以发现两者架构基本一样,只是VGG19多了3层卷积层。
VGG的架构可以说是十分简单,
但在当时可是一大创新!
相较於AlexNet的成功,
VGG用多个小卷积核取代单一大卷积核的操作看似随意,
但背後的意义却非常有道理。
架构图

1.1 VGG 的优点

  1. 采用两层3x3卷积核取代一层5x5卷积核:
    在同样大小的图片区域(感知视野)中,
    提升了网路的深度,就可以用更复杂的非线性函数去学习,
    而且两层3x3比一层5x5的参数量还少,真是一箭双雕!
  2. 结构简单:
    使用完全相同的结构,组成一个区块(block),
    透过不断叠加相同区块的方式增加网路深度。
    简洁又漂亮!
  3. 模型加深:
    上一个称霸ImageNet影像辨识竞赛的神经网路是AlexNet,深度也就8层。
    但是VGG证实了模型是可以加到19层,并且是可训练成功的!
    开启了往後模型越来越深的先河,(不过发展到最後有点太深了)

1.2 VGG 的缺点

  1. 模型肥大:
    你看看VGG最後的三个全连接层(FC-4096, FC-4096, FC-1000),
    就知道这个模型效率是很差的,参数量高达147M。

未完待续

实作部分请参考明天的文章

参考资料

  1. https://arxiv.org/abs/1409.1556

<<:  [Day23]What's Cryptanalysis?

>>:  Day 23 : 模型分析 TensorFlow Model Analysis (TFMA)

[Python 爬虫这样学,一定是大拇指拉!] DAY26 - 实战演练:多执行绪 - 抓取多个个股日成交资讯

多执行绪(multithreading) 所以我们的多执行绪在程序是怎麽运作呢? 一般情况: 假设 ...

npm

昨天安装好Node.js了!所以今天要介绍的是Node.js里面的一个预设的套件,它叫做npm它有点...

同步与非同步

刚开始学习JavaScript的时候,很单纯的认为所有程序码是逐行执行的,就像看书不都是ㄧ行一行阅读...

【Day 06】C 的资料型态(下)

今天,我们来介绍一下常见的基本型别吧~ 基本型别 - 整数型别 - int int 型态是有正负号的...

[Day 14] 第一主餐 pt.7-一支API,千万request来相见

(好的我知道标题没押韵很虚,我尽力了) 昨天我们终於处理完Database的东东,并且成功用Djan...