了解深度学习(一)
作者:互联网
一、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函数学习速度比其它函数快得多。
标签:函数,sigmoid,学习,神经网络,了解,训练样本,深度,dw,激活 来源: https://blog.csdn.net/m0_62022370/article/details/122755306