程序员数学基础整理

1.矩阵运算(参考线性代数,较简单)

矩阵加法、矩阵乘法

2.卷积(Convolution)

卷积神经网络(Convolutional Neural Network, CNN)

设:f(x),g(x)是R1上的两个可积函数,作积分:


2.1卷积的另外解释

卷积表示为y(n)=x(n)∗h(n)y(n)=x(n)∗h(n) 
使用离散数列来理解卷积会更形象一点,我们把y(n)的序列表示成y(0),y(1),y(2),⋯y(0),y(1),y(2),⋯, 这是系统响应出来的信号。 
同理,x(n)x(n)的对应时刻的序列为x(0),x(1),x(2),⋯x(0),x(1),x(2),⋯ 
其实我们如果没有学过信号与系统,就常识来讲,系统的响应不仅与当前时刻系统的输入有关,也跟之前若干时刻的输入有关,因为我们可以理解为这是之前时刻的输入信号经过一种过程(这种过程可以是递减,削弱,或其他)对现在时刻系统输出的影响,那么显然,我们计算系统输出时就必须考虑现在时刻的信号输入的响应以及之前若干时刻信号输入的响应之“残留”影响的一个叠加效果。 
假设0时刻系统响应为y(0)y(0),若其在1时刻时,此种响应未改变,则1时刻的响应就变成了y(0)+y(1)y(0)+y(1),叫序列的累加和(与序列的和不一样)。但常常系统中不是这样的,因为0时刻的响应不太可能在1时刻仍旧未变化,那么怎么表述这种变化呢,就通过h(t)这个响应函数与x(0)相乘来表述,表述为x(m)×h(m−n)x(m)×h(m−n),具体表达式不用多管,只要记着有大概这种关系,引入这个函数就能够表述y(0)y(0)在1时刻究竟削弱了多少,然后削弱后的值才是y(0)y(0)在1时刻的真实值,再通过累加和运算,才得到真实的系统响应。 
再拓展点,某时刻的系统响应往往不一定是由当前时刻和前一时刻这两个响应决定的,也可能是再加上前前时刻,前前前时刻,前前前前时刻,等等,那么怎么约束这个范围呢,就是通过对h(n)h(n)这个函数在表达式中变化后的h(m−n)h(m−n)中的m的范围来约束的。即说白了,就是当前时刻的系统响应与多少个之前时刻的响应的“残留影响”有关。 
当考虑这些因素后,就可以描述成一个系统响应了,而这些因素通过一个表达式(卷积)即描述出来不得不说是数学的巧妙和迷人之处了。

3.神经网络:neural network

了解神经网络的一个好方法是将它看作复合函数。你输入一些数据,它会输出一些数据。

3 个部分组成了神经网络的的基本架构:单元/神经元连接/权重/参数、偏置项

程序员数学基础整理_第1张图片

最困难的部分就是确定权重(w)和阈值(b)。目前为止,这两个值都是主观给出的,但现实中很难估计它们的值,必需有一种方法,可以找出答案。

这种方法就是试错法。其他参数都不变,w(或b)的微小变动,记作Δw(或Δb),然后观察输出有什么变化。不断重复这个过程,直至得到对应最精确输出的那组w和b,就是我们要的值。这个过程称为模型的训练

常见的25个神经网络模型???

你可能感兴趣的:(程序员数学基础整理)