摘要:
啥是软件架构(Software Architecture)? 软件架构是指在一定的设计原则基础上,从不同角度对组成系统的各部分进行搭配和安排,形成系统的多个结构而组成架构,它包括该系统的各个组件,组件的外部可见属性及组件之间的相互关系。组件的外部可见属性是指其他组件对该组件所做的假设。 软件架构设计 阅读全文
摘要:
在拜读了《架构漫谈》九篇博客之后。 对于软件架构师如何工作,我的第一反应是第五谈中的一个小标题——成本为王。 在我的理解中,成本可以分为两方面。一方面是开发软件的成本,另一方面是开发软件的目的是降低做这件事的成本。这两方面都需要软件架构师来考虑。其一需要考虑研发这款软件的人力物力成本,因为公司研发大 阅读全文
摘要:
软件质量属性 司宇明 摘要:一个软件最为重要的阶段不是开发阶段,而是开发前各个阶段的准备。比如需求分析以及软件架构,这些往往能够决定一个软件的优劣程度。对于软件体系架构中又有很多重要的地方,其中质量属性是可以评价一个软件的好坏。以此对软件架构的质量属性进行简单分析,望对软件体系架构有所帮助。 关键字 阅读全文
摘要:
下面对漫谈架构的每一章进行一个总结 一)第一篇:讲的是到底什么是架构,在我看来:就是把一整体划分为不同角色,各自完成自己的部分,最后有机的融合在一起。 然后通过一个早期的例子来笼统地概括他的出现。在最早期,每个人都完全独立生活,衣、食、住、行等等全部都自己搞定,整个人类都是独立的个体,不相往来。为了 阅读全文
摘要:
knn的基本原理: KNN是通过计算不同特征值之间的距离进行分类。 整体的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。K通常是不大于20的整数。KNN算法中,所选择的邻居都是已经正确分类的对象。该方法在分类决策上只依据最邻 阅读全文
摘要:
以《淘宝网》为例,描绘质量属性的六个常见属性场景 可用性 场景:用户访问数量激增 刺激源:用户 刺激:大量用户同时访问造成服务器崩溃 制品:系统 环境:正常模式下 响应:记录故障,通知用户或系统 响应度量:返回页面可以立即重新处理 可修改性 场景:618双十一等购物节页面的模块修改 刺激源:开发人员 阅读全文
摘要:
机器学习方法:有监督学习,无监督学习,强化学习 有监督学习:有标签有目标 无监督学习:无标签,无目标 强化学习:过程模拟和观察进行学习。 强化学习 策略:在特定状态下应该怎么采取行动。 目标:找到最佳策略,即能够获得最大奖励的策略。 数学模型:马尔可夫决策过程(MDP) 强化学习方法形式化为MDP, 阅读全文
摘要:
应用 图像识别:IMAGENET。 机器翻译:Google神经机器翻译系统。 语音识别: 以往GMM-HMM传统方法一直未有突破,2011年使用DNN后获得较大突破,2015年,IBM再次将错误率降低到6.9%,接近人类的平均水平(4%) 游戏:DeepMind团队开发的自我学习玩游戏的系统。 发展 阅读全文
摘要:
维度灾难:随着维度(如特征或自由度)的增多,问题的复杂性(或计算算代价)呈指数级增长的现象。 高维空间的反直觉示例:单位球体积: 一维,二维,三维的 长度/面积/体积 都有公式计算,而高维的计算公式是这样的: d维空间半径为r的球体体积公式: 单位球体积与维度之间的关系图示: 在高维空间中,球体内部 阅读全文
摘要:
机器学习的优化目标 最小化损失函数: 模型——损失函数——表达式: 图示: 方法 梯度下降: batch梯度下降:使用全部训练集样本,计算代价太高(n~10^6) mini-batch梯度下降:随机采样一个子集(m~100或1000),随后使用如下公式: mini-batch是无偏估计。更大的批量会 阅读全文