吴恩达讲解:经典部分-逻辑回归-反向传播算法
来源:互联网 发布:mac多余账户删不了 编辑:程序博客网 时间:2024/05/18 01:28
假设有1个样本,其中每个样本中的特征为2个,分别为X1,X2
z=w^Tx+b
a=sigmoid(z ) 预测概率
成本函数为L=-(y*loga+(1-y)*log(1-a))
反向更新:
w1:=w1-learn_rate*dw1
w2:=w2-learn_rate*dw2
b:=b-learn_rate*db
其中dw1,dw2,db 分别是L(a,y)的导数
剩下的任务就是求上面三个变量的导数了
过程省略
dw1=x1*dz
dw2=x2*dz
db=dz
其中dz=a-y
接下来,我们利用上面的原理对m个样本进行梯度下降算法
刚开始令所有变量为0
L=0,dw1=0,dw2=0,db=0
for i in m:
z(i)=w^Tx(i)+b
a(i)=1/(1+e^z(i))
L+=-(y(i)*loga(i)+(1-y(i))*log(1-a(i)) #累加所有损失和变化量
dw1+=x1(i)*dz(i)
dw2+=x2(i)*dz(i)
db+=dz(i)
L/=m dw1/=m dw2/=m db/=m #求每个变量的均值
w1:=w1-learn_rate*dw1 #最后更新每个参数
w2:=w2-learn_rate*dw2
b:=b--learn_rate*db
这只是针对一个样本的例子,如果需要用到多个样本,就需要写两个循环,外循环遍历特征。内循环累加各个变量。
所以 我们可是使用python or matlab进行批量的矩阵计算,这种速度效率比for 循环是高的
进行一个向量化改进:
L=0,dw1=0,dw2=0,db=0 #向量化W=np.zeros((m,1))
for i in m:
z(i)=w^Tx(i)+b
a(i)=1/(1+e^z(i))
L+=-(y(i)*loga(i)+(1-y(i))*log(1-a(i)) #累加所有损失和变化量
dw1+=x1(i)*dz(i) #向量化 dw+=x(i)*dz(i)
dw2+=x2(i)*dz(i)
db+=dz(i)
L/=m dw1/=m dw2/=m db/=m #求每个变量的均值 向量化dw/=m
w1:=w1-learn_rate*dw1 #最后更新每个参数
w2:=w2-learn_rate*dw2
b:=b--learn_rate*db
阅读全文
0 0
- 吴恩达讲解:经典部分-逻辑回归-反向传播算法
- 经典反向传播算法公式详细推导
- 机器学习经典算法-人工神经网络之反向传播算法
- 反向传播BP算法
- BP反向传播算法
- 反向传播BP算法
- 反向传播BP算法
- 反向传播BP算法
- 反向传播算法
- 反向传播算法
- 神经网络-反向传播算法
- 反向传播算法
- 反向传播算法
- 反向传播算法
- 反向传播BP算法
- BP反向传播算法
- backpropagation反向传播算法
- 反向传播BP算法
- Java整理笔记之引用类型的参数传值
- POJ2485 Highways
- C语言小程序4--致新手
- Python时间处理之time模块
- 广播开线程为什么不可取
- 吴恩达讲解:经典部分-逻辑回归-反向传播算法
- 排序二叉树,平衡二叉树和红黑树的概念以及相关的操作讲解
- 15存储过程
- [bzoj 3231--SDOI2008]递归数列
- MySQL binlog group commit--commit stage
- Python距离计算
- Linux kernel(内核)
- 3997: [TJOI2015]组合数学
- Android4.4上下如何根据uri获取文件的真是路径