暴打教科书之吴恩达deeplearning.ai:神经网络——举个很简单的人脸识别例子

目录

先了解下图片的构成

大致步骤

其它的一些有趣的地方

在不同数据集上的表现


在上一节我们了解了有关神经网络与逻辑回归的的例子,从而知道了神经网络的大致框架,今天我们举一个人脸识别的例子。

先了解下图片的构成

首先,我们给出一张图片作为输入:

假设这张照片的分辨率为1000x1000像素(也可以称作是1000x1000的矩阵),我们先了解这是什么意思:
将这张照片分为1000*1000个小正方体,每个小正方体由一个0-255之间的数字代表,代表这个格子的亮度

如果你希望得到这些像素的亮度值,并将它们展开成向量,最终得到一个列表或者向量(这将包含100,000个数据,因为1000*1000),所以现在的问题是你能否训练一个神经网络模型,使得其能够将百万像素值的特征向量作为输入,并输出图片之中人的身份。

大致步骤

那么,步骤应该很明显了,结合上一节所了解的神经网络构成,我们可以知道大致步骤:

第一步,将图片变为一个特征向量

第二步,将特征向量输入到你设计的隐藏层之中(当然,可以设计多层隐藏层,然后每层的激活值层层传递)

第三步,将你最终得到的激活值传入输出层,并且得到你要的值(例如她是某某某的概率)

用图形表示差不多是这样:

点点关注不迷路ヾ(≧▽≦*)o

其它的一些有趣的地方

有趣的事情是,如果你希望看看每个隐藏层的激活值,比如,第一个隐藏层,你大概率会看到这样子的:

这可以说明,第一个神经元正在寻找一些低垂直线之类的东东,第二个神经元在寻找类似定向线或者定向边缘之类的东东,第三个神经元在寻找一条线之类的东东。所以在神经元的最早层中,神经网络大都尝试在寻找一些非常短的线或者边缘。

如果你寻找下一个隐藏层,你大概率会发现上一步的那些线条组合到了一起,目的是寻找一些关于脸的部分:

而到下一个隐藏层的时候,神经元以及能够聚合出一些面部了(vokal好害怕,像伪人);

最后再通过获得的这些面部尝试判断人物身份。

神经网络的神奇之处在于,没有人告诉它第一步第二步第三步该做什么,但是它可以自己学习并且在每层的特征感知器自动组合。也可以看出,每一层的激活值图像覆盖范围是越来越大的,这也意味着每层的激活值实际上对应着图像中不同大小的区域。

点点关注不迷路ヾ(≧▽≦*)o

在不同数据集上的表现

让我们看看不同的数据集在这个神经网络上的表现如何:

例如汽车。你可以发现,神经网络仍然在第一步获取了一些线条,第二层组成了一些部分,第三层形成了一些汽车,详细的就不啰嗦了:

在下面的章节中,我们将了解如何亲手创建自己的神经网络啦!

点点关注不迷路ヾ(≧▽≦*)o

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江安的猪猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值