神经网络一些基础学习和记录(1)
神经网络和深度学习bilibili的吴恩达 和网易的云课堂识别一张图片是不是猫,的二分类 使用逻辑回归。对于一个猫的图片。假如长宽都是64(RGB),那么输入向量就是64*64*3。(x,y)是一个样本 一共有m个样本对于一个给定的特征向量X(图片信息),需要知道Y hat(是否为猫的概率0-1)y是标签。y hat是计算值。就是得到一个 y=f(x)的函数。首先我们假...
神经网络和深度学习
bilibili的吴恩达 和网易的云课堂
识别一张图片是不是猫,的二分类 使用逻辑回归。
对于一个猫的图片。假如长宽都是64(RGB),那么输入向量就是64*64*3。
(x,y)是一个样本 一共有m个样本
对于一个给定的特征向量X(图片信息),需要知道Y hat(是否为猫的概率0-1)
y是标签。y hat是计算值。
就是得到一个 y=f(x)的函数。首先我们假定这个函数是个线性函数。
y hat=wT*x+b
对于二分类。有这个函数得到的y肯定不是位于0-1之前。所以我们对这个假定函数再做个处理,加上sigmod函数
把y值限定在0-1之间。接下来就是去寻找合适的w和b 使得每次代入特征向量x的时候能够得到一个比较准确的y值。
接下来就是如何来计算w以及b。我们用上标来代表每个样本和标签。
1 首先需要定义一个损失函数。用来计算计算值和估计值之前的差距。Loss Function(单个样本)
损失函数值越大,表明真实值和估计值差距很大,我们需要的是损失函数最小
我们可以使用 平方差来估计。L(y hat,y)=1/2(y hat - y )^2。实际上不这么用是因为到时候用梯度下降法可能不太好用。
或者有可能这个损失函数是非凸的,可能找不到最优解。
这里使用L(y hat ,y)= - (y log (y hat) + ( 1 - y ) log ( 1 - y hat ) )
假设用极端准确和极端不准去的值来代入这个函数 ( log 0 不存在,所以取一个非常接近0的值)
y ,y hat = 0,1 - ( 0 log 1 + (1-0) log ( 1 - 1 ) ) = +无穷
y ,y hat = 1,0 +无穷
y ,y hat = 0,0 0
y ,y hat = 1,1 0
所以如果估计值和标签一致,那么损失为0.如果误差很大,那么也会给一个很大的损失值。
2我们再定义一个代价函数。代表所有样本的误差值。
这里我们就用一个平均值来计算吧。
J(w,b)=1/m sigma(from i 1 to n) L(y hat i ,y i)
所以我们需要选择合适的w和b使得J(w,b)最小
首先初始化一个权重。w,b可以取任意值。
采用梯度下降法 下降的方式如下。
w=w- alpha * [ d (j w) / d (w) ]
alpha就是学习速率 [ d (j w) / d (w) ]是在w点的斜率
b也采取这样的形式 迭代 。
更多推荐
所有评论(0)