IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 机器学习、人工智能、大数据学习中笔记 -> 正文阅读

[人工智能]机器学习、人工智能、大数据学习中笔记


学习中记得一些笔记:来源:李沐老师《动手学习深度学习_pytorch版本》、李航老师《统计学习方法》、葫芦娃《百面机器学习》《百面深度学习》、网络各种资料。现在是在做笔记,待做完以后再重新整理归类。实时更新。

代码实现

CrossEntropyLoss

o j o_j oj?为为归一化预测的 o o o的第 j j j个元素。
y ^ j = s o f t m a x ( o ) = e x p ( o j ) ∑ k e x p ( o k ) \hat y_j=softmax(o)=\frac{exp(o_j)}{\sum_{k}exp(o_k)} y^?j?=softmax(o)=k?exp(ok?)exp(oj?)?
这里就会发现当 o j o_j oj? 足够大时数值会上溢出。一般处理方法是 o j ? m a x ( o ) o_j-max(o) oj??max(o)。这样softmax公式就变成了:
s o f m a x ( o ) = e x p ( o j ? m a x ( o ) ) ∑ k e x p ( o k ? m a x ( o ) ) sofmax(o)=\frac{exp(o_j-max(o))}{\sum_{k}{exp(o_k-max(o))}} sofmax(o)=k?exp(ok??max(o))exp(oj??max(o))?
这样有效防止上溢出。
但对于之后求损失函数:
l = ? ∑ k y i l o g ( y ^ i ) l=-\sum_{k}{y_ilog(\hat y_i)} l=?k?yi?log(y^?i?)
l = ? l o g ( y ^ i ) l=-log(\hat y_i) l=?log(y^?i?)
y ^ i \hat y_i y^?i?足够小时便会下溢出那么对于原公式进行化简:
l = ? l o g ( e x p ( o j ) ∑ k e x p ( o k ) ) l=-log(\frac{exp(o_j)}{\sum_{k}exp(o_k)}) l=?log(k?exp(ok?)exp(oj?)?)
l = ? o j + l o g ( ∑ k e x p ( o k ) ) l=-o_j+log({\sum_{k}exp(o_k)}) l=?oj?+log(k?exp(ok?))

实现nn.seqential

import torch
import torch.nn as nn
from torch.nn import functional as F


class MySequential(nn.Module):
    def __init__(self, *arg):
        super().__init__()
        for block in arg:
            self._modules[block] = block

    def forward(self, x):
        for block in self._modules.values():
            x = block(x)
        return x

验证

net = MySequential(nn.Linear(20, 30), nn.ReLU(), nn.Linear(30, 2))
x = torch.randn((2, 20))
net(x)

输出:

tensor([[ 0.2447, -0.0728],
        [ 0.0344, -0.3802]], grad_fn=<AddmmBackward0>)

这里需要注意nn.ReLU 和F.ReLU的区别。
x ˊ = { 1 , x >threshold 0 , x <threshold \acute x = \begin{cases} 1, & \text{$x$>threshold} \\ 0, & \text{$x$<threshold} \\ \end{cases} xˊ={1,0,?x>thresholdx<threshold?

机器学习

准确率(Accuracy)精准率(Precision)召回率(Recall)均方根误差(RMSE)区别和局限

  1. 准确率: A c c u a r y = n c o r r e c t n t o t a l Accuary=\frac{n_correct}{n_total}\quad Accuary=nt?otalnc?orrect?
    当出现样本类别不平衡时这类方法无法有效区分、比如正样本1000个负样本10个只要预测时全为正样本就可以让正确率99%。
  2. 精准率:分类器分类正确的样本个数占分类器分为正样本中的比例。
  3. 召回率:分类正确的正样本数占正真正样本的数量的比例。
    单独用精准率和召回率进行评估是不准确的,因此也引入了F1值。
  4. F 1 = 2 × p r e c i s i o n × r e c a l l p r e c i s i o n + r e c a l l F1=\frac{2\times precision\times recall}{precision+recall}\quad F1=precision+recall2×precision×recall?
  5. R M S E = ∑ i = 1 n ( y i ? y i ^ ) 2 n RMSE=\sqrt{\frac{\sum_{i=1}^{n}(y_i-\hat{y_i})^2}{n}\quad} RMSE=ni=1n?(yi??yi?^?)2? ?因为RMSE对于较大的离群样本会非常敏感即使模型效果较好但当遇见较少的离群较远样本也会使得RMSE值很差。
    为此可以使用平均绝对比五擦汗提高鲁棒性。
    M A P E = ∑ i = 1 n ∣ y i ? y i ^ y i ∣ × 100 n MAPE=\sum_{i=1}^n\mid\frac{y_i-\hat{y_i}}{y_i}\mid \times \frac{100}{n} MAPE=i=1n?yi?yi??yi?^??×n100?该方法相当于对每个误差点进行归一化。

生成方法和判别方法区别

判别方法:数据直接学习决策函数f(x)或者条件概率分布 p ( y ∣ x ) p(y|x) p(yx)作为预测模型。该方法关心给定输入x,应该预测什么样的输出y。(KNN、感知机、决策树、逻辑斯蒂回归、SVM等)
生成方法:生成模型由数据学生西联合概率分布 p ( x , y ) p(x,y) p(x,y)然后求出概率条件分布 p ( y ∣ x ) p(y|x) p(yx)作为预测模型。模型表示了给定输入x产生输出y的生成关系(朴素贝叶斯法和隐马尔可夫模型)

过拟合应该如何处理

两种方法:

  1. 基于模型:
    简化模型(非线性模型变为线性模型)、添加约束(结构风险最小化、正则化)、集成学习、Dropout超参数等。
  2. 基于数据:
    数据扩充:对原始数据适当变换达到扩充数据的效果。

对于类别数据应该如何处理

常用的三种方法:

  1. 序号编码:比如衣服尺码三种s,m,l分别为1,2,3
  2. one-hot:分别为(1,0,0),(0,1,0),(0,0,1)
  3. 二进制编码:分别为(0,1),(1,0),(1,1)

除此以外还有Helmert Contrast、Sum Contrast、Polynomial Contrast等。

KL散度是什么

又称相对熵、是衡量相同空间中两个概率分布相对差距的测度。两个概率 p ( x ) p(x) p(x) q ( x ) q(x) q(x)的KL散度为:

D ( p ∣ ∣ q ) = ∑ x ∈ X p ( x ) l o g p ( x ) q ( x ) D(p||q)=\sum_{x\in X}p(x)log\frac{p(x)}{q(x)}\quad D(pq)=xX?p(x)logq(x)p(x)?

交叉熵是什么、

用于衡量估计模型和真是概率分布之间的差异。
随机变量 X ∽ p ( x ) X\backsim p(x) Xp(x),模型 q ( x ) q(x) q(x)用于近似 p ( x ) p(x) p(x)的分布,
H ( X , q ) = H ( X ) + D ( p ∣ ∣ q ) = ? ∑ x ∈ X p ( x ) l o g q ( x ) = E p ( l o g 1 q ( x ) ) H(X,q)=H(X)+D(p||q)\\=-\sum_{x\in X}p(x)logq(x)\\=E_p(log\frac1{q(x)}) H(X,q)=H(X)+D(pq)=?xX?p(x)logq(x)=Ep?(logq(x)1?)

人工智能、机器学习、深度学习区别

人工智能泛指让机器具有人的智力的技术。
机器学习指计算机通过观察环境(学习数据特征)自我更新进步。
深度学习是机器学习的一种方法。基于神经网络。

特征工程是什么

对原始数据进行处理将其提炼为特征。从本质上讲特征工程是一个表现和展示数据的过程。实际工作生产中,特征工程指的是去除原始数据中的杂质和冗余。

为什么要做归一化、哪些类型数据需要做

是各个特征之间具有可比性(统一量纲)。使模型能够更容易通过梯度下降找到最优解。
在这里插入图片描述上图来源

主要方法有线性归一化。
x ˊ = x ? x m i n x m a x ? x m i n \acute x=\frac{x-x_{min}}{x_{max}-x_{min}}\quad xˊ=xmax??xmin?x?xmin??
标准化有些地方也叫零均值归一化
x ˊ = x ? x ˉ σ \acute x=\frac{x-\bar x}{\sigma}\quad xˊ=σx?xˉ?
使用场景:

  1. 对输出范围有要求
  2. 数据较稳定,不存在极端最大值或最小值。
  3. 存在异常值或者较多噪声使用标准化,通过中心化避免异常值和极端值影响。
  4. SVM,KNN,PCA等模型必须进行归一化或者标准化。

决策树不需要归一化因为其计算的是信息增益比,信息增益比和特征是否归一化无关。

归一化和标准化区别

归一化会改变数据的原始距离、分布和信息。标准化不会。

深度学习

深度学习优势

能够处理人们并不完全懂得问题,也更加擅长处理含噪声或不完全的数据。

卷积网络

什么是感受野、怎样计算感受野

对于某层输出特征图上某个点,在卷积网络的原始输入数据上能够影响到这个点的取值的区域。

一维卷积是什么

普通卷积可以转化为矩阵乘法。
y = A x y=Ax y=Ax
x,y为卷的输入输出(展平为一维向量的形式)维度分别为 d ( i ) 和 d o d^{(i)}和 d^{o} d(i)do,A是由卷积核、滑动步长决定的长对角矩阵维度为 d 0 × d i d^{0}\times d^{i} d0×di,其每一行对应着卷积核的一次滑动位置。
定义一维输入向量 x = [ a , b , c , d , e , f , g ] T x=[a,b,c,d,e,f,g]^T x=[a,b,c,d,e,f,g]T,卷积核为 K = [ x , y , z ] K=[x,y,z] K=[x,y,z],设卷积的滑动步长为2,则输出向量为:
y = [ a x + b y + c z c x + d y + e z e x + f y + g z ] = [ x y y z 0 0 0 0 0 0 x y y z 0 0 0 0 0 0 x y y z ] [ a b c d e f g ] = A x y=\begin{bmatrix} ax+by+cz \\ cx+dy+ez \\ ex+fy+gz\\ \end{bmatrix}=\begin{bmatrix} x&y&y&z&0&0&0&0 \\0&0&x&y&y&z&0&0\\ 0&0&0&0&x&y&y&z\\ \end{bmatrix}\begin{bmatrix} a\\ b\\ c\\ d\\e\\f\\g\\\end{bmatrix}\\=Ax y=???ax+by+czcx+dy+ezex+fy+gz????=???x00?y00?yx0?zy0?0yx?0zy?00y?00z???????????????abcdefg????????????=Ax

卷积网络变种有哪些

  1. 分组卷积:将输入通道和输出通道都划分为同样的组数,然后让处于相同组号的输入输出通道互相进行“全连接”。记 g g g为输入\输出通道所分的组数,则其参数量和计算量都降低为普通卷积的 1 / g 1/g 1/g
  2. 转置矩阵:普通卷积为 y = A x y=Ax y=Ax A T A^T AT为矩阵 A A A的转置,定义转置卷积运算为: y ^ = A T x ^ \hat{y}=A^T\hat{x} y^?=ATx^
    x ^ 和 y ^ \hat{x}和\hat{y} x^y^?为转置卷积的输入和输出。起作用:1.转置卷积能够将普通卷积中输入到输出的尺寸变换逆反。2.转置卷积的信息正向传播与普通卷积的反向传播所用矩阵相同。实现对特征图进行扩展或者上采样。
  3. 空洞卷积:在不使用池化的情况下扩大感受野。

卷积网络和全连接层的区别

MLP是输出层每个节点于输入层每个节点都有连接。
卷积神经网络具有局部连接权值共享
卷积核通过对输入的多通道特征图进行扫描和运算。
在这里插入图片描述

  1. 局部链接: 因为卷积核尺寸小于输入的特征图尺寸,所以输出层的每个节点都只和输入层的部分节点相关,这与生物视觉信号相似,存在一个感受野的概念。全连接层中节点之间的连接时稠密的。
  2. 权值共享:因为卷积核参数一致是的在输出层上不同位置的节点与输入层权值连接都一样。全连接层中不同节点连接权值不同。
    为什么要权值共享百度百科:另外,换个角度理解为什么权值要固定,比如我有个曲线的特征过滤器,那么这个过滤器在扫描全图的时候,我们想要提取出所有的曲线区域,是不是这个过率器不能变?如果在上半部分过滤器是曲线,到下半部分变成了直线,那么在图像上下区域内提取出来的曲线特征是真正的曲线吗?个人认为从这个直白的角度更容易理解。
    百面深度学习:权值共享降低内存和计算复杂度。
  3. 输入/输出数据结构化:在输入输出时保持原始数据的结构、空间对应特征。(二维图像进入全连接层会损失数据与原始数据结构上的对应)

卷积神经网络基本操作

自然语言处理

自然语言中如何计算交叉熵

H ( L , q ) = ? lim ? n → ∞ 1 n ∑ x 1 n p ( x 1 n ) l o g q ( x 1 n ) H(L,q)=-\lim_{n \to \infty}\frac{1}{n}\quad\sum_{x_1^n}p(x_1^n)logq(x_1^n) H(L,q)=?nlim?n1?x1n??p(x1n?)logq(x1n?)
x 1 n = x 1 , x 2 , … , x n x_1^n=x_1,x_2,\ldots,x_n x1n?=x1?,x2?,,xn?为L词序列。 p ( x 1 n ) p(x_1^n) p(x1n?)为为模型q对 x 1 n x_1^n x1n?的概率估计。当L为稳态的遍历性随机时。
H ( L , q ) ≈ ? lim ? n → ∞ 1 n l o g q ( x 1 n ) H(L,q)\approx-\lim_{n \to \infty}\frac{1}{n}logq(x_1^n) H(L,q)?nlim?n1?logq(x1n?)

困惑度

在设计语言模型是通常使用困惑度代替交叉熵衡量语言模型好坏。给定语言L的样本 l 1 n = l 1 , l 2 , … , l n l_1^n=l_1,l_2,\ldots,l_n l1n?=l1?,l2?,,ln?
P P q = 2 H ( L , q ) ≈ [ q ( l 1 n ) ] ? 1 n PP_q=2^{H(L,q)}\approx[q(l_1^n)]^{-\frac1n} PPq?=2H(L,q)[q(l1n?)]?n1?

TF-IDF

T F ? I D F ( t , d ) = T F ( t , d ) × I D F ( t ) TF-IDF(t,d)=TF(t,d)\times IDF(t) TF?IDF(t,d)=TF(t,d)×IDF(t)
T F ( t ) TF(t) TF(t)为单词 t t t在文档d中出现的频率。 I D F ( t ) IDF(t) IDF(t)是逆文档频率。用来衡量单词t对表达语义所起的重要性。

I D F ( t ) = l o g 文 章 总 数 包 含 单 词 t 的 文 章 总 数 + 1 IDF(t)=log\frac{文章总数}{包含单词t的文章总数+1}\quad IDF(t)=logt+1?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:28:52  更:2021-12-24 18:28:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 6:03:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码