Deep Learning 用逻辑回归训练图片的典型步骤.

笔记摘自:https://xienaoban.github.io/posts/59595.html

1. 处理数据

1.1 向量化(Vectorization)

将每张图片的高和宽和RGB展为向量,最终X的shape为 (height*width*3, m) .

1.2 特征归一化(Normalization)

对于一般数据,使用标准化(Standardization)

  • \(X_{scale} = \frac{(X(axis=0) - X.mean(axis=0))}{X.std(axis=0)}​\)
  • z_i = (x_i - mean) / delta , meandelta 代表X的均值和标准差. 最终特征处于[-1, 1]区间.

对于图片, 可直接使用Min-Max Scaling

  • 即将每个特征除以255(每个像素分为R, G, B, 范围在0~255)使得值处于[0, 1].

2. 初始化参数

一般将 wb 随机选择.

3. 梯度下降(Gradient descent)

根据 w , b 和训练集,来训练数据.

  • 需要设定 迭代次数学习率 .

以下为大循环(迭代次数)中内容:

3.1 计算代价函数

对于\(x^{(i)} \in X\), 有

\[z^{(i)} = w^Tx^{(i)} + b
\]
\[ a^{(i)} = \hat{y}^{(i)} = sigmod(z^{(i)}) = \sigma(z^{(i)}) = \frac{1}{1 + e^{-z^{(i)}}}
\]
\[损失函数: {L}(a^{(i)}, y^{(i)}) = {L}(\hat{y}^{(i)}, y^{(i)}) = - y^{(i)} \log(a^{(i)}) - (1-y^{(i)} ) \log(1-a^{(i)})
\]
\[A = (a^{(1)}, a^{(2)}, ... , a^{(m-1)}, a^{(m)})
= \sigma(w^TX+b)
= \frac{1}{1+e^{-(w^TX+b)}}
\]
\[代价函数: J(w,b) = -\frac{1}{m} \sum^{m}_{i=1} \mathcal{L}(\hat{y}^{(i)}, y^{(i)})
= -\frac{1}{m} \sum^{m}_{i=1} (y^{(i)} log(\hat{y}^{(i)}) + (1-y^{(i)}) log(1-\hat{y}^{(i)}))
\]
# 激活函数
A = sigmoid(w.T.dot(X) + b)
# 代价函数
cost = -np.sum(Y * np.log(A) + (1-Y) * np.log(1 - A)) / m

3.2 计算反向传播的梯度

即:对 \(J = -\dfrac{1}{m} \sum L(a, y)\) 计算导数,即对\({L}(a, y)\) 计算导数,以下求导,均省略上标。

求:\(\dfrac{\partial J}{\partial w}\) 和 $\dfrac{\partial J}{\partial b} $ (dw 和 db)

\[\dfrac{\partial L}{\partial a}
= \dfrac{\partial L(a, y)}{\partial a}
= -\frac{y}{a} + \frac{1-y}{1-a}
\]
\[\dfrac{da}{dz}
= (\frac{1}{1 + e^{-z}})'
= \dfrac{e^{-z}}{(1+e^{-z})^2}
= \dfrac{1}{1+e^{-z}} - \dfrac{1}{(1+e^{-z})^2}
= a-a^2
= a · (1-a)
\]
\[\dfrac{\partial L}{\partial z}
= \dfrac{\partial L}{\partial a} \dfrac{da}{dz}
= (-\dfrac{y}{a} + \dfrac{1-y}{1-a}) · a · (1-a)
= a - y
\]
\[\dfrac{\partial L}{\partial w}
= \dfrac{\partial L}{\partial z} \dfrac{\partial z}{\partial w}
= (a-y) · x
\]
\[\dfrac{\partial L}{\partial b}
= \dfrac{\partial L}{\partial z} \dfrac{\partial z}{\partial b}
= a-y
\]

根据 \(J = -\dfrac{1}{m} \sum L(a, y)​\) 最终可得:

\[\dfrac{\partial J}{\partial w}
= \dfrac{\partial J}{\partial a} \dfrac{\partial a}{\partial w}
= \dfrac{1}{m} X(A-Y)^T
\]
\[\dfrac{\partial J}{\partial b} = \dfrac{1}{m} \sum^{m}_{i=1} (a^{(i)} - y^{(i)})
\]
dw = X.dot((A - Y).T) / m
db = np.sum(A - Y) / m

3.3 更新 w , b

w = w - learning_rate * dw
b = b - learning_rate * db

4. 预测测试集

  • 使用训练出来的 w , b , 对测试集使用 y_pred = sigmoid(wx+b) , 计算得预测的概率

  • 对其取整, 例如大于0.7则判定为 '是', 否则为'否'.

5. 实例:实现一个图像识别算法

https://www.cnblogs.com/douzujun/p/10267165.html

Coursera Deep Learning笔记 逻辑回归典型的训练过程的更多相关文章

  1. Coursera Deep Learning笔记 改善深层神经网络:超参数调试 正则化以及梯度相关

    笔记:Andrew Ng's Deeping Learning视频 参考:https://xienaoban.github.io/posts/41302.html 参考:https://blog.cs ...

  2. Coursera Deep Learning笔记 改善深层神经网络:超参数调试 Batch归一化 Softmax

    摘抄:https://xienaoban.github.io/posts/2106.html 1. 调试(Tuning) 超参数 取值 #学习速率:\(\alpha\) Momentum:\(\bet ...

  3. Coursera Deep Learning笔记 改善深层神经网络:优化算法

    笔记:Andrew Ng's Deeping Learning视频 摘抄:https://xienaoban.github.io/posts/58457.html 本章介绍了优化算法,让神经网络运行的 ...

  4. Coursera Deep Learning笔记 深度卷积网络

    参考 1. Why look at case studies 介绍几个典型的CNN案例: LeNet-5 AlexNet VGG Residual Network(ResNet): 特点是可以构建很深 ...

  5. Coursera Deep Learning笔记 序列模型(二)NLP & Word Embeddings(自然语言处理与词嵌入)

    参考 1. Word Representation 之前介绍用词汇表表示单词,使用one-hot 向量表示词,缺点:它使每个词孤立起来,使得算法对相关词的泛化能力不强. 从上图可以看出相似的单词分布距 ...

  6. Coursera Deep Learning笔记 结构化机器学习项目 (下)

    参考:https://blog.csdn.net/red_stone1/article/details/78600255https://blog.csdn.net/red_stone1/article ...

  7. Coursera Deep Learning笔记 序列模型(一)循环序列模型[RNN GRU LSTM]

    参考1 参考2 参考3 1. 为什么选择序列模型 序列模型能够应用在许多领域,例如: 语音识别 音乐发生器 情感分类 DNA序列分析 机器翻译 视频动作识别 命名实体识别 这些序列模型都可以称作使用标 ...

  8. Coursera Deep Learning笔记 结构化机器学习项目 (上)

    参考:https://blog.csdn.net/red_stone1/article/details/78519599 1. 正交化(Orthogonalization) 机器学习中有许多参数.超参 ...

  9. Coursera Deep Learning笔记 卷积神经网络基础

    参考1 参考2 1. 计算机视觉 使用传统神经网络处理机器视觉的一个主要问题是输入层维度很大.例如一张64x64x3的图片,神经网络输入层的维度为12288. 如果图片尺寸较大,例如一张1000x10 ...

随机推荐

  1. Centos7最小化系统安装_配置

    本文总结了作者使用centos最小化安装时,碰到的问题和解决方案. 网络问题.作者使用虚拟机安装时,网卡并没有激活.操作: 1 cd /etc/sysconfig/network-script 2 v ...

  2. 20210804 noip30

    考场 第一眼感觉 T1 是状压 DP,弃了.T2 好像也是 DP???看上去 T3 比较可做. 倒序开题.T3 暴力是 \(O(pn\log p)\)(枚举 \(x\),二分答案,看能否分成合法的不超 ...

  3. java短信群发项目:

    编写一个项目, 1. 以下手机号码段,添加到Map集合当中 2. 从控制台输入要发送信息的短信号码,如果要发送多个,请用英文逗号隔开,输入短信内容 3. 编写一个短信发送类,号码发送前,先判断号码是否 ...

  4. DevExpress Silverlight DXChart特效总结

    1.  主题修改 引用  xmlns:core=http://schemas.devexpress.com/winfx/2008/xaml/core 在Grid中添加core:ThemeManager ...

  5. 学习PHP中国际化地数字格式处理

    不知道大家有没有了解过,对于数字格式来说,西方国家会以三位为一个进位,使用逗号来分隔.比如,12345678,用标准的格式来表示的话就是 12,345,678 .不过我们中文其实并不会有这样的分隔符, ...

  6. 一起搞懂PHP的错误和异常(二)

    上回文章中我们讲到了错误是编译和语法运行时会出现的,它们与逻辑无关,是程序员在码代码时不应该出现的,也就是说,这些错误应该是尽量避免带到线上环境的,他们不能通过try...catch捕获到.而异常则正 ...

  7. dede调用文章内第一张原始图片(非缩略图)的实现方法

    第一步,修改include/extend.func.php文件,最下面插入函数,查询的是文章附加表,如需查询图片集什么的,改表名即可 //取原图地址 function GetFirstImg($arc ...

  8. Jmeter系列(1) - 踩坑之代理服务器录制失败

    前景 Jmeter代理服务器报错信息如下.Jmeter录制不成功 解决方案 需了解 代理服务器启动后会在/bin目录生成ApacheJMeterTemporaryRootCA.crt和ApacheJM ...

  9. Shell系列(33) - 多分支if语句简介及计算器例子

    多分支if条件语句 if [ 条件判断式1 ] then 当条件判断式1成立时,执行程序1 elif [ 条件判断式2 ] then 当条件判断式2成立时,执行程序2 ...省略更多条件... els ...

  10. react 的一些学习资料

    * react开发实战 (Pro React) https://github.com/apress/pro-react * react 配置好的环境https://github.com/bricksp ...