【AiLearning】test1: 具有神经网络思维的Logistic回归

在吴恩达老师DL系列课程的学习过程中,跟随做的一些小练习,在看懂别人代码基础上,整理的一些小笔记。

源代码参考:https://blog.youkuaiyun.com/u013733326/article/details/79639509

其中,有一行代码当时不明白为什么Y*np.log(A)要用点乘*而不用矩阵乘法numpy.dot()

cost = (- 1 / m) * np.sum(Y * np.log(A) + (1 - Y) * (np.log(1 - A)))

在分析Y和A的维度之后,得出的确应该用点乘 *的结论

因为Y的维度为(1,209),而A的维度也为(1,209),无法用矩阵乘法相乘,会报错。

import numpy as np
a = np.arange(1,5).reshape(1,4)
print(a)
print(a.shape)
b = np.arange(5,9).reshape(4,1)
print(b)

c = np.dot(a,b)  #矩阵乘法,维度(1,4)*(4,1),返回结果维度(1,1)
print(c)
d = a*b          #点乘,维度(1,4)*(4,1),返回结果维度(4,4)
print(d)

e = np.arange(1,5)
print(e)
f = np.arange(5,9)
print(f)

g = np.dot(e,f)   #矩阵乘法,维度(1,)*(1,),返回结果维度( )
print(g)
h = e*f           #点乘,维度(1,)*(1,),返回结果维度(1,)
print(h)

i = np.arange(1,5).reshape(1,4)
print(i)
j = np.arange(5,9).reshape(1,4)
print(j)
                  #矩阵乘法,维度(1,4)*(1,4),返回结果报错
k = i*j           #点乘,维度(1,4)*(1,4),返回结果维度(1,4)
print(k)
[[1 2 3 4]]  #a
(1, 4)       #a.shape
[[5]
 [6]
 [7]
 [8]]        #b
[[70]]       #c:矩阵乘法,维度(1,4)*(4,1),返回结果维度(1,1)
[[ 5 10 15 20]
 [ 6 12 18 24]
 [ 7 14 21 28]
 [ 8 16 24 32]]   #d:点乘,维度(1,4)*(4,1),返回结果维度(4,4)
[1 2 3 4]    #e
[5 6 7 8]    #f
70           #g:矩阵乘法,维度(1,)*(1,),返回结果维度( )
[ 5 12 21 32]#h:点乘,维度(1,)*(1,),返回结果维度(1,)
[[1 2 3 4]]  #i
[[5 6 7 8]]  #j
[[ 5 12 21 32]]#k:点乘,维度(1,4)*(1,4),返回结果维度(1,4)
               #error:矩阵乘法,维度(1,4)*(1,4),返回结果报错

整体思路梳理

具有神经网络思维的Logistic回归

搭建一个能够**【识别猫】** 的简单的神经网络

  • numpy :是用Python进行科学计算的基本软件包。
  • h5py:是与H5文件中存储的数据集进行交互的常用软件包。
  • matplotlib:是一个著名的库,用于在Python中绘制图表。
  • lr_utils :在本文的资料包里,一个加载资料包里面的数据的简单功能的库。

 

步骤一:从.H5中加载图像,train_set_x_orig , train_set_y , test_set_x_orig , test_set_y

x代表图像,y代表标签;x是一个维度为(m_、、

train,num_px,num_px,3)的数组;y是一个(1,m_train)的数组。

 

步骤二:将图像矩阵train_set_x_orig进行flatten降维,变为(m_train,num_px*num_px*3)·T的二维矩阵。降维后将图像矩阵标准化,除以255。

 

步骤三:建立神经网络

构建Sigmoid()激活函数

构建initialize_with_zeros()进行初始化

构建propagate()前向传播计算costs,后向传播计算逻辑参数dw(相对于w的损失梯度),db(相对于b的损失梯度)

构建optimize()渐变下降更新参数,返回:

        params  - 包含权重w和偏差b的字典

        grads  - 包含权重和偏差相对于成本函数的梯度的字典

        成本 - 优化期间计算的所有成本列表,将用于绘制学习曲线。

构建predict()使用学习逻辑回归参数logistic(w,b)预测标签是0还是1

 

主要是学习逻辑参数w,b

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值