[机器学习]深度学习初学者大疑问之nn.Linear(a,b)到底代表什么?

背景

nn.Linear()到底是在做什么? 得到了什么

举例说明

net = nn.Sequential(
		#第一层
        nn.Linear(5, 3),
        nn.ReLU(),
        #第二层
        nn.Linear(3, 2),
        nn.ReLU(),
		#第三层(输出层)
        nn.Linear(2, 1)
        )

上面是一个神经网络模型架构的代码,nn.Sequential()指的是,调用pytorch.nn类下的Sequential序列化方法进行模型搭建. 模型中按照顺序,包括了nn.Linear()全链接层和前两层的激活函数nn.RuLU(), 在nn.Sequential中,模型就像是搭积木一样,一层一层的堆叠.
我们用可视化工具来展示上面这个模型的样子:
http://playground.tensorflow.org/
在这里插入图片描述
nn.Linear(5, 3) 这句话,代表了网络的第一层,它有5个输入和3个输出.
在这里插入图片描述
什么意思? 初学者看到这里就蒙圈了!!! 什么乱七八糟的,这些线是什么,? 我看不懂, 深度学习太难了.

其实不用着急,只要静下心来,集合公式你就很好理解了.

首先,左边的在这里插入图片描述
这五个,代表的是样本的特征! 5个特征,就说明样本有五维 x = ( x 1 , x 2 , x 3 , x 4 , x 5 ) x=(x_1,x_2,x_3,x_4,x_5) x=(x1,x2,x3,x4,x5).

那如何从五个特征变成3个特征呢?
在这里插入图片描述
通过矩阵运算的知识,我们可以直接的想到下面的公式:
[ x 1 , x 2 , x 3 , x 4 , x 5 ] 1 × 5 × W 5 × 3 = [ x n e w 1 , x n e w 2 , x n e w 3 ] [x_1,x_2,x_3,x_4,x_5]_{1\times5} \times W_{5\times3}=[x_{new1},x_{new2},x_{new3}] [x1,x2,x3,x4,x5]1×5×W5×3=[xnew1,xnew2,xnew3]
这很容易想到,那么nn.Linear(5,3)这句话的目的,就是生成一个 W 5 × 3 来对特征的维度进行变换 W_{5\times3}来对特征的维度进行变换 W5×3来对特征的维度进行变换
那么对应到图像上W到底表示什么呢? 其实表示的就是中间这些线.
我们举个例子来看一下:
W = [ w 11 w 12 w 13 w 21 w 22 w 23 w 31 w 32 w 33 w 41 w 42 w 43 w 51 w 52 w 53 ] (2) W= \begin{bmatrix} w_{11} & w_{12} & w_{13} \\ w_{21} & w_{22} & w_{23} \\ w_{31} & w_{32} & w_{33}\\ w_{41} & w_{42} & w_{43}\\ w_{51} & w_{52} & w_{53} \end{bmatrix} \tag{2} W= w11w21w31w41w51w12w22w32w42w52w13w23w33w43w53 (2)
这个矩阵中的第一行,其实就代表右输入的第一个特征出发,到输出的三个神经元上的线. 如下图所示
在这里插入图片描述
一个神经元有三条线,五个就是5*3,因此就构成一个矩阵 W 5 × 3 W_{5\times3} W5×3,同时图像和W之间也11对应起来了.

这下子后面的nn.Linear()也就好理解了. 很简单了吧!!!

  • 12
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值