导航:首页 > 源码编译 > 模拟退火算法深度学习

模拟退火算法深度学习

发布时间:2023-01-17 10:10:49

‘壹’ 非数值算法的模拟退火算法

模拟退火算法来源于固体退火原理,将固体加温至充分高,再让其徐徐冷却,加温时,固体
内部粒子随温升变为无序状,内能增大,而徐徐冷却时粒子渐趋有序,在每个温度都达到平
衡态,最后在常温时达到基态,内能减为最小。根据Metropolis 准则,粒子在温度T 时趋于
平衡的概率为e-ΔE/(kT),其中E 为温度T 时的内能,ΔE 为其改变量,k 为Boltzmann 常
数。用固体退火模拟组合优化问题,将内能E 模拟为目标函数值f,温度T 演化成控制参数
t,即得到解组合优化问题的模拟退火算法:由初始解i 和控制参数初值t 开始,对当前解重
复“产生新解→计算目标函数差→接受或舍弃”的迭代,并逐步衰减t 值,算法终止时的当
前解即为所得近似最优解,这是基于蒙特卡罗迭代求解法的一种启发式随机搜索过程。退火
过程由冷却进度表(Cooling Schele)控制,包括控制参数的初值t 及其衰减因子Δt、每个t
值时的迭代次数L 和停止条件S。
1、模拟退火算法可以分解为解空间、目标函数和初始解三部分 。 它为问题的所有可能(可行的或包括不可行的)解的集合,它限定了初始解选取和新解产
生时的范围。对无约束的优化问题,任一可能解(possible solution)即为一可行解(feasible
solution),因此解空间就是所有可行解的集合;而在许多组合优化问题中,一个解除满足目
标函数最优的要求外,还必须满足一组约束(constraint),因此在解集中可能包含一些不可行
解(infeasible so1ution)。为此,可以限定解空间仅为所有可行解的集合,即在构造解时就考
虑到对解的约束;也可允许解空间包含不可行解,而在目标函数中加上所谓罚函数(penalty
function)以“惩罚”不可行解的出现。 它是对问题的优化目标的数学描述,通常表述为若干优化目标的一个和式。目标函数的
选取必须正确体现对问题的整体优化要求。例如,如上所述,当解空间包含不可行解时,目
标函数中应包含对不可行解的罚函数项,借此将一个有约束的优化问题转化为无约束的优化
问题。一般地,目标函数值不一定就是问题的优化目标值,但其对应关系应是显明的。此外,
目标函数式应当是易于计算的,这将有利于在优化过程中简化目标函数差的计算以提高算法
的效率。 是算法迭代的起点,试验表明,模拟退火算法是鲁棒的(Robust),即最终解的求得几乎
不依赖于初始解的选取。
2、基本思想:
(1) 初始化:初始温度T(充分大),初始解状态S(是算法迭代的起点), 每个T 值的迭
代次数L
(2) 对k=1,,L 做第(3)至第6 步:
(3) 产生新解S′
(4) 计算增量Δt′=C(S′)-C(S),其中C(S)为评价函数
(5) 若Δt′<0 则接受S′作为新的当前解,否则以概率exp(-Δt′/T)接受S′作为新的
当前解.
(6) 如果满足终止条件则输出当前解作为最优解,结束程序。
终止条件通常取为连续若干个新解都没有被接受时终止算法。
(7) T 逐渐减少,且T->0,然后转第2 步。
二、遗传算法
遗传算法的基本思想是基于Darwin 进化论和Mendel 的遗传学说的。
Darwin 进化论最重要的是适者生存原理。它认为每一物种在发展中越来越适应环境。物种
每个个体的基本特征由后代所继承,但后代又会产生一些异于父代的新变化。在环境变化时,
只有那些能适应环境的个体特征方能保留下来。
Mendel 遗传学说最重要的是基因遗传原理。它认为遗传以密码方式存在细胞中,并以基因
形式包含在染色体内。每个基因有特殊的位置并控制某种特殊性质;所以,每个基因产生的
个体对环境具有某种适应性。基因突变和基因杂交可产生更适应于环境的后代。经过存优去
劣的自然淘汰,适应性高的基因结构得以保存下来。
遗传算法简称GA(Genetic Algorithm),在本质上是一种不依赖具体问题的直接搜索方法。
1、遗传算法的原理
遗传算法GA 把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在
执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的
“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过
交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会
收敛到最适应环境的一个“染色体”上,它就是问题的最优解。
长度为L 的n 个二进制串bi(i=1,2,,n)组成了遗传算法的初解群,也称为初始群体。
在每个串中,每个二进制位就是个体染色体的基因。根据进化术语,对群体执行的操作有三
种:
(1).选择(Selection)
这是从群体中选择出较适应环境的个体。这些选中的个体用于繁殖下一代。故有时也称这一
操作为再生(Reproction)。由于在选择用于繁殖下一代的个体时,是根据个体对环境的适
应度而决定其繁殖量的,故而有时也称为非均匀再生(differential reproction)。
(2).交叉(Crossover)
这是在选中用于繁殖下一代的个体中,对两个不同的个体的相同位置的基因进行交换,从而
产生新的个体。
(3).变异(Mutation)
这是在选中的个体中,对个体中的某些基因执行异向转化。在串bi 中,如果某位基因为1,
产生变异时就是把它变成0;反亦反之。
2、遗传算法的特点
(1).遗传算法从问题解的中集开始嫂索,而不是从单个解开始。
这是遗传算法与传统优化算法的极大区别。传统优化算法是从单个初始值迭代求最优解的;
容易误入局部最优解。遗传算法从串集开始搜索,覆盖面大,利于全局择优。
(2).遗传算法求解时使用特定问题的信息极少,容易形成通用算法程序。
由于遗传算法使用适应值这一信息进行搜索,并不需要问题导数等与问题直接相关的信息。
遗传算法只需适应值和串编码等通用信息,故几乎可处理任何问题。
(3).遗传算法有极强的容错能力
遗传算法的初始串集本身就带有大量与最优解甚远的信息;通过选择、交叉、变异操作能迅
速排除与最优解相差极大的串;这是一个强烈的滤波过程;并且是一个并行滤波机制。故而,
遗传算法有很高的容错能力。
(4).遗传算法中的选择、交叉和变异都是随机操作,而不是确定的精确规则。
这说明遗传算法是采用随机方法进行最优解搜索,选择体现了向最优解迫近,交叉体现了最
优解的产生,变异体现了全局最优解的覆盖。
三、神经网络算法
“人工神经网络”(ARTIFICIAL NEURAL NETWORK,简称A.N.N.)是在对人脑组织结构和
运行机智的认识理解基础之上模拟其结构和智能行为的一种工程系统。早在本世纪40 年代
初期,心理学家McCulloch、数学家Pitts 就提出了人工神经网络的第一个数学模型,从此开
创了神经科学理论的研究时代。其后,F.Rosenblatt、Widrow 和Hopf、J.J.Hopfield 等学者又
先后提出了感知模型,使得人工神经网络技术得以蓬勃发展。
神经系统的基本构造是神经元(神经细胞),它是处理人体内各部分之间相互信息传递的基本
单元。据神经生物学家研究的结果表明,人的一个大脑一般有10 10 ~10 11
个神经元。每个神经元都由一个细胞体,一个连接其他神经元的轴突和一些向外伸出的其它
较短分支——树突组成。轴突的功能是将本神经元的输出信号(兴奋)传递给别的神经元。其
末端的许多神经末梢使得兴奋可以同时传送给多个神经元。树突的功能是接受来自其它神经
元的兴奋。神经元细胞体将接受到的所有信号进行简单地处理(如:加权求和,即对所有的
输入信号都加以考虑且对每个信号的重视程度——体现在权值上——有所不同)后由轴突输
出。神经元的树突与另外的神经元的神经末梢相连的部分称为突触。
1、神经网络的工作原理
人工神经网络首先要以一定的学习准则进行学习,然后才能工作。现以人工神经网络对手写
“A”、“B”两个字母的识别为例进行说明,规定当“A”输入网络时,应该输出“1”,而
当输入为“B”时,输出为“0”。所以网络学习的准则应该是:如果网络作出错误的的判决,
则通过网络的学习,应使得网络减少下次犯同样错误的可能性。首先,给网络的各连接权值
赋予(0,1)区间内的随机值,将“A”所对应的图象模式输入给网络,网络将输入模式加权
求和、与门限比较、再进行非线性运算,得到网络的输出。在此情况下,网络输出为“1”
和“0”的概率各为50%,也就是说是完全随机的。这时如果输出为“1”(结果正确),则使
连接权值增大,以便使网络再次遇到“A”模式输入时,仍然能作出正确的判断。如果输出
为“0”(即结果错误),则把网络连接权值朝着减小综合输入加权值的方向调整,其目的在
于使网络下次再遇到“A”模式输入时,减小犯同样错误的可能性。如此操作调整,当给网
络轮番输入若干个手写字母“A”、“B”后,经过网络按以上学习方法进行若干次学习后,
网络判断的正确率将大大提高。这说明网络对这两个模式的学习已经获得了成功,它已将这
两个模式分布地记忆在网络的各个连接权值上。当网络再次遇到其中任何一个模式时,能够
作出迅速、准确的判断和识别。一般说来,网络中所含的神经元个数越多,则它能记忆、识
别的模式也就越多。
2、人工神经网络的特点
人工神经网络是由大量的神经元广泛互连而成的系统,它的这一结构特点决定着人工神经网
络具有高速信息处理的能力。人脑的每个神经元大约有10 3~10 4 个树突及相应的突
触,一个人的大脑总计约形成10 14 ~10 15 个突触。用神经网络的术语来说,
即是人脑具有10 14 ~10 15 个互相连接的存储潜力。虽然每个神经元的运算
功能十分简单,且信号传输速率也较低(大约100 次/秒),但由于各神经元之间的极度并行互
连功能,最终使得一个普通人的大脑在约1 秒内就能完成现行计算机至少需要数10 亿次处
理步骤才能完成的任务。
人工神经网络的知识存储容量很大。在神经网络中,知识与信息的存储表现为神经元之间分
布式的物理联系。它分散地表示和存储于整个网络内的各神经元及其连线上。每个神经元及
其连线只表示一部分信息,而不是一个完整具体概念。只有通过各神经元的分布式综合效果
才能表达出特定的概念和知识。
由于人工神经网络中神经元个数众多以及整个网络存储信息容量的巨大,使得它具有很强的
不确定性信息处理能力。即使输入信息不完全、不准确或模糊不清,神经网络仍然能够联想
思维存在于记忆中的事物的完整图象。只要输入的模式接近于训练样本,系统就能给出正确
的推理结论。
正是因为人工神经网络的结构特点和其信息存储的分布式特点,使得它相对于其它的判断识
别系统,如:专家系统等,具有另一个显着的优点:健壮性。生物神经网络不会因为个别神
经元的损失而失去对原有模式的记忆。最有力的证明是,当一个人的大脑因意外事故受轻微
损伤之后,并不会失去原有事物的全部记忆。人工神经网络也有类似的情况。因某些原因,
无论是网络的硬件实现还是软件实现中的某个或某些神经元失效,整个网络仍然能继续工
作。
人工神经网络是一种非线性的处理单元。只有当神经元对所有的输入信号的综合处理结果超
过某一门限值后才输出一个信号。因此神经网络是一种具有高度非线性的超大规模连续时间
动力学系统。它突破了传统的以线性处理为基础的数字电子计算机的局限,标志着人们智能
信息处理能力和模拟人脑智能行为能力的一大飞跃。

‘贰’ 常用的机器学习&数据挖掘知识(点)

常用的机器学习&数据挖掘知识(点)
Basis(基础):MSE(Mean Square Error 均方误差),
LMS(LeastMean Square 最小均方),
LSM(Least Square Methods 最小二乘法),
MLE(MaximumLikelihood Estimation最大似然估计),
QP(Quadratic Programming 二次规划),
CP(Conditional Probability条件概率),
JP(Joint Probability 联合概率),
MP(Marginal Probability边缘概率),
Bayesian Formula(贝叶斯公式),
L1 /L2Regularization(L1/L2正则,
以及更多的,现在比较火的L2.5正则等),
GD(GradientDescent 梯度下降),
SGD(Stochastic Gradient Descent 随机梯度下降),
Eigenvalue(特征值),
Eigenvector(特征向量),
QR-decomposition(QR分解),
Quantile (分位数),
Covariance(协方差矩阵)。
Common Distribution(常见分布):
Discrete Distribution(离散型分布):
BernoulliDistribution/Binomial(贝努利分布/二项分布),
Negative BinomialDistribution(负二项分布),
MultinomialDistribution(多项式分布),
Geometric Distribution(几何分布),
HypergeometricDistribution(超几何分布),
Poisson Distribution (泊松分布)。
Continuous Distribution (连续型分布):
UniformDistribution(均匀分布),
Normal Distribution /Guassian Distribution(正态分布/高斯分布),
ExponentialDistribution(指数分布),
Lognormal Distribution(对数正态分布),
GammaDistribution(Gamma分布),
Beta Distribution(Beta分布),
Dirichlet Distribution(狄利克雷分布),
Rayleigh Distribution(瑞利分布),
Cauchy Distribution(柯西分布),
Weibull Distribution (韦伯分布)。
Three Sampling Distribution(三大抽样分布):
Chi-squareDistribution(卡方分布),
t-distribution(t-distribution),
F-distribution(F-分布)。
Data Pre-processing(数据预处理):
Missing Value Imputation(缺失值填充),
Discretization(离散化),Mapping(映射),
Normalization(归一化/标准化)。
Sampling(采样):
Simple Random Sampling(简单随机采样),
OfflineSampling(离线等可能K采样),
Online Sampling(在线等可能K采样),
Ratio-based Sampling(等比例随机采样),
Acceptance-RejectionSampling(接受-拒绝采样),
Importance Sampling(重要性采样),
MCMC(MarkovChain Monte Carlo 马尔科夫蒙特卡罗采样算法:Metropolis-Hasting& Gibbs)。
Clustering(聚类):
K-Means,
K-Mediods,
二分K-Means,
FK-Means,
Canopy,
Spectral-KMeans(谱聚类),
GMM-EM(混合高斯模型-期望最大化算法解决),
K-Pototypes,CLARANS(基于划分),
BIRCH(基于层次),
CURE(基于层次),
DBSCAN(基于密度),
CLIQUE(基于密度和基于网格)。
Classification&Regression(分类&回归):
LR(Linear Regression 线性回归),
LR(LogisticRegression逻辑回归),
SR(Softmax Regression 多分类逻辑回归),
GLM(GeneralizedLinear Model 广义线性模型),
RR(Ridge Regression 岭回归/L2正则最小二乘回归),
LASSO(Least Absolute Shrinkage andSelectionator Operator L1正则最小二乘回归),
RF(随机森林),
DT(DecisionTree决策树),
GBDT(Gradient BoostingDecision Tree 梯度下降决策树),
CART(ClassificationAnd Regression Tree 分类回归树),
KNN(K-Nearest Neighbor K近邻),
SVM(Support VectorMachine),
KF(KernelFunction 核函数PolynomialKernel Function 多项式核函、
Guassian KernelFunction 高斯核函数/Radial BasisFunction RBF径向基函数、
String KernelFunction 字符串核函数)、
NB(Naive Bayes 朴素贝叶斯),BN(Bayesian Network/Bayesian Belief Network/ Belief Network 贝叶斯网络/贝叶斯信度网络/信念网络),
LDA(Linear Discriminant Analysis/FisherLinear Discriminant 线性判别分析/Fisher线性判别),
EL(Ensemble Learning集成学习Boosting,Bagging,Stacking),
AdaBoost(Adaptive Boosting 自适应增强),
MEM(MaximumEntropy Model最大熵模型)。
Effectiveness Evaluation(分类效果评估):
Confusion Matrix(混淆矩阵),
Precision(精确度),Recall(召回率),
Accuracy(准确率),F-score(F得分),
ROC Curve(ROC曲线),AUC(AUC面积),
LiftCurve(Lift曲线) ,KS Curve(KS曲线)。
PGM(Probabilistic Graphical Models概率图模型):
BN(Bayesian Network/Bayesian Belief Network/ BeliefNetwork 贝叶斯网络/贝叶斯信度网络/信念网络),
MC(Markov Chain 马尔科夫链),
HMM(HiddenMarkov Model 马尔科夫模型),
MEMM(Maximum Entropy Markov Model 最大熵马尔科夫模型),
CRF(ConditionalRandom Field 条件随机场),
MRF(MarkovRandom Field 马尔科夫随机场)。
NN(Neural Network神经网络):
ANN(Artificial Neural Network 人工神经网络),
BP(Error BackPropagation 误差反向传播)。
Deep Learning(深度学习):
Auto-encoder(自动编码器),
SAE(Stacked Auto-encoders堆叠自动编码器,
Sparse Auto-encoders稀疏自动编码器、
Denoising Auto-encoders去噪自动编码器、
Contractive Auto-encoders 收缩自动编码器),
RBM(RestrictedBoltzmann Machine 受限玻尔兹曼机),
DBN(Deep Belief Network 深度信念网络),
CNN(ConvolutionalNeural Network 卷积神经网络),
Word2Vec(词向量学习模型)。
DimensionalityRection(降维):
LDA LinearDiscriminant Analysis/Fisher Linear Discriminant 线性判别分析/Fisher线性判别,
PCA(Principal Component Analysis 主成分分析),
ICA(IndependentComponent Analysis 独立成分分析),
SVD(Singular Value Decomposition 奇异值分解),
FA(FactorAnalysis 因子分析法)。
Text Mining(文本挖掘):
VSM(Vector Space Model向量空间模型),
Word2Vec(词向量学习模型),
TF(Term Frequency词频),
TF-IDF(Term Frequency-Inverse DocumentFrequency 词频-逆向文档频率),
MI(MutualInformation 互信息),
ECE(Expected Cross Entropy 期望交叉熵),
QEMI(二次信息熵),
IG(InformationGain 信息增益),
IGR(Information Gain Ratio 信息增益率),
Gini(基尼系数),
x2 Statistic(x2统计量),
TEW(TextEvidence Weight文本证据权),
OR(Odds Ratio 优势率),
N-Gram Model,
LSA(Latent Semantic Analysis 潜在语义分析),
PLSA(ProbabilisticLatent Semantic Analysis 基于概率的潜在语义分析),
LDA(Latent DirichletAllocation 潜在狄利克雷模型)。
Association Mining(关联挖掘):
Apriori,
FP-growth(Frequency Pattern Tree Growth 频繁模式树生长算法),
AprioriAll,
Spade。
Recommendation Engine(推荐引擎):
DBR(Demographic-based Recommendation 基于人口统计学的推荐),
CBR(Context-basedRecommendation 基于内容的推荐),
CF(Collaborative Filtering协同过滤),
UCF(User-basedCollaborative Filtering Recommendation 基于用户的协同过滤推荐),
ICF(Item-basedCollaborative Filtering Recommendation 基于项目的协同过滤推荐)。
Similarity Measure&Distance Measure(相似性与距离度量):
Euclidean Distance(欧式距离),
ManhattanDistance(曼哈顿距离),
Chebyshev Distance(切比雪夫距离),
MinkowskiDistance(闵可夫斯基距离),
Standardized Euclidean Distance(标准化欧氏距离),
MahalanobisDistance(马氏距离),
Cos(Cosine 余弦),
HammingDistance/Edit Distance(汉明距离/编辑距离),
JaccardDistance(杰卡德距离),
Correlation Coefficient Distance(相关系数距离),
InformationEntropy(信息熵),
KL(Kullback-Leibler Divergence KL散度/Relative Entropy 相对熵)。
Optimization(最优化):
Non-constrainedOptimization(无约束优化):
Cyclic VariableMethods(变量轮换法),
Pattern Search Methods(模式搜索法),
VariableSimplex Methods(可变单纯形法),
Gradient Descent Methods(梯度下降法),
Newton Methods(牛顿法),
Quasi-NewtonMethods(拟牛顿法),
Conjugate Gradient Methods(共轭梯度法)。
ConstrainedOptimization(有约束优化):
Approximation Programming Methods(近似规划法),
FeasibleDirection Methods(可行方向法),
Penalty Function Methods(罚函数法),
Multiplier Methods(乘子法)。
Heuristic Algorithm(启发式算法),
SA(SimulatedAnnealing,
模拟退火算法),
GA(genetic algorithm遗传算法)。
Feature Selection(特征选择算法):
Mutual Information(互信息),
DocumentFrequence(文档频率),
Information Gain(信息增益),
Chi-squared Test(卡方检验),
Gini(基尼系数)。
Outlier Detection(异常点检测算法):
Statistic-based(基于统计),
Distance-based(基于距离),
Density-based(基于密度),
Clustering-based(基于聚类)。
Learning to Rank(基于学习的排序):
Pointwise:McRank;
Pairwise:RankingSVM,RankNet,Frank,RankBoost;
Listwise:AdaRank,SoftRank,LamdaMART。
Tool(工具):
MPI,Hadoop生态圈,Spark,BSP,Weka,Mahout,Scikit-learn,PyBrain…
以及一些具体的业务场景与case等。

‘叁’ 《心中有数:生活中的数学思维》,数学,和我有什么关系

我曾经学过数学很多年,代数、几何、方程等等,背过林林总总的公式早已完完整整地还给恩师,如今剩下能用的只有加减乘除了。那么,作为基础学科的数学到底价值何在?为了寻找答案或者一丝与答案相关的线索,我将目光转向书籍,撇开那些基础理论和深奥的数学研究书籍,寻找与我们普通人生活相关的解释。于是,《心中有数》这本书映入眼帘。这是一本新书,出版于2022年4月份,作者和我们同处一个时代,同时代的人们也更能相互理解。那么,让我们一起来看看这位计算机专家对于数学有着怎样的理解和解释。

一、作者是何方神圣?

刘雪峰,男,博士,副教授,博士生导师。2014年担任华中科技大学副教授,现任北京航空航天大学计算机学院副教授。目前主要研究方向:

1)人工智能的分布式算法:重点研究如何实现多家医疗机构共同训练医疗影像的深度学习模型(联邦学习在医疗领域中的应用)。

2)融合先验知识的深度学习模型:重点研究如何将医生的领域知识,同以数据驱动为核心的深度学习模型融合,解决医疗数据少的问题。

3)智能感知技术:将移动领域的信号处理技术与深度学习结合,实现无处不在的智能。包括定位技术、人体状态感知等。

4)图像识别与自然语言处理:多模态的信息(包括图像、声音、自然语言)的融合模型,在实际的应用(包括舆情分析、推荐、情感预测、脑电信号处理、姿态识别)等发挥作用。

以上介绍专有名词颇多,对于外行人理解起来有一定难度,不过可以大致了解到一些确切信息,那就是作者对人工智能计算机有着深入的研究。提到计算机必须要提到网络,提到网络必然联想到网民,如今我们的生活已然被互联网包围,被各种算法包围,中午才和同事谈论一件事,下午打开手机就被推送类似的小视频,让我一度以为自己被智能手机监听了,听说,这是计算机算法。

二、数学?和我有什么关系

在阅读本书之前,你是否和我有着同样的疑问,数学和我有什么关系?除了购物计算价钱、存钱贷款计算利息等,数学和我们普通人好像没什么关系。又或者你的数学在别处还发挥着作用。那么数学,到底和我有什么关系呢?

三、这本书分为几个部分?

这本书一共19个章节,主要分为三个部分,前8章为思维篇,主要讲数学对思维的影响,提醒我们用理性的思维去看待世界;中间8节为方法篇,主要介绍解决难题的策略和方法;最后3章为学习篇,主要是对如何学习和表达建议。

在思维篇,作者从数学的角度出发,告诉我们可以用数学的思维去看待世界。在这一部分,有五个点让我产生共鸣、留下深刻印象,想与大家分享。一是概率世界观。“很多事情的最终结果是我们不能保证的,但是,这个结果发生的概率是我们可以靠努力改变的”。那我们能做什么呢?“平静接收现实,努力改变概率”。二是“预测”比“解释”重要。作何举出了关于谷神星预测的事例,“解释”价值不高又很容易,而预测很珍贵,但又真的很难。三是多样性红利。“全由朋友组成的团队在讨论问题时非常愉快,这些人的视角、观点很接近,因此大部分时间都在互相认同。但是,他们最后综合各方意见得出的很多结论是错误的。而加入了陌生人的团队则不同。陌生人和组中其他人所处的环境不同,有着不同的感知视角。因此小组的集体讨论中充满了争论和分歧。然而,这个团队最后对外公布的结论往往是正确的。这就是多样性带来的红利”。就像数学中的方程式,一个角度是一个结果,多角度就会得到方程组,结合多角度的观察结果,就能找到内在本质。四是小确幸和大幸福。你会选择哪一个?作者举出买市中心的小房子和通勤时间长的郊外大房子的例子,最后通过一长串我看不懂的数学公式告诉我们,频繁的小确幸,能比偶尔的大幸福带来更多幸福感。五是有关“利”和“弊”。又是一大串数学公式,如果你恰好懂,读起来应该十分便利,但对我这个外行来说,虽然看不懂公式,但通过作者这一系列的公式证明动作至少明白了这是可以被公式所推演,是科学的,科学证明,“没有利弊,只有特点”。

方法篇由于公式过多,大部分看得比较囫囵吞枣,最让我印象深刻的只有两点。一是设计者可以进行验证式学习,并根据使用者的回馈进一步了解使用场景,继续开发此产品。如果你开公司搞设计做产品,这一点会很受用。那就是“开发科技含量较高的产品,不能想着一步到位。最开始,一定要把一个不完美,但可用的产品做出来,然后把这个产品拿到现场去用,工程师在使用后会告诉我们在设计之初没想到的问题,用户会向我们提出更多的要求,我们就在这些基础上一步一步改进”。二是模拟退火算法。“年轻时多尝随机性尝试,但随机性应该随着年龄的增长慢慢降低。在年龄渐长,知道自己最适合什么后,你就要控制随机性,在自己最适合的地方深耕,不轻易切换赛道”。

学习篇虽然只有三个章节,但却让我觉得特别受用。第一点,怎样读书看报才能进步最快?重点是预测和调整,“他会主动预测,看到一个问题时,不是着急看其他人怎么解决,而是自己先提出一个方案。把自己的方案和论文中的方案进行对比,从差距中学习,从中提高自己”。“但不管是哪类读者,一个好的读者在阅读时都应该选择监督学习,主动预测,并且从差距中学习。好的读者可以随时根据预测的正确与否调整速度,预测正确的就快速扫过,错误的慢慢体会,这才是主动学习”。第二点,大学学习的是底层能力和“学习方法论”。作者从智能机器学习模式启发我们,“多任务学习的目的是提高模型所有任务上的平均性能”。以及学习的迁移,“学生应该把重心放在如何将当前在学校中学习的课本知识迁移到将来的工作中”。“应试图通过学习每门课,充分锻炼包括理解能力在内的这些底层能力”。第三点,由主到次的增量式表达。“我先把结论写出来。先说重要的信息,再逐步添加细节”。

四、数学,和我还是有点关系

以上有关人生、幸福、学习方法等思考,作者均从数学角度出发,有相应的数学公式予以论证,读完这本书,我忽然发现,数学和我们普通人,还是有那么点关系,本书帮助我们从科学的角度去重新审视生活和学习。虽然已经不学数学很多年了,在本书阅读过程中不断跳过看不懂的公式,但本书仍然为我这个数学门外汉打开了一扇观察世界的新视角,读完受益颇深。如果你也觉得有趣,不妨也去读一读,期待我们可以交流不同感受。

‘肆’ 一点优化论 - 没覆盖运筹学的内容

因为教书,所以,在讲解相关的概念和技术的时候,总是习惯首先 从大处着眼 ,然后 在小处入手 。所谓 从大处着眼 ,就是梳理下概念和技术的源流和历史; 在小处入手 就是总是使用具体的例子来讲解。

前面 也谈AI简史 简单梳理了AI(作为人类追寻智慧的一部分)的Big Picture(还真没找到合适的描述 - 大图景?怪怪的);此文简要梳理下AI的核心技术 - 优化( 注意: 不仅仅是 优化论 )。如果你不了解点优化的知识,还真够呛能深入AI,尤其是机器学习(Machine Learning),以及现在的火热的深度学习(Deep Learning)。

要强调的是:真正想要精通机器学习,意味着你必须要了解优化!

还有:此处涉及到的数学知识,仅作陈述,不再给出证明!如对证明感兴趣,请自行搜索。

这个...还真不好说,因为涉及的太多了。简单地说, 所谓优化,宽泛地说,就是找到需要解决的问题的最佳方案 。

问题有很多:大到 宇宙到底是如何形成和演化的? ,小到 某种茶用水的最佳温度? 。在尝试解决这类问题的过程中,会提出很多的方案。优化,就是找到那个最佳的方案。

而与AI和ML的学习紧密相关的优化,则是依赖于数学手段的处理方式,尤其是依赖于数学分析的优化(突出的代表就是 凸优化 ),也是此文所关注的。

按照上面对优化的理解,那么,优化的历史就很久了!大致分为三个时期(个人观点):数学分析出现之前,数学分析和变分法时期,以及非线性时期。

定理的陈述很简单,"边长固定,在长方形中,正方形(正方形是长方形的特例)面积最大"。但是,那是在公元前300年!你试试?

这一时期的优化,很多时候是依赖个人的灵性,没有一套比较好的数学套路来 完美 求解那些问题。这得一直到 数学分析 这一强大的工具出现后才得以突破。

数学分析的历史就不赘述了 - 网上有很多的趣闻和轶事(关于牛顿和莱布尼兹,关于欧拉的工作等)。数学分析的重要性毋庸置疑,它也大大促进了优化问题的求解(如果可以使用数学分析的方法求解的话)。在这里不得不提的是所谓的 变分法(Calculus of Variations) 。感兴趣的话可以自己找找看 ,在此只是给出下面的示例,以助于读者直观感受下。

数学分析的技术用于优化,其思想还是很简单的(说过:证明其正确性才是挑战!),主要的就是 极值定理 :通过函数的一阶和二阶导数的性质,可以确定不动点(Stationary Point)是局部极大还是极小。

这一现象在多元变量函数上也有类似的规律,留到后面 (凸)优化的框架 再做介绍。

此外,当函数是凸函数的时候,极值点(不动点)也就是该函数的全局极值了。也留到后面 (凸)优化的框架 再做介绍。

说起来,简单点的优化问题解决的还是不错的,其集大成者就是所谓的 凸优化 。不过,问题有时候总是比方法多!现实中还有许多的问题是在凸优化覆盖的范畴之外的。

上图是网上找到的了关于优化论覆盖的问题范畴:整个矩形对应所有的优化问题,其中的CP就是 Convex Programming (凸规划问题。在数学领域往往习惯成为Convex Optimization),PP对应多项式规划(Polynomial Programming)问题(要注意,PP中有些问题会是非线性的),此外就是非线性问题了。而且非线性问题更多。反过来说,非线性优化问题才是 很难的 问题。

不过,难问题毕竟是难,按照陆吾生先生的说法,PP现在得到了很大的关注,就是因为它覆盖了部分的非线性问题。相关的研究就想从这类非线性问题的求解中找找规律,以推进对其他非线性问题的求解。

另一方面,大规模的全局优化问题,也得益于计算机的发展有了有趣的推进,1980年代提出了Genetic Algorithm [遗传算法],Simulated Annealing Algorithm[模拟退火算法],Ant Algorithm [蚁群算法]等方法。

在前面知道,对于一元函数而言,极值定理既能够帮助我们求解极值点(一阶导数为零的点,也就是局部最优点。仅当函数是凸函数时,才是全局最优点),在极值点的二阶导数能够进一步确定极值点的性质(是极大还是极小)。

这种现象在多元变量函数中也存在,分别对应 一阶偏导数 Hessian 矩阵 (对应一元函数的二阶导数)。下面只是给出个例子体会下,更深入的理论请自行查找。

其中, f(x) 是目标函数; g(x) 是不等约束条件; h(x) 是等值约束条件; x 是多元变量的向量形式。

** 注意:这种描述也同样适用于 被CP覆盖的其他形式的优化问题。

** 强调 :后面描述的求解套路并不适用线性规划(Linear Programming)。为什么?因为线性规划的一阶导数是常数 :slightly_smiling_face:

无约束问题,也就是只有一个目标函数,而没有任何约束条件。这类问题的求解,就是求解一阶和二阶的套路:一阶定极值,二阶定性质。

也就是只含有等值约束的问题。这类问题的求解就需要所谓的拉格朗日(Lagrange Multiplier)算子的帮助,借助它能将此类问题的求解转化为无约束问题的求解。

在构造了拉格朗日函数后,分别对两个变量求一阶偏导数,然后再加上等式条件,我们就有三个方程和三个变量(新引入的ν变量就是所谓的拉格朗日乘子),也就可以求的三个变量的值。

在得到三个变量的值后,进一步求解兰格朗日函数在两个点处的二阶偏导数(也就是黑森矩阵 - Hessian Matrix),进而可以知道黑森矩阵的性质 - 正定,负定,还是不定。由于此优化问题是求解目标函数的最小,那么,对应正定黑森矩阵的点也就是最小值了。

一定要记住 :KKT 是求解不等约束问题的必要条件!

注意:此处仅仅简单地给出概貌和样例,不做数学证明!证明确实很难的!

有了前面的理论,想要手工实际得到结果仍然是很费劲的,好在有计算机。不过,下面提到的各种计算机算法(数值方法)主要是针对前两个层次的求解,不等约束问题的求解,因为依赖具体的情况(前面例子里的很多Cases),所以很难有统一的求解算法。

梯度下降法(Gradient descent),顾名思义,就是自变量沿着梯度向量的反方向进行移动,因为梯度的方向是上升的方向。

最速下降法(Steepest descent)是梯度下降法的一种更具体实现形式,其理念为在每次迭代中选择合适的步长,使得目标函数值能够得到最大程度的减少。

对于机器学习中的分类问题,都需要基于数据来训练所选模型的参数(不管是着名的支持向量机,还是神经网络的参数训练 - 从简单的感知机到现在火热的深度学习)。

假设训练集中含有 N 个数据样本,对上面的的 n 取不同值(即一次性计算 loss 的样本个数取不同值),实际计算时会有不同的影响。如果 n=1,这就是 随机梯度下降法(Stochastic Gradient Descent);如果 1<n<N,这就是 小批量梯度下降法(mini-batch gradient descent。batch size 一般不会很大);如果 n=N,这就是(批量)梯度下降法([Batch] gradient descent)。

在确定搜索方向时,梯度下降和最速下降只用到了目标函数的一阶导数(梯度),而牛顿法(Newton's method)用到了二阶(偏)导数。

其他的求解方法还有很多,比如共轭梯度法(Conjugate Gradient Method), 拟牛顿法(Quasi Newton)等,请自行搜索。

前面提到了机器学习中的梯度下降法,有时候为了使得所得到的的参数满足某些预设的要求,会人为引入所谓的正则项。比较有名的是LASSO, 好的Ridge 等。

在优化研究领域,有两个着名的国际奖项, George B. Dantzig Prize John von Neumann Theory Prize

‘伍’ 模拟退火算法的简介

模拟退火算法(Simulated Annealing,SA)最早的思想是由N. Metropolis 等人于1953年提出。1983 年,S. Kirkpatrick 等成功地将退火思想引入到组合优化领域。它是基于Monte-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。模拟退火算法从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。模拟退火算法是一种通用的优化算法,理论上算法具有概率的全局优化性能,目前已在工程中得到了广泛应用,诸如VLSI、生产调度、控制工程、机器学习、神经网络、信号处理等领域。
模拟退火算法是通过赋予搜索过程一种时变且最终趋于零的概率突跳性,从而可有效避免陷入局部极小并最终趋于全局最优的串行结构的优化算法。

‘陆’ 模拟退火原理介绍

在优化问题中,我们希望找到一个最优解,但实际上这是难以达到的。尤其是当问题较为复杂,求解空间维度较高时,我们需要在巨大的求解空间中搜索所有的可行解,并确定最优解。这样做计算量十分巨大,几乎无法在有限的计算时间和计算资源下完成。在实际问题中,我们并不需要精确的最优解,只需要一个近似最优解即可,这个近似最优解与完美的最优解应该足够接近。

模拟退火(Simulated Annealing, SA)算法是对热力学中退火过程的模仿。将金属加热到高温,此时金属内部分子热运动非常剧烈,内部的分子结构会出现很大变化;之后让它缓慢降低温度,随着温度的降低,分子热运动的剧烈程度逐渐减弱,内部分子结构变化较小,逐渐趋于稳定。在寻找问题的最优解时,我们可以先给定一个初始解。此时温度较高,初始解有很大的概率发生变化,产生一个新的解;随着温度的降低,解发生变化的概率逐渐减小。假定我们需要求解一个函数f(x)的最小值,那么模拟退火算法的过程描述如下:

产生新解的方式很多,以二进制编码为例,假如一个解为01001101,可以随机选取一位进行取反。假如选中了第3位,则第3位按位取反,新解为01101101。这个过程有点类似于遗传算法中的基因突变。上述算法描述中每个温度值只产生了一次新解,实际问题中可以产生多次。

算法的关键在于Metropolis准则。如果新解的函数值较小,自然要把新解作为当前解;如果新解函数值较大,则它仍有一定概率被选作当前解。这个概率与df有关,df越大,说明新解越差,它被选作当前解的概率也越小;此外,这个概率还和当前温度有关,当前温度越高,概率越大(类似于分子热运动越剧烈)。

参考资料
[1] Lee Jacobson, Simulated Annealing for beginners, http://www.theprojectspot.com/tutorial-post/simulated-annealing-algorithm-for-beginners/6

‘柒’ 现在模拟退火算法、粒子群优化算法、遗传算法和蚁群优化算法现在用的还多吗

我是人工智能的小白,不能告诉你这几个算法是否是人工智能,不过碰巧多年前学习优化算法时,接触过这些算法。在这里分享几个关于算法的故事吧。

货郎担问题

有个快递小哥要跑遍全城送货,您打算帮他规划一条最短的路线。该怎么做呢,最直接的办法是穷举法。罗列出所有可能的线路,计算出每条线路的距离,寻求最短的路径。看起来很简单吧。可是在实际的路网上,路线组合是非常多的。如果有15个目的地,组合的数量至少是15的阶乘。更何况还要考虑路况,收费免费,时间段等各种条件的组合,这样的计算量恐怕是量子计算机也不能在可接受的时间里完成。这象是对条件不足多元方程组求解,要从无穷多的解中找出最接近期望值的解。于是,人们想出了许多快速逼近最优解的办法。

蚂蚁算法

蚂蚁出来觅食时,先是向四面八方出动,发现食物的蚂蚁会掉头回来通知其它的蚂蚁。接到通知的蚂蚁就会向食物的方向移动。蚂蚁移动时会在路线上留下气味。这样在通向食物的路线上气味就越来越浓,后面的蚂蚁不用直接接到信息,只要追着最浓的气味就可以找到食物。人们受到这个现象的启发,设立出来先按随机条件计算,在小范围内找到局部最优解之后,就为这些条件加分。一定时间后就围绕着分数高的条件计算,不断反复后得到的解被当作近似最优解。这就是蚂蚁算法的原理。

神经网络

和蚂蚁算法类似,人的记忆是通过神经元的突出建立起联系实现的。类似的刺激会使联系增强。达到一定刺激量之后,就可以形成长久的记忆。模仿这一过程,人们把各种约束条件当作神经元,随机选取路线,输入各种条件,当路径倾向于缩短时,就按照权重给各条件加分,反之就给条件减分,然后,根据分数,以最有利于优化的条件为主重新选择路线,反复该过程直到达到边界条件时,就认为得到了近似最优解。遗传算法,模拟退火算法,也都是用一定的方法,缩小计算范围,通过求局部最优解逼近最优解的。就不啰嗦了。

人工智能和优化算法

优化算法实际上是从早期人工智能的研究发展起来的,从这个意义上说,这些算法也可以说是人工智能吧。

‘捌’ 人工神经网络综述

文章主要分为:
一、人工神经网络的概念;
二、人工神经网络的发展历史;
三、人工神经网络的特点;
四、人工神经网络的结构。
。。

人工神经网络(Artificial Neural Network,ANN)简称神经网络(NN),是基于生物学中神经网络的基本原理,在理解和抽象了人脑结构和外界刺激响应机制后,以网络拓扑知识为理论基础,模拟人脑的神经系统对复杂信息的处理机制的一种数学模型。该模型以并行分布的处理能力、高容错性、智能化和自学习等能力为特征,将信息的加工和存储结合在一起,以其独特的知识表示方式和智能化的自适应学习能力,引起各学科领域的关注。它实际上是一个有大量简单元件相互连接而成的复杂网络,具有高度的非线性,能够进行复杂的逻辑操作和非线性关系实现的系统。

神经网络是一种运算模型,由大量的节点(或称神经元)之间相互联接构成。每个节点代表一种特定的输出函数,称为激活函数(activation function)。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重(weight),神经网络就是通过这种方式来模拟人类的记忆。网络的输出则取决于网络的结构、网络的连接方式、权重和激活函数。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。神经网络的构筑理念是受到生物的神经网络运作启发而产生的。人工神经网络则是把对生物神经网络的认识与数学统计模型相结合,借助数学统计工具来实现。另一方面在人工智能学的人工感知领域,我们通过数学统计学的方法,使神经网络能够具备类似于人的决定能力和简单的判断能力,这种方法是对传统逻辑学演算的进一步延伸。

人工神经网络中,神经元处理单元可表示不同的对象,例如特征、字母、概念,或者一些有意义的抽象模式。网络中处理单元的类型分为三类:输入单元、输出单元和隐单元。输入单元接受外部世界的信号与数据;输出单元实现系统处理结果的输出;隐单元是处在输入和输出单元之间,不能由系统外部观察的单元。神经元间的连接权值反映了单元间的连接强度,信息的表示和处理体现在网络处理单元的连接关系中。人工神经网络是一种非程序化、适应性、大脑风格的信息处理,其本质是通过网络的变换和动力学行为得到一种并行分布式的信息处理功能,并在不同程度和层次上模仿人脑神经系统的信息处理功能。

神经网络,是一种应用类似于大脑神经突触连接结构进行信息处理的数学模型,它是在人类对自身大脑组织结合和思维机制的认识理解基础之上模拟出来的,它是根植于神经科学、数学、思维科学、人工智能、统计学、物理学、计算机科学以及工程科学的一门技术。

在介绍神经网络的发展历史之前,首先介绍一下神经网络的概念。神经网络主要是指一种仿造人脑设计的简化的计算模型,这种模型中包含了大量的用于计算的神经元,这些神经元之间会通过一些带有权重的连边以一种层次化的方式组织在一起。每一层的神经元之间可以进行大规模的并行计算,层与层之间进行消息的传递。

下图展示了整个神经网络的发展历程:

神经网络的发展有悠久的历史。其发展过程大致可以概括为如下4个阶段。

(1)、M-P神经网络模型:20世纪40年代,人们就开始了对神经网络的研究。1943 年,美国心理学家麦克洛奇(Mcculloch)和数学家皮兹(Pitts)提出了M-P模型,此模型比较简单,但是意义重大。在模型中,通过把神经元看作个功能逻辑器件来实现算法,从此开创了神经网络模型的理论研究。
(2)、Hebb规则:1949 年,心理学家赫布(Hebb)出版了《The Organization of Behavior》(行为组织学),他在书中提出了突触连接强度可变的假设。这个假设认为学习过程最终发生在神经元之间的突触部位,突触的连接强度随之突触前后神经元的活动而变化。这一假设发展成为后来神经网络中非常着名的Hebb规则。这一法则告诉人们,神经元之间突触的联系强度是可变的,这种可变性是学习和记忆的基础。Hebb法则为构造有学习功能的神经网络模型奠定了基础。
(3)、感知器模型:1957 年,罗森勃拉特(Rosenblatt)以M-P 模型为基础,提出了感知器(Perceptron)模型。感知器模型具有现代神经网络的基本原则,并且它的结构非常符合神经生理学。这是一个具有连续可调权值矢量的MP神经网络模型,经过训练可以达到对一定的输入矢量模式进行分类和识别的目的,它虽然比较简单,却是第一个真正意义上的神经网络。Rosenblatt 证明了两层感知器能够对输入进行分类,他还提出了带隐层处理元件的三层感知器这一重要的研究方向。Rosenblatt 的神经网络模型包含了一些现代神经计算机的基本原理,从而形成神经网络方法和技术的重大突破。
(4)、ADALINE网络模型: 1959年,美国着名工程师威德罗(B.Widrow)和霍夫(M.Hoff)等人提出了自适应线性元件(Adaptive linear element,简称Adaline)和Widrow-Hoff学习规则(又称最小均方差算法或称δ规则)的神经网络训练方法,并将其应用于实际工程,成为第一个用于解决实际问题的人工神经网络,促进了神经网络的研究应用和发展。ADALINE网络模型是一种连续取值的自适应线性神经元网络模型,可以用于自适应系统。

人工智能的创始人之一Minsky和Papert对以感知器为代表的网络系统的功能及局限性从数学上做了深入研究,于1969年发表了轰动一时《Perceptrons》一书,指出简单的线性感知器的功能是有限的,它无法解决线性不可分的两类样本的分类问题,如简单的线性感知器不可能实现“异或”的逻辑关系等。这一论断给当时人工神经元网络的研究带来沉重的打击。开始了神经网络发展史上长达10年的低潮期。
(1)、自组织神经网络SOM模型:1972年,芬兰的KohonenT.教授,提出了自组织神经网络SOM(Self-Organizing feature map)。后来的神经网络主要是根据KohonenT.的工作来实现的。SOM网络是一类无导师学习网络,主要用于模式识别﹑语音识别及分类问题。它采用一种“胜者为王”的竞争学习算法,与先前提出的感知器有很大的不同,同时它的学习训练方式是无指导训练,是一种自组织网络。这种学习训练方式往往是在不知道有哪些分类类型存在时,用作提取分类信息的一种训练。
(2)、自适应共振理论ART:1976年,美国Grossberg教授提出了着名的自适应共振理论ART(Adaptive Resonance Theory),其学习过程具有自组织和自稳定的特征。

(1)、Hopfield模型:1982年,美国物理学家霍普菲尔德(Hopfield)提出了一种离散神经网络,即离散Hopfield网络,从而有力地推动了神经网络的研究。在网络中,它首次将李雅普诺夫(Lyapunov)函数引入其中,后来的研究学者也将Lyapunov函数称为能量函数。证明了网络的稳定性。1984年,Hopfield 又提出了一种连续神经网络,将网络中神经元的激活函数由离散型改为连续型。1985 年,Hopfield和Tank利用Hopfield神经网络解决了着名的旅行推销商问题(Travelling Salesman Problem)。Hopfield神经网络是一组非线性微分方程。Hopfield的模型不仅对人工神经网络信息存储和提取功能进行了非线性数学概括,提出了动力方程和学习方程,还对网络算法提供了重要公式和参数,使人工神经网络的构造和学习有了理论指导,在Hopfield模型的影响下,大量学者又激发起研究神经网络的热情,积极投身于这一学术领域中。因为Hopfield 神经网络在众多方面具有巨大潜力,所以人们对神经网络的研究十分地重视,更多的人开始了研究神经网络,极大地推动了神经网络的发展。
(2)、Boltzmann机模型:1983年,Kirkpatrick等人认识到模拟退火算法可用于NP完全组合优化问题的求解,这种模拟高温物体退火过程来找寻全局最优解的方法最早由Metropli等人1953年提出的。1984年,Hinton与年轻学者Sejnowski等合作提出了大规模并行网络学习机,并明确提出隐单元的概念,这种学习机后来被称为Boltzmann机。
Hinton和Sejnowsky利用统计物理学的感念和方法,首次提出的多层网络的学习算法,称为Boltzmann 机模型。
(3)、BP神经网络模型:1986年,儒默哈特(D.E.Ru melhart)等人在多层神经网络模型的基础上,提出了多层神经网络权值修正的反向传播学习算法----BP算法(Error Back-Propagation),解决了多层前向神经网络的学习问题,证明了多层神经网络具有很强的学习能力,它可以完成许多学习任务,解决许多实际问题。
(4)、并行分布处理理论:1986年,由Rumelhart和McCkekkand主编的《Parallel Distributed Processing:Exploration in the Microstructures of Cognition》,该书中,他们建立了并行分布处理理论,主要致力于认知的微观研究,同时对具有非线性连续转移函数的多层前馈网络的误差反向传播算法即BP算法进行了详尽的分析,解决了长期以来没有权值调整有效算法的难题。可以求解感知机所不能解决的问题,回答了《Perceptrons》一书中关于神经网络局限性的问题,从实践上证实了人工神经网络有很强的运算能力。
(5)、细胞神经网络模型:1988年,Chua和Yang提出了细胞神经网络(CNN)模型,它是一个细胞自动机特性的大规模非线性计算机仿真系统。Kosko建立了双向联想存储模型(BAM),它具有非监督学习能力。
(6)、Darwinism模型:Edelman提出的Darwinism模型在90年代初产生了很大的影响,他建立了一种神经网络系统理论。
(7)、1988年,Linsker对感知机网络提出了新的自组织理论,并在Shanon信息论的基础上形成了最大互信息理论,从而点燃了基于NN的信息应用理论的光芒。
(8)、1988年,Broomhead和Lowe用径向基函数(Radialbasis function, RBF)提出分层网络的设计方法,从而将NN的设计与数值分析和线性适应滤波相挂钩。
(9)、1991年,Haken把协同引入神经网络,在他的理论框架中,他认为,认知过程是自发的,并断言模式识别过程即是模式形成过程。
(10)、1994年,廖晓昕关于细胞神经网络的数学理论与基础的提出,带来了这个领域新的进展。通过拓广神经网络的激活函数类,给出了更一般的时滞细胞神经网络(DCNN)、Hopfield神经网络(HNN)、双向联想记忆网络(BAM)模型。
(11)、90年代初,Vapnik等提出了支持向量机(Supportvector machines, SVM)和VC(Vapnik-Chervonenkis)维数的概念。
经过多年的发展,已有上百种的神经网络模型被提出。

深度学习(Deep Learning,DL)由Hinton等人于2006年提出,是机器学习的一个新领域。深度学习本质上是构建含有多隐层的机器学习架构模型,通过大规模数据进行训练,得到大量更具代表性的特征信息。深度学习算法打破了传统神经网络对层数的限制,可根据设计者需要选择网络层数。

突触是神经元之间相互连接的接口部分,即一个神经元的神经末梢与另一个神经元的树突相接触的交界面,位于神经元的神经末梢尾端。突触是轴突的终端。
大脑可视作为1000多亿神经元组成的神经网络。神经元的信息传递和处理是一种电化学活动.树突由于电化学作用接受外界的刺激,通过胞体内的活动体现为轴突电位,当轴突电位达到一定的值则形成神经脉冲或动作电位;再通过轴突末梢传递给其它的神经元.从控制论的观点来看;这一过程可以看作一个多输入单输出非线性系统的动态过程。
神经元的功能特性:(1)时空整合功能;(2)神经元的动态极化性;(3)兴奋与抑制状态;(4)结构的可塑性;(5)脉冲与电位信号的转换;(6)突触延期和不应期;(7)学习、遗忘和疲劳。

神经网络从两个方面模拟大脑:
(1)、神经网络获取的知识是从外界环境中学习得来的。
(2)、内部神经元的连接强度,即突触权值,用于储存获取的知识。
神经网络系统由能够处理人类大脑不同部分之间信息传递的由大量神经元连接形成的拓扑结构组成,依赖于这些庞大的神经元数目和它们之间的联系,人类的大脑能够收到输入的信息的刺激由分布式并行处理的神经元相互连接进行非线性映射处理,从而实现复杂的信息处理和推理任务。
对于某个处理单元(神经元)来说,假设来自其他处理单元(神经元)i的信息为Xi,它们与本处理单元的互相作用强度即连接权值为Wi, i=0,1,…,n-1,处理单元的内部阈值为θ。那么本处理单元(神经元)的输入为:

,而处理单元的输出为:

式中,xi为第i个元素的输入,wi为第i个处理单元与本处理单元的互联权重即神经元连接权值。f称为激活函数或作用函数,它决定节点(神经元)的输出。θ表示隐含层神经节点的阈值。

神经网络的主要工作是建立模型和确定权值,一般有前向型和反馈型两种网络结构。通常神经网络的学习和训练需要一组输入数据和输出数据对,选择网络模型和传递、训练函数后,神经网络计算得到输出结果,根据实际输出和期望输出之间的误差进行权值的修正,在网络进行判断的时候就只有输入数据而没有预期的输出结果。神经网络一个相当重要的能力是其网络能通过它的神经元权值和阈值的不断调整从环境中进行学习,直到网络的输出误差达到预期的结果,就认为网络训练结束。

对于这样一种多输入、单输出的基本单元可以进一步从生物化学、电生物学、数学等方面给出描述其功能的模型。利用大量神经元相互连接组成的人工神经网络,将显示出人脑的若干特征,人工神经网络也具有初步的自适应与自组织能力。在学习或训练过程中改变突触权重wij值,以适应周围环境的要求。同一网络因学习方式及内容不同可具有不同的功能。人工神经网络是一个具有学习能力的系统,可以发展知识,以至超过设计者原有的知识水平。通常,它的学习(或训练)方式可分为两种,一种是有监督(supervised)或称有导师的学习,这时利用给定的样本标准进行分类或模仿;另一种是无监督(unsupervised)学习或称无导师学习,这时,只规定学习方式或某些规则,而具体的学习内容随系统所处环境(即输入信号情况)而异,系统可以自动发现环境特征和规律性,具有更近似于人脑的功能。
在人工神经网络设计及应用研究中,通常需要考虑三个方面的内容,即神经元激活函数、神经元之间的连接形式和网络的学习(训练)。

‘玖’ 优化算法总结

本文介绍一下机器学习和深度学习中常用的优化算法和优化器以及一些其他我知道的优化算法,部分算法我也没有搞懂,就先记录下来以后慢慢研究吧.*_*.

1.梯度下降算法(Gradient Descent)

梯度下降法可以参考我另一篇文章 机器学习-线性回归 里的讲解,这里就不在重复叙述.这里需要强调一下,深度学习里常用的SGD,翻译过来是随机梯度下降,但是实质是mini-batch梯度下降(mini-batch-gd),或者说是两者的结合更准确一些.

SGD的优点是,算法简单,计算量小,在函数为凸函数时可以找到全局最优解.所以是最常用的优化算法.缺点是如果函数不是凸函数的话,很容易进入到局部最优解而无法跳出来.同时SGD在选择学习率上也是比较困难的.

2.牛顿法

牛顿法和拟牛顿法都是求解无约束最优化问题的常用方法,其中牛顿法是迭代算法,每一步需要求解目标函数的海森矩阵的逆矩阵,计算比较复杂.

牛顿法在求解方程根的思想:在二维情况下,迭代的寻找某一点x,寻找方法是随机一个初始点x_0,目标函数在该点x_0的切线与x坐标轴的交点就是下一个x点,也就是x_1.不断迭代寻找x.其中切线的斜率为目标函数在点x_0的导数(梯度),切必过点(x_0,f(x_0)).所以迭代的方程式如图1,为了求该方程的极值点,还需要令其导数等于0,也就是又求了一次导数,所以需要用到f(x)的二阶导数.

在最优化的问题中,牛顿法提供了一种求解的办法. 假设任务是优化一个目标函数f, 求函数ff的极大极小问题, 可以转化为求解函数f导数等于0的问题, 这样求可以把优化问题看成方程求解问题(f的导数等于0). 剩下的问题就和牛顿法求解方程根的思想很相似了.

目标函数的泰勒展开式:

化简后:

这样就得到了与图1相似的公式,这里是二维的,在多维空间上,求二阶导数就是求海森矩阵,因为是分母,所以还需要求海森矩阵的逆矩阵.

牛顿法和SGD的区别:

牛顿法是二阶求导,SGD是一阶求导,所以牛顿法要收敛的更快一些.SGD只考虑当前情况下梯度下降最快的方向,而牛顿法不仅考虑当前梯度下降最快,还有考虑下一步下降最快的方向.

牛顿法的优点是二阶求导下降速度快,但是因为是迭代算法,每一步都需要求解海森矩阵的逆矩阵,所以计算复杂.

3.拟牛顿法(没搞懂,待定)

考虑到牛顿法计算海森矩阵比较麻烦,所以它使用正定矩阵来代替海森矩阵的逆矩阵,从而简化了计算过程.

常用的拟牛顿法有DFP算法和BFGS算法.

4.共轭梯度法(Conjugate Gradient)

共轭梯度法是介于最速下降法与牛顿法之间的一个方法,它仅需利用一阶导数信息,但克服了最速下降法收敛慢的缺点,又避免了牛顿法计算海森矩阵并求逆的缺点.共轭梯度法不仅是解决大型线性方程组最有用的方法之一,也是解大型非线性最优化最有效的算法之一.

5.拉格朗日法

参考SVM里的讲解 机器学习-SVM

6.动量优化法(Momentum)

动量优化法主要是在SGD的基础上,加入了历史的梯度更新信息或者说是加入了速度更新.SGD虽然是很流行的优化算法,但是其学习过程很慢,因为总是以同样的步长沿着梯度下降的方向.所以动量是为了加速学习的方法.

其中第一行的减号部分是计算当前的梯度,第一行是根据梯度更新速度v,而α是新引进的参数,在实践中,α的一般取值为 0.5,0.9 和 0.99.和学习率 一样,α 也会随着时间不断调整.一般初始值是一个较小的值,随后会慢慢变大.

7.Nesterov加速梯度(NAG, Nesterov accelerated gradient)

NAG是在动量优化算法的基础上又进行了改进.根据下图可以看出,Nesterov 动量和标准动量之间的区别体现在梯度计算上, Nesterov 动量中,梯度计算在施加当前速度之后.因此,Nesterov 动量可以解释为往标准动量方法中添加了一个校正因子

8.AdaGrad算法

AdaGrad算法,自适应优化算法的一种,独立地适应所有模型参数的学习率,缩放每个参数反比于其所有梯度历史平均值总和的平方根.具有代价函数最大梯度的参数相应地有个快速下降的学习率,而具有小梯度的参数在学习率上有相对较小的下降.通俗一点的讲,就是根据实际情况更改学习率,比如模型快要收敛的时候,学习率步长就会小一点,防止跳出最优解.

其中g是梯度,第一行的分母是计算累计梯度的平方根, 是为了防止分母为0加上的极小常数项,α是学习率.

Adagrad的主要优点是不需要人为的调节学习率,它可以自动调节.但是依然需要设置一个初始的全局学习率.缺点是随着迭代次数增多,学习率会越来越小,最终会趋近于0.

9.RMSProp算法

RMSProp修改 AdaGrad 以在非凸设定下效果更好,改变梯度积累为指数加权的移动平均.AdaGrad旨在应用于凸问题时快速收敛.

10.AdaDelta算法

11.Adam算法

Adam是Momentum和RMSprop的结合体,也就是带动量的自适应优化算法.

12.Nadam算法

13.模拟退火算法

14.蚁群算法

15.遗传算法

动量是为了加快学习速度,而自适应是为了加快收敛速度,注意学习速度快不一定收敛速度就快,比如步长大学习速度快,但是很容易跳出极值点,在极值点附近波动,很难达到收敛.

未完待定....

参考:

《统计学习方法》  李航    着

《深度学习》  花书

‘拾’ 模拟退火算法优化BP神经网络

bp神经元网络的学习过程真正求解的其实就是权值的最优解,因为有可能会得出局部最优解,所以你才会用模拟退火来跳出局部最优解,也就是引入了逃逸概率。在这里你可以把bp的学习过程理解成关于 误差=f(w1,w2...) 的函数,让这个函数在模拟退火中作为目标函数,再加上模拟退火的一些初始参数(初始温度啊,退火速度啊等等),就能找到权值解空间的一个不错的最优解,就是一组权向量。把权向量带入到bp当中去,输入新的对象,自然就能算出新的输出了。
算法学习要脚踏实地,你要先学会神经元,在学会退火,两个的结合你才能理解。

阅读全文

与模拟退火算法深度学习相关的资料

热点内容
安卓手机为什么看不到iso文件 浏览:578
用图片做文件夹图标 浏览:693
java正则表达式语法 浏览:865
美图秀在线压缩图片 浏览:184
苹果自带控制app是什么 浏览:906
孩子学编程怎么样 浏览:589
网络编程经典书籍 浏览:612
曲靖创建网站java程序员 浏览:690
256位加密中是什么意思 浏览:97
php多维数组去重 浏览:308
做程序员这一行储备人才怎么看 浏览:460
参加密逃文 浏览:327
苹果编程语言ios 浏览:763
求解病态系统常用的算法 浏览:993
驾校用的app叫什么 浏览:219
数控编程线的缠绕方法 浏览:972
安卓线性布局怎么设计计算器布局 浏览:24
拓本pdf 浏览:79
2017法硕指南pdf 浏览:295
linuxphp命令参数 浏览:425