一. 神经网络简介

目录

1. 神经网络的几个名词

1.1  神经元——最小的神经网络

1.2 逻辑回归模型

1.3  神经网络训练

2. 多层神经网络

2.1 神经网络正向计算/传播

2.2 神经网络反向传播

2.3 神经网络训练的优化

2.3.1 梯度下降法

2.3.2 随机梯度下降法

2.3.3 Mini-Batch梯度下降法

2.3.4 动量梯度下降


1. 神经网络的几个名词

1.1  神经元——最小的神经网络

1.2 二分类逻辑回归模型

神经元——激活函数sigmoid——二分类逻辑斯蒂回归模型

代码详见:https://github.com/crystal30/Deep-learning

cifar-10-batches-py 为数据集

data_introduction.ipytnb 主要是对数据集的查看

neuron_two_class.ipynb 二分类斯蒂回归模型

1.3  多分类逻辑回归模型

神经元——多输出

(1)W从向量扩展为矩阵,输出W*X则变成向量。

(2)多输出神经元——softmax——多分类逻辑斯蒂回归模型

一个输出:

多个输出:

同eg1中:

注:1个神经元(即1个输出)可以分两类,2个神经元(2个输出)可以分三类,n个是神经元(n个输出)可以分为n+1类。

(3) 目标函数

* 衡量对数据的拟合程度

eg2: 单类的例子

(x1, y1) = ([10, 3, 9, 20, ……4], 1)

y1’= Model(x1) = 0.8

Loss = y1 – yi’= 0.2

eg3: 多类的例子

(x1, y1) = ([10, 3, 9, 20, …… 4], 3)

y1’= [0.1, 0.2, 0.25, 0.4, 0.05]

Note: 此处将3通过onehot编码,变为[0,0,0,1,0].

Loss = abs( y-y1’)= abs([0, 0, 0, 1, 0] – [0.1, 0.2, 0.25, 0.4, 0.05])

        = abs([0.1, 0.2, 0.25, 0.6, 0.05]) = 1.2

一般的,我们用“平方差损失”或“交叉熵损失”作为目标函数

交叉熵函数更适合做多分类的损失函数,因为交叉熵本来就表示分布之间的差距。

(4)神经网络的训练

目标:调整参数使模型在训练集上的损失函数最小

训练方法:梯度下降法

*学习率(步长)的影响:

代码详见https://github.com/crystal30/Deep-learning

neuron_multi_class.ipython 多分类回归模型

2. 多层神经网络

代码详见https://github.com/crystal30/Deep-learning

neural_network.ipynb 多层神经网络多分类回归模型

2.1 神经网络正向计算/传播

2.2 神经网络反向传播

损失函数中的w为W(3), x为a21,a22,a23。疑问:为什么损失函数这样写呢?

 此时w为W(2), x为a11,a12,a13。

求导的重要概念:链式法则

2.3 神经网络训练的优化

2.3.1 梯度下降法

  每次都在整个数据集上计算Loss和剃度

         计算量大

         可能内存承载不住

  剃度方向确定的时候,仍然是每次都走一个单位的步长

         速度慢

2.3.2 随机梯度下降法

每次只使用一个样本

2.3.3 Mini-Batch梯度下降法

每次使用小部分数据进行训练

随机梯度下降法和Mini-Batch梯度下降法不足:

局部极值图示如下:

2.3.4 动量梯度下降

动量梯度下降优势:

开始训练时,积累动量,加速训练

局部极值附近震荡时,梯度为0,由于动量,跳出陷阱

梯度改变方向的时候,动量缓解动荡

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值