1. 共轭梯度编程(matlab)
%-------共轭梯度法解线性方程组-----------
%---Conjugate Gradient method-------
%参考教材《数值分析》李乃成&梅立泉,科学出版社2011
clear;clc;
% A=[10,-1,-2;-1,10,-2;-1,-1,5];
% b=[72,83,42]';
A=[2 0 1;0 1 0;1 0 2];
b=[3 1 3]';
N=length(b); %解向量的维数
fprintf('库函数计算结果:');
x=inv(A)*b %库函数计算结果
x=zeros(N,1); %迭代近似向量
eps=0.0000001; %精度
r=b-A*x;d=r;
for k=0:N-1
fprintf('第%d次迭代:',k+1);
a=(norm(r)^2)/(d'*A*d)
x=x+a*d
rr=b-A*x; %rr=r(k+1)
if (norm(rr)<=eps)||(k==N-1)
break;
end
B=(norm(rr)^2)/(norm(r)^2);
d=rr+B*d;
r=rr;
end
2. CNN卷积神经网络
参考原文:https://cs231n.github.io/convolutional-networks/
原文翻译:https://zhuanlan.zhihu.com/p/22038289?refer=intelligentunit
2.1 主要参数及含义
超参数
① 深度D(depth):
它和使用的滤波器的数量一致,而每个滤波器在输入数据中寻找一些不同的东西。也叫做通道。
② 步长S(stride):
在滑动滤波器的时候,必须指定步长。当步长为1,滤波器每次移动1个像素。当步长为2(或者不常用的3,或者更多,这些在实际中很少使用),滤波器滑动时每次移动2个像素。这个操作会让输出数据体在空间上变小。
③ 零填充P(zero-padding):
零填充有一个良好性质,即可以控制输出数据体的空间尺寸(最常用的是用来保持输入数据体在空间上的尺寸,这样输入和输出的宽高都相等)。
④ 滤波器的数量K
⑤ 滤波器的空间尺寸F
除了上面的超参数外还有:
输入尺寸W;
输入图像高度H等;
计算添加了多少神经元的公式为:
(You can convince yourself that the correct formula for calculating how many neurons “fit” is given by )
(W−F+2P)/S+1
......
2.2 主要结构
可参考https://blog.csdn.net/yjl9122/article/details/70198357
① 卷积层
卷积层是卷积网络的核心组成部分,它完成大部分计算繁重的工作。
② 池化层
对输入的特征图进行压缩,一方面使特征图变小,简化网络计算复杂度;一方面进行特征压缩,提取主要特征
③ 全连接层(fully connected layers,FC)
在整个卷积神经网络中起到“分类器”的作用。如果说卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。
④ 激活函数
激活函数是用来加入非线性因素的,因为线性模型的表达力不够。
⑤ 输入层
3. tensorFlow架构
参考:https://www.jianshu.com/p/a5574ebcdeab
4. python解释
(要仔细看文章)
参考翻译文章:https://zhuanlan.zhihu.com/p/20878530?refer=intelligentunit