神经网络基础(一)

简介: 神经网络基础(一)

学习目标



  • 目标
  • 知道逻辑回归的算法计算输出、损失函数
  • 知道导数的计算图
  • 知道逻辑回归的梯度下降算法
  • 知道多样本的向量计算


  • 应用
  • 应用完成向量化运算
  • 应用完成一个单神经元神经网络的结构


1.2.1 Logistic回归



1.2.1.1 Logistic回归


逻辑回归是一个主要用于二分分类类的算法。那么逻辑回归是给定一个xx , 输出一个该样本属于1对应类别的预测概率\hat{y}=P(y=1|x)y^=P(y=1∣x)。


Logistic 回归中使用的参数如下:


  • 输入的特征向量:x \in R^{n_x} , xx∈Rnx,x是一个 n_xnx维的特征数量,用于训练的标签:y \in 0,1y∈0,1
  • 参数:权重:w \in R^{n_x}w∈Rnx, 偏置:b \in Rb∈R
  • 输出预测结果:\hat{y} = \sigma(w^Tx+b)=\sigma(w_1x_1+w_2x_2+...+b)=\sigma(\theta^Tx)y^=σ(wTx+b)=σ(w1x1+w2x2+...+b)=σ(θTx)
  • Sigmoid 函数: s = \sigma(w^Tx+b) = \sigma(z) = \frac{1}{1+e^{-z}}s=σ(wTx+b)=σ(z)=1+e−z1
  • 如果zz的结果非常大,那么S的结果接近于1
  • 如果zz的结果较小或者是非常大的负数,那么S的结果接近于0


image.png


e^{-z}e−z的函数如下


image.png



例如:


image.png


1.2.1.2 逻辑回归损失函数


损失函数(loss function)用于衡量预测结果与真实值之间的误差。最简单的损失函数定义方式为平方差损失:


L(\hat{y},y) = \frac{1}{2}(\hat{y}-y)^2L(y^,y)=21(y^−y)2


逻辑回归一般使用L(\hat{y},y) = -(y\log\hat{y})-(1-y)\log(1-\hat{y})L(y^,y)=−(ylogy^)−(1−y)log(1−y^)


该式子的理解:


  • 如果y=1,损失为- \log\hat{y}−logy^,那么要想损失越小,\hat{y}y^的值必须越大,即越趋近于或者等于1


  • 如果y=0,损失为1\log(1-\hat{y})1log(1−y^),那么要想损失越小,那么\hat{y}y^的值越小,即趋近于或者等于0


损失函数是在单个训练样本中定义的,它衡量了在单个训练样本上的表现。代价函数(cost function)衡量的是在全体训练样本上的表现,即衡量参数 w 和 b 的效果,所有训练样本的损失平均值


J(w,b) = \frac{1}{m}\sum_{i=1}^mL(\hat{y}^{(i)},y^{(i)})J(w,b)=m1∑i=1mL(y^(i),y(i))


1.2.2 梯度下降算法



目的:使损失函数的值找到最小值


方式:梯度下降


函数的梯度(gradient)指出了函数的最陡增长方向。梯度的方向走,函数增长得就越快。那么按梯度的负方向走,函数值自然就降低得最快了。模型的训练目标即是寻找合适的 w 与 b 以最小化代价函数值。假设 w 与 b 都是一维实数,那么可以得到如下的 J 关于 w 与 b 的图:


image.png


可以看到,成本函数 J 是一个凸函数,与非凸函数的区别在于其不含有多个局部最低。


参数w和b的更新公式为:


w := w - \alpha\frac{dJ(w, b)}{dw}w:=w−αdwdJ(w,b),b := b - \alpha\frac{dJ(w, b)}{db}b:=b−αdbdJ(w,b)


注:其中 α 表示学习速率,即每次更新的 w 的步伐长度。当 w 大于最优解 w′ 时,导数大于 0,那么 w 就会向更小的方向更新。反之当 w 小于最优解 w′ 时,导数小于 0,那么 w 就会向更大的方向更新。迭代直到收敛。


通过平面来理解梯度下降过程


image.png

目录
相关文章
|
2天前
|
机器学习/深度学习 人工智能 自然语言处理
|
6月前
|
机器学习/深度学习 存储 人工智能
神经网络
3.效果 与神经元模型不同,感知器中的权值是通过训练得到的。因此,根据以前的知识我们知道,感知器类似一个逻辑回归模型,可以做线性分类任务。 我们可以用决策分界来形象的表达分类的效果。决策分界就是在二维的数据平面中划出一条直线,当数据的维度是3维的时候,就是划出一个平面,当数据的维度是n维时,就是划出一个n-1维的超平面。 下图显示了在二维平面中划出决策分界的效果,也就是感知器的分类效果。 4.影响 感知器只能做简单的线性分类任务。但是当时的人们热情太过于高涨,并没有人清醒的认识到这点。于是,当人工智能领域的巨擘Minsky指出这点时,事态就发生了变化。 Minsky在1969年出版了一本叫
54 0
|
6月前
|
机器学习/深度学习 算法 自动驾驶
神经网络5
4.训练 下面简单介绍一下两层神经网络的训练。 在Rosenblat提出的感知器模型中,模型中的参数可以被训练,但是使用的方法较为简单,并没有使用目前机器学习中通用的方法,这导致其扩展性与适用性非常有限。从两层神经网络开始,神经网络的研究人员开始使用机器学习相关的技术进行神经网络的训练。例如用大量的数据(1000-10000左右),使用算法进行优化等等,从而使得模型训练可以获得性能与数据利用上的双重优势。 机器学习模型训练的目的,就是使得参数尽可能的与真实的模型逼近。具体做法是这样的。首先给所有参数赋上随机值。我们使用这些随机生成的参数值,来预测训练数据中的样本。样本的预测目标为yp,真实目标
43 0
|
9月前
|
机器学习/深度学习 存储 算法
神经网络基础
神经网络基础
|
11月前
|
机器学习/深度学习 人工智能 PyTorch
【Pytorch神经网络理论篇】 13 深层卷积神经网络介绍+池化操作+深层卷积神经网络实战
ceil_mode - 如果等于True,计算输出信号大小的时候,会使用向上取整,代替默认的向下取整的操作
143 0
|
11月前
|
机器学习/深度学习 人工智能 PyTorch
【Pytorch神经网络理论篇】 09 神经网络模块中的损失函数
根据损失值,使用链式反向求导的方法,依次计算出模型中每个参数/权重的梯度
150 0
|
11月前
|
机器学习/深度学习 人工智能 算法
【Pytorch神经网络理论篇】 20 神经网络中的注意力机制
在pytorch-janet项目中,JANET类的实例化参数与torch.nn.LSTM类完全一致,可以直接替换。如果要将LSTM模型替换成JANET,那么需要如下3步实现。
208 0
|
机器学习/深度学习
三、深层神经网络
三、深层神经网络
三、深层神经网络
|
机器学习/深度学习 存储 算法
神经网络如何学习的?
神经网络如何学习的?
79 0
神经网络如何学习的?