卷积层输出尺寸计算公式
H
o
u
t
=
H
i
n
+
2
∗
P
−
K
S
+
1
H_{out}=\frac{H_{in}+2*P-K}{S} +1
Hout=SHin+2∗P−K+1
池化pooling层输出尺寸计算公式 同上
H
o
u
t
=
H
i
n
+
2
∗
P
−
K
S
+
1
H_{out}=\frac{H_{in}+2*P-K}{S} +1
Hout=SHin+2∗P−K+1
膨胀卷积是对卷积核的膨胀
膨胀后的卷积核 不膨胀的情况下D=1
K
′
=
D
∗
(
K
−
1
)
+
1
K^{'}=D*(K-1)+1
K′=D∗(K−1)+1
因此,膨胀卷积输出尺寸计算公式为
H
o
u
t
=
H
i
n
+
2
∗
P
−
K
′
S
+
1
K
′
=
D
∗
(
K
−
1
)
+
1
H_{out}=\frac{H_{in}+2*P-K^{'}}{S} +1\\ K^{'}=D*(K-1)+1
Hout=SHin+2∗P−K′+1K′=D∗(K−1)+1
数组的初始化
#include
using namespace std;
int main()
{
int a[3]={1,2,3};
int b[3]={1,2,3};//[1,2,3];
for( int i = 0; i < 3; i = i + 1 )
{
cout<<a[i]<<' '<<b[i]<<endl;
}
cout << "Hello World";
return 0;
}
#include
using namespace std;
int main()
{
//二维数组分行初始化
int a[2][3]={{1,2,3},{4,5,6}};
//不分行初始化
int a[2][3]={ 1,2,3,4,5,6};
return 0;
}
应对过拟合的方法:权重衰减
权重衰减等价于L2范数正则化(regularization)。还有L1和L0范数,其中L2范数应对过拟合最好。
正则化通过为模型损失函数添加惩罚项使学出的模型参数值较小,是应对过拟合的常用手段。至于为什么添加了正则项就能降低过拟合。简单来说,添加了正则项后,损失函数计算梯度下降时就要同时满足原损失函数和正则项的权重同时等于0,压缩了解的空间,即对权重w的可能的取值做了限制。
马尔科夫
隐马尔科夫
隐马尔科夫
可以认为不受时间的影响.
马尔可夫过程(Markov process)是一类随机过程。由俄国数学家A.A.马尔可夫于1907年提出。该过程具有如下特性:在已知目前状态(现在)的条件下,它未来的演变(将来)不依赖于它以往的演变 (过去 )。
马尔科夫过程是指过程中的状态的转移依赖于之前的状态,当影响转移状态的数目是n时,这个过程被称为 n阶马尔科夫模型.
如果第i 时刻上的取值依赖于且仅依赖于第i−1 时刻的取值,即

天气、赌徒输赢
隐马尔科夫模型 = 普通马尔科夫链 + 一组观测变量
观测变量取决于现在在的状态,过去对其不影响
比如我们的股市,如果只是观测市场,我们只能知道当天的价格、成交量等信息,但是并不知道当前股市处于什么样的状态(牛市、熊市、震荡、反弹等等),在这种情况下我们有两个状态集合,一个可以观察到的状态集合(股市价格成交量状态等)和一个隐藏的状态集合(股市状况)。我们希望能找到一个算法可以根据股市价格成交量状况和马尔科夫假设来预测股市的状况。
在上面的这些情况下,可以观察到的状态序列和隐藏的状态序列是概率相关的。于是我们可以将这种类型的过程建模为有一个隐藏的马尔科夫过程和一个与这个隐藏马尔科夫过程概率相关的并且可以观察到的状态集合,就是隐马尔可夫模型。
隐马尔可夫模型(Hidden Markov Model) 是一种统计模型,用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析。
和HMM模型相关的算法主要分为三类,分别解决三种问题:
后缀++ --的优先级不对!



赋值语句的返回值为该值
#include
using namespace std;
int main()
{
int a=2;
int b=3;
cout <<a<< (a=b)<<a<<endl;
cout <<a<< (a+=b)<<a<<endl;
return 0;
}
输出结果
233
366
#include
using namespace std;
int main()
{
int a=2;
int b=3;
cout <<(a+=a-=a*a)<<endl;
return 0;
}
结果为-4
++i表示先增加,后取值。而后置版本表示先取值,后增加。
#include
using namespace std;
int main()
{
int a=2;
int b=2;
cout <<(a+=a++)<<endl;//5 a+=2,a=3
cout <<(b+=++b)<<endl;//6=3+3
a=2;
b=2;
cout <<(a++)<<endl;//2
cout <<(++b)<<endl;//3
return 0;
}
#include
using namespace std;
int main()
{
int a=2;
int b=2;
int c= - --a;//-1
int d= - b--;//-2
cout << c<<d<<endl;
return 0;
}
输出-1-2