深度学习Lecture 1 神经元、输入层、激活项、隐藏层、输出层及多层感知器

一、神经元与大脑(Neurons and the brain)

神经网络最初被创建的想法:模拟人体大脑的思维模式

神经网络应用领域:NLP, CV等等

大脑神经元通过脉冲将输出发送至其它神经元。变成其他神经元的输入。

所以神经网络的本质就是一个将输入变成输出

神经网络的好处:对于数据集较大时,使用神经网络来训练模型的话,性能就会强很多,也就是更快。

二、神经元、输入层、激活项、隐藏层、输出层及多层感知器

通过一个需求预测的例子来理解神经网络的构成和过程

预测某个产品是否会畅销

已收集到的信息(特征):T恤的价格(price)、运输成本(shipping cost)、特定t恤的价格(marketing)和面料的质量(material)

输入的特征x是t恤的价格,也就是x = price。

如果选用sigmoid作为逻辑回归的激活函数,那它的值我们设置为a,也就是activation(激活),实际上激活是一个神经科学术语。也就是说,逻辑回归产生的值我们称之为a,这里可以看做大脑中单个神经元的简化模型。所以先输出价格x, 然后代入逻辑回归的式子,计算得出a。

也就是这件t恤畅销的概率。

a的定义:指的是一个神经元向下游的其他神经元发送高输出的数量

而要建立一个神经网络,只需要把一堆神经元连接起来,或放在一起。

因为在考虑一件t恤是否畅销时,我们一般会考虑几个条件:

1. affordability(能不能负担得起)也就是price+shipping cost

2. awareness(品牌知名度,也就是t恤的营销能力),那就是marketing

3. perceived quality(人们感知到的质量)也就是price+material

考虑到这三个条件后,我们要将这三个神经元的输出(比如affordability的神经元的输出是通过把price+shipping cost的函数放入到逻辑回归中的式子后得到的结果)连接到右边的神经元。

然后有另一个逻辑回归单元最终输入这三个数字,并输出这件t恤称为畅销t恤的概率。

所以在神经网络的术语里,我们把这三个神经元组合在一起,称为一层(layer),一层可以有多个神经元。右边的那一层被称为输出层,因为最后一个神经元的输出就是整个神经网络预测的输出概率。这三个神经元(也就是afforaablity, awareness 和 perceived quality)我们统称为激活项(activations)。也就是说,某个输出是前面那层神经元的激活。

目前的问题:

这些神经元我们要一个个看过去,要知道它会从前一层接收到什么。但是如果我正在构建一个大型神经网络,就要有大量的工作要做,还要自己决定把哪些神经元和哪些特征作为输入。实际上,神经网络的实现方式是每个神经元都在某一层,比如中间的这一层。神经元可以访问每一个特征,从上一层的每一个值,从输入层的每一个值。而且,因为我们会根据自己的感知去选择特征,而忽略了那些可能相关的特征。

所以,为了进一步简化关于这个神经网络的符号和描述,可以把这四个输入特征写成向量x。然后把输入层看作是由四个特征组成的特征向量x,这个特征向量被输入到中间层(也就是afforaablity, awareness 和 perceived quality),计算出三个激活值分别对应这三个。把这三个看出一个向量输入到最终的神经元,得出概率。

所以这就是神经网络,总共会有好几层,每层输入一个向量,再输出另一个向量到下一个神经元。一般会叫输入层,隐藏层(也就是中间层)和输出层。

为什么中间层要叫隐藏层呢?因为数据会告诉你正确的输入和正确的输出,而无法在训练集中看到中间输出的值。本质上来说,其实隐藏层的作用就是自动提取更加好的特征(自己学习自己的特征),如然后送入逻辑回归中进行计算,从而更容易做出正确的决策。

所以神经网络的优点在于,你不需要明确决定输入什么特征,神经网络可以自己计算出需要用到的特征(相当于自动化的特征工程),这就是它强大的地方。

而神经网络结构的问题就是,我们要有多少个隐藏层,每个隐藏层中要有多少个神经元。因为隐藏层数的多少和每层隐藏单元(神经元)的多少都会对学习算法的性能产生影响。

顺便提一句,这种有多层的神经网络也被较为多层感知器(multilayer perception)

三、通过一个计算机视觉的例子来看神经网络的应用

如果想训练人脸识别的话,可能想要训练一个神经网络来接收图片作为输入,并输出图片中人物的身份。

每个图片是以像素来看大小的(pixels)

比如1000pixels的图片,在计算机里就是1000*1000的网格,而像素强度值/像素亮度值一般从0到255,也就是每个格子的值都是0-255的某一个值。

所以人脸识别大致的过程就是这样:

隐藏层在做一些什么呢?

第一个隐藏层可能以图中最小的网格(可能是一个短小的边)为特征输入,然后输出 

第二个隐藏层的输入可能是几个网格的集合,如何输出

第三个隐藏层的输入可能是多个网格(比如眼睛、鼻子嘴巴这些)

最后,检测这张脸与不同面部轮廓的复合程度。

神经网络是自动可以做这些步骤的。

所以有点像从从小到大。从细节到宏观。

四、神经网络层

学习如何构建一层神经元

注意:如果看到某个向量的右上角有方括号,比如:【1】、【2】就代表这是第几层

而a【2】表示第二层的输出值(激活)

在得到最后的结果后,比如是0.84,那可以自己选择是否用二元预测,也就是1或0来记录预测结果的分类。通过设置阈值即可。

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

qq030928

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

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

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

打赏作者

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

抵扣说明:

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

余额充值