帮我发一张函数的求导公式和特殊函数的求导公式,谢谢!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了帮我发一张函数的求导公式和特殊函数的求导公式,谢谢!相关的知识,希望对你有一定的参考价值。
就业市场上,机器学习工程师总是受到质疑,人们不相信他们数学功底深厚。事实上,所有机器学习算法的本质都是数学问题,无论是支持向量机、主成分分析还是神经网络最终都归结为对偶优化、谱分解筛选和连续非线性函数组合等数学问题。只有彻底理解数学,才能正真掌握这些机器学习算法。Python中的各种数据库能帮助人们利用高级算法来完成一些简单步骤。例如包含了K近邻算法、K均值、决策树等算法的机器学习算法库Scikit-learn,或者Keras,都可以帮助人们构建神经网络架构,而不必了解卷积神经网络CNNs或是循环神经网络RNNs背后的细节。
然而,想要成为一名优秀的机器学习工程师需要的远不止这些。在面试时,面试官通常会问及如何从零开始实现K近邻算法、决策树,又或者如何导出线性回归、softmax反向传播方程的矩阵闭式解等问题。
回顾一些微积分的基本概念助你准备面试,如一元和多元函数的导数、梯度、雅可比矩阵和黑塞矩阵。同时,本文还能为你深入研究机器学习、尤其是神经网络背后的数学运算打下良好的基础。这些概念将通过5个导数公式来展示,绝对是面试必备干货。
导数1:复合指数函数
指数函数非常基础常见,而且非常有用。它是一个标准正函数。在实数ℝ中eˣ > 0,同时指数函数还有一个重要的性质,即e⁰ = 1。
另外,指数函数与对数函数互为反函数。指数函数也是最容易求导的函数之一,因为指数函数的导数就是其本身,即(eˣ)’ = eˣ。当指数与另一个函数组合形成一个复合函数时,复合函数的导数就变得更为复杂了。在这种情况下,应遵循链式法则来求导,f(g(x))的导数等于f’(g(x))⋅g’(x),即:
运用链式法则可以计算出f(x)= eˣ²的导数。先求g(x)=x²的导数:g(x)’=2x。而指数函数的导数为其本身:(eˣ)’=eˣ。将这两个导数相乘,就可以得到复合函数f(x)= eˣ²的导数:
这是个非常简单的例子,乍一看可能无关紧要,但它经常在面试开始前被面试官用来试探面试者的能力。如果你已经很久没有温习过导数了,那么很难确保自己能够迅速应对这些简单问题。虽然它不一定会让你得到这份工作,但如果你连这么一个基本问题都回答不上,那你肯定会失去这份工作。
导数2:底数为变量的复变指数
复变指数函数是一个经典面试问题,尤其是在计量金融领域,它比科技公司招聘机器学习职位更为看重数学技能。复变指数函数迫使面试者走出舒适区。但实际上,这个问题最难的部分是如何找准正确的方向。
当函数逼近一个指数函数时,首先最重要的是要意识到指数函数与对数函数互为反函数,其次,每个指数函数都可以转化为自然指数函数的形式:
在对复变指数函数f(x) = xˣ求导前,要先用一个简单的指数函数f(x) = 2ˣ来证明复变函数的一种性质。先用上述方程将2ˣ 转化为exp(xln(2)),再用链式法则求导。
现在回到原来的函数f(x)=xˣ,只要把它转化为f(x)=exp(x ln x),求导就变得相对简单,可能唯一困难的部分是链式法则求导这一步。
注意这里是用乘积法则(uv)’=u’v+uv’来求指数xln(x)的导数。
通常情况下,面试官提问这个函数时不会告诉你函数定义域。如果面试官没有给定函数定义域,他可能是想测试一下你的数学敏锐度。这便是这个问题具有欺骗性的地方。没有限定定义域,xˣ既可以为正也可以为负。当x为负时,如(-0.9)^(-0.9),结果为复数-1.05–0.34i。 参考技术A 基本函数的导函数
C'=0(C为常数)
(x^n)'=nx^(n-1) (n∈R)
(sinx)'=cosx
(cosx)'=-sinx
(e^x)'=e^x
(a^x)'=(a^x)*lna(a>0且a≠1)
[logax)]' = 1/(x·lna)(a>0且a≠1且x>0)
[lnx]'= 1/x
和差积商函数的导函数
[f(x) + g(x)]' = f'(x) + g'(x)
[f(x) - g(x)]' = f'(x) - g'(x)
[f(x)g(x)]' = f'(x)g(x) + f(x)g'(x)
[f(x)/g(x)]' = [f'(x)g(x) - f(x)g'(x)] / [g(x)^2]
复合函数的导函数
设 y=u(t) ,t=v(x),则 y'(x) = u'(t)v'(x) = u'[v(x)] v'(x)
例 :y = t^2 ,t = sinx ,则y'(x) = 2t * cosx = 2sinx*cosx = sin2x追问
五角星什么意思?怎么读?
本回答被提问者和网友采纳激活函数汇总,包含公式求导过程以及numpy实现,妥妥的万字干货
1、激活函数的实现
1.1 sigmoid
1.1.1 函数
函数: f ( x ) = 1 1 + e − x f(x)=\\frac{1}{1+e^{-x}} f(x)=1+e−x1
1.1.2 导数
求导过程:
根据:
(
u
v
)
′
=
u
′
v
−
u
v
′
v
2
\\left ( \\frac{u}{v} \\right ){}'=\\frac{{u}'v-u{v}'}{v^{2}}
(vu)′=v2u′v−uv′
f
(
x
)
′
=
(
1
1
+
e
−
x
)
′
=
1
′
×
(
1
+
e
−
x
)
−
1
×
(
1
+
e
−
x
)
′
(
1
+
e
−
x
)
2
=
e
−
x
(
1
+
e
−
x
)
2
=
1
+
e
−
x
−
1
(
1
+
e
−
x
)
2
=
(
1
1
+
e
−
x
)
(
1
−
1
1
+
e
−
x
)
=
f
(
x
)
(
1
−
f
(
x
)
)
\\begin{aligned} f(x)^{\\prime} &=\\left(\\frac{1}{1+e^{-x}}\\right)^{\\prime} \\\\ &=\\frac{1^{\\prime} \\times\\left(1+e^{-x}\\right)-1 \\times\\left(1+e^{-x}\\right)^{\\prime}}{\\left(1+e^{-x}\\right)^{2}} \\\\ &=\\frac{e^{-x}}{\\left(1+e^{-x}\\right)^{2}} \\\\ &=\\frac{1+e^{-x}-1}{\\left(1+e^{-x}\\right)^{2}} \\\\ &=\\left(\\frac{1}{1+e^{-x}}\\right)\\left(1-\\frac{1}{1+e^{-x}}\\right) \\\\ &=\\quad f(x)(1-f(x)) \\end{aligned}
f(x)′=(1+e−x1)′=(1+e−x)21′×(1+e−x)−1×(1+e−x)′=(1+e−x)2e−x=(1+e−x)21+e−x−1=(1+e−x1)(1−1+e−x1)=f(x)(1−f(x))
1.1.3 代码实现
import numpy as np
class Sigmoid():
def __call__(self, x):
return 1 / (1 + np.exp(-x))
def gradient(self, x):
return self.__call__(x) * (1 - self.__call__(x))
1.2 softmax
1.2.1 函数
softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类!
假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个元素的softmax值就是:
S
i
=
e
i
∑
j
e
j
S_{i}=\\frac{e^{i}}{\\sum _{j}e^{j}}
Si=∑jejei
更形象的如下图表示:
y
1
=
e
z
1
e
z
1
+
e
z
2
+
e
z
3
y
2
=
e
z
2
e
z
1
+
e
z
2
+
e
z
3
y
3
=
e
z
3
e
z
1
+
e
z
2
+
e
z
3
(1)
y1=\\frac{e^{z_{1}}}{e^{z_{1}}+e^{z_{2}}+e^{z_{3}}}\\\\ y2=\\frac{e^{z_{2}}}{e^{z_{1}}+e^{z_{2}}+e^{z_{3}}}\\\\ y3=\\frac{e^{z_{3}}}{e^{z_{1}}+e^{z_{2}}+e^{z_{3}}}\\\\ \\tag{1}
y1=ez1+ez2+ez3ez1y2=ez1+ez2+ez3ez2y3=ez1+e求大神指点:公式里含有积分,如何进行曲线的非线性拟合?