AI入门
文章平均质量分 51
文盲青年
天苍苍,野茫茫,女扮男装耍流氓
展开
-
CNN构建
【代码】CNN构建。原创 2024-09-26 19:17:50 · 44 阅读 · 0 评论 -
np.pad实现零填充
是 NumPy 中用于对数组进行填充的函数,它可以在数组的不同维度上添加指定数量的值。:指定填充常数的值。这里用 0 进行填充,因此 pad 大小的区域将填充为 0。:对第二个维度(高度)进行 pad 大小的填充,前后都填充 pad 个单位。:对第三个维度(宽度)进行 pad 大小的填充,前后都填充 pad 个单位。的 tuple(元组)来指示每个维度的填充值。:指定填充的模式,这里 ‘constant’ 表示用常数来填充。:对第一个维度(样本数量)不做填充。:对第四个维度(通道数)不做填充。原创 2024-09-24 12:59:49 · 274 阅读 · 0 评论 -
softmax多分类及多任务示例
多分类:可以识别出验证码(6位)中的1位:import loggingimport osimport h5pyimport matplotlib.pyplot as pltimport numpy as npfrom PIL import ImageIMG_HEIGHT = 50IMG_WIDTH = 200IMG_CHANNEL = 1LABELS = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',原创 2024-08-19 15:50:48 · 528 阅读 · 0 评论 -
tensorflow1.x基础语法
TensorFlow是一个以图(graphs)来表示计算的框架,图中的节点被称之为op (operation 的缩写)。一个 op 获得零或多个张量 (tensors) 执行计算,产生零或多个张量。张量是一个按类型划分的多维数组。Z[L]为前向传播的最后节点,Y为训练标签。一个基于softmax的训练例子。原创 2024-08-07 11:32:05 · 128 阅读 · 0 评论 -
模型优化学习笔记—梯度校验
将dW、db等转化成一个大的向量p,然后通过前向传播dw、db,计算出一个近似梯度,再与反向传播计算出的梯度做对比。原理:自己算一遍所有梯度gradapprox,再与反向传播的grad对比。原创 2024-08-05 16:34:11 · 136 阅读 · 0 评论 -
模型优化学习笔记—对比各种梯度下降算法
【代码】模型优化学习笔记—对比各种梯度下降算法。原创 2024-08-05 16:11:18 · 203 阅读 · 0 评论 -
模型优化学习笔记—Adam算法
假设动量梯度下降,可以在30个epoch能找到最小值,那么RMSprop能在20个epoch中找到,而Adam更厉害,因为它是动量梯度下降和RMSprop的结合体。: 虽然表面r没变,但是w=w-rdw,当dw变大,w变小,相当于r变大的效果。起到了与调整r的同样的作用:改变了梯度下降在某个方向的学习速度。超参数:r、k1、k2,一般k1和k2取0.9和0.999且很少改变。3、梯度下降(其中sqrt表示开平方,u取10^(-8) ),算出指数加权移动平均,即动量梯度下降。,修正动量梯度下降的值。原创 2024-08-05 14:29:11 · 381 阅读 · 0 评论 -
模型优化学习笔记—梯度爆炸与梯度消失
问题:当算力可以无限强大,能构建无限深的网络吗?因为最终可能会走向梯度爆炸或者梯度消失,这个问题的答案可能是否定的。原创 2024-08-02 17:17:26 · 438 阅读 · 0 评论 -
模型优化学习笔记—动量梯度下降
在网络中可能存在局部最优(鞍点,马鞍是马背前后的最低点,但是并不代表是全局最低点,因为马鞍左右还能向下摔),而神经网络就是为了找到全局最优,故为了避免在鞍点前后摆动(梯度过大),又为了避免梯度更新不动(梯度为0),故在某个方向梯度过大过小都不行,需要用RMSprop来平衡个方向的力。又名指数加权移动平均,是一种常用的序列数据处理方式,本质是通过计算局部的平均值,来描述数值的变化趋势。而mini-batch的梯度下降,会不断趋于准确,但整个过程中,会因为批次的变化(更换了样本),有抬升的地方,即。原创 2024-08-01 19:32:58 · 786 阅读 · 0 评论 -
模型优化学习笔记—输入特征归一化处理
原理说明:求出矩阵所有元素的平均值,每个元素都减去平均值,从而使得矩阵整体减去了[平均值 * 元素个数],相当于矩阵整体减去了所有元素的累加和,从而使得平均值为0。由于a为X的方差值,X/a的方差值为1/a,相当于同比缩放a倍,故X/a的方差值为1(X的方差值除以X的方差值)。m,X’为X元素的平均值。Var(X/a) = 1/m * sum [ ( X(i)/a ) ^2 ],同理X/a均值也为0。处理值会收窄x轴的间距,加长y轴的间距,减小离散与适当扩大原集中,使其整体离散小。原创 2024-07-25 19:01:09 · 402 阅读 · 0 评论 -
模型优化学习笔记—数据增强
数据增强是一种生成合成数据的方法,通过调整原来样本来创建新样本,这样就可以获得大量的数据,这不仅增加了数据的大小,还提供了单个样本的多个变体,这有助于机器学习模型避免过度拟合。10、EDA(Easy data augmentation,同义词替换、随机插入、随机交换、随机阐删除)8、回译(back translation,文本处理:中文-> 日文 -> 英文 ----> 中文)4、增加噪点(图片-高斯噪声,音频-增加噪声)1、水平、垂直翻转(图片)3、旋转,扭曲直线(数字)IR:那辆不错车很好。原创 2024-07-17 13:22:51 · 423 阅读 · 0 评论 -
模型优化学习笔记—正则化与dropout
4、L2正则化较为常用,L1正则化用的少,但是L1正则化在高维度稀疏(存在大量的无意义数据)的情况下十分有用,高维度稀疏的情况下,尽量使权重正好降至0,正好为0的权重基本上会使响应特征从模型中移除,将特征设为0可节省内存空间,且减少模型中的噪点。而L2正则化可以使权重变小,但是无法使其降至0.0(假设将L2的作用理解为每次移除权重的x%,而L1的作用理解为每次从权重中减去1个常数),而L1可以通过不断减去常数,使其为0或者为负(强制置0),就有助于节约内存了。在反向传播时,我们也必须删除相同的神经元。原创 2024-07-16 13:57:19 · 327 阅读 · 0 评论 -
模型优化学习笔记—欠拟合与过拟合
1、欠拟合:对训练集准确率很低。对测试集准确率很低,但与训练集准确率相差不大。2、过拟合:对训练集准率相当高。对测试集准确率很低。此时学习了训练集中的一些非泛化的独有特征。3、既欠拟合,又过拟合:对训练集准确率很低,对测试集准确率很低,并且测试集准确率与训练集准确率相差也较大。注意:当训练集准确率99%,测试集准确率99%,你有必要怀疑你是否将测试样本参与了训练,或者训练集和测试集样本有重合。原创 2024-07-15 23:04:39 · 217 阅读 · 0 评论 -
模型优化学习笔记—数据集配置
1.1、一般有两种分类:训练集/测试集,或者 训练集/验证集/测试集,前者用训练集来训练,用测试集来验证。如果不理想,就重新训练。后者用验证集来验证和重新训练,然后再跑测试集,但是测试集如果不理想,有时也会重新训练。但是数据量大有的采用99/1分配,甚至99.5/0.5/0.1分配,因为此时0.1的比例,就可能有上千条数据了。比如训练集图片像素很高,而验证集图片像素很低,则训练不出优秀的网络。当测试数据集的准确率非常高了,就有必要怀疑是否对测试数据做了训练(测试数据中存在和训练数据相同的样本)原创 2024-07-15 23:02:52 · 221 阅读 · 0 评论 -
深层神经网络示例
dA[L-1] = W[L].T dZ[L],注意这里没有除以神经元个数,得到平均da。比如结果的第一个元素是多个dw1 * dz + dw1 * dz+ …dw1 * dz(神经元个数)的累加和。dw = dL/dz * dz/dw = dz*x(链式法则)A[L]、Z[L]:(本层神经元个数、样本数)dW[L]:(本层神经元个数、上层神经元个数)W[L]:(本层神经元个数、上层神经元个数)dZ[L]:(本层神经元个数、样本数)dA[L]:(本层神经元个数、样本数)b[L]:(本层神经元个数、1)原创 2024-07-13 14:27:17 · 603 阅读 · 0 评论 -
浅层神经网络示例
输出层采用sigmoid激活,隐藏层采用tanh激活。原创 2024-07-11 23:12:12 · 334 阅读 · 0 评论 -
一个基于API的简单ocr示例
利用百度的。原创 2024-04-10 10:35:50 · 194 阅读 · 0 评论 -
概率题之随机数的生成
例如:函数a可以生成1-4的随机数,现在要求用函数b生成1-11的随机数且基于a来实现:思路:函数a:生成1-4的随机数函数b:生成1-11的随机数我们要用a来实现b,有一点懵,不妨换一下思路,先用b来实现a: public int a() { int x = b();//[1,11] while (x > 4) { x = b(); } return x; }以上代码很简单,只要b原创 2021-11-28 20:12:58 · 635 阅读 · 0 评论 -
基于逻辑回归的单神经元公式伪代码及详细说明(已向量化)
未向量化:Z = np.dot(w.t,X) + bA = a(Z) = 1/(1+np.exp(-Z))J = np.sum(-(Y*np.log(A) + (1-Y)*np.log(1-A))/mdZ = A -Ydw = np.dot(X,dZ.t)/mdb=np.sum(dZ)/m 第一行大X是一个n*m的向量(n行m列,有m个样本,每个样本有n个特征x1、x2、 ... xn)小w是一个n*1的列向量(对应每个特征的初始权重,w1、w2、... wn),w.t为w的转置,是一原创 2020-08-23 20:01:40 · 734 阅读 · 1 评论 -
逻辑回归函数求偏导及Sigmoid函数求偏导
逻辑回归相关公式逻辑回归预测公式:z = w(T) x + bsigmoid激活函数:y' = a = ????(z) ????(x) = 1/(1-e^(-z))损失函数:L(a,y) = -( ylog(a) + (1-y) * log(1-a) )对最终函数(损失函数L)求偏导结果损失函数L 对 激活函数a 求偏导:da = dL/da = -(y/a) + (1-y)/(1-a)① sigmoid 对 预测结果z 求偏导:da/dz= a(1-a)②原创 2020-07-04 14:41:37 · 2651 阅读 · 2 评论 -
单神经元基于逻辑回归的训练函数
import numpy as npdef sigmoid(z): """ sigmoid激活函数 :param z: 一个数值或者一个numpy数组 :return: sigmoid计算后的值,范围在[0,1]以内 """ s = 1 / (1 + np.exp(-z)) return sdef initialize_with_zeros(dim): """ 初始化权重数组w和偏置/阈值b :param dim:原创 2020-06-13 10:47:56 · 274 阅读 · 1 评论 -
MSE(均方误差)函数和RMSE函数
转载 2020-06-03 17:13:17 · 1262 阅读 · 1 评论