《Hands On ML》笔记
文章平均质量分 92
《Hands On Machine Learning with sklearn and tensorflow》读书笔记。
南瓜派三蔬
这个作者很懒,什么都没留下…
展开
-
TensorFlow2 | RNN—时间序列预测—几个简单代码例子
代码整理自 《Hands On Machine Learning with sklearn,Keras and TensorFlow》Chapter 15: Processing Sequences Using RNNs and CNNs。文章目录1.生成模拟数据2.朴素预测方法作为基准预测方法3.TensorFlow线性回归预测4.simple RNN5. 多层 RNN6.预测未来的10个点6.1 10次预测10个点:Sequence-to-Vector RNN6.2 1次预测10个点:Sequen原创 2020-07-14 20:12:20 · 1998 阅读 · 0 评论 -
DL | 变分自编码器+要点综述+代码实现+生成图片
1.VAE的结构变分自编码器(Variational Autoencoders)是由Diederik Kingma和Max Welling在2014年提出来的。1.1 网络结构VAE的基本结构如下图所示,来自《Hands On ML》: Figure 15-11:Variational autoencoder (left), and an instance going through it (right)。上述的Hidden1,Hidden2可以使密集层或者卷基层。模型结构上来看Variation原创 2020-05-26 21:22:09 · 1518 阅读 · 0 评论 -
TensorFlow2 | 实现自编码器Tying Weights的一种简易方法
1.问题描述Tensorflow2 貌似没有内置的实现Tying Weights的方法。网上有若干资料,主要思路是写一个DenseTranspose的class,stackoverflow上就有好几个。感觉这种写一个新的Dense的class的思路,坑特别多,反正我搜的几个,没有一个能顺利实现的。自己写了一个不用Class的方法,基本实现这个功能。2.实现代码下面的代码是一个根据入参构建一个堆栈自编码器的函数。2.1 基本的思路(a)encoder部分可以用常规的Sequencial来构建。(原创 2020-05-14 18:01:46 · 589 阅读 · 0 评论 -
TensorFlow2 | RNN-Variable Length Input-变长输入序列处理-例子
tensorflow1中处理变长字符串的一种方法是:(1)把所有字符串用补全的方式变成相同长度的;(2)然后训练的时候,通过一个参数 seqence_length来告诉模型,输入的‘可用长度’,后面补全的数值就‘无视’了。对于tensorflow2,处理的基本思想类似,不过使用Masking的方式,具体方法如下。1.对变长输入补全,变为相同长度例如原始输入sequence长度分别为3和...原创 2020-05-06 19:24:15 · 1001 阅读 · 0 评论 -
DL | Embedded Reber Grammar原理简述及一种python实现
1.Reber Grammar如上图所示,它基本是个‘有环的有向图’。从B开始经过各种可能的有向边(所代表的字母)到达E组成的字符串,就是满足Reber Grammar的字符串。例如 BTSXSE,BPTVVE等。2. Embedded Reber Grammar将Reber Grammar的字符串前面加上两个字母,后面加上两个字母,也就是把满足Reber Grammar的字符串Emb...原创 2020-05-03 00:26:59 · 1361 阅读 · 0 评论 -
DL | DeepDream过程和原理概要
1.过程1.1 输入和输出准备输入:训练好的神经网络模型,例如InceptionV3模型; 一张需要加工的图片,记做original_image,如下图所示;输出:经过DeepDream加工之后的图片,如下图所示,记做image。image初始值设置为original_image。1.2 选定输入的模型的某个(些)层,构造目标函数L目标函数L是对选定的所有的层,每层求均值,对这...原创 2020-04-27 19:26:05 · 1442 阅读 · 0 评论 -
TensorFlow2—20行代码实现CNN分类图片的例子
分享给有需要的同学。 下面的代码在Mnist数据集上的准确率在98.89%左右。如果有时间的同学可以通过增加网络层数或者卷积核的个数来提高精度。import tensorflow as tffrom tensorflow.keras.models import Sequentialfrom tensorflow.keras.layers import Dense,Flatten,Conv2D...原创 2020-04-20 16:39:49 · 929 阅读 · 0 评论 -
TensorFlow2 | 并联神经网络-例子
【以下有自己搜索和理解的内容,未必全对,供有需要的同学参考。】1. 什么是并联神经网络如下图所示,有时候需要搭建一个如下图的网络:“并联”两个子网络,将他们的输出层Concat到一起,然后在二者合并之后的网络上继续添加隐层。2. tensorflow2 代码实现2.1 构造网络的图tensorflow2已经没有像tf1里面那么强调图,不过感觉像这种构造一些比较灵活的网络,其实隐含了“图......原创 2020-04-07 11:21:11 · 5565 阅读 · 9 评论 -
Tensorflow2 | 50行代码的迁移学习实例
1.问题描述在mnist数据集上,用0~4的图片训练一个模型,保存模型之后。复用其前几层,修改输出层。用新模型来训练5~9的图片(每张图片只用100张图片,原模型训练的时候每个数字是用大约6000张图片)。不过值得一提的是,这个小例子里用迁移学习,效果明显不如不用迁移学习,可能也是个反面案例,告诉我们迁移学习也不是总管用吧。2.TF2做迁移学习的关键技术点2.1 导入模型TF2比TF1在...原创 2020-01-21 14:19:22 · 2229 阅读 · 1 评论 -
强化学习经典算法简述
————整理自Hands On Machine Learning with Sklearn and Tensorflow,第16章。1.强化学习的历史1950年左右强化学习就出现了,但却很少被人们关注。直到除了2016年3月alphaGo战胜围棋冠军李世石,alphaGo的创造者,英国的一个创业公司DeepMind在2014年被谷歌用5亿美元收购。2.强化学习的概念强化学习是学习这样一个软...原创 2019-11-11 19:30:08 · 746 阅读 · 0 评论 -
深度神经网络调参——实用指南
整理自 《Hands On ML》——chapter 11DNN有很多参数可以调节, 如何选择各种参数的设置是个难题。(1)Table 11-2在很多问题中表现都很好。表中的参数有时候需要调节:(a)如果找不到合适的learning rate(太小收敛太慢;太大不够准确),可以尝试指数衰减(exponential decay)的learning schedule。(b)如果训练集太小...原创 2019-04-03 14:55:22 · 1164 阅读 · 0 评论 -
多层感知机(MLP)实现异或(XOR)操作
1.图中元素说明(a)输入层和隐层之间灰色箭头的权重均为+1;其他箭头表示的权重标在箭头旁边。(b)圆圈中的阶梯符号表示函数:2. 验证满足XOR运算(a)当输入 (x1,x2)=(0,0)时:隐层左perception输出为heaviside(-1.5+1×0+1×0)=0;隐层右perception输出为heaviside(-0.5+1×0+1×0)=0;输出层percept...原创 2019-03-25 20:00:49 · 13895 阅读 · 0 评论 -
机器学习思考题目——14循环神经网络(RNN)
本文直译自《hands on ML》课后题。(有改动的以【】表示)。1.sequence-to-sequence RNN有那些应用?sequence-to-vector RNN和vector-to-sequence RNN呢?(1)sequence-to-sequence RNN:预测天气(或其他时间序列)、机器翻译(用encoder-decoder架构)、视频捕捉(video captio...翻译 2019-03-13 18:49:38 · 1521 阅读 · 0 评论 -
DL | 一文读懂自动微分( AutoDiff)原理
整理自《Hands On ML——Appendix D》,有改动,如有不解请参考原文(感觉原文也多少有点问题)。1. Manual Differentiation2. Symbolic Differentiation(符号微分)3. Numerical Differentiation(数值微分)4. Forward-Mode Autodiff(正向自动微分)5. Reverse...原创 2019-03-22 12:57:31 · 5682 阅读 · 0 评论 -
机器学习思考题目——13卷积神经网络(CNN)
本文直译自《hands on ML》课后题。(有改动的以【】表示)。1.图片分类中,CNN相对于全连接的DNN有什么优势?(a)由于只是局部连接,同时高度复用weight,CNN比全连接DNN少很多参数,这使得它训练更快,减少了过拟合的风险,需要的训练集小得多。(b)当CNN学习到检测某个特征的核(kernel)的时候,它可以在图片的任何位置检测到这个特征。而DNN在某个位置学习到某个特征,...翻译 2019-03-13 10:08:05 · 2827 阅读 · 0 评论 -
机器学习思考题目——11深度神经网络
本文直译自《hands on ML》课后题。(有改动的以【】表示)。1.用He-initialization随机得到一组值之后,所有的weight都用这一组值进行初始化,这样是否可以?不可以,所有的weight需要独立地采样,不能有同样的初始值。随机采样weight值的一个重要目的是打破对称性;如果所有的weight都有相同的初始值,即使这个值不是0,它们的对称性依然存在(即所某一层的所有神经...翻译 2019-03-12 13:48:45 · 313 阅读 · 0 评论 -
sklearn-pipeline用法实例——房价预测
sklearn用pipeline做机器学习实例一、问题描述这个实例原型是《Hands On Machine Learning with Sklearn and Tensorflow》书第二章End-to-End Machine Learning Project的课后题,题目的解答和正文掺杂在一起,我做了一些整理,也有一些改动(所以不敢保证没有纰漏)。仅供需要的同学批判性地参考,顺便给自己当一个...原创 2019-01-09 19:43:29 · 2530 阅读 · 11 评论 -
随机搜索RandomizedSearchCV原理
——内容整理自RandomizedSearchCV源代码和论文Random Search for Hyper-Parameter Optimization,供有需要的同学参考。一、问题描述及代码示例(1)超参数优化也就是常说的调参,python-sklearn里常用的有GridSearchCV和RandomizedSearchCV可以用。其中GridSearchCV的原理很简明,就是对考察的每...原创 2019-01-30 10:34:03 · 18245 阅读 · 0 评论 -
机器学习思考题目——01基础知识篇
(1)本文直译自《hands on ML》课后题。(有改动的以【】表示)。(2)基础篇就是原书PART 1,不包括神经网络和深度学习的部分。1.你怎么定义机器学习?机器学习是建立一个可以从数据中进行学习的系统。学习是指给定评价标准之后,在某些任务上(的表现)可以越来越好。2.你能说出机器学习发挥重要作用的四类问题么?机器学习在以下复杂问题上效果显著:(a)目前没有算法方案来解决这个问题...翻译 2019-03-05 09:36:26 · 3491 阅读 · 0 评论 -
机器学习思考题目——04基础算法
本文直译自《hands on ML》课后题。(有改动的以【】表示)。1.如果有一个百万量级特征的训练集,应该用哪种线性回归训练算法?可以用随机梯度下降法(SGD)或者小批量梯度下降(Mini-batch Gradient Descent)。如果训练集能否放入内存的话也可以用批量梯度下降算法(Batch Gradient Descent)。但是不宜用标准方程(Normal Equation)的解...翻译 2019-03-05 18:56:10 · 1293 阅读 · 0 评论 -
机器学习思考题目——06决策树
本文直译自《hands on ML》课后题。(有改动的以【】表示)。1.用一百万个样本的训练集训练出的决策树(没有限制)大约有多深?一棵匀称(well-balanced)的二叉树,如果共有m个叶子,则它的深度为log2(m)(取整)。一棵二元决策树(binary Decision Tree)训练结束时,或多或少平衡,每个叶子代表一个样本(训练时没有限制的情况下)。因此如果包含一百万个样本,那么...翻译 2019-03-08 18:33:37 · 665 阅读 · 0 评论 -
机器学习思考题目——15自编码器(Autoencoders)
本文直译自《hands on ML》课后题。(有改动的以【】表示)。1.自动编码器的主要任务是什么?(a)特征提取(feature extraction)。(b)无监督预训练(unsupervised pretraining)。(c)降维(d)生成模型(Generative models)(e)异常检测(Anomaly detection,an autoencoder is gener...翻译 2019-03-14 10:12:38 · 2333 阅读 · 2 评论 -
机器学习思考题目——07集成学习
本文直译自《hands on ML》课后题。(有改动的以【】表示)。1.在同一个训练集上训练五个不同的模型,它们的准确率(precision)都为95%,是否有可能把它们组合起来获得更好的结果?如果可以,该怎么做?如果不可以,为什么?可以尝试把这五个模型组合成 voting ensemble,一般会有更好的结果。当这五个模型越不同的时候(例如分别为SVM、CART、LR等)效果越好。当训练集不...翻译 2019-03-10 13:42:43 · 542 阅读 · 0 评论 -
机器学习思考题目——08降维
本文直译自《hands on ML》课后题。(有改动的以【】表示)。1.降维的主要动机是什么?有哪些负面影响(drawbacks)?【动机】(a)提高后续的训练算法的速度(在某些情况下甚至可以去除噪音和冗余的特征,使得训练算法表现更好);(b)可视化数据并了解最重要的特征(特点);(c)节省空间(压缩)。【负面影响】(a)丢失了某些信息,可能会降低后续算法的表现;(b)降维可能计算...翻译 2019-03-10 16:13:46 · 502 阅读 · 0 评论 -
机器学习思考题目——16强化学习
本文直译自《hands on ML》课后题。(有改动的以【】表示)。1.什么 是强化学习(Reinforcement Learning)?它和常规的监督学习、无监督学习的区别是什么?(1)强化学习是机器学习中的一个领域,它的目的是建立agent,agent能在环境(environment)中采取动作(action)使得一段时间内的回报(reward)最大化。(2)RL和常规的监督学习、无监督...翻译 2019-03-14 20:17:18 · 1671 阅读 · 0 评论 -
机器学习思考题目——09 Tensorflow常识
本文直译自《hands on ML》课后题。(有改动的以【】表示)。1.用计算图的方法而不是直接执行计算的好处是什么?有哪些缺点?主要优点:(a)Tensorflow可以自动计算梯度(用reverse-mode autodiff);(b)Tensorflow可以用不同的进程并行运行这些操作;(c)在不同的设备上运行同样的模型更方便;(d)简化了自我检查(introspection)——...翻译 2019-03-11 15:14:03 · 362 阅读 · 0 评论 -
机器学习思考题目——10神经网络基础
本文直译自《hands on ML》课后题。(有改动的以【】表示)。1.用原始人工神经元(为组件)画出一个ANN的示意图,来实现操作 A ⊕ B :⊕表示异或操作XOR。提示:A ⊕ B = (A∧ ¬ B) ∨ (¬ A ∧ B).下图是用原始人工神经元为基础的神经网络,实现异或操作,基于公式A ⊕ B = (A ∧ ¬ B)∨ (¬ A ∧ B)。图形还有其他若干解法,例如基于公式 A...翻译 2019-03-11 19:07:25 · 1170 阅读 · 0 评论 -
机器学习入门书籍推荐
Hands On Machine Learning with Scikit Learn and TensorFlow,也就是下面这本。 作为一个半路出家的小菜鸡,为了较系统学习机器学习,看过好几本相关书籍,除了上面说的这一本,还看过周志华的《机器学习》、李航的《统计学习方法》、Ian Goodfellow《Deep Learning》(中文版)。最后看的是英文版的《Hands On ML...原创 2019-03-16 12:51:27 · 7730 阅读 · 3 评论 -
DL | 变分自编码器KL散度的Latent Loss推导
分享给感兴趣的同学。原创 2018-12-27 22:16:12 · 2465 阅读 · 1 评论