MXnet学习笔记(2017/09/15)版本

1.机器学习简介      

机器学习背后的核心思想是:设计程序使得它可以在执行的时候提升它在某任务上的能力,而不是有着固定行为的程序。
       成功的机器学习有四个要素:数据、转换数据的模型、衡量模型好坏的损失函数和一个调整模型权重来最小化损失函数的算法。

       监督学习描述的任务是:当给定输入x,如何通过在有标注输入和输出的数据上训练模型而能够预测输出y。从统计角度来说,监督学习主要关注如何估计条件概率P(y|x)。
回归分析也许是监督学习里最简单的一类任务。在该项任务里,输入是任意离散或连续的、单一或多个的变量,而输出是连续的数值。

       模型预测的输出值和真实的输出值之间的差别定义为残差,常见的回归分析的损失函数包括训练数据的残差的平方和或者绝对值的和。机器学习的任务是找到一组模型参数使得损失函数最小化。
       回归分析所关注的预测往往可以解答输出为连续数值的问题。当预测的输出是离散的类别时,这个监督学习任务就叫做分类。

        给定一个输入,输出不定量的类别,这个就叫做标注任务
序列学习也是一类近来备受关注的机器学习问题。在这类问题中,输入和输出不仅限于固定的数量。这类模型通常可以处理任意长度的输入序列,或者输出任意长度的序列。当输入和输出都是不定长的序列时,我们也把这类模型叫做 seq2seq。
非监督学习不需要训练数据被标识。

监督学习任务
聚类问题通常研究如何把一堆数据点分成若干类,从而使得同类数据点相似而非同类数据点不似。根据实际问
题,我们需要定义相似性。
子空间估计问题通常研究如何将原始数据向量在更低维度下表示。理想情况下,子空间的表示要具有代表性从
而才能与原始数据接近。一个常用方法叫做主成分分析。
表征学习希望在欧几里得空间中找到原始对象的表示方式,从而能在欧几里得空间里表示出原始对象的符号性
质。例如我们希望找到城市的向量表示,从而使得我们可以进行这样的向量运算:罗马 ­ 意大利 + 法国 = 巴
黎。
生成对抗网络是最近一个很火的领域。这里描述数据的生成过程,并检查真实与生成的数据是否统计上相似。

2.使用NDArray来处理数据
ndarray可以很方便同numpy进行转换

import numpy as np
x = np.ones((2,3))
y = nd.array(x)               # numpy -> mxnet
z = y.asnumpy()               # mxnet -> numpy
print([z, y])

3.使用autograd来自动求导

当进行求导的时候,我们需要一个地方来存 x 的导数,这个可以通过NDArray的方法 attach_grad() 来要求系统申
请对应的空间。
需要使用autograd里的 record()函数来显式的要求MXNet记录我们需要求导的程序。
 

4.线性回归 ­­­ 从0开始

当我们开始训练神经网络的时候,我们需要不断读取数据块。这里我们定义一个函数它每次返回 batch_size 个随机的样本和对应的目标。我们通过python的 yield 来构造一个迭代器。
 

5.线性回归 ­­­ 使用Gluon

定义模型:构建模型最简单的办法是利用 Sequential 来所有层串起来。首先我们定义一个空的模型:
初始化模型参数:在使用前 net 我们必须要初始化模型权重,这里我们使用默认随机初始化方法
优化:创建一个 Trainer 的实例,并且将模型参数传递给它就行
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M01858682

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值