莫凡机器学习课程笔记

怎样区分好用的特征

  1. 避免无意义的信息
  2. 避免重复性的信息
  3. 避免复杂的信息

激活函数的选择

浅层神经网络,可以随便尝试各种激活函数
深层神经网络,不可随机选择各种激活函数,这涉及到梯度爆炸和梯度消失。(给出梯度爆炸和梯度消失的度量来判别激活函数的效果)


卷积神经网络,推荐的激活函数是 relu
循环神经网络,推荐的激活函数是relu or tanh

加速神经网络训练

Stochastic Gradient Descent (SGD)
批量数据,可加速训练过程,不会丢失太多信息

Momentum 惯性原则
W += - Learning rate * dx, 这种方法可以让学习过程曲折无比。

从平地到斜坡上来进行学习。
m = b1 *m - Learning rate *dx
W += m

AdaGrad: 学习率 对错误方向的阻力
W += - Learning rate * dx
给一双破鞋子,使得当摇晃走的时候,会感觉到不舒服,变成了走弯路的阻力,逼着的往前走。

v += dx^2
W += -Learning rate*dx/squrt(v)

RMSProp
W += - Learning rate * dx

Momentum(m = b1*m - Learning rate * dx) + AdaGrad(v+= dx^2)

v = b1*v + (1-b1)*dx^2
W += -Learning rate*dx/squrt(v)

Adam: 下坡和破鞋子

m = b1*m +(1-b1)*dx (Momentum)下坡属性
v = b2*v + (1-b2)*dx^2 (AdaGrad)阻力属性
W += -Learning rate*dx/squrt(v)


处理不均衡数据

永远总是猜测多数派。

1.获取更多的数据
2. 换个评判方式:
准确率(Accuracy)和误差(cost) 》》》》》》》》》》》》
confusion Matrix
Precision & Recall
F1 Score (0r F-score)
这种方式可以更好区分不均衡数据,给出更好的评判。
3. 重组数据:复制,上采样,下采样。
4. 其他机器学习方法:decision tree 对不均衡数据不敏感
5. 修改算法 :修改权重。


特征数据标准化

特征数据的标准化,归一化。

预测价格 = a * 离市中心距离 + b* 楼层 + c* 面积
a, b, c 就是需要学习的参数。
误差 = 预测 - 实际价格。

离市中心的数值范围 0~10 km
楼层的数值范围 1~30 层
面积范围 0 ~ 200 m^2
说白了就是不同维度的尺度不一样。这样就会导致每个维度对最终预测价格的影响严重不一样。

方法:
minmax normalization >>>>> (0,1)
std normalization >>>>>(mean = 0, std = 1)
加快学习速度,避免学出来的模型扭曲。


Batch Normalization 批标准化

对不同数据进行 BN。对不同维度进行的是归一化。

输入数据 X >>>> 全连接层 >>>> 激活函数>>>> 全连接层 ——-

输入数据 X >>>> 全连接层 >>>>BN >>>> 激活函数>>>> 全连接层—–

过拟合

自负 = 过拟合
对训练数据过于自信。而不能表达训练数据之外的数据。说白了就是学习出来的模型的泛化性太差。

  1. 增加数据量
  2. 正规化 L1 ,L2
  3. Dropout regularization

Y = WX, 在过拟合中,W一般变化比较大。那么可以将W的变化添加到损失函数,来约束W的变化。
L1: cost = (WX - realy)^2 + abs(WX)
L2: cost = (WX - realy)^2 + (W)^2


L1 L2 正规化

误差 J(theta) = [y_theata(x) - y]^2

L2 正则化误差 J(theta) = [y_theata(x) - y]^2 + [theata_1^2 + theata_2^2 + ……]
L1 正则化误差 J(theta) = [y_theata(x) - y]^2 + [|theata_1| + |theata_2| + ……]
这样最终的误差不仅取决于 拟合数据的好坏,还取决于拟合参数值的大小。

这里写图片描述

L1 的解 不稳定

这里写图片描述

这里写图片描述

控制正规化的强度。用交叉验证来选择比较好的lamb

这里写图片描述


强化学习(Reinforcement Learning)

分数导向性。
强化学习没有数据和标签,通过一次次在环境中尝试来
获取数据和标签。
而监督学习一开始就有数据和标签。

通过价值选行为
Q Learning 表格学习
Sarsa 表格学习
Deep Q Network 神经网络

直接选行为
Policy Gradients

想象环境并从中学习
Model based RL 从虚拟环境中学习


强化学习方法汇总(Reinforcement Learning)

这里写图片描述

这里写图片描述

这里写图片描述


这里写图片描述

基于连续动作

这里写图片描述

结合

这里写图片描述


这里写图片描述

这里写图片描述


这里写图片描述

这里写图片描述



Q Learning

行为准则

这里写图片描述

Q Learning 的示例

这里写图片描述

Q Learning 的决策过程

这里写图片描述

Q Learning 的Q表的提升过程

这里写图片描述

Q Learning 理解

这里写图片描述


Sarsa

SarsaQ Learning极其相似


Sarsa 的Q表的提升过程

Q Learning Q表的提升过程

这里写图片描述

而 Sarsa的Q表的提升过程

这里写图片描述

这里写图片描述


Sarsa(lambda) (Reinforcement Learning)

这里写图片描述



* DQN (Reinforcement Learning)*

这里写图片描述

Q Learning 神经网络的训练过程

这里写图片描述

这里写图片描述


Policy Gradients (Reinforcement Learning)

无误差,用奖惩来选择

这里写图片描述

这里写图片描述


Actor Critic (Reinforcement Learning)

这里写图片描述


参考文献

莫烦课程主页

莫烦-机器学习

莫烦机器学习原来可以很简单-知乎

莫烦知乎专栏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/246819.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

UFLDL教程:数据预处理

数据预处理是深度学习中非常重要的一步!如果说原始数据的获得,是深度学习中最重要的一步,那么获得原始数据之后对它的预处理更是重要的一部分。 一般来说,算法的好坏一定程度上和数据是否归一化,是否白化有关。 数据归…

深度学习笔记(待续)

背景知识 好的特征应具有不变性(大小、尺度和旋转等)和可区分性):例如Sift的出现,是局部图像特征描述子研究领域一项里程碑式的工作。由于SIFT对尺度、旋转以及一定视角和光照变化等图像变化都具有不变性,并…

人工智能泰斗迈克尔·乔丹分享机器学习要义:创新视角,直面挑战

2017年6月21日至22日,腾讯云未来峰会在深圳举行。人工智能领域的世界级泰斗迈克尔欧文乔丹(Michael I.Jordan)进行了主题为“机器学习:创新视角,直面挑战”的演讲,与大家分享他对人工智能的未来与挑战的见解…

Tensorflow官方文档---起步 MNIST示例

Tensorflow •使用图 (graph) 来表示计算任务. • 在被称之为 会话 (Session) 的上下文 (context) 中执行图. • 使用 tensor 表示数据. • 通过 变量 (Variable) 维护状态. • 使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据 综述 Ten…

Git 版本管理

相关文章 版本管理 github访问太慢解决方案 Material for git workshop GitHub秘籍 安装-Git版本管理 Git官网安装说明 Linux 系统安装 # 如果你的 Linux 是 Ubuntu: $ sudo apt-get install git-all# 如果你的 Linux 是 Fedora: $ sudo yum install git-all 如果是其他…

tensorflow:Multiple GPUs

深度学习theano/tensorflow多显卡多人使用问题集 tensorflow中使用指定的GPU及GPU显存 Using GPUs petewarden/tensorflow_makefile tf_gpu_manager/manager.py 多GPU运行Deep Learning 和 并行Deep Learning(待续) Multiple GPUs 1. 终端执行程序…

Tensorflow一些常用基本概念与函数

参考文献 Tensorflow一些常用基本概念与函数 http://www.cnblogs.com/wuzhitj/archive/2017/03.html Tensorflow笔记:常用函数说明: http://blog.csdn.net/u014595019/article/details/52805444 Tensorflow一些常用基本概念与函数(1&#…

ubuntu16.04 Nvidia 显卡的风扇调速及startx的后果

问题描述 #查看nvdia GPU 显卡状态 watch -n 10 nvidia-smi 发现显卡Tesla k40c的温度已经达到74,转速仅仅只有49%。 查看Tesla产品资料,Tesla K40 工作站加速卡规格 ,可知 所以需要调整风扇速度来降温。 然而官方驱动面板里也没有了风扇调…

Python函数式编程-map()、zip()、filter()、reduce()、lambda()

三个函数比较类似,都是应用于序列的内置函数。常见的序列包括list、tuple、str map函数 map函数会根据提供的函数对指定序列做映射。 map函数的定义: map(function, sequence[, sequence, ...]) -> list map()函数接收两个参数,一个是函…

Kaggle : Using a Convolutional Neural Network for classifying Cats vs Dogs

数据下载 https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition/data Part 1 - Preprocessing #Package Requirements #!/usr/bin/python2 # -*- coding: UTF-8 -*- import cv2 # working with, mainly resizing, images import numpy as np …

李宏毅机器学习课程1~~~Introduction Regression

机器学习介绍 机器学习就是要找一个函数。 机器学习的三大要素框架:训练集,函数集(模型集),损失函数集。 机器学习图谱 AI训练师的成长之路。 1. 梯度下降法的理解Gradient Descent 参数变化的方向就是损失函数减少的方…

李宏毅机器学习课程2~~~误差从哪里来?

Stanford机器学习—第六讲. 怎样选择机器学习方法、系统 误差来源 误差主要来自于偏差和方差。 数学上定义: 通过covariate X 预测 Y ,我们假设存在如下关系: Y f(X) ϵ 满足正态分布均值为0 方差σϵ 模型预测错误定义为: …

李宏毅机器学习课程3~~~梯度下降法

梯度下降法描述 梯度下降法是为了找到最优的目标函数,寻找的过程就是沿着损失函数下降的方向来确定参数变化的方向。参数更新的过程就是一个不断迭代的过程,每次更新参数学到的函数都会使得误差损失越来越小,也就是说学习到的参数函数越来越逼…

李宏毅机器学习课程4~~~分类:概率生成模型

分类问题用回归来解决? 当有右图所示的点时,这些点会大幅改变分类线的位置。这时候就会导致整体的回归结果变差。当把多分类当成回归问题,类别分别为1,2,3,4……,因为回归的问题是预测具体的值,这样定义类别…

李宏毅机器学习课程5~~~分类:逻辑回归

Function Set 不同的w,b来确定不同的函数,这样就组成了函数集合,不同的w,b可以来表达不同的分布函数。 Good of a Function 变换表达形式 两个Bernoulli distribution的交叉熵。所谓交叉熵,是用来刻画两个分布的相似性…

李宏毅机器学习课程6~~~深度学习入门

深度学习历史 深度学习经典步骤 神经网络的符合标记含义 Wij 代表的是从神经元j到神经元i,这样写的目的是便于表达,否则最后的表达式子就是Wij的转置,细节见下面。 每个神经元的偏执值组成一个向量b 单个神…

李宏毅机器学习课程7~~~反向传播

到底为什么基于反向传播的纯监督学习在过去表现不佳?Geoffrey Hinton总结了目前发现的四个方面问题: 带标签的数据集很小,只有现在的千分之一. 计算性能很慢,只有现在的百万分之一. 权重的初始化方式笨拙. 使用了错误的非线性模型…

李宏毅机器学习课程8~~~keras

keras keras示例 确定网络结构 确定损失函数 确定训练网络参数 batchsize与运算时间,平行运算,可以缩简运算时间。batchsize不能太大,这是由于内存的关系。此外,batchsize太大容易陷入局部极值点或者鞍点。batchsize=&…

李宏毅机器学习课程9~~~深度学习技巧

Recipe of Deep Learning Overfitting overfitting的判断是要训练误差与测试误差做比较。这个56-layer的网络在训练集上都没有训练好,说白了就是有点欠拟合。所以仅仅依靠测试集上的结果来判断56-layer比20-layer overfitting是不合理的。 更多理解见 Overfitting…

Liner(分段线性插值)

第一次写微博,记录自己的学习历程~~~~欢迎大家一起探讨~~~~ 分段线性插值故名思议就是说把给定样本点的区间分成多个不同区间,记为[xi,xi1],在每个区间上的一次线性方程为: 关于其证明: 分段线性插值在速度和误差取得…