深度学习之线性模型与神经网络

本文介绍了深度学习中的线性模型与神经网络。线性模型通过矩阵乘法实现输入到输出的映射,而神经网络通过引入非线性激活函数和多层结构增强模型表达能力。激活函数包括sigmoid、tanh、ReLU等,当前推荐使用ReLU。神经网络的深度和宽度分别指层数和隐含层神经元数量。文中还提供了线性模型和神经网络的代码实现。
摘要由CSDN通过智能技术生成

深度学习之线性模型与神经网络

神经网络是对线性模型的升级,使之能对线性不可分的数据集达到好的分类效果。

在线性模型中,利用矩阵乘法得到由图像像素到分值向量的映射,图像的像素被拉伸成一个输入行向量,参数是矩阵,输出是分值向量,其维数是类别的数量。
相比于线性模型,神经网络的核心是引入非线性激活函数和多层结构。

1. 非线性激活函数

  • sigmoid 激活函数
  • tanh 激活函数
  • ReLU 激活函数
  • Leaky ReLU 激活函数
  • PReLU 激活函数
  • ELU 激活函数

在同一个网络中一般使用同一种激活函数,而不混合使用多种激活函数
在目前的实践中,推荐使用 ReLU 激活函数。
tanh理论上不如ReLU, 不推荐使用tanh

2. 多层结构

每次线性变换的输出向量都需要进行非线性变换。注意:最后一次的线性变换不需要进行非线性变换,因为最后的输出y多用于表示分值(分类),可以是任意的实数值,或者是实数值的目标值的回归。

例如:三次变换的公式为:
h1=f(xW1) h2=f(h1W2) y=h2W3

  • 在神经网络术语中, x是输入层, y称为输出层, 中间变换层h1和h2称为隐含层,非线性函数f称为激活函数。
  • 存在多少次线性变换,就称为多少层神经网络,所以上面的网络是三层网络。
  • 网络的深度是网络的层数。
  • 隐含层向量的维数称为网络宽度。
  • 向量元素称为神经元。

3. 代码实现

3.1 线性模型

s1=x1W+b
s2=x2W+b
...
sn=xnW+b
得到
S=XW+B
每个样本的分值向量组成分值矩阵S的一行,每个样本属性向量组成样本属性矩阵X的一行。矩阵X也称为数据矩阵,偏置矩阵B的每行都是偏置向量b, W为输入各向量对应的权重,都一样。

代码: 线性模型(定义)

import numpy as np

D=784 # 数据维度
K=10 # 类别数
N=128 # 样本数量

X=np.random.rand(N,D) # 数据矩阵
W=0.01*np.random.randn(D,K) 
b=n
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值