深度学习和神经网络——第二周笔记

来源:互联网 发布:mackeeper说我mac中毒 编辑:程序博客网 时间:2024/05/18 13:24

逻辑回归的损失函数:
J(θ)=-(ylogy^+(1-y)log(1-y^)) ,(这里省略了连加求和,事实上这是loss function)
当y=1时,J(θ)=-logy^,为了使得J(θ)更接近0,我们需要使得y^更接近于1,由于y^是在sigmoid函数作用之后得来的,它最大不会超过1,所以我们需要使y^尽可能的大。
同理,y=0时,J(θ)=-log(1-y^),所以为了使得J(θ)更接近0,我们需要使得y^更接近0,所以,我们需要让y^尽可能的小。

loss function损失函数是衡量单一训练样例的效果
cost function成本函数用于衡量参数w和b在全部训练集上的效果

那么如何使得成本函数变的更小呢,这里就需要提到梯度下降算法,由于我们的成本函数是一个凸函数(这也是我们为什么使用它而放弃使用1/2(y-y^)^2的原因),所以梯度下降算法会有很好的效果。

这里我们需要抛弃机器学习中J(θ)的设定,改为J(w,b),为什么这么做呢,我们可以更直观的理解“梯度下降算法”,梯度下降算法是如何使得J变小呢? 这里我们需要明白,w和b是如何变小的,当w和b变小J自然变小了,w:=w-αdJ/dw, b:=b-αdJ/db,这里我们就明白了,为什么J是变小的。(其实这里应该使用偏导符号 ∂,因为函数J有两个以上的变量,但是有点难打,所以理解就好)。

为何要向量化,向量化的好处是什么?
在python中,若不将w、x等向量化,那么需要进行大量循环操作,这无疑会减慢速度,例如对z=wx+b来说:
for i int range(n-x)
z+=wi*xi
z+=b
这样的代码是不好的代码 ,而作为对比
numpy .dot函数
z=np.dot(w,x)+b

对比

阅读全文
0 0
原创粉丝点击