精华内容
下载资源
问答
  • 【深度学习】介绍六大类损失函数(九)
    千次阅读
    2020-03-24 16:49:38

    写在最前面的话:本文主要整理深度学习中的损失函数,从原理到作用,详细了解损失函数。

    损失函数

    损失函数(loss function) 是用来评估模型的预测值f(x)与真实值y的不一致程度,它是一个非负值,常用符号 L ( f ( x ) , y ) L(f(x), y) L(f(x),y)表示。损失函数在模型的性能中起关键作用,选择正确的损失函数能帮助模型在数据集中获得最优最快的收敛,起到指导模型学习的作用。它的值越小,说明模型的鲁棒性越好。损失函数是经验风险函数的核心部分,也是结构风险函数的重要组成部分。模型的结构风险函数包括了经验风险项和正则项,通常可以表示为:
    θ ∗ = arg min ⁡ θ 1 N ∑ i = 1 N L ( f ( x i ; θ ) , y i ) + λ Φ ( θ ) \theta^*=\argmin_\theta \frac1N\sum_{i=1}^NL(f(x_i;\theta), y_i)+\lambda\Phi(\theta) θ=θargminN1i=1NL(f(xi;θ),yi)+λΦ(θ)
    其中,加号前面的项为经验风险损失函数,L表示损失函数,加号后面的项为正则化项。

    下面介绍在计算机视觉中一些常用的损失函数。

    Pixel-wise Loss

    pixel-wise:字面上的理解一样,一张图片是由一个个pixel(像素)组成的,这个是图像的基本单位,像素级别的。故,pixel-wise 损失函数是计算预测图像与目标图像的像素间的损失。属于像素间类型的损失函数,常见的有:MSE(L2损失),MAE(L1损失)和交叉熵等。

    MSE 均方误差

    均方误差(Mean Squared Error,MSE) 是指参数估计值与参数真值之差平方的期望值,MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度,通常用在回归问题中作为损失函数
    M S E = 1 N ∑ i = 1 N ( y i − f ( x i ) ) 2 MSE=\frac1N\sum_{i=1}^N(y_i-f(x_i))^2 MSE=N1i=1N(yif(xi))2
    其中, i 表示第 i 个样本,N 表示样本总数。

    MAE 平均绝对误差

    平均绝对误差(Mean Absolute Error,MAE) 是绝对误差的平均值 ,平均绝对误差能更好地反映预测值误差的实际情况,通常用来作为回归算法的性能指标
    M A E = 1 N ∑ i = 1 N ∣ y i − f ( x i ) ∣ MAE=\frac1N\sum_{i=1}^N|y_i-f(x_i)| MAE=N1i=1Nyif(xi)
    其中, i 表示第 i 个样本,N 表示样本总数。

    CE 交叉熵损失

    交叉熵(Cross Entry,CE) 是用来评估当前训练得到的概率分布与真实分布的差异情况,减少交叉熵损失就是在提高模型的预测准确率,通常用作分类问题的损失函数
    C E ( p , q ) = − ∑ i = 1 N p ( x i ) log ⁡ q ( x ( − i ) ) CE(p,q)=-\sum_{i=1}^Np(x_i)\log q(x_{(-i)}) CE(p,q)=i=1Np(xi)logq(x(i))
    其中,p(x)是指真实分布的概率,q(x)是模型通过数据计算出来的概率估计。

    这些损失函数都是对图像中每个像素向量的类预测情况进行评估,所以它们通常都应用在分类和回归问题中。

    Perceputal Loss

    Perceputal loss 中文名叫感知损失,被用在GAN网络中的。对于图像风格化、超分辨率重建等任务来说,早期使用的像素空间的L2 损失得到的图像细节模糊,视觉效果往往是不好的,它与人眼感知的图像质量并不匹配,因此就有学者提出使用Perceputal loss取代L2 loss,能获得细节丰富的结果。

    感知损失是比较图像之间的高级感知和语义差异,它从预训练好的网络中提取前几层的输出指,从而获得图像的底层特征,然后通过简单的像素级损失来比较目标的特征张量和输出值的特征张量的区别。我们都知道,对于一个卷积神经网络CNN来说,浅层的网络是提取简单的特征(如边缘、颜色),而深层的卷积层才能提取更复杂的特征(如特定的形状,模式),因此在网络的前几层捕获的低层次特征都是差不多,这个发现也是支撑迁移学习的理论基础。感知损失的数学表达式为:
    L j = ∣ ∣ V j ( y ) − V j ( f ( x ) ) ∣ ∣ 2 2 C j ∗ H j ∗ W j L_j=\frac{||V_j(y)-V_j(f(x))||^2_2}{C_j*H_j*W_j} Lj=CjHjWjVj(y)Vj(f(x))22
    其中, V j ( f ( x ) ) V_j(f(x)) Vj(f(x))表示预训练网络第j层在处理图像f(x)时的激活情况,其形状为 ( C j , H j , W j ) (C_j,H_j,W_j) (Cj,Hj,Wj),这里使用L2损失的平方,将图像归一化,比较groun truth图像y与预测图像f(x)的激活情况。

    Content-Style Loss

    Content-Style Loss是在风格迁移中的一种损失函数。风格转换是将图像的语义内容转换为不同风格的过程,风格迁移模型的目标是:给定一个内容图像(C)和一个风格图像(S),生成出包含C的内容和S的风格的输出图像。

    风格迁移
    构造风格迁移的损失函数的思路是:

    1. 随机生成一张图像;
    2. 计算其与内容图像C之间的内容损失 L c o n t e n t L_{content} Lcontent
    3. 计算其与风格图像S之间的内容损失 L s t y l e L_{style} Lstyle
    4. 最小化损失函数 L o s s = α L c o n t e n t + β L s t y l e Loss=\alpha L_{content}+\beta L_{style} Loss=αLcontent+βLstyle,其中 α , β \alpha,\beta α,β为超参数。

    在风格迁移中,内容损失与上面的感知损失类似,是比较生成图像P与内容图像C在预训练好的网络中某一层的特征图的相似度,即计算两个特征图的L2距离,用数学表示:
    L c o n t e n t = ∑ i , j ∣ ∣ A i , j l ( C ) − A i , j l ( P ) ∣ ∣ 2 2 2 L_{content}=\frac{\sum_{i,j}||A_{i,j}^l(C)-A_{i,j}^l(P)||_2^2}{2} Lcontent=2i,jAi,jl(C)Ai,jl(P)22
    同样,计算生成图像与风格图像的内容损失,然后就可以得到总的风格损失:
    L o s s = α L c o n t e n t + β L s t y l e Loss=\alpha L_{content}+\beta L_{style} Loss=αLcontent+βLstyle
    其中 α , β \alpha,\beta α,β为超参数。

    Texture Loss

    Texture Loss(纹理损失)也是出现在风格迁移中的一种损失函数,由Gatys et al在2016年引入在风格迁移中。纹理损失是对感知损失的一种改进,适用在捕获图像的风格中,Gatys et al发现:可以通过查看预训练网络中特征图内的值的空间相关性来提取图像的风格表示。纹理损失主要是通过计算Gram矩阵来实现的:
    G i , j l = ∑ k F i , k l F j , k l G_{i,j}^l=\sum_kF_{i,k}^lF_{j,k}^l Gi,jl=kFi,klFj,kl
    其中, F i F_i Fi是预训练网络中 l l l层的特征图。Gram矩阵是向量化特征映射 F i F_i Fi F j F_j Fj l l l层的内积,它捕获了特征在图像不同部分出现的趋势。

    日常科普:n维欧式空间中任意k( k ≤ n k\le n kn)个向量 α 1 , α 2 , . . . , α k \alpha_1,\alpha_2,...,\alpha_k α1,α2,...,αk的内积所组成的矩阵称为k个向量 α 1 , α 2 , . . . , α k \alpha_1,\alpha_2,...,\alpha_k α1,α2,...,αk的格拉姆矩阵(Gram矩阵)。

    因此,纹理损失的数学表示为:
    E l = 1 4 N l 2 M l 2 ∑ i , j ( G i , j 2 − A i , j 2 ) 2 E_l=\frac{1}{4N_l^2M_l^2}\sum_{i,j}(G_{i,j}^2-A_{i,j}^2)^2 El=4Nl2Ml21i,j(Gi,j2Ai,j2)2
    其中, G i , j G_{i,j} Gi,j A i , j A_{i,j} Ai,j分别为模型输出的I层和目标图像在模型中I层的风格样式表示。 N l N_l Nl是第I层中不同特征映射的数量, M l M_l Ml是第I层中特征映射的容量(简单来说,就是通道的宽高), E l E_l El代表I层的纹理损失。

    整个网络的纹理损失是所有层的纹理损失的加权和:
    L s t y l e ( S , P ) = ∑ l = 0 L w l E l L_{style}(S,P)=\sum_{l=0}^Lw_lE_l Lstyle(S,P)=l=0LwlEl
    这里的S是风格图像的纹理,P是生成图像。

    Topological Perceputal Loss

    拓扑感知损失函数(Topological Perceputal Loss)是感知损失的一种延申,主要应用在分割mask预测。 Mosinska等人提出,在图像分割领域中一般使用的是pixel-wise损失,因为图像分割任务的本质还是对像素点的分类,被称为密集预测,所以对于分类问题自然就采用交叉熵损失函数。像素级的损失仅依赖局部测度,不考虑图像中拓扑结构的特征(如连接的形状,或者孔的数量),这导致传统的分类模型会对浅层的结构容易出现分类错误的问题。为了改进像素损失,Mosinska引入了一个惩罚项,该惩罚项基于预训练模型(VGG-19网络)生成的特征图,类似于感知损失,主要考虑补充拓扑信息:
    L t o p = ∑ n = 1 N ∑ m = 1 M ∣ ∣ l n m ( y ) − l n m ( f ( x ) ) ∣ ∣ 2 2 L o s s = L p i x e l + μ L t o p \begin{aligned} L_{top}&=\sum_{n=1}^N\sum_{m=1}^M||l_n^m(y)-l_n^m(f(x))||^2_2\\ Loss&=L_{pixel}+\mu L_{top}\end{aligned} LtopLoss=n=1Nm=1Mlnm(y)lnm(f(x))22=Lpixel+μLtop

    其中, l n m l_n^m lnm表示VGG-19网络的n层的第m个feature map。 μ \mu μ是衡量像素损失和拓扑损失的权重参数。

    GAN Loss

    生成式对抗网络(GAN, Generative Adversarial Networks ) 是一种通过模型中的两个模块相互博弈学习产生较好的输出的网络,这两个模块分别为:生成模型(Generative Model)和判别模型(Discriminative Model)。判别模型的任务是评估当前这张图像是ground truth(真图像)还是由生成模型生成的图像(假图像)。在GAN中,生成模型的损失函数是隐式的,它以判别模型的判别结果作为反馈,在训练过程中不断学习。而判别模型的损失函数则是显式的,因此,在网络训练过程中,生成模型和判别模型都参与其中,它们轮流更新各自的模型权重。

    Min-Max 损失函数

    GAN的计算流程和结构如下图所示。GAN目标函数
    这是原始的GAN提出的loss:
    D i s c r i m i n a t o r → max ⁡ : log ⁡ D ( x ) + log ⁡ ( 1 − D ( G ( z ) ) ) G e n e r a t o r → min ⁡ : log ⁡ ( 1 − D ( G ( z ) ) ) \begin{aligned} Discriminator &\to \max:\log D(x)+\log(1-D(G(z)))\\ Generator &\to \min:\log(1-D(G(z))) \end{aligned} DiscriminatorGeneratormax:logD(x)+log(1D(G(z)))min:log(1D(G(z)))
    这里的 x x x代表真实样本, z z z代表噪声样本, G ( z ) G(z) G(z)表示生成器在随机噪声中生成假的图像。整个损失函数都是在D(判别模型)输出处产生的,D的输出一般是0/1。Discriminator 的损失函数:因为输入采样自真实数据所以我们期望D(x)趋近于1,也就是取max。同理Generator 输入采样自G生成数据,所以我们期望D(G(z))趋近于0更好,也就是取min。但是在实践中发现,这种生成模型的损失函数会饱和。也就是说,如果它不能像判别模型学习得那么快,判别模型赢了,游戏就结束了,模型就不能得到有效的训练。

    不饱和的GAN损失

    为了解决Min-Max损失中的生成模型损失会出现饱和的情况,专门对生成模型的损失函数做了改进:
    G e n e r a t o r → max ⁡ : log ⁡ ( D ( G ( z ) ) ) \begin{aligned} Generator &\to \max:\log(D(G(z))) \end{aligned} Generatormax:log(D(G(z)))

    最小均方GAN损失

    借鉴非GAN网络采用的损失函数一般为MSE,所以又提出了一种最小均方GAN损失:
    D i s c r i m i n a t o r → min ⁡ : ( D ( x ) − 1 ) 2 + ( D ( G ( z ) ) ) 2 G e n e r a t o r → min ⁡ : ( D ( G ( z ) ) − 1 ) 2 \begin{aligned} Discriminator &\to \min: (D(x)-1)^2+(D(G(z)))^2\\ Generator &\to \min:(D(G(z))-1)^2 \end{aligned} DiscriminatorGeneratormin:(D(x)1)2+(D(G(z)))2min:(D(G(z))1)2

    Wasserstein GAN损失

    Martin Arjovsky提出传统GAN的目标是最小化真实图像和生成图像的实际概率分布和预测概率分布之间的距离,即所谓的Kullback-Leibler (KL)散度,使用的Min-Max损失刚好等价于JS散度,由于JS散度存在一个严重的问题:两个分布没有重叠时,JS散度为零,而在训练初期,JS散度是有非常大的可能为零的。所以如果D被训练的过于强,loss会经常收敛到 − 2 log ⁡ 2 -2\log2 2log2而没有梯度。

    科普什么是JS散度?:JS散度度量了两个概率分布的相似度,基于KL散度的变体,解决了KL散度非对称的问题。一般地,JS散度是对称的,其取值是0到1之间。
    KL散度:即相对熵,用来表示两个概率分布之间的差异,但是它并不是对称的。

    对于这个问题,他们建议在地球移动距离上对问题进行建模,该模型根据将一个分布转换成另一个分布的成本来计算两个概率分布之间的距离。因此,WGAN提出了一个新的loss,Wasserstein loss, 也称作地球移动距离:
    W ( P r , P g ) = inf ⁡ r ∼ Π ( P r , P g ) E ( x , y ) ∼ r ∣ ∣ x − y ∣ ∣ W(P_r,P_g)=\inf_{r\sim \Pi(P_r,P_g)}E_{(x,y)\sim r}||x-y|| W(Pr,Pg)=rΠ(Pr,Pg)infE(x,y)rxy
    这个距离的直观含义是,将分布r移动到分布g所需要的距离,所以即使是两个分布没有重叠,这个loss也是有值的。可以证明,该距离可以转化为如下形式:
    W ( P r , P g ) = sup ⁡ ∣ ∣ f ∣ ∣ L ≤ 1 E x ∼ P r [ f ( x ) ] − E y ∼ P g [ f ( y ) ] W(P_r,P_g)=\sup_{||f||_{L\le1}}E_{x\sim P_r}[f(x)]-E_{y\sim P_g}[f(y)] W(Pr,Pg)=fL1supExPr[f(x)]EyPg[f(y)]
    其中f必须满足1-Lipschitz连续,即: ∣ ∣ f ( x ) − f ( y ) ∣ ∣ ≤ ∣ ∣ x − y ∣ ∣ ||f(x)-f(y)||\le||x-y|| f(x)f(y)xy。可以看到,符合1-Lipschitz连续的函数的梯度是受限的,可以有效的防止梯度的爆炸,使训练更加稳定。

    对于GAN来说,f指的是D或G,而D或G都是模型,即由一系列矩阵乘法复合而成的,那么如果矩阵乘法这个运算满足1-Lipschitz连续,那么其复合运算也会满足1-Lipschitz连续,模型也就满足1-Lipschitz连续因此,WGAN 损失就表示为:
    W G A N L o s s ( R e a l I m a g e s ) = 1 ∗ a v g    p r e d i c t e d    s c o r e W G A N L o s s ( F a k e I m a g e s ) = − 1 ∗ a v g    p r e d i c t e d    s c o r e \begin{aligned} WGAN Loss(Real Images) &= 1*avg\; predicted \;score\\ WGAN Loss(Fake Images) &= -1*avg \;predicted \;score \end{aligned} WGANLoss(RealImages)WGANLoss(FakeImages)=1avgpredictedscore=1avgpredictedscore
    使用Wasserstein损失的GAN涉及到将判别器的概念改变为一个更改评估器,比生成器模型更新得更频繁(例如,更新频率是生成器模型的五倍)。评估器用实际的数字而不是预测概率来给图像打分。它还要求模型的权重保持较小。该得分的计算使得真假图像的得分之间的距离最大程度地分离。Wasserstein的损失的好处是,它提供了一个有用几乎无处不在的梯度,允许模型的继续训练。

    循环一致性损失

    循环一致性损失是应用在Cycle GAN网络中的一种损失函数。 CycleGAN本质上是两个镜像对称的GAN,构成了一个环形网络,主要由两个生成器及两个判别器组成,如下图所示。X表示X域的图像,Y表示Y域的图像。X域的图像通过生成器G生成Y域的图像,再通过生成器F重构回X域输入的原图像;Y域的图像通过生成器F生成X域图像,再通过生成器G重构回Y域输入的原图像。判别器Dx和Dy起到判别作用,确保图像的风格迁移。
    cycle GAN
    它的损失函数被定义为:
    L c y c ( G , F ) = E x [ ∣ ∣ F ( G ( x ) ) − x ∣ ∣ 2 ] + E y [ ∣ ∣ G ( F ( y ) ) − y ∣ ∣ 2 ] L ( G , F , D X , D Y ) = L G A N ( G , D Y , X , Y ) + L G A N ( F , D X , Y , X ) + λ L c y c ( G , F ) \begin{aligned} L_{cyc}(G,F) &= E_{x}[||F(G(x))-x||_2]\\ &+E_{y}[||G(F(y))-y||_2]\\ \\ L(G,F,D_X,D_Y)&=L_{GAN}(G,D_Y,X,Y)\\ &+L_{GAN}(F,D_X,Y,X)\\ &+\lambda L_{cyc}(G,F) \end{aligned} Lcyc(G,F)L(G,F,DX,DY)=Ex[F(G(x))x2]+Ey[G(F(y))y2]=LGAN(G,DY,X,Y)+LGAN(F,DX,Y,X)+λLcyc(G,F)

    总结

    本文主要介绍在计算机视觉中不同网络使用的损失函数。
    参考:
    https://mp.weixin.qq.com/s?__biz=MzUxNjcxMjQxNg==&mid=2247497334&idx=4&sn=95926d1ae4e209eff6b361dfc3132dc9&chksm=f9a184f9ced60def1b163d5599421494ea755636af08a845844bf5f465334e7eaea0517b4c1e&mpshare=1&scene=23&srcid=0323DdI1QqBoRgXjzFLEKzfi&sharer_sharetime=1584956360970&sharer_shareid=7f7e7160bc27c0d4e5d25b89aee9e9d5#rd
    https://zhuanlan.zhihu.com/p/72195907
    https://www.jianshu.com/p/64bf39804c80

    更多相关内容
  • 六大基本初等函数图像及其性质.doc
  • 六大基本初等函数图像和性质.doc
  • 课 新建Photoshop图像 教学目标1熟悉Photoshop的工作界面 2提高学生的信息技术水平 教学重点1熟悉Photoshop的工作界面 2新建图画文件 3了解及运用画笔填充工具 4文件的定向保存 教学难点画笔填充工具的运用 课?...
  • 基本初等函数图像及性质.pdf
  • 之前用,绘制了对数函数,有了这三个基础工作的积累,本期,将研究如何利用python把六类基本初等函数一劳永逸的绘制出来。基本初等函数概念简单的说基本初等函数是不能再由其他更简单结构的函数通过加减乘除四则运算...

    之前用,绘制了对数函数,有了这三个基础工作的积累,本期,将研究如何利用python把六类基本初等函数一劳永逸的绘制出来。

    基本初等函数概念

    简单的说基本初等函数是不能再由其他更简单结构的函数通过加减乘除四则运算来结合而成的函数。在数学里,基本初等函数包括幂函数、指数函数、对数函数、三角函数、反三角函数、常数函数一共6类。基本初等函数均是连续函数,这使得其图形看起来是连贯的,前面已经介绍过指数函数和对数函数,现在把六类函数的形状和定义域和值域整理。

    常数函数

    一般的,形如

    的函数称为常数函数,其中c为任意实数,故常数函数的定义域和值域均为全体实数R。

    幂函数

    一般地,形如

    的函数称为幂函数,幂函数的定义域和值域均为全体实数R。

    指数函数

    一般地,形如

    的函数称为幂函数,其中a>0, a≠1,指数函数的定义域为全体实数R,值域为(0,+∞)。

    对数函数

    一般地,形式

    的函数称为对数函数,其中a>0, a≠1,指数函数的定义域为(0,+∞),值域为全体实数R。

    三角函数

    常见的三角函数有

    反三角函数

    常见的反三角函数主要有以下 6 个

    完整代码

    知道不同函数的定义非常关键,因为这直接决定了我们画图时候的横坐标可取值范围,先把所有典型函数列出来

    我们需要实现的功能是,我们输入一个函数表达式,程序给我们返回该表达式的图像,完整代码如下

    # -*- coding: utf-8 -*-

    """

    Created on Sun Feb 16 16:10:09 2020

    project name:draw_func_figure

    @author: 帅帅de三叔

    """

    import math #导入绘图模块

    import numpy as np #导入数值计算模块

    import matplotlib.pyplot as plt #导入绘图模块

    plt.rcParams['font.sans-serif']=['SimHei'] #绘图中文

    plt.rcParams['axes.unicode_minus']=False #绘图负号

    import mpl_toolkits.axisartist as axisartist #导入坐标轴加工模块

    def elementary_func_draw(X, expr): #定义绘制函数图形的函数,其中x是自变量,y为因变量

    #X=np.linspace(-10, 10, 100) #自变量

    Y=list(map(lambda x:eval(expr), X))

    fig=plt.figure(figsize=(4, 4)) #新建画布

    ax=axisartist.Subplot(fig, 111) #使用axisartist.Subplot方法创建一个绘图区对象ax

    fig.add_axes(ax) #将绘图区对象添加到画布中

    ax.plot(X, Y, label=expr) #绘制函数图形

    ax.axis[:].set_visible(False) #隐藏原来的实线矩形

    ax.axis["x"]=ax.new_floating_axis(0, 0, axis_direction="bottom") #添加x轴

    ax.axis["y"]=ax.new_floating_axis(1, 0, axis_direction="bottom") #添加y轴

    ax.axis["x"].set_axisline_style("->", size=1.0) #给x坐标轴加箭头

    ax.axis["y"].set_axisline_style("->", size=1.0) #给y坐标轴加箭头

    plt.xlim(-max(X), max(X)) #设置横坐标范围

    plt.ylim(-max(Y), max(Y)) #设置纵坐标范围

    ax.text(-1.0, max(Y), 'y', fontsize=12) #标注y轴

    ax.annotate(s='x', xy=(max(X), 0), xycoords='data', xytext=(+0, +5), textcoords='offset points', fontsize=12) #标注x轴

    plt.legend()

    plt.show()

    plt.savefig("func_figure.png")

    if __name__=="__main__":

    expr=input("请输入函数表达式:")

    if "log" in expr: #画对数函数

    X=np.linspace(0.001, 10, 100)

    elif "asin" in expr: #画反正弦函数

    X=np.linspace(-1, 1, 100)

    elif "acos" in expr: #画反余弦函数

    X=np.linspace(-1, 1, 100)

    else:

    X=np.linspace(-10, 10, 100)

    elementary_func_draw(X, expr)

    接下来就是见证奇迹的时候

    当我输入

    2

    便会画出如下图

    图 1 y=2

    当我输入

    x**2

    便会画出如下图

    图 2 y=x^2

    当我输入

    2**x

    便会画出如下图

    图 3 y=2^x

    当我输入

    math.log(x, 2)

    便会画出如下图

    图 4 y=log_2 x

    当我输入

    math.log10(x)

    便会画出如下图

    图 5 y=log_10 x

    当我输入

    math.log(x)

    便会画出如下图

    图 6 y=ln(x)

    当我输入

    math.sin(x)

    便会画出如下图

    图 7 y=sin(x)

    当我输入

    math.cos(x)

    便会画出如下图

    图 8 y=cos(x)

    当我输入

    math.tan(x)

    便会画出如下图

    图 9 y=tan(x)

    当我输入

    1/math.tan(x)

    便会画出如下图

    图 10 y=cot(x)

    当我输入

    1/math.cos(x)

    便会画出如下图

    图 11 y=sec(x)

    当我输入

    1/math.sin(x)

    便会画出如下图

    图 12 y=csc(x)

    当我输入

    math.asin(x)

    便会画出如下图

    图 13 y=arcsin(x)

    当我输入

    math.acos(x)

    便会画出如下图

    图 14 y=arccos(x)

    当我输入

    math.atan(x)

    便会画出如下图

    图 15 y=arctan(x)

    当我输入

    math.pi/2-math.atan(x)

    便会画出如下图

    图 16 y=arccot(x)

    当我输入

    arcsec(x)

    糟糕,不出图,囧!

    当我输入

    arccsc(x)

    糟糕,不出图,二囧!

    这两个函数还有待后面解决,或许通过三角函数关系式,或者重单独重新定义这两个函数,如果你有什么好办法,欢迎留言。

    代码解释

    这里重点解释一下在给两个坐标轴打标签时候的处理方法

    ax.text(-1.0, max(Y), 'y', fontsize=12) #标注y轴

    ax.annotate(s='x', xy=(max(X), 0), xycoords='data', xytext=(+0, +5), textcoords='offset points', fontsize=12) #标注x轴在对y轴标注的时候,位置的横向,我们选定了一个定值 -1.0 ,纵向选择Y的最大值,因为横向是定下来的,从-10到10,故只需要在Y轴稍微偏左一点即可,而纵向是随着横向变化而变化的,最大莫过于max(Y),故取其最大值。

    在对x轴标注的时候,我们不在用到text()函数,改用annotate()函数,因为这个函数更为灵活

    其中

    s='x' 表示要标注的内容;

    xy=(max(X), 0)是为标注设置一个参照点(max(X), 0),即横坐标的最右端;

    xycoords='data' 表示参照点的单位是一个值的形式;

    xytext=(+0, +5)表示标注文本的偏移量,是相对于参照点的偏移量;

    textcoords=‘offset points’表示注释文本的坐标系属性,表示以点为单位,也可以是pixels,表示以像素为单位,还可以是xycoords的属性值

    因为选定了横坐标最右端为参照点,再加上偏移量,任你y轴怎么变化,这个标注会老老实实呆在那个离(max(X), 0)不远处。

    如果你还有不懂的地方欢迎来“三行科创”微信公众号留言,同时交流群免费向大家开放,入群讲缘分。

    参考文献

    1,百度百科:基本初等函数

    2,百度百科:反余切函数

    3,math模块

    - - -The end- - -

    17521754388

    展开全文
  • 基本三角函数图像

    千次阅读 2020-03-27 19:22:54
    简要描述种三角函数及其图像 正弦–sin x 余弦–cos x 正切–tan x 正割–sec x sec x = 1 / cos x 余割–csc x csc x = 1 / sin x 余切–cot x cot x = cos x / sin x = 1 / tan x 参考链接 ...

    三角函数简介

    描述

    简要描述六种三角函数及其图像

    正弦–sin x

    sin

    余弦–cos x

    cos

    正切–tan x

    tan

    正割–sec x

    • sec x = 1 / cos x

    sec

    余割–csc x

    • csc x = 1 / sin x

    csc

    余切–cot x

    • cot x = cos x / sin x = 1 / tan x

    cot

    参考链接

    展开全文
  • 基本初等函数

    千次阅读 2020-02-29 09:09:50
    数学里的六类基本初等函数,我们已经介绍了指数函数和对数函数,还剩常数函数,幂函数,三角函数和反三角函数,这一期,我们重点介绍后面四类基本初等函数。常数函数一般的,形如的函数称为常数函数,...

     

    数学里的六类基本初等函数,我们已经介绍了指数函数和对数函数,还剩常数函数,幂函数,三角函数和反三角函数,这一期,我们重点介绍后面四类基本初等函数。

     

    常数函数

    一般的,形如

     

    的函数称为常数函数,其中c为任意实数,故常数函数的定义域和值域均为全体实数R。

    也许你会问,这世界为何还有常数函数这种简单的东西,明明是把所有的东西都对应到一个确定的值上面去,事实上,这世界还真有很多这种需要,比如在处理二分类问题的时候,把所有符合条件的对象都对应到“是”,把所有不符合条件的对象都归为“否”,用分类函数写出来便是满足某种条件不满足某种条件把类似的这些函数,都纳入函数范畴处理,会更加通用和方便。

    幂函数

    一般地,形如

     

    的函数称为幂函数,其中x称为幂函数的底数,a称为幂函数的指数,幂函数的定义域和值域均为全体实数R。幂函数是底数为自变量,而指数是个常量,这个指数函数恰好相反。我们结合图像分a>0和a<0两种情况来看幂函数的性质

    (1) a>0

    幂函数α有下列性质:

    (1)、图像都经过点(1,1)(0,0)

    (2)、函数的图像在区间[0,+∞)上是增函数

    (1) a<0

    幂函数α有下列性质:

    (1)、图像都经过点(1,1)

    (2)、函数的图像在区间[0,+∞)上是减函数

    三角函数

    三角函数和反三角函数是一个比较独特的部分,这里仅介绍几类常见的三角函数和反三角函数

    常见的三角函数有

    反三角函数

    常见的反三角函数主要有以下 六类

    至此,我们已经简单介绍完六大类基本初等函数,我们知道其定义域和值域以及一些简单的基本性质,下一期,我们将重点介绍如何用python一劳永逸的生成这些函数图像,敬请期待。

    参考文献

    1,

    https://baike.baidu.com/item/%E5%9F%BA%E6%9C%AC%E5%88%9D%E7%AD%89%E5%87%BD%E6%95%B0/6608669?fr=aladdin

    - - -The end- - - 


    你可能喜欢

    对数函数

    指数函数

    买口罩的数学问题

    疫情数据中的数学题

    国家中小学网络云平台数学电子教材

    展开全文
  • 函数 1 ) 概念 一般地,如果x与y关于某种对应关系f(x)相对应,y = f(x),则y = f(x)的反函数为 x = f(y) 或者 y=f−1(x)y = f^{-1}(x)y=f−1(x) 后者为常用记发 存在反函数(默认为单值函数)的条件是原函数必须是...
  • 函数比较复杂的……具体信息答:要具体哦,如果一个自变量,函数图像就是曲线,用plot 如果是2个自变量,函数图像就是曲面了,如f=3*exp(-x-4*y),可以用以下表示。 f=@(x,y)3*exp(-x-4*y); ezmesh(f)答:举个例子,...
  • 注意:定义中没有强调函数是否可导,而且只是在某邻域内的极值。最值是在整个定义域内的 1.2、定理1:必要条件 可导函数的极值点是驻点 驻点可能是极值点 (反例: x3在x=0处是驻点,但是不是极值点) 函数在导数不...
  • 二次函数性质:二次函数图像是抛物线,a决定函数图像的开口方向,判别式b^2-4ac决定了函数图像与x轴的交点,对称轴两边函数的单调性不同。3.反比例函数性质:反比例函数图像是双曲线,当k>0时,图像经过一、三...
  • 在matlab中如何输出一个函数图像

    千次阅读 2021-04-26 14:25:16
    点击查看在matlab中如何输出一个函数图像具体信息答:A、 imread imread函数用于读入各种图像文件,其一般的用法为 [X,MAP]=imread(‘filename’,‘fmt’)其中,X,MAP分别为读出的图像数据和颜色表数据,fmt为...
  • 在学习了一些基本初等函数后,会接触“幂函数”概念,其实幂函数并不是陌生的,之前学过的依次函数、二次函数和反比例函数都是幂函数,幂函数其实同指数函数、对数函数一样,都是函数中的一特殊函数。利用几何画板...
  • 三角函数公式和图像大全

    万次阅读 多人点赞 2021-04-07 12:01:05
    初等函数的图形 幂函数的图形 指数函数的图形 对数函数的图形 三角函数的图形 反三角函数的图形 各三角函数值在各象限的符号 三角函数的性质 反三角函数的性质 三角函数公式 两角和公式...
  • python中有很多功能强大的模块,这篇经验告诉你,如何使用python的pygal模块绘制反正切函数图像。1.简介pygal是一个SVG图表库。SVG是一种矢量图格式。全称Scalable Vector Graphics — 可缩放矢量图形。用浏览器打开...
  • 之前对三角函数的理解仅局限于sin,cos,tan。但是目前考研过程中遇到的都是些csc,sec,cot,arctan,arccos,arcsin。积分和求导还有一堆公式,很容易记混。我就想能不能用图像帮助记忆,就算记不起来,也能猜出来...
  • Python绘制正余弦函数图像的方法

    千次阅读 2020-11-20 19:27:46
    今天打算通过绘制正弦和余弦函数,从默认的设置开始,一步一步地调整改进,让它变得好看,变成我们初高中学习过的图象那样。通过这个过程来学习如何进行对图表的一些元素的进行调整。01. 简单绘图matplotlib有一套...
  • 这篇经验告诉你,如何利用python的matplotlib模块三角函数图像,包括正弦、余弦、正切、余切。工具/原料windows系统电脑一台python软件,并安装matplotlib模块、numpy模块spyder编辑器方法/步骤1第一步,点击键盘 ...
  • 本人是大一的新生小白,对于函数极限的各种复杂的定义做了一个整理 内容如下: 方便大家理解,我画了第一列前三排的图 列举了逼近的不同情况,x趋近x0+是表示x从右边逼近,此时不需要要求x0处一定有定义,...
  • python中有很多功能强大的模块,这篇经验告诉你,如何利用python的matplotlib模块,绘制正弦函数y=sin(x)的图像。工具/原料windows系统电脑一台python软件,并安装由matplotlib模块和numpy模块方法/步骤1第一步,...
  • 之前对三角函数的理解仅局限于sin,cos,tan。但是目前遇到的都是些csc,sec,cot,arctan,arccos,arcsin。积分和求导还有一堆公式 最近看到了一个六边形记忆法,更加简便。
  • 欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。在上一篇文章数学分析将基本初等函数归为六类:幂函数、指数...
  • 激活函数深入理解!
  • python中有很多功能强大的模块,这篇经验告诉你,如何利用python的matplotlib模块,绘制一元一次函数图像。工具/原料windows系统电脑一台python软件,并安装由matplotlib模块和numpy模块方法/步骤1第一步,点击...
  • 零、前言 这篇是为了下一篇做点铺垫,也是来复习一些数学基础 本篇属于休闲娱乐,不要太较真,小科普一下,...3)极坐标下的函数图象 4)参数方程下的函数图形 5)正弦函数的详细分析(为下一篇文章做铺垫) 一、数学...
  • 复变函数可视化以及代数基本定理

    千次阅读 2020-11-10 13:56:41
    我们生活的世界是三维的,需要三个坐标信息才能清晰描述一个物体的位置,所以,人类很容易就能够理解三维以下的物体形状,二维笛卡尔坐标系和三维立体坐标系就是用来分析此类问题...但对于复变函数,情况有所不同。 ...
  • 各种激活函数, 图像, 导数及其特点

    千次阅读 2020-08-24 09:09:43
    文章目录sigmoid特点缺点sigmoid导数tanh特点导数Relu导数优点缺点...其图像如下: 特点 能够将输入的连续实值变换为0到1之间的输出 缺点 在深度神经网络中梯度反向传播是容易造成梯度爆炸和梯度消失 sigmoid导数 f

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,336
精华内容 28,134
关键字:

六大类基本函数图像

友情链接: officestore.rar