吴恩达深度学习笔记一:神经网络和深度学习

 

1.神经网络的概念

我们先以一个房产价格预测的数学模型来讲解了神经网络的概念。

首先,给定一些真实房产价格与房子面积的数据,我们想要建立一个函数来对真实数据进行拟合,并且拟合后的函数可以对新的房子面积进行价格预测。

上图中的红色“×”号表示真实数据的位置,我们要用一个线性函数直接去拟合的话,就会出现函数底部进入负值,而我们知道房价是不可能为负的,因此这里使用了Rectified Linear Unit(RLU,矫正线性单元)来进行非线性的拟合,从而得到更好的函数模型。

进一步地,我们可能会考虑到房价不仅与房屋面积有关,还与卧室数量、邮递区号、财富阶级等有关,所以我们可能还会构建更多的函数来综合考虑这些因素,如下图所示:

 

 

通过中间这些隐藏单元(函数模块),我们就可以把输入的数据x转换为预测的输出值y,这样就构建了一个简单的神经网络。

 

2.监督学习

在监督学习中,我们给定一个数据集,并且已经知道正确的输出是什么样的,我们知道输入和输出存在一定关系。

监督学习的问题被分为“回归”和“分类”这两类。在一个“回归”问题中,我们是努力在一个连续的输出中来预测结果,也就是我们努力匹配输入变量到一些连续函数去。而在“分类”问题中,我们是在一些分离的输出中来预测结果,换句话说就是,我们努力把输入变量匹配到不相关的类别中去。

总之,监督学习可以简单理解为:利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练。在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成。监督学习算法是分析该训练数据,并产生一个推断的功能,其可以用于映射出新的实例。一个最佳的方案将允许该算法来正确地决定那些看不见的实例的类标签。

 

3.逻辑回归算法(二分类问题)

逻辑回归假设数据服从伯努利分布。该算法的基本思想是:

对于一个输入实例,先计算该实例各个特征与模型参数的加权和(线性变换),然后将结果输入到sigmoid激活函数中进行计算,得到一个(0,1)区间的预测值,该值表示输入实例为正样本的概率(也可设置一个阈值,若概率大于阈值,则预测为正样本,否则为负样本)。Logistic Regression算法可以对神经网络的输出做二分类的预测,并且通过设立损失函数,进而对原来神经网络的参数进行梯度下降不断更新,从而优化(减小)损失函数的值,最终达到一个更符合真实情况的二分类预测结果。

在逻辑回归中,给定输入x,预测输出,

 

4.向量化计算与广播(broadcasting)

在传统的编程中,我们会使用多个for...loop...循环来进行矩阵(或向量)之间的运算,这样会极大的浪费运算时间以及硬件性能,所以,在科学计算中我们一般采用Numpy这个第三方库,它提供了一系列高效率的计算函数,并且支持直接的向量化计算,且其提供了broadcasting功能,可以自动补齐维度,这在神经网络的传播计算中具有重要作用。

 

5.浅层神经网络

我们通常将隐藏层数量只有1~2层的神经网络称作浅层神经网络,典型的结构如下图所示:

6.深层神经网络

深层神经网络指含有多个隐藏层的神经网络,基本的原理和浅层神经网络类似,但是它增加了隐藏层以及隐藏单元的个数,从而可以对更复杂的函数表达式进行拟合,可以完成更复杂领域的应用。

 

7.反向传播的重要意义

当正向传播的输出层得不到期望的输出值时,则可以取输出与期望的误差的平方和作为目标函数(即损失函数或成本函数),转入反向传播,逐层求出目标函数对各神经元权重值的偏导数,构成目标函数对权值向量的梯度,作为修改权值的依据,神经网络的学习在权值不断更新修改中完成。当误差达到所期望值时,网络学习结束。

 

8.参数和超参数

在神经网络中,需要训练的各个变量一般称为网络的参数,如:权重w, 偏差b等;而一些需要手动调整的变量称作超参数,如:学习率 \alpha、隐藏层数l、每层的单元数n[l],激活函数g()、正反向传播循环次数等,这些超参数会在很大程度上影响训练后权重w和偏差b的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值