Coursera Deep Learning笔记 逻辑回归典型的训练过程
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
,mean
与delta
代表X的均值和标准差. 最终特征处于[-1, 1]区间.
对于图片, 可直接使用Min-Max Scaling
- 即将每个特征除以255(每个像素分为R, G, B, 范围在0~255)使得值处于[0, 1].
2. 初始化参数
一般将 w
和 b
随机选择.
3. 梯度下降(Gradient descent)
根据 w
, b
和训练集,来训练数据.
- 需要设定 迭代次数 与 学习率 .
以下为大循环(迭代次数)中内容:
3.1 计算代价函数
对于\(x^{(i)} \in X\), 有
\]
\]
\]
= \sigma(w^TX+b)
= \frac{1}{1+e^{-(w^TX+b)}}
\]
= -\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(a, y)}{\partial a}
= -\frac{y}{a} + \frac{1-y}{1-a}
\]
= (\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 a} \dfrac{da}{dz}
= (-\dfrac{y}{a} + \dfrac{1-y}{1-a}) · a · (1-a)
= a - y
\]
= \dfrac{\partial L}{\partial z} \dfrac{\partial z}{\partial w}
= (a-y) · x
\]
= \dfrac{\partial L}{\partial z} \dfrac{\partial z}{\partial b}
= a-y
\]
根据 \(J = -\dfrac{1}{m} \sum L(a, y)\) 最终可得:
= \dfrac{\partial J}{\partial a} \dfrac{\partial a}{\partial w}
= \dfrac{1}{m} X(A-Y)^T
\]
\]
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笔记 逻辑回归典型的训练过程的更多相关文章
- Coursera Deep Learning笔记 改善深层神经网络:超参数调试 正则化以及梯度相关
笔记:Andrew Ng's Deeping Learning视频 参考:https://xienaoban.github.io/posts/41302.html 参考:https://blog.cs ...
- Coursera Deep Learning笔记 改善深层神经网络:超参数调试 Batch归一化 Softmax
摘抄:https://xienaoban.github.io/posts/2106.html 1. 调试(Tuning) 超参数 取值 #学习速率:\(\alpha\) Momentum:\(\bet ...
- Coursera Deep Learning笔记 改善深层神经网络:优化算法
笔记:Andrew Ng's Deeping Learning视频 摘抄:https://xienaoban.github.io/posts/58457.html 本章介绍了优化算法,让神经网络运行的 ...
- Coursera Deep Learning笔记 深度卷积网络
参考 1. Why look at case studies 介绍几个典型的CNN案例: LeNet-5 AlexNet VGG Residual Network(ResNet): 特点是可以构建很深 ...
- Coursera Deep Learning笔记 序列模型(二)NLP & Word Embeddings(自然语言处理与词嵌入)
参考 1. Word Representation 之前介绍用词汇表表示单词,使用one-hot 向量表示词,缺点:它使每个词孤立起来,使得算法对相关词的泛化能力不强. 从上图可以看出相似的单词分布距 ...
- Coursera Deep Learning笔记 结构化机器学习项目 (下)
参考:https://blog.csdn.net/red_stone1/article/details/78600255https://blog.csdn.net/red_stone1/article ...
- Coursera Deep Learning笔记 序列模型(一)循环序列模型[RNN GRU LSTM]
参考1 参考2 参考3 1. 为什么选择序列模型 序列模型能够应用在许多领域,例如: 语音识别 音乐发生器 情感分类 DNA序列分析 机器翻译 视频动作识别 命名实体识别 这些序列模型都可以称作使用标 ...
- Coursera Deep Learning笔记 结构化机器学习项目 (上)
参考:https://blog.csdn.net/red_stone1/article/details/78519599 1. 正交化(Orthogonalization) 机器学习中有许多参数.超参 ...
- Coursera Deep Learning笔记 卷积神经网络基础
参考1 参考2 1. 计算机视觉 使用传统神经网络处理机器视觉的一个主要问题是输入层维度很大.例如一张64x64x3的图片,神经网络输入层的维度为12288. 如果图片尺寸较大,例如一张1000x10 ...
随机推荐
- Centos7最小化系统安装_配置
本文总结了作者使用centos最小化安装时,碰到的问题和解决方案. 网络问题.作者使用虚拟机安装时,网卡并没有激活.操作: 1 cd /etc/sysconfig/network-script 2 v ...
- 20210804 noip30
考场 第一眼感觉 T1 是状压 DP,弃了.T2 好像也是 DP???看上去 T3 比较可做. 倒序开题.T3 暴力是 \(O(pn\log p)\)(枚举 \(x\),二分答案,看能否分成合法的不超 ...
- java短信群发项目:
编写一个项目, 1. 以下手机号码段,添加到Map集合当中 2. 从控制台输入要发送信息的短信号码,如果要发送多个,请用英文逗号隔开,输入短信内容 3. 编写一个短信发送类,号码发送前,先判断号码是否 ...
- DevExpress Silverlight DXChart特效总结
1. 主题修改 引用 xmlns:core=http://schemas.devexpress.com/winfx/2008/xaml/core 在Grid中添加core:ThemeManager ...
- 学习PHP中国际化地数字格式处理
不知道大家有没有了解过,对于数字格式来说,西方国家会以三位为一个进位,使用逗号来分隔.比如,12345678,用标准的格式来表示的话就是 12,345,678 .不过我们中文其实并不会有这样的分隔符, ...
- 一起搞懂PHP的错误和异常(二)
上回文章中我们讲到了错误是编译和语法运行时会出现的,它们与逻辑无关,是程序员在码代码时不应该出现的,也就是说,这些错误应该是尽量避免带到线上环境的,他们不能通过try...catch捕获到.而异常则正 ...
- dede调用文章内第一张原始图片(非缩略图)的实现方法
第一步,修改include/extend.func.php文件,最下面插入函数,查询的是文章附加表,如需查询图片集什么的,改表名即可 //取原图地址 function GetFirstImg($arc ...
- Jmeter系列(1) - 踩坑之代理服务器录制失败
前景 Jmeter代理服务器报错信息如下.Jmeter录制不成功 解决方案 需了解 代理服务器启动后会在/bin目录生成ApacheJMeterTemporaryRootCA.crt和ApacheJM ...
- Shell系列(33) - 多分支if语句简介及计算器例子
多分支if条件语句 if [ 条件判断式1 ] then 当条件判断式1成立时,执行程序1 elif [ 条件判断式2 ] then 当条件判断式2成立时,执行程序2 ...省略更多条件... els ...
- react 的一些学习资料
* react开发实战 (Pro React) https://github.com/apress/pro-react * react 配置好的环境https://github.com/bricksp ...