莫凡机器学习课程笔记

怎样区分好用的特征

  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教程:数据预处理

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

How To Install Visual Studio Code On Ubuntu

链接 Linux中安装 Visual Studio Code 详解 在Ubuntu中安装Visual Studio Code How To Install Visual Studio Code On Ubuntu

深度学习笔记(待续)

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

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

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

查看医学影像文件软件

Mango Mango官网下载 直接点击Mango.jar 可打开软件。 可能出现的问题: XXis not marked as executable. it may be dangerous to run. 程序无法执行问题。 解决方法: 右键文件,属性--->权限--->勾选允许作为程序执行文件 或者 修…

ubuntu下终端提示符设置

PS1变量 修改/ect下bash.bashrc文件PS1变量 \d :代表日期,格式为weekday month date,例如:”Mon Aug 1” \H :完整的主机名称。例如:我的机器名称为:fc4.Linux,则这个名称就是fc4.l…

Learning from Imbalanced Classes

数据不均衡 数据不平衡是一个非常经典的问题,数据挖掘、计算广告、NLP等工作经常遇到。该文总结了可能有效的方法,值得参考: 1.Do nothing. Sometimes you get lucky and nothing needs to be done. You can train on the so-called natural …

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()函数接收两个参数,一个是函…

Python函数之 ceil, floor,round

Ceiling是向上取整 floor是向下取整 Round是四舍五入的 ceil 描述 ceil() 函数返回数字的上入整数 ceil():将小数部分一律向整数部分进位。 #!/usr/bin/python import math # This will import math moduleprint "math.ceil(-45.17) : ", math.cei…

Python如何将列表分成均匀大小的块?

均匀大小的块 def chunks(l, n):"""Yield successive n-sized chunks from l."""for i in range(0, len(l), n):yield l[i:i n] import pprint pprint.pprint(list(chunks(range(10, 75), 10))) [[10, 11, 12, 13, 14, 15, 16, 17, 18, 19],[2…

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~~~梯度下降法

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

python解析json

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。 引用模块 import json 重要函数 编码:把一个Python对象编码转换成Json字符串 json.dumps() 解码:把Json格式字符串解码转换成Python对象 json.loads() 排序…