了解深度学习(一)

2022/1/30 23:11:23

本文主要是介绍了解深度学习(一),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、logistic回归

        

已知输入x,参数w和b,预测出y帽的值,以此来表示预测事件的概率。其中sigmoid函数为激活函数。

损失函数是在单个训练样本中定义的用以衡量算法的运行情况,用来表示预测值y帽与y实际值有多接近的函数,而成本函数是衡量算法在全体训练样本上的表现,一般为所有样本的损失函数的总额除以样本数量。

logistic回归可以被看为一个很小的神经网络。

二、梯度下降法

梯度下降法用来训练得到使成本函数尽可能小的参数w和b

更新参数使成本函数持续往下降最快的方向走

 如上图,我们需要调整w和b来使最后的损失函数达到最小,其中我们需要计算损失函数的导数,往前传递计算a的倒数、z的导数,最后得到dw、db,更新公式为w=w-学习率乘以dw,b同理。

三、向量化

        在训练大数据集时,深度学习算法变现才更加优越,完成向量化使运行代码花费时间减少变成了一个关键。

例:

         分别尝试两种方法对随机的百万维度的数组进行处理,然后输出处理结果和时间,比较可以发现向量化所花费的时间远远小于使用for循环的版本,多次实验后仍是如此,因此当数据集十分庞大的时候,向量化成为了处理数据的最佳手段。

        在logistic中向量化,把数据堆叠成一个向量进行处理可同时处理多个训练样本,如:z=np.dot(w^T,X)+b    其中X为多个训练样本x堆叠起来的向量,最后+b会将其转化为多维的向量再相加,称为广播。

Z=np.dot(w^T,X)+b;A=sigmoid(Z);dZ=A-Y;dw=(1/m)*X*dZ^T;db=(1/m)np.sum(dZ);

w=w-学习率乘以dw;b=b-学习率乘以db;

这样完成了一次logistic回归的梯度下降的一次迭代并没有使用for循环,然而需要多次迭代处理让需要使用for循环。

四、神经网络

这是一个只有一个隐藏层的神经网络,x1、x2、x3为输入层,中间为隐藏层,最后单个圆圈为输出层。

如图将第一层隐藏层输出的数据作为a^[1]输入下一层隐藏层,多层加工将数据处理到满足我们的要求。

五、激活函数

         如果没有激活函数,无论你的神经网络有多少层,一直在做的只是计算线性激活函数,将无法对复杂问题深入计算。

        四种激活函数,(1)sigmoid函数,一般只用于输出层,我们希望预测结果在0-1之间,显然sigmoid比较合理;(2)tanh函数,在各方面显然都比sigmoid函数更为优越,但是有共同的缺点,当Z非常大或者非常小的时候,函数斜率接近于0,这样会拖累梯度下降算法;(3)ReLU函数,最受欢迎的激活函数,修正线性单元,缺点是Z小于0时斜率为0;(4)带测漏的ReLU函数,在0左侧有一个平缓的斜率(0.01),它们共同的优点是,对于很多Z空间激活函数的斜率与0差得很远,所以在平常神经网络训练中使用ReLU函数学习速度比其它函数快得多。



这篇关于了解深度学习(一)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程