机器学习
Erick_Lv
菜鸡互啄
展开
-
Tensorflow实现线性回归
Tensorflow实现线性回归线性回归理论以及公式:目标公式: y=w1x1+w2x2+⋯+wnxn+by=w1x1+w2x2+⋯+wnxn+by=w_1x_1+w_2x_2+\cdots+w_nx_n+b 当有m组训练公式的时候,输入数据写成矩阵的形式:X=⎡⎣⎢⎢⎢⎢⎢⎢⎢x(1)1x(2)1⋮x(m)1x(1)2x(2)2⋮x(m)2⋯⋯⋱⋯x(1)nx(2)n⋮x(m...原创 2018-03-08 22:48:57 · 266 阅读 · 0 评论 -
Tensorflow Estimator之LinearRegressor
LinearRegressor的基本格式初始化# 定义线性回归器linear_regressor = tf.estimator.LinearRegressor( feature_columns=feature_columns, # 自定义的特征列 optimizer=my_optimizer # 选择合适的优化函数)训练linear_regresso...原创 2018-06-30 21:20:17 · 2397 阅读 · 0 评论 -
机器学习的训练数据(Training Dataset)、测试数据(Testing Dataset)和验证数据(Validation Dataset)
三者的意义 - 训练数据:用来训练模型的数据 - 验证数据:用来检验模型准确率 - 测试数据:再一次确认验证数据集中的模型是好的模型。一般步骤: 测试数据集和验证数据的数据一定不能用来训练,否则会出现过拟合的现象...原创 2018-06-30 21:40:59 · 12037 阅读 · 1 评论 -
机器学习中数据预处理的方式
数据标量化如果需要学习的不同的数据标签之间的量纲差距太大,那么需要进行数据标量化操作,有3个主要的优势:可以使梯度下降更快躲避“NaN陷阱”,数据中有些数值可能超过了计算机的表示范围,把这些数据引入计算过程,会降低运算速度,影响计算结果使得模型的权重对每个特征都比较适应。一般的处理方法为: scaled_value=value−meanstddevscaled_value=v...原创 2018-07-01 19:27:24 · 3089 阅读 · 1 评论 -
特征交叉
什么是特征交叉特征交叉一种合成特征的方法,可以在多维特征数据集上,进行很好的非线性特征拟合。假设一个数据集有特征x1x1x_1和x2x2x_2,那么引入交叉特征值x3x3x_3,使得: x3=x1x2x3=x1x2x_3=x_1x_2 那么最终的表达式为: y=b+w1x1+w2x2+w3x3y=b+w1x1+w2x2+w3x3y=b+w_1x_1+w_2x_2+w_3x_3为什...原创 2018-07-03 08:13:08 · 11098 阅读 · 2 评论 -
Tensorflow实现数据分档操作
数据分档当意义,参考这篇博客。 借助tensorflow的原创 2018-07-03 09:36:23 · 298 阅读 · 0 评论 -
机器学习的参数正则化
什么是参数正则化训练模型时,在原来的损失函数后,添加模型的复杂度。 Lossnew=minimize(Loss(Data|Model))+λ complex(Model)Lossnew=minimize(Loss(Data|Model))+λ complex(Model)Loss_{new}=minimize(Loss(Data|Model))+\lambda\ comp...原创 2018-07-03 14:12:58 · 1390 阅读 · 0 评论 -
强化学习DQN算法实战之CartPole
简介这篇笔记主要是记录了Deep Q-Learning Network的开发过程。开发环境是:Ubuntu18.04 、tensorflow-gpu 1.13.1 和 OpenAI gym其中,这篇笔记记录了深度学习的开发环境。安装完成后,在虚拟环境执行pip install gym安装界面环境。强化学习的一个困难的地方,在于数据收集和环境描述。而 OpenAI的gym给我们提供了一个非常强...原创 2019-04-10 23:51:15 · 4523 阅读 · 0 评论 -
Tensorflow Estimator之DNNClassifier
DNNClassifier的基本格式初始化:feature_columns作为特征列,但是这里不添加数据,仅仅是使用tf.feature_column添加数据特征;数据特征相当于一个字典的键值,这个键值是真正训练时输入数据的特征列的名称。hidden_units=[10, 10]表示隐含层是10*10的神经网络n_classes=3表示输出层的分类有3个optimizer表示使用的...原创 2018-06-24 19:05:44 · 8639 阅读 · 3 评论 -
Numpy笔记
NDARRAY对象任何的Numpy的数据对象都是一个N维数组。最基础的创建方式是:numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0)各个参数的说明: ARRAY属性ndarry.shape返回一个tuple代表数组的形状。或者用来改变数组的形状。import ...原创 2018-06-22 20:04:05 · 242 阅读 · 0 评论 -
Tensorflow基础语法和概念
Tensorflow基础语法和概念一些说明:学习tensorflow用到的Python语法,请参考这篇博客计算图模型Tensorflow的构建的机器学习模型都是有向图模型,在Tensorflow中,一个图的每个节点都代表一个计算操作,图的边代表数据的流向。使用计算图可以根据操作间的实际依赖关系进行有选择的计算操作,节约计算资源。Graphs, Sessions, and F...原创 2018-03-02 11:02:26 · 637 阅读 · 0 评论 -
Tensorflow中的TFRecord、Queue和多线程
Queues, Threads, and Reading Data输入管线如果训练数据量较小,Tesnsorflow会把数据一次性加载到内存当中。如果数据过于庞大,Tesorflow需要把存储到硬盘中的数据进行有关处理,分批次加载数据块到内存当中。这些硬盘中的数据可能需要格式化、乱序等的操作。当数据很大的时候,训练过程与处理数据的过程需要用多线程操作,以节约时间。为了使输入输出更加高效...原创 2018-03-05 17:15:44 · 1601 阅读 · 1 评论 -
Tensorflow卷积神经网络识别MINST手写数字
开发环境:Ubuntu16.04+Tensorflow1.5.0-GPU+CUDN9.0+CUDNN7.0 如果是Debian系列的系统,请参考这篇博客进行安装。所有完整代码的github地址为:https://github.com/StudentErick/tensorflow_cnn_mnist/tree/master卷积神经网络的架构关于卷积神经网络的一般架构的理解,参考这...原创 2018-03-29 21:20:29 · 1146 阅读 · 0 评论 -
Tensorflow中与张量形状有关的操作
改变张量的形状函数:tf.reshape( tensor, # 输入的张量 shape, # 想要改变的形状 name=None # 操作的名称)这个操作不会改变tensor本身的形状,而是返回一个形状为shape,而值和tensor对应的张量。如果有一个张量a,想要把张量a变化形状,可以:a=tf.reshape(a,shape)。shape是一个list...原创 2018-03-28 14:26:46 · 3739 阅读 · 0 评论 -
卷积神经网络架构理解
神经网络基础神经网络属于优化类的数学模型。每个神经元接收到输入后,经过一些计算操作后输出一个特定的数值。这个数值经过一个激活函数(非线性的),产生这个神经元的最后输出。有很多激活函数,且绝大数已经在Tensorflow中集成了,最流行的是SigmoidSigmoidSigmoid函数: y=11+e−zz=wTx+by=11+e−zz=wTx+by=\frac{1}{1+e^{-z}}\\...原创 2018-03-28 18:09:11 · 4152 阅读 · 0 评论 -
TensorFlow保存或加载训练的模型
什么是Tensorflow的模型模型部分主要参考了这篇文章和这篇博客;另外,官方文档也给出了很多指导。 Tensorflow的模型主要包括神经网络的架构设计(或者称为计算图的设计)和已经训练好的网络参数。因此,Tensorflow模型包括的主要文件:“.meta”:包含了计算图的结构“.data”:包含了变量的值“.index”:确认checkpoint“checkpiont”:一...原创 2018-03-28 23:04:04 · 4215 阅读 · 2 评论 -
Tensorflow关于Dataset的一般操作
Dataset封装了很好的关于数据集的一些基本操作,在这里做一下总结。该对象的路径是:tensorflow.data.Dataset(这是1.4版本之后的)很大程度上参考了这篇博客tf.data.Dataset.from_tensor_slicestf.data.Dataset.from_tensor_slices表示从张量中直接读取数据。以最外维度作为一个分割界限。比如:data...原创 2018-06-20 20:54:56 · 4769 阅读 · 2 评论 -
Tensorflow中的tf.keras库
tf.keras.utilstf.keras.utils.get_file()从远程网址下载数据,并保存到文件中。下载之前先进行检查,如果文件存在,就直接读取。 例如:train_path = tf.keras.utils.get_file(fname=TRAIN_URL.split('/')[-1], ...原创 2018-06-21 11:36:18 · 5852 阅读 · 0 评论 -
pandas库基础笔记
基础概念DataFrame,相当于一个数据表,存储了所有的数据,包含行和命名的列Series,相当于一个行,一个DataFrame有一个或者多个Series简单地建立一个Series:pd.Series(['San Francisco', 'San Jose', 'Sacramento'])DataFrame可以通过字典的方式,来映射列的名和列的编号,比如:cit...原创 2018-06-13 22:57:06 · 405 阅读 · 0 评论 -
Double Deep Q-Learning Netwok的理解与实现
理论简介Double Deep Q-Learning Netwok (DQN),基础理论来自于这篇论文。基础理论部分,参考这篇笔记和这篇笔记。下面给出最核心的强化学习公式:YtDoubleQ=Rt+1+γQ^(St+1,argmaxaQ(St+1,a))Y_{t}^{DoubleQ} = R_{t+1}+\gamma \hat{Q}\left(S_{t+1},\mathop{argmax}_...原创 2019-04-11 23:54:02 · 2722 阅读 · 0 评论