AI
chen_holy
“你要是愿意, 我就永远爱你”——王小波《爱你就像爱生命》
展开
-
笔记 - 归纳总结(二)
机器学习算法K近邻算法原理每个样本都能用最接近它的k个邻居代表流程计算目标与所有样本之间的距离,选出距离最小的前K个样本,K个样本中占比最高的类别即为目标类别KNN三要素K值的选取距离度量方式分类决策规则K值选取方式交叉验证K值对模型结果的影响较小的K值,减少训练误差,但容易过拟合较大的K值,减少泛化误差,但训练误差会上升分类决策规则...原创 2019-08-21 08:58:28 · 507 阅读 · 0 评论 -
笔记 - 数据读取:tensorflow mnist手写数据
加载数据集from tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("../data/MNIST_data/", one_hot=True)print(mnist.train.images.shape)读取数据集 batch_xs, batch_ys = my...原创 2019-06-11 10:01:10 · 173 阅读 · 0 评论 -
笔记 - 模型评估:准确率评估
laebl one-hot编码的准确率计算import tensorflow as tfy = tf.constant([[0, 0, 1], [1, 0, 0]], dtype=tf.float32)y_pred = tf.random_uniform(shape=(2, 3))accuracy = tf.reduce_mean(tf.cast(tf.equal(tf.a...原创 2019-06-11 09:33:27 · 944 阅读 · 0 评论 -
笔记 - 模型训练:小批量梯度下降与小批量随机梯度下降
小批量梯度下降 n_batch = int(len(X_train) / batch_size) for epoch in range(n_epochs): for i in range(n_batch): sess.run(training_op, feed_dict={ X: X_train[i*batc...原创 2019-06-10 20:52:46 · 518 阅读 · 0 评论 -
笔记 - 梯度下降:基于tensorflow的三种实现
以线性回归为例原生实现...theta = tf.Variable(tf.random_uniform([n + 1, 1], -1.0, 1.0), name='theta')y_pred = tf.matmul(X, theta, name="predictions")error = y_pred - yrmse = tf.sqrt(tf.reduce_mean(tf.sq...原创 2019-06-10 20:30:05 · 344 阅读 · 0 评论 -
笔记 - 线性回归:tensorflow原生实现线性回归梯度下降参数更新过程
手动实现线性回归梯度计算公式"""X:m×n矩阵 -- m行样本n个维度error: 列向量"""gradients = 1/m * tf.matmul(tf.transpose(X), error)基于sklearn fetch_california_housing 数据集import tensorflow as tfimport numpy as npfrom sk...原创 2019-06-10 20:12:07 · 1743 阅读 · 0 评论 -
笔记 - 数据处理:标准归一化
做了啥均值归一化方差归一化作用可以更快的进行梯度下降下降更平稳为啥归一化操作能加速梯度下降一般来说,梯度大的维度更新参数快特征数值会影响梯度的大小eg:特征数值很大,代入梯度计算后得出的结果也可能很大当不同特征的数值相差较大,如年龄(0~100)与 月薪(500~50000)会导致不同维度下降的速度有很大的区别,甚至造成振荡现象应用"""对每一列进行标准归...原创 2019-06-10 19:38:56 · 205 阅读 · 0 评论 -
笔记 - 数据读取:TFRecords 内部多线程读取文件 (二)
对整个流程梳理具体分析在上篇笔记 - 数据读取:TFRecords 内部多线程读取文件 (一)正文...filename_queue = tf.train.string_input_producer(filenames)reader = tf.FixedLengthRecordReader(record_bytes=3073)key, value = reader.read...原创 2019-06-20 12:21:47 · 213 阅读 · 0 评论 -
笔记 - 数据读取:TFRecords 内部多线程读取文件 (一)
资料:Tensorflow高效读取数据tensorflow的数据输入TensorFlow和Keras解决大数据量内存溢出问题tensorflow的数据输入 - 屌都不会TensorFlow高效读取数据的方法Tensorflow TFRecords及多线程训练介绍 ——详细Google Protocol Buffer 的使用和原理《21个项目玩转深度学习:基于TensorFlow的实...原创 2019-06-20 10:02:52 · 566 阅读 · 0 评论 -
笔记 - tensorflow:sess.run机制
import tensorflow as tfdef read_data(): print("read data ...") return tf.constant(value=[1.0, 2.0, 3.0], dtype=tf.float32)X = read_data()X_train = tf.placeholder(dtype=tf.float32)with tf...原创 2019-06-10 14:25:15 · 804 阅读 · 0 评论 -
笔记 - 数据读取:cifar10多线程读取2
总结:1.images_train, labels_train = cifar10_input.distorted_inputs( data_dir=data_dir, batch_size=batch_size)并不是真的读取数据,而是定义了一系列逻辑操作,返回tensor * tensor里面那些读文件的操作,如何做到在sess.run的时候才真正执行2.for ste...原创 2019-06-10 14:08:57 · 165 阅读 · 0 评论 -
笔记 - 数据读取:cifar10多线程读取1
理论数据增强1张图片变7张图片cifar10.py主要负责cifar10数据集下载定义几个参数batch_size下载数据集存放的地址用什么类型的格式存放模型参数w存储变量数据的一个对象使用eg:cifar10_input.py主要负责数据读取处理IMAGE_SIZE = 24 , 实质就是将cifar10图片原始大小...原创 2019-06-10 13:14:13 · 171 阅读 · 0 评论 -
笔记 - 神经网络:梯度检查
参考:卷积神经网络入门到精通【不太理解,先记录一下】原创 2019-06-10 09:20:21 · 468 阅读 · 0 评论 -
笔记 - 模型训练:监控
打印 训练loss与测试loss print("Epoch", epoch, "MSE = ", sess.run(mse, feed_dict={ X: X_train, y: y_train })) print("Epoch", epoch, "MSE = ", sess.run(mse, feed_di...原创 2019-06-11 10:22:01 · 332 阅读 · 0 评论 -
笔记 - 模型训练:保存读取使用模型
保存模型# 创建Saver()节点saver = tf.train.Saver()# 训练过程中保存节点save_path = saver.save(sess, "./ckpt/my_model.ckpt", global_step=epoch)# 保存最终节点save_path = saver.save(sess, "./ckpt/my_model_final.ckpt")读...原创 2019-06-11 10:57:48 · 509 阅读 · 0 评论 -
笔记 - 梯度下降:平原现象与振荡现象
TODO从数学上证明梯度下降更新会导致参数发散原创 2019-06-04 21:39:11 · 2098 阅读 · 0 评论 -
笔记 - tensorflow中 Variable 与 get_variable 的用法
莫烦 scope 命名方法我们为什么要对变量命名举个例子:在迁移学习中我们是通过变量名加载相应的值# restore variables# redefine the same shape and same type for your variablesW = tf.Variable(np.arange(6).reshape((2, 3)), dtype=tf.float32, n...原创 2019-08-07 12:52:20 · 585 阅读 · 0 评论 -
笔记 :归纳总结 (一)
资料决策边界(decision boundary)logistic回归,以及决策边界与回归的区别吴恩达机器学习笔记16-决策边界(decision boundary)机器学习中线性模型和非线性的区别机器学习中线性模型和非线性的区别怎样区分线性和非线性线性模型线性分类器和非线性分类器机器学习之广义线性模型广义线性模型到底是个什么鬼?| 协和八逻辑回归(logistics re...原创 2019-08-21 09:18:37 · 1392 阅读 · 0 评论 -
笔记 - 卷积神经网络设计 理论部分(一)
思考1. 卷积神经网络如何减少参数量和计算量relu激活函数dropout使用1×1卷积核进行减少参数量和计算量对标准卷积的拆分(使用深度可分离卷积)2. 各类经典卷积网络的特点3. 卷积计算量的计算4. 注意区分1x1 PW conv 和 1x1 GConv 经典卷积网络LetNet通常 简单的分类网络结构:输入 - 卷积池化(层数未定) - 全连接(层数...原创 2019-07-17 15:52:40 · 509 阅读 · 0 评论 -
笔记 - 概率论:随机变量与独立同分布
参考文章总体与样本的理解从整体抽出一个个体,就是对总体X进行一次观察并记录结果。在相同条件下对总体进行n次独立重复观察。将n次观察结果按照试验顺序记为X1,X2,..,XnX1,X2,..,Xn。它们是相互独立的,且都是与X具有相同分布的随机变量。X1,X2,..,XnX1,X2,..,Xn称之为来自总体X的一个简单随机样本随机变量随机变量是指变量的值无法预先确定仅以一定的可能性(...原创 2019-07-09 14:38:44 · 8475 阅读 · 0 评论 -
笔记 - 服饰关键点检测:原理篇
数据集原创 2019-06-28 12:00:17 · 1929 阅读 · 1 评论 -
笔记 - 深度学习脉络整理:2.损失函数
脉络结构1. 结构2. 损失3. 优化思考:为什么使用softmaxsoftmax存在的问题交叉熵损失的含义题外话:清楚原理之后,可以对它进行改进使用 softmax 的时候,有一个默认的前提,就是每个物体只属于一类比如人脸识别,每张脸只能对应一个人思考:sigmod二分类的Loss,与softmax多分类的Loss 的区别sigmod 与...原创 2019-06-12 13:50:29 · 196 阅读 · 0 评论 -
笔记 - 深度学习脉络整理:1.基础结构单元
资料:深度学习基础课程深度学习大讲堂 - 首期第三讲:深度学习基础概括图基础结构单元所有op得知道是什么意思全连接层的op卷积层的op…激活函数为什么说激活函数是神经网络非线性性的来源激活函数的取值范围激活函数的导数损失函数调整网络:调网络结构调损失函数损失函数的物理意义损失函数的导数网络训练误差反向传播算法如何做参数...原创 2019-06-12 11:29:07 · 730 阅读 · 0 评论 -
笔记 - 卷积网络:卷积输出张量shape计算
前置:影响shape形状的因素:1.卷积核大小2.stride步长3.padding模式公式:K – 卷积核数量F – 卷积核大小S – 步长P – 外围填充的层数运用显然valid模式下,直接卷,不够就丢弃我推导的valid模式下的计算方式(以 W 举例):W2 = (W1 - F)/S + 1SAME模式如何确定P利用公式1计算...原创 2019-06-11 16:13:07 · 4569 阅读 · 0 评论 -
笔记 - 模型训练:正则Loss
前置add_to_collectionimport tensorflow as tftf.add_to_collection("reg_losses", 1.0)tf.add_to_collection("reg_losses", 1.0)loss = tf.get_collection("reg_losses")with tf.Session() as sess: pr...原创 2019-06-11 14:55:58 · 1081 阅读 · 0 评论 -
笔记 - 损失函数:交叉熵
import tensorflow as tf"""给出n个样本的预测值与真实值进行计算交叉熵(label已进行热编码)即两个矩阵交叉熵公式倒背如流"""y = tf.constant([[0, 0, 1], [1, 0, 0]], dtype=tf.float32)y_pred = tf.random_uniform(shape=(2, 3), minval=0, maxval...原创 2019-05-11 07:49:08 · 399 阅读 · 0 评论 -
笔记 - DNN: 构建网络 与 添加正则化项的不同方式
前置fully_conecteddef fully_connected(inputs, num_outputs, activation_fn=nn.relu, normalizer_fn=None, normalizer_param...原创 2019-06-11 13:02:17 · 542 阅读 · 0 评论 -
笔记 - 神经网络算法设计:一.数据预处理
零中心化(均值减法)就是减均值嘛【老师说:】 对于图像数据,零中心化操作很重要,因为图像受光照影响一般表现就是整体像素偏大或者偏小【我的理解:】整体像素偏大的理解是图片比较昏暗,所以减去均值,整体像素如果偏小,应该是偏亮,这时候还需要减去均值 ???归一化上图的操作与 均值归一化,方差归一化,标准归一化 的关系 ?...原创 2019-06-07 17:21:10 · 976 阅读 · 0 评论 -
笔记 - 卷积神经网络:学习率与权重初始化方式 与 网络性能之间的关系
参考学习率与权重初始化对网络性能的影响分析随机实验2次学习率大容易振荡原创 2019-06-06 20:51:05 · 4293 阅读 · 1 评论 -
笔记 - 推荐系统:协同过滤算法理论
----------------2019.04.30更新-------------------原创 2019-04-29 09:33:15 · 216 阅读 · 0 评论 -
笔记: 小批量梯度下降参数求解实现
"""小批量梯度下降描述:每次选取小批量数据集来更新计算梯度场景:一元线性回归"""import numpy as npX = 2 * np.random.rand(100, 1)Y = 4 + 3 * X + np.random.randn(100, 1)X = np.c_[np.ones((100, 1)), X]n_epochs = 10000batch_size...原创 2019-04-24 12:17:51 · 490 阅读 · 0 评论 -
笔记: 随机梯度下降参数求解实现
"""随机梯度下降描述:每次选取一个样本参与梯度计算场景:一元线性回归"""import numpy as npnp.random.seed(1)X = 2 * np.random.rand(100, 1)X = np.c_[np.ones((100, 1)), X]Y = 4 + 3 * np.random.randn(100, 1)m = 100 # 样本数the...原创 2019-04-24 11:39:45 · 574 阅读 · 0 评论 -
笔记: 批量梯度下降参数求解实现
"""批量梯度下降目前统一的停止策略都是执行n次停止场景:一元线性回归参数求解"""import numpy as np# 定义随机种子,使每次随机的数据都和第一次随机时的数据一致np.random.seed(1)# 构造数据集X = 2 * np.random.rand(100, 1)Y = 4 + 3 * X + np.random.randn(100, 1) # 构...原创 2019-04-24 10:54:25 · 269 阅读 · 0 评论 -
笔记:支持向量机(SVM)决策边界求解推导
原创 2019-04-28 17:49:25 · 4304 阅读 · 1 评论 -
笔记:逻辑回归理论部分1
原创 2019-04-23 08:28:51 · 170 阅读 · 0 评论 -
笔记:线性回归理论部分4 (梯度下降策略)
原创 2019-04-23 07:56:45 · 162 阅读 · 0 评论 -
笔记:线性回归理论部分3 (最小二乘表达式)
原创 2019-04-22 21:49:17 · 276 阅读 · 0 评论 -
笔记:线性回归理论部分2(误差项分析|最大似然函数|参数估计)
原创 2019-04-22 21:14:08 · 769 阅读 · 0 评论 -
笔记:K近邻算法理论与实现
numpy实现版本:import numpy as npimport operator# 准备数据集X = np.array([[2,2],[1,1.5],[1,1],[4,3],[4,4]])y =['A','A','A','B','B']def knn_classify(X,y,target,k): # 计算target与X的距离 distances = np...原创 2019-04-22 17:35:10 · 188 阅读 · 0 评论 -
笔记:k-means聚类算法 图像压缩理论
再次讨论16色不是说只能用4个bit来表示颜色,而是图片只能用16中颜色构成,在真正保存图片的时候会根据不同的图片类型采用不同的保存机制比如:也是为什么纯颜色的图片质量会比一般图片要小的原因...原创 2019-04-26 17:00:42 · 649 阅读 · 0 评论