
机器学习/深度学习
M_Z_G_Y
这个作者很懒,什么都没留下…
展开
-
机器学习/深度学习入门:标准化
数据归一化(概率模型不需要)目的:就是将数据的所有特征都映射到同一尺度上,这样可以避免由于量纲的不同使数据的某些特征形成主导作用。优点:加快了梯度下降求最优解的速度(椭圆、圆);有可能提高精度(原始数据可能突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用)方法:最大最小标准化(图像)、z-score标准化(数据分布近似高斯分布)、非线性归一化(数据分化比较大)如lo...原创 2019-11-21 15:20:37 · 765 阅读 · 0 评论 -
机器学习/深度学习入门:VGGNet模型实现
VGGNet:ILSVRC2014年亚军改进(1)通过不断加深网络结构来提升性能。网络层数的增长并不会带来参数量上的爆炸,因为参数量主要集中在最后三个全连接层中。(2)在 AlexNet 基础上将单层网络替换为堆叠的3*3的卷积层和2*2的最大池化层,减少卷积层参数,同时加深网络结构提高性能(两个3*3卷积层的串联相当于1个5*5的卷积层,3个3*3的卷积层串联相当于1个7*7...原创 2019-03-07 17:34:33 · 847 阅读 · 0 评论 -
numpy,tensorFlow.tensor,torch.tensor的shape以及相互转化
numpynumpy.ndarray 对于图片读取之后(H,W,C)或者(batch,H,W,C)在元素总数不变的情况下:numpy类型的可以直接使用方法numpy.reshape任意改变大小,numpy.expand_dims增加维度,大小是1(这个函数可以参考numpy.expand_dims的用法)tensorFlowtensorflow.python.framework....转载 2019-03-12 18:56:02 · 6038 阅读 · 0 评论 -
机器学习/深度学习入门:CNN池化层
池化层也叫下采样层,对输入的特征图进行压缩,1.使特征图变小,简化网络计算复杂度;2.进行特征压缩,提取主要特征;3.降低过拟合,减小输出大小的结果,它同样也减少了后续层中的参数的数量。其具体操作与卷基层的操作基本相同,只不过下采样的卷积核为只取对应位置的最大值、平均值等(最大池化、平均池化),并且不经过反向传播的修改。pooling的结果是使得特征减少,参数减少,但pooling的目的并不仅...转载 2019-03-18 17:06:45 · 2108 阅读 · 0 评论 -
机器学习/深度学习入门:优化器原理与比较
梯度下降法(Gradient Descent)梯度下降法是最基本的一类优化器,目前主要分为三种梯度下降法:标准梯度下降法(GD, Gradient Descent),随机梯度下降法(SGD, Stochastic Gradient Descent)及批量梯度下降法(BGD, Batch Gradient Descent)。1. 标准梯度下降法(GD)假设要学习训练的模型参数为W,代价函...转载 2019-04-16 16:23:01 · 1200 阅读 · 0 评论 -
机器学习/深度学习入门:正则化
L0正则化的值是模型参数中非零参数的个数。L1正则化表示各个参数绝对值之和。L2正则化标识各个参数的平方的和的开方值。先讨论几个问题:1)实现参数的稀疏有什么好处吗?一个好处是可以简化模型,避免过拟合。因为一个模型中真正重要的参数可能并不多,如果考虑所有的参数起作用,那么可以对训练数据可以预测的很好,但是对测试数据就只能呵呵了。另一个好处是参数变少可以使整个模型获得更好的可解释...转载 2019-04-19 16:15:47 · 395 阅读 · 0 评论 -
机器学习/深度学习入门:激活函数
为什么激活函数是非线性的?如果不用激励函数(相当于激励函数是f(x)=x),在这种情况下,每一层的输出都是上一层的线性函数,无论神经网络有多少层,输出都是输入的线性组合,这与一个隐藏层的效果相当(这种情况就是多层感知机MPL)。但当我们需要进行深度神经网络训练(多个隐藏层)的时候,如果激活函数仍然使用线性的,多层的隐藏函数与一层的隐藏函数作用的相当的,就失去了深度神经网络的意义,所以引入非...转载 2019-05-10 22:28:43 · 543 阅读 · 0 评论 -
机器学习/深度学习入门:softmax求导
1.softmax初探在机器学习尤其是深度学习中,softmax是个非常常用而且比较重要的函数,尤其在多分类的场景中使用广泛。他把一些输入映射为0-1之间的实数,并且归一化保证和为1,因此多分类的概率之和也刚好为1。首先我们简单来看看softmax是什么意思。顾名思义,softmax由两个单词组成,其中一个是max。对于max我们都很熟悉,比如有两个变量a,b。如果a>b,则max为...转载 2019-05-13 16:16:16 · 657 阅读 · 0 评论 -
机器学习/深度学习入门:Boosting、Bagging和偏差、方差
1、化简公式2. bagging的偏差和方差对于bagging来说,每个基模型的权重等于1/m且期望近似相等(子训练集都是从原训练集中进行子抽样),故我们可以进一步化简得到:根据上式我们可以看到,整体模型的期望近似于基模型的期望,这也就意味着整体模型的偏差和基模型的偏差近似。同时,整体模型的方差小于等于基模型的方差(当相关性为1时取等号),随着基模型数(m)的增多,整体模型的方...转载 2019-07-03 16:16:58 · 879 阅读 · 0 评论 -
机器学习/深度学习入门:损失函数
分类问题损失函数——交叉熵(crossentropy)和Softmax交叉熵交叉熵刻画了两个概率分布之间的距离,是分类问题中使用广泛的损失函数。给定两个概率分布p和q,交叉熵刻画的是两个概率分布之间的距离:对于交叉熵理解比较透彻:https://blog.youkuaiyun.com/tsyccnh/article/details/79163834Softmax关于Softmax 函数...转载 2018-11-12 15:19:24 · 656 阅读 · 0 评论 -
机器学习/深度学习入门:AlexNet模型实现
AlexNet:ILSVRC2012年冠军改进(1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过了Sigmoid,成功解决了Sigmoid在网络较深时的梯度弥散问题。虽然ReLU激活函数在很久之前就被提出了,但是直到AlexNet的出现才将其发扬光大。(2)训练时使用Dropout随机忽略一部分神经元,以避免模型过拟合。Dropout虽有单独的论文论述,但是A...原创 2018-11-15 11:31:51 · 646 阅读 · 0 评论 -
机器学习/深度学习入门:python实现聚类k-mean
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/3/25 14:07# @Author : HJH# @Site : # @File : clauster.py# @Software: PyCharmimport mathimport randomclass Clauster(obj...原创 2018-04-01 11:47:35 · 559 阅读 · 0 评论 -
机器学习/深度学习入门:python实现逻辑回归(二分类)
代价函数总是NaN的问题已解决#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/4/3 19:37# @Author : HJH# @Site : # @File : logistics.py# @Software: PyCharmfrom numpy import *import nu...原创 2018-04-04 17:46:04 · 1602 阅读 · 0 评论 -
机器学习/深度学习入门:sklearn实现多分类逻辑回归
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/4/4 19:22# @Author : HJH# @Site : # @File : mul_logistics.py# @Software: PyCharmimport numpy as npimport matplotlib.pypl...原创 2018-04-05 15:20:50 · 2111 阅读 · 0 评论 -
机器学习/深度学习入门:python实现KNN
《机器学习实战》kNN#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/4/5 16:58# @Author : HJH# @Site : # @File : kNN.py# @Software: PyCharmfrom numpy import *import operatorfro...原创 2018-04-05 17:59:32 · 302 阅读 · 0 评论 -
机器学习/深度学习入门:python实现决策树分类
构建决策树:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/4/5 20:21# @Author : HJH# @Site : # @File : decision_tree_scatter.py# @Software: PyCharmfrom math import logimpor...原创 2018-04-07 14:10:30 · 631 阅读 · 0 评论 -
机器学习/深度学习入门:搭建神经网络流程(tensorflow版本)
搭建神经网络流程:1.加载训练数据,并预处理(对于图像等数据,可以直接转化为矩阵,或者通过tf.convert_to_tensor()将其转换为tensor数据类型处理);2.构建网络层,如conv,pool,relu,lrn,fc等,在此处需要设置相应层的权重和偏置;比较喜欢的构建方式如下(以定义AlexNet为例):import tensorflow as tfBATCH...原创 2018-06-05 15:54:01 · 1055 阅读 · 0 评论 -
机器学习/深度学习入门:训练中的问题
1.损失函数后面的epoch中出现剧烈的抖动,如下图所示,说明你的学习率在此时比较高,需要进行学习率的衰减。2.损失函数在刚开的时候抖动,并且随着epoch的增加损失函数保持在一定的范围内,说明你的学习率比较大。3.损失函数减少的比较缓慢,说明你的学习率比较小。有关学习率的影响具体如下文的连接所示:http://baijiahao.baidu.com/s?id=15915312...原创 2018-07-12 15:13:04 · 2203 阅读 · 0 评论 -
机器学习/深度学习入门:基本问题
过拟合,欠拟合和相应的解决办法欠拟合:模型没有很好地捕捉到数据特征,不能够很好地拟合数据.解决办法:模型复杂化 增加更多的特征,使输入数据具有更强的表达能力 降低正则化约束过拟合:模型把训练集数据学习的太彻底,在验证和测试集上准确率低,即模型的泛化能力差。解决办法:增加训练数据数 减少特征数 降低模型的复杂度 使用正则化约束 使用Dropout 提前结束训练(全局平均池...原创 2018-06-08 10:57:11 · 638 阅读 · 0 评论 -
机器学习/深度学习入门:准确率(查准率)、召回率(查全率)、F值和误识率(FAR)、拒识率(FRR)、ROC曲线
准确率(查准率)、召回率(查全率)、F值正确率、召回率和F值是目标的重要评价指标。正确率 = 正确识别的个体总数 / 识别出的个体总数 召回率 = 正确识别的个体总数 / 测试集中存在的个体总数 F值 = 正确率 * 召回率 * 2 / (正确率 + 召回率)假设要识别照片中的狗的,在一些照片中,包含12只狗的照片和一些猫的照片。算法识别出有8只狗。在确定的8只狗中,5只实际上是...转载 2019-03-12 19:46:38 · 12386 阅读 · 3 评论 -
机器学习/深度学习入门:CNN卷积层+全连接层
对卷积的理解:https://www.zhihu.com/question/22298352卷积层(特征提取) 假如有一幅1000*1000的图像,如果把整幅图像作为向量,则向量的长度为1000000(10^6)。在假如隐含层神经元的个数和输入一样,也是1000000;那么,输入层到隐含层的参数数据量有10^12,妈呀,什么样的机器能训练这样的网络呢。所以,我们还得降低维...转载 2018-08-04 17:29:11 · 1646 阅读 · 0 评论 -
机器学习/深度学习入门:卷积神经网络零碎知识点
开始的CNN为什么需要固定输入图像的尺寸?CNN中的卷积层和全链接层中,卷积层对于图像是没有尺寸限制要求的,全链接层需要固定输入向量的维数,全链接层输入向量的维数对应全链接层的神经元个数,所以如果输入向量的维数不固定,那么全链接的权值参数个数也是不固定的,这样网络就是变化的。而在卷积层,我们需要学习的是11*11的kernal filter 参数个数是固定的。为什么有了全连接网络模型还要C...原创 2018-08-05 10:22:16 · 396 阅读 · 0 评论 -
机器学习/深度学习入门:微调和迁移学习的关系
在实际中,因为数据量小的缘故,很少有人会去从零开始去训练出一个CNN(train from scratch)。相反,普遍的做法都是在一个大的数据集上(比如ImageNet,包含120万张来自1000的类的数据集)进行预训练一个CNN模型,然后在这使用这个模型作为固定特征提取器或者网络的初始化权重应用在特定的任务中。主要的迁移学习的场景:Ø CNN feature + classifier;这...转载 2018-08-20 14:43:58 · 1002 阅读 · 0 评论 -
机器学习/深度学习入门:项目中的问题
1.错误如下:ValueError: Tensor("Reshape_7:0", shape=(1, 6), dtype=int32) must be from the same graph as Tensor("word_embedding_matrix:0", shape=(26320, 50), dtype=float32_ref).'''简写为'''ValueError: Ten...原创 2018-10-09 16:59:26 · 645 阅读 · 0 评论 -
机器学习/深度学习入门:LeNet模型实现
LeNet:最早用于数字识别的CNN输入层:32*32===》C1===》S2(平均池化)===》C3===》S4===》F5===》F6===》F7(输出层)TensorFlow实现数据集准备:首先是网络结构如下:#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/10/22 14:15#...原创 2018-11-02 16:08:09 · 601 阅读 · 0 评论 -
机器学习/深度学习入门:python实现线性回归
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/4/1 9:36# @Author : HJH# @Site : # @File : linear2.py# @Software: PyCharmimport numpy as npfrom sklearn.datasets import l...原创 2018-04-01 10:44:07 · 940 阅读 · 0 评论