人工智能简史-总结
寒假期间读完尼克先生的《人工智能简史》,在此对人工智能的发展历史做一个简要的梳理,当然其中可能有不少的缺漏,希望之后能够不断增添纠正。
注意:本次仅对部分内容梳理,其它部分暂时未涉及到。起源、神经网络简史、自然语言处理、遗传算法到强化学习、哲学家和人工智能、计算理论基础以及图灵与冯诺依曼的简介。
DenseNet是2017年被提出的,其主要创新在于从特征重用角度设计拓扑结构。
github地址为:https://github.com/liuzhuang13/DenseNet
SqueezeNet是2016年发表在ICLR上的文章,其主要创新在于仅使用AlexNet网络1/50的参数,却能够实现同等水平的准确率。此篇文章仅对论文SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE中的网络结构进行分析,其中的参数实验不在此赘述,如若感兴趣可以看看原文。
AlexNet网络是Hinton和他的学生Alex Krizhevsky在2012年ImageNet Challenge中使用的模型结构,其中的技术细节被整理成论文ImageNet Classification with Deep Convolutional Neural Networks发表。作为深度学习历史上大获成功的经典网络,其中有很多思想值得我们借鉴学习,此篇文章将深入分析论文主要内容。
此篇博客主要谈谈创建型模式中剩余的两种模式:建造者模式以及原型模式。在实际工程中,此两种模式不如工厂、单例模式常见,便不花费篇幅进行一一详述。
此篇博客主要参考以下文档:
https://design-patterns.readthedocs.io/zh_CN/latest/
无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象,而无须知道其内部的具体构造细节。
此篇博客主要谈谈创建型模式中的单例模式,包括单例模式的五种实现方式:饿汉式、懒汉式、双重检测锁、静态内部类以及枚举。
此篇博客主要参考以下文档:
https://design-patterns.readthedocs.io/zh_CN/latest/
对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。
如何保证一个类只有一个实例并且这个实例易于被访问呢?定义一个全局变量可以确保对象随时都可以被访问,但不能防止我们实例化多个对象。
一个更好的解决办法是让类自身负责保存它的唯一实例。这个类可以保证没有其他实例被创建,并且它可以提供一个访问该实例的方法。这就是单例模式的模式动机。