过拟合 过拟合(overfitting,过度学习,过度拟合): 过度准确地拟合了历史数据(精确的区分了所有的训练数据),而对新数据适应性较差,预测时会有很大误差. 过拟合是机器学习中常见的问题,解决方法主要有下面几种: 1. 增加数据量 大部分过拟合产生的原因是因为数据量太少. 2. 运用正则化 例如L1.L2 regularization等等,适用于大多数的机器学习,包括神经网络. 3. Dropout 专门用在神经网络的正则化的方法. Dropout regularization是指在深度学…
过拟合与欠拟合(Overfitting and underfitting) 官网示例:https://www.tensorflow.org/tutorials/keras/overfit_and_underfit主要步骤: 演示过拟合 - 创建基准模型 - 创建一个更小的模型 - 创建一个更大的模型 - 绘制训练损失和验证损失函数 策略 - 添加权重正则化 - 添加丢弃层 一些知识点 过拟合 在训练集上可以实现很高的准确率,但无法很好地泛化到测试数据(或之前未见过的数据).可能导致欠拟合的原因:…
过拟合: 真实的应用中,并不是让模型尽量模拟训练数据的行为,而是希望训练数据对未知做出判断. 模型过于复杂后,模型会积极每一个噪声的部分,而不是学习数据中的通用 趋势.当一个模型的参数比训练数据还要多的时候,这个模型就可以记忆这个所以训练数据的结果,而使损失函数为0. 避免过拟合的常用方法:正则化.在损失函数中加入刻画模型复杂程度的指标.损失函数: J(θ) 引入正则化损失:J(θ)+λR(ω) λ代表模型复杂损失在总损失的比列,R(ω)刻画的是模型的复杂程度. 模型的复杂程度由权重决定,一般.…
过拟合: Overfitting就是指Ein(在训练集上的错误率)变小,Eout(在整个数据集上的错误率)变大的过程 Underfitting是指Ein和Eout都变大的过程 从上边这个图中,虚线的左侧是underfitting,右侧是overfitting,发生overfitting的主要原因是:使用过于复杂的模型,数据噪音,有限的训练集 机器学习过程中的三个锦囊妙计 Occam's Razor:指的是对训练数据最简单的解释就是最好的,训练的模型可能越简单越好. Sampling Bias:抽…
基本回归 回归(Regression):https://www.tensorflow.org/tutorials/keras/basic_regression 主要步骤:数据部分 获取数据(Get the data) 清洗数据(Clean the data) 划分训练集和测试集(Split the data into train and test) 检查数据(Inspect the data) 分离标签(Split features from labels) 规范化数据(Normalize th…
基本分类 基本分类(Basic classification):https://www.tensorflow.org/tutorials/keras/basic_classification Fashion MNIST数据集 经典 MNIST 数据集(常用作计算机视觉机器学习程序的“Hello, World”入门数据集)的简易替换 包含训练数据60000个,测试数据10000个,每个图片是28x28像素的灰度图像,涵盖10个类别 https://keras.io/datasets/#fashio…
本实验通过建立一个含有两个隐含层的BP神经网络,拟合具有二次函数非线性关系的方程,并通过可视化展现学习到的拟合曲线,同时随机给定输入值,输出预测值,最后给出一些关键的提示. 源代码如下: # -*- coding: utf-8 -*- import tensorflow as tf import numpy as np import matplotlib.pyplot as plt plotdata = { "batchsize":[], "loss":[] } d…
1.心得: 在使用TensorFlow做非线性拟合的时候注意的一点就是输出层不能使用激活函数,这样就会把整个区间映射到激活函数的值域范围内无法收敛. # coding:utf-8 import tensorflow as tf import numpy as np import matplotlib.pyplot as plt import os os.environ[' # 准备需要拟合的数据点 x_data = np.arange(-2*np.pi,2*np.pi,0.1).reshape(…
影评文本分类 文本分类(Text classification):https://www.tensorflow.org/tutorials/keras/basic_text_classification主要步骤: 1.加载IMDB数据集 2.探索数据:了解数据格式.将整数转换为字词 3.准备数据 4.构建模型:隐藏单元.损失函数和优化器 5.创建验证集 6.训练模型 7.评估模型 8.可视化:创建准确率和损失随时间变化的图 IMDB数据集 包含来自互联网电影数据库的50000条影评文本 http…
分类与回归 分类(Classification)与回归(Regression)的区别在于输出变量的类型.通俗理解,定量输出称为回归,或者说是连续变量预测:定性输出称为分类,或者说是离散变量预测. 回归问题的预测结果是连续的,通常是用来预测一个值,如预测房价.未来的天气情况等等.一个比较常见的回归算法是线性回归算法(LR,Linear Regression).回归分析用在神经网络上,其最上层不需要加上softmax函数,而是直接对前一层累加即可.回归是对真实值的一种逼近预测. 分类问题的预测结果是…
TensorBoard TensorFlow自带的可视化工具,能够以直观的流程图的方式,清楚展示出整个神经网络的结构和框架,便于理解模型和发现问题. 可视化学习:https://www.tensorflow.org/guide/summaries_and_tensorboard 图的直观展示:https://www.tensorflow.org/guide/graph_viz 直方图信息中心:https://www.tensorflow.org/guide/tensorboard_histogr…
张量(Tensor) 在Tensorflow中,变量统一称作张量(Tensor). 张量(Tensor)是任意维度的数组. 0阶张量:纯量或标量 (scalar), 也就是一个数值,例如,\'Howdy\' 或 5 1阶张量:向量 (vector)或矢量,也就是一维数组(一组有序排列的数),例如,[2, 3, 5, 7, 11] 或 [5] 2阶张量:矩阵 (matrix),也就是二维数组(有序排列的向量),例如,[[3.1, 8.2, 5.9][4.3, -2.7, 6.5]] 3阶张量:三维…
Hello world # coding=utf-8 import tensorflow as tf import os os.environ[' try: tf.contrib.eager.enable_eager_execution() print("TF imported with eager execution!") except ValueError: print("TF already imported with eager execution!") t…
01 - 基本的神经网络结构 输入端--->神经网络(黑盒)--->输出端 输入层:负责接收信息 隐藏层:对输入信息的加工处理 输出层:计算机对这个输入信息的认知 每一层点开都有它相应的内容,函数和功能.一般来说, 神经网络(Neural Network)是一连串神经层所组成的把输入进行加工再输出的系统. 神经网络的加工处理: 特征(features)--->神经网络层加工--->代表特征(feature representation)--->神经网络层再次加工--->…
MNIST 数据 train-images-idx3-ubyte.gz:训练集图片 train-labels-idx1-ubyte.gz:训练集图片类别 t10k-images-idx3-ubyte.gz:测试集图片 t10k-labels-idx1-ubyte.gz:测试集图片类别 训练 # 加载训练集和测试集数据 import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist =…
tensorflow模型可以利用tf.train.Saver类保存成文件.一个模型包含下面四个文件. meta文件 存储计算图的protobuf. data-00000-of-00001文件和index文件 存储权值和偏置的二进制文件. checkpoint文件 存储模型checkpoint信息的文本文件.…
tensorflow TensorFlow is an open-source machine learning library for research and production. https://en.wikipedia.org/wiki/TensorFlow https://www.tensorflow.org/ Tutorial: https://www.tensorflow.org/tutorials/ Keras: Keras is a high-level API to bui…
保存和恢复模型(Save and restore models) 官网示例:https://www.tensorflow.org/tutorials/keras/save_and_restore_models 在训练期间保存检查点 在训练期间或训练结束时自动保存检查点.权重存储在检查点格式的文件集合中,这些文件仅包含经过训练的权重(采用二进制格式).可以使用经过训练的模型,而无需重新训练该模型,或从上次暂停的地方继续训练,以防训练过程中断 检查点回调用法:创建检查点回调,训练模型并将ModelC…
本节讲的是机器学习中出现的过拟合(overfitting)现象,以及解决过拟合的一些方法. 机器学习模型的自负又表现在哪些方面呢. 这里是一些数据. 如果要你画一条线来描述这些数据, 大多数人都会这么画. 对, 这条线也是我们希望机器也能学出来的一条用来总结这些数据的线. 这时蓝线与数据的总误差可能是10. 可是有时候, 机器过于纠结这误差值, 他想把误差减到更小, 来完成他对这一批数据的学习使命. 所以, 他学到的可能会变成这样 . 它几乎经过了每一个数据点, 这样, 误差值会更小 . 可是误…
1. 偏差与方差 - 机器学习算法泛化性能分析 在一个项目中,我们通过设计和训练得到了一个model,该model的泛化可能很好,也可能不尽如人意,其背后的决定因素是什么呢?或者说我们可以从哪些方面去改进从而使下次得到的model更加令人满意呢? ”偏差-方差分解(bias-variance decomposition)“是解释学习算法泛化能力性能的一种重要工具.偏差-方差分解试图对学习算法的期望泛化错误率进行拆解. 假设测试样本为x,yd 为 x 在数据集中的标记(注意,有可能出现噪声使得 y…
到现在为止,我们已经学习了几种不同的学习算法,包括线性回归和逻辑回归,它们能够有效地解决许多问题,但是当将它们应用到某些特定的机器学习应用时,会遇到过拟合(over-fitting)的问题,可能会导致它们效果很差. 在这段视频中,我会解释什么是过度拟合问题,并且在此之后接下来的几个视频中,我们将谈论一种称为正则化(regularization)的技术,它可以改善或者减少过度拟合问题.如果我们有非常多的特征,我们通过学习得到的假设可能能够非常好地适应训练集(代价函数可能几乎为0),但是可能会不能推…
文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人笔记,为我做个人学习笔记提供了很好的参考和榜样. § 4.正则化与过拟合问题 Regularization/The Problem of Overfitting 1 过拟合问题 The problem of overfitting 首先,Andrew Ng还是对之前几节中提到过的房屋面积-房价问题进…
Tensorflow 简介 1.1 科普: 人工神经网络 VS 生物神经网络 1.2 什么是神经网络 (Neural Network) 1.3 神经网络 梯度下降 1.4 科普: 神经网络的黑盒不黑 1.5 为什么选 Tensorflow? 1.6 Tensorflow 安装 1.7 神经网络在干嘛 Tensorflow 基础构架 2.1 处理结构 2.2 例子2 2.3 Session 会话控制 2.4 Variable 变量 2.5 Placeholder 传入值 2.6 什么是激励函数 (…
Tensorflow 简介 1.1 科普: 人工神经网络 VS 生物神经网络 1.2 什么是神经网络 (Neural Network) 1.3 神经网络 梯度下降 1.4 科普: 神经网络的黑盒不黑 1.5 为什么选 Tensorflow? 1.6 Tensorflow 安装 1.7 神经网络在干嘛 Tensorflow 基础构架 2.1 处理结构 2.2 例子2 2.3 Session 会话控制 2.4 Variable 变量 2.5 Placeholder 传入值 2.6 什么是激励函数 (…
这次根据结合Google的翻译果然速度快上许多,暂时休息,晚上在传一个exm2的随笔. 关于过度拟合下的问题 考虑从x∈R预测y的问题,下面的最左边的图显示了将\(y=\theta_0+\theta_1x\)拟合到数集的结果,我们看到数据不是真的在直线上,所以适合度不是很好. 相反,如果我们添加了一个额外的特征\(x^2\),并且拟合\(y=\theta_0+\theta_1x+\theta_2x^2\),那么我们获得一个稍微更好的拟合数据(见中图). 哈哈,这时候是不是我们添加的功能越多越好呢…
觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 训练/开发/测试集 对于一个数据集而言,可以将一个数据集分为三个部分,一部分作为训练集,一部分作为简单交叉验证集(dev)有时候也成为验证集,最后一部分作为测试集(test).接下来我们开始对训练集执行训练算法,通过验证集或简单交叉验证集选择最好的模型.经过验证我们选择最终的模型,然后就可以在测试集上进行评估了.在机器学习的小数据量时代常见的做法是将所有数据三七分,就是人们常说的70%训练集集,30%测试集,如果设置有验证集,我们可…
Awesome-TensorFlow-Chinese TensorFlow 中文资源全集,学习路径推荐: 官方网站,初步了解. 安装教程,安装之后跑起来. 入门教程,简单的模型学习和运行. 实战项目,根据自己的需求进行开发. 很多内容下面这个英文项目: Inspired by https://github.com/jtoy/awesome-tensorflow 官方网站 官网:https://www.tensorflow.org/ 中文:https://tensorflow.google.cn/…
什么是TensorFlow? TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库.节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor).它灵活的架构让你可以在多种平台上展开计算,例如台式计算机中的一个或多个CPU(或GPU).服务器.移动设备等等.TensorFlow 最初由Google Brain 小组(隶属于Google机器智能研究机构)的研究员和工程师们开发出来,用于机器…
一.源代码编译 这里要为仅支持 CPU 的 TensorFlow 构建一个 pip 软件包,需要调用以下命令: $ bazel build --cxxopt="-D_GLIBCXX_USE_CXX11_ABI=0" --config=opt --verbose_failures //tensorflow/tools/pip_package:build_pip_package   提示:默认情况下,从源代码构建 TensorFlow 会消耗大量的 RAM.如果您系统中的 RAM 资源有限…
Awesome TensorFlow  A curated list of awesome TensorFlow experiments, libraries, and projects. Inspired by awesome-machine-learning. What is TensorFlow? TensorFlow is an open source software library for numerical computation using data flow graphs. I…