深度学习日记
第一章:
有监督学习
是指人们在获得训练的向量数据后在没有标签的情况下尝试找出其内部蕴含关系的一种挖掘工作,这个过程中使用者除了可能要设置一些必要的超参数(hyper-parameter)以外,不用对这些样本做任何的标记甚至是过程干预;
无监督学习
每一个样本都有着明确的标签,最后我们只是要总结出这些训练样本向量与标签的映射关系
聚类(clustering)
- 一种典型的“无监督学习”,是把物理对象或抽象对象的集合分组为由彼此类似的对象组成的多个类的分析过程。
人类天生具备这种归纳和总结的能力,能够把认知的相似事物放到一起作为一类事物,它们之间可以有彼此的不同,但是有一个我们心里的“限度”,只要在这个限度内,特征稍有区别并无大碍,它们仍然还是这一类事物。- 比较常用的聚类算法有K-Means、DBSCAN等几种,基本思路都是利用每个向量之间的“距离”——空间中的欧氏距离或者曼哈顿距离,从远近判断是否从属于同一类别
在用机器做聚类学习的时候,我们每种算法都对应有相应的计算原则,可以把输入的各种看上去彼此“相近”的向量分在一个群组中。然后下一步,人们通常更有针对性地去研究每一组聚在一起的对象所拥有的共性以及那些远离各个群组的孤立点——这种孤立点研究在刑侦、特殊疾病排查等方面都有应用。在这个过程中,从获得到具体的样本向量,到得出聚类结果,人们是不用进行干预的,这就是“非监督”一词的由来。
回归
- 线性回归
- 所谓线性回归,就是在观察和归纳样本的过程中认为向量和最终的函数值呈现线性的关系。而后设计这种关系为:y=f(x)=wx+b
- 非线性回归
- 非线性回归类中,在机器学习领域应用最多的当属逻辑回归。它和线性回归都叫回归,但是逻辑回归看上去更像分类。我们先在回归这一节提一下这种回归的工作方式。与前面我们说的线性回归不同,在这种模型中观察者假设的前提是y只有两种值:一种是1,一种是0,或者说“是”或“否”的这种判断。
分类
- 分类是机器学习中使用的最多的一大类算法,我们通常也喜欢把分类算法叫做“分类器”。这个说法其实也非常形象,在我们看来,这就是一个黑盒子,有个入口,有个出口。我们在入口丢进去一个“样本”,在出口期望得到一个分类的“标签”。
- 第一,输入样本和分类标签。
- 第二,建立映射假说的某个y=f(x)的模型。
- 第三,求解出全局的损失函数Loss和待定系数w的映射关系,Loss=g(w)。
- 第四,通过迭代优化逐步降低Loss,最终找到一个w能使召回率和精确率满足当前场景需要。注意,这里尤其指在验证数据集上的表现。
总结
- 聚类:把多个多种不同对象的特征都抽取出来,获取一个限度(标准),把近似值的对象放进同一个群组,从获得到具体的样本向量,到得出聚类结果
- 回归:个人感觉是聚类的延伸应用,线性回归是对聚类结果的校正,而非线性回归是对聚类结果在实际中的应用。
- 分类:
- KNN(最近邻算法)
- http://mobilesite.github.io/2017/10/07/deep-learning-4/
- SVM (支持向量机)
- http://blog.51cto.com/34526667/1894551
- BPNN
- https://www.zhihu.com/question/27239198
- CNN(卷积神经网络)
- http://blog.csdn.net/v_july_v/article/details/51812459
- 迁移学习
- 迁移学习(Transfer learning) 顾名思义就是就是把已学训练好的模型参数迁移到新的模型来帮助新模型训练。考虑到大部分数据或任务是存在相关性的,所以通过迁移学习我们可以将已经学到的模型参数(也可理解为模型学到的知识)通过某种方式来分享给新模型从而加快并优化模型的学习效率不用像大多数网络那样从零学习(starting from scratch,tabula rasa)。
- https://zhuanlan.zhihu.com/p/27368456
- 上面都是在网上根据关键字找的资料。
- 第一章概念较强,但没有什么太难懂东西,如果有什么看不懂的,反复看上几遍,然后再想想
- 不要给我赞,不要给我赞,不要给我赞,原因我就不说了。
第二章:
激励函数
- Sigmoid函数
- Tanh函数
- ReLU函数
- Linear函数
- 神经网络
- 深度神经网络
- 反正我是看着目录看完本章节的
第三章:
- Python3.6可直接下载。exe文件直接安装
- 安装python时记得选中PIP
- 然后使用pip安装TensorFlow:pip install TensorFlow
- Python编译器建议使用PyCharm 作为Android Studio的兄弟编译器有很多共同点,相信你很快就会上手
以上是安装,还有作者推荐的:Anaconda 它集成了python的环境和通用包,就像以前es集成环境,但是该折腾还是得折腾
- 多环境与集群支持
+ 首先,TensorFlow支持在PC的CPU环境、GPU环境甚至是安卓环境中运行。它不仅可以支持在单个计算单元(一颗CPU的多核心或一颗GPU的多核心)上进行运算,也支持一台机器上多个CPU或多个GPU上并行计算。可以在网络上的所有计算机都参与计算,但是如果计算量小的那就得不偿失了,因为数据传输也是需要时间的。- TensorBoard——看得见的训练
+ TensorFlow有一个比较友好的组件,它可以让工作人员在训练网络的过程中通过仪表盘看到网络目前的表现情况。
+ #启动: tensorboard –logdir=path/to/logs- TensorFlow Serving——模型
+ TensorFlow Serving系统非常适用于大规模运行能够基于真实情况的数据并会发生动态改变的多重模型。它能够实现:
- 模型生命周期管理。
- 使用多重算法进行试验。
- GPU资源有效使用。
- 如何选择好的框架
- 从三个方面:性能、使用人数、支持的语言