偏差与方差
偏差(bias)指的是算法的期望预测与真实值之间的偏差程度,反映了模型本身的拟合能力;
方差(variance)度量了同等大小的训练集的变动导致学习性能的变化,刻画了数据扰动所导致的影响。
集成学习
集成学习通过训练多个分类器,然后将其组合起来,从而达到更好的预测性能,提高分类器的泛化能力。
bagging(套袋法)
原理
bagging 是并行集成学习方法的最著名代表,其算法过程如下:
从原始样本集中抽取训练集。每轮从原始样本集中使用 Bootstraping 的方法抽取 n 个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行 k 轮抽取,得到 k 个训练集。(k 个训练集之间是相互独立的)
每次使用一个训练集得到一个模型,k 个训练集共得到 k 个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知器等)
对分类问题:将上步得到的 k 个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)
要得到泛化性能强的集成,集成中 ...
LR 和 SVM
LR(Logistic Regression,逻辑回归):解决二分类问题的机器学习方法。
SVM(Support Vector Machine,支持向量机):为了区分两类维度数据,n 维数据的样本数,m 为维度数,如何设计一个维度为 m-1 的超平面将两类数据区分开来。
LR 和 SVM 的联系
1. LR 和 SVM 都是分类算法
普通的 LR 和 SVM 算法只能处理二分类问题,当然,通过改进后的 LR 和 SVM 都可以用来处理多分类问题。
2. 在不考虑核函数时,两者都是线性分类算法
注意,不考虑核函数时两者都是线性分类器。LR、SVM 加了核函数后为分别为 KLR、KSVM,只不过一般而言采用 KSVM 较多而KLR 用得较少。
3. 两者都属于监督学习算法
4. 两者都是判别式模型
什么是判别式模型?假设给定观测集合X,需要预测的变量集合为Y,那么判别式模型就是直接对条件概率分布P(Y|X)进行建模来预测 Y;而生成式模型是指,先对联合概率模型P(X,Y)进行建模,然后在给定观测集合X的情况下,通过计算边缘分布来求解出P(Y|X)。
常见的判别式模型有:L ...
项目简介
项目介绍
误食野生蘑菇中毒事件时有发生,误食毒蘑菇是我国食物中毒事件中导致死亡的最主要原因,而且蘑菇形态千差万别,对于非专业人士,无法从外观、形态、颜色等方面区分有毒蘑菇与可食用蘑菇,没有一个简单的标准能够将有毒蘑菇和可食用蘑菇区分开来。
通过本项目“好菇毒”——蘑菇识别系统,实现对蘑菇图片的分类识别。
项目设计
系统架构
数据库设计
采用Mysql数据库。由于系统比较简单,只有一张表:mushroom。
mushroom表字段:id(主键),name(蘑菇名称),scientific_name (学名),species(所属科属),toxicity(毒性),feature(详细信息),img_path(图片路径)。
其中为提升查询效率,在scientific_name字段上建立了索引。
12345678910111213141516171819202122232425262728293031323334353637-- 创建库create database if not exists mushroom;-- 切换库use mushroom;-- 蘑菇表create tab ...
Convolutional Neural Network(CNN)——卷积神经网络
Network Architecture designed for Image.(专为影像设计的网络体系结构)
一张图片是一个三维的 Tensor,width(宽)、height(高)和 channel(通道)的数目。
一张彩色的图片每一个 Pixel(像素)都是由R、G、B 三个颜色组成,三个 channel 就代表了RGB三个颜色。width 和 height 就代表了这张图片的解析度、Pixel 的数目,表示颜色的强度 ( intensity )。
只要把一张图片变成一个向量,就可以把它当做 Network 的输入。
最直接的方法就是将它拉直,将图片(矩阵)做 flatten 处理,拉直变成一个向量。图片的每个像素点都是一个输入,输入 Network,进行训练和预测。
但是,如果将每一个像素点都作为一个输入,就会产生巨大的参数。例如,100×100×3的图像,输入神经元的数量达到了3×1043×10^43×104,如果输出神经元有1000个,那么参数量将达到3×1073×10^73×107。模 ...
When Gradient Is Small: Local Minimum and Saddle Point
Optimization失败的原因
local minima
saddle points(鞍点)
critical point(驻点):gradient is close to zero.
当loss没有办法再下降的时候,也许是因为卡在了critical point。但你不能说是卡在local minima,因为saddle point也是微分为零的点。
为什么要知道到底是卡在local minima还是卡在saddle point呢?
因为如果是卡在local minima,那可能就没有路可以走了。这是因为该点四周都比较高,你现在所在的位置已经是最低的点,此时loss最低。往四周走loss都会比较高,你不知道怎么走到其他地方。
但saddle point相比较就没有这个问题。如果你今天是卡在saddle point的话,saddle point旁边还是有路可以走的,还是有方向可以让你的loss更低的。你只要逃离saddle point,你就有可能让你的loss更低 ...
General Guidance(一般性指南)
如果模型的训练效果并不好,首先,检查你的 training data 的 loss。
也就是要先检查你的 training data,查看 model 在 training data 上的训练效果,再去看 testing 的结果。如果你发现你的 training data 的 loss 很大,显然它在训练集上面也没有训练好。接下来你要分析一下,在训练集上面没有学好是什么原因。
这边有两个可能,第一个可能是 Model Bias(模型偏差),第二个是 Optimization Issue(优化问题)
Model Bias(模型偏差)
The model is too simple.(模型过于简单)
Solution:redesign your model to make it more flexible.
在含有未知参数的函数,代入不同的参数,得到一个函数集。但这个函数集太小了,没有一个 Function 可以让 Loss 变低。
Optimization Lssue(优化问题)
存在较小的 Loss,但无法找到。
在 gradien ...
什么是机器学习?
Machine Learning ≈ Looking for Function
机器学习就是帮助人类找出一个函数。
不同类型的函数
different types of Functions
Regression(回归):The function outputs a scalar.
Classification(分类):Given options(classes),the function outputs the correct one.
Structured Learning(结构化学习):Create something with structure(image,document).
机器如何自动找一个函数?
Supervised learning(监督学习)
提供训练数据集,数据集包括数据和标签(label)。
缺点:It is not efficient to collect data for each task.(为每个任务收集数据是不高效的。)
Self-supervised Learning(自监督学习)
将大量未标注的数据(unlableed data ...
pytorch 安装
Anaconda 下载
官网:https://www.anaconda.com/
12345# 查看已有虚拟环境conda info --envs# 切换虚拟环境conda activate 环境名
anaconda换源
1234567891011121314151617181920212223# 清华源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forgeconda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/c ...
Hexo
未读搭建Hexo
Hexo官方文档:https://hexo.io/zh-cn/docs/
安装 node.js
官网下载: https://nodejs.org/en/
安装后验证: node -v
安装 git
官网下载: https://git-scm.com/download/win
安装后验证: git -v
npm 换源
1npm config set registry https://registry.npm.taobao.org
安装cnpm
12345# 安装npm install -g cnpm --registry==https://registry.npm.taobao.org# 验证cnpm -v
安装
安装Hexo
12345# 安装cnpm install -g hexo-cli# 验证hexo -v
Hexo初始化
12345# 初始化hexohexo init# 启动hexo cl;hexo g;hexo s
安装Anzhiyu主题
Anzhiyu:https://docs.anheyu.com/
12345# devgit clone - ...
本文转载自百度AI飞浆
深度学习概论
人工智能&机器学习&深度学习
在研究深度学习之前,先从三个概念的正本清源开始。概括来说,人工智能、机器学习和深度学习覆盖的技术范畴是逐层递减的,三者的关系:人工智能 > 机器学习 > 深度学习。
人工智能是最早出现的,范围也最广;随后出现的是机器学习;最内层的是深度学习,也是当今人工智能大爆炸的核心驱动力。
图1:人工智能&机器学习&深度学习的关系
简单来说,机器学习是实现人工智能的方法,深度学习是实现机器学习的技术之一。也可以说,机器学习是人工智能的子集,而深度学习是机器学习的子集。接下来我们分别看一看这三者具体包含了什么。
【人工智能】
人工智能(Artificial Intelligence, AI) 是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。
人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理等。
图2:人工智能研究领域
2006 至今,大数 ...