深度学习学习笔记(一)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

本文主要是对于深度学习相关内容的学习笔记


提示:以下是本篇文章正文内容,下面案例可供参考

一、神经网络与深度学习

1.1 什么是神经网络

ReLu(修正线性单元)
大致图像如下所示
在这里插入图片描述由房价预测的例子,我们可能能够得到如下的神经网络
在这里插入图片描述

1.2 神经网络与监督学习

监督学习 给定的数据集中带有相应的标签。

监督学习的部分应用
1.在线广告(标准神经网络)
2.机器视觉(卷积神经网络 CNN)
3.语音识别 (循环神经网络 RNN)
4.机器翻译 (RNN)
5.无人驾驶技术 (混合神经网络)

标准神经网络
在这里插入图片描述
卷积神经网络(多用于图像数据)
在这里插入图片描述
递归神经网络(RNN)
在这里插入图片描述

结构化数据 structured Data
非结构化数据 Unstructured Data (音频,图像,文本)

对于不同数据量下,各个算法的表现如下
在这里插入图片描述
Relu能够比sigmoid函数使得梯度下降算法运行的更快。

二、神经网络基础

2.1 二分类问题

神经网络中的部分记号
一般将输入作为如下规定即X的维度为(n*m)
在这里插入图片描述

2.2 Logistic Regression

这部分内容具体可见 机器学习
此时算法给出对应分类的概率。
在Logistic 中,采用Sigmoid 函数,来使得对应的值介于0-1。

2.2.1 代价函数

此处采用误差均方来做代价函数将无法得到一个凸函数。(会存在多个局部最优值)
在这里我们定义对应的代价函数如下

在这里插入图片描述

2.2.2 Gradient Descent (梯度下降)

在这里插入图片描述
通过计算导数来进行相关参数的更新(需要设置学习率)

通过链式求导法则,来对每个变量w进行求微分,然后得到对应的更新方差,如上所示。
同时由于计算量的问题,我们可以采用vectorization来加速算法的运行速率。

补充 np.dot(w,x) =w*x

python 的广播
a.sum(axis=0) 竖直相加

2.2.3 代价函数的简要分析

通过对于二分类问题中的两种情况进行合并,得到如下的公式
在这里插入图片描述我们在这里取log函数,因为要以最大概率取预测,所以要最大化上述,由于log函数的特性,使得最大化log函数,即为最大化上式。
最后需要添加负号是因为在逻辑回归中,我们需要最小化损失函数。

对于m个样本也是如此。
损失函数跟对数形式的似然函数很像,只是在前面乘以1/m。最大似然估计的方法要求logL(p )的最大值,损失函数在其前面加上负号,就是求最小值,这个跟损失函数的特性刚好吻合。

补充 最大似然估计总体而言是让总体分布尽量与样本的分布趋同,就是总体的分布与样本分布具有最大的相似性,然后再来求取分布中的参数theta。

具体可参考该博文 logistic代价函数详解

2.3 向量化

对于logistic 回归的向量化表示如下

在这里插入图片描述

三、浅层神经网络

3.1 神经网络概述

简单的神经网络模型如下
在这里插入图片描述我们通过一层层的计算来得到最后的预测值,然后通过梯度下降来降低我们的代价函数。(反向传播)

3.2 神经网络的表示

我们认为神经网络包括了输入层,隐藏层和输出层。(一般不将输入层看做layer 1)

部分标记如下
在这里插入图片描述

3.3 神经网络的计算

主要的计算步骤如下
在这里插入图片描述同样为了计算的效率,我们需要引入向量化
在这里插入图片描述
对于多样本而言

通过矩阵的方式来进行向量化,具体如下
在这里插入图片描述其他的类似。

3.4 激活函数

几个不同的激活函数如下
在这里插入图片描述一般二分类问题的输出使用sigmoid
否则都是用Relu或者leaky Relu

补充 如果在神经网络中不使用非线性激活函数,而是线性激活函数时(恒等激励函数),会导致无论你的神经网络有多少层隐藏层,都只是在计算一个线性函数,没有任何隐藏层的标准Logistic回归是一样的。

3.5 梯度下降

我们在这里假设解决二分类问题,由此我们的代价函数与logistic回归相同。
同样我们需要计算以下公式
在这里插入图片描述具体的公式如下
在这里插入图片描述

补充 keepdims 保持矩阵的维度,防止出现秩为1的矩阵。

(次梯度?)

3.6 解析方向传播

神经网络的计算中,与逻辑回归十分类似,但中间会有多层的计算。

dz2=a[2]-y
dw2=dz2a[1].T
db2=dz2
z[2]=w[2].T
a[1]+b[2]
a[1]=g[z1]
dy/dz1=dy/dz2dz2/dz1=w[2].Tdz2*g’(z[1])

3.7 随机初始化

对于逻辑回归,将权重都初始化为0是可行的,但如果对于神经网络,如果将权重都初始化为0,会导致梯度下降不起作用。
这主要在于,如果权重相同,会导致得到的隐含单元完全相同,即他们完全对称,此时也就会得到相同的计算函数,因此无论经过多少次迭代,隐含单元仍旧计算相同的函数,故而使用超过一个隐含单元没有任何意义。

补充 一般而言,我们倾向于初始化为很小的随机数,此时会导致梯度下降的速度较快,学习的速度也较快。

对于tanh激活函数,由于他的数据以0为中心,因此导数值更高,具有更强的梯度。

四、深层神经网络(Deep Neural Networks)

4.1 深度神经网络

一般而言神经网络的层数如下定义,从左到右,由0开始定义,即输入层为第0层。
对于神经网络隐含层的数量,我们看做是另一个可以自由选择大小的超参数,通过在交叉验证数据上评估来进行选择。

4.2 前向传播

类似于浅层神经网络的前向传播,深度神经网络的对应步骤如下
在这里插入图片描述对于不同z的计算可以使用一个显示的for loop来完成。

4.3 算法的细节描述

4.3.1 减少bug的技巧

仔细核对算法中矩阵的维度。
w的维度是(下一层的维数,前一层的维数)
b的维度是(下一层的维数,1)

4.3.2 使用深度表示的原因

1.深度神经网络的这许多隐藏层中,较早的前几层能学习一些低层次的简单特征,等到后几层,就能把简单的特征结合起来,去探测更加复杂的东西。

2.深层的网络隐藏单元数量相对较少,隐藏层数目较多,如果浅层的网络想要达到同样的计算结果则需要指数级增长的单元数量才能达到。

4.4 反向传播

在这里插入图片描述类似于之前的浅层神经网络的反向传播
具体步骤如下
在这里插入图片描述经过向量化后,公式如下
在这里插入图片描述

补充 超参数,需要人工选择,同时控制了参数如w,b的值的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值