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 ...
随机推荐
- js判断是在移动端还是在pc端
function chatQQ3(){ if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) { //移动端打开 ...
- Alex网络结构
AlexNet网络结构 网络包含8个带权重的层:前5层是卷积层,剩下的3层是全连接层.最后一层全连接层的输出是1000维softmax的输入,softmax会产生1000类标签的分布网络包含8个带 ...
- HTML基本概念及基本标签
HTML基本概念及基本语法 1.HTML的基本概念 1.1 B/S.C/S基本概念 B/S(Browser/Server):指的是浏览器端与服务器端工作模式,优点相对节省本地存储空间,不足是需要占用 ...
- P7597 「EZEC-8」猜树 加强版
#include<bits/stdc++.h>using namespace std;#define rg register#define inf 0x3f3f3f3f#define ll ...
- CentOS7安装Docker遇到的问题笔记
笔记/朱季谦 以下是笔者本人学习搭建docker过程当中记录的一些实践笔记,过程当中也遇到了一些坑,但都解决了,就此记录,留作以后再次搭建时可以直接参考. 一.首先,先检查CentOS版本,保证在Ce ...
- Selenium多浏览器并行测试
如果需要同时在IE.firefox.chrome进行测试,可以使用grid. Selenium Grid是一个智能代理服务器,允许Selenium测试将命令路由到远程Web浏览器实例.其目的是提供一种 ...
- 封装excel导出方法
封装读取excel内容方法 /** * 获取Excel内容 * @param type $filename * @return type */ public function getExcelCont ...
- 🧚♂️全套Java教程_Java基础入门教程,零基础小白自学Java必备教程👨💻004 # 第四单元 流程控制语句上 #
一.本单元知识点概述 二.本单元目标 (Ⅰ)重点知识目标 1.if语句的格式及执行流程2.switch语句的格式及执行流程 (Ⅱ)能力目标 1.掌握if语句的格式及执行流程2.掌握switch语句的格 ...
- [模板]多项式全家桶小记(求逆,开根,ln,exp)
前言 这里的全家桶目前只包括了\(ln,exp,sqrt\).还有一些类似于带余数模,快速幂之类用的比较少的有时间再更,\(NTT\)这种前置知识这里不多说. 还有一些基本的导数和微积分内容要了解,建 ...
- P4770-[NOI2018]你的名字【SAM,线段树合并】
正题 题目链接:https://www.luogu.com.cn/problem/P4770 题目大意 给出一个长度为\(n\)的字符串\(S\).\(q\)次询问给出一个串\(T\)和一个区间\([ ...