0%

2018年10月11日 上午10:48

  1. 二维情况下:
    1. 逻辑回归优化的目标是:min:loss
    2. SVM优化的目标是:max:分类器间隔
    3. 也可以理解为:max:分类器间隔 是 逻辑回归中loss的其中一种。
  2. 多维情况下:
    1. SVM可以认为是逻辑回归的发展,逻辑回归函数是SVM二维上其中一种核函数






2018年10月11日 上午10:23

  1. 基本常识:模型复杂度高——>容易过拟合。
    1. 那么,我们为了防止过拟合,就min模型复杂度。
    2. 再联系到:我们也要求min:loss。
      1. 所以就联合起来表示为:min(loss+模型复杂度)
    3. 模型复杂度的定量(函数)描述:
      1. 第一种:L2正则化,我们通过模型的参数去模拟复杂度,也就是权重。
      2. 为啥通过模型参数去模拟?
        1. 为了尽可能的防止,有人因为单方面突出,而且正好这个方面对应的权重还大。这个人不就其他因素不用考虑了,就直接晋级了吗
        2. 当然,如果我们的模型目的就是为了添加突出单方面强的选手,那么,我们甚至可以不加正则化项
        3. 并且,参数权重大并不直接等价于,最后分数大。一个大的权重,但是乘以一个很小的数,最后结果也不一定大
    4. 最重要的一个问题是?
      1. 我们当前这个模型的容错度,你希望是怎样的?
        1. 这就决定了你的模型复杂度的权重。
      2. 模型复杂度的定量描述还有那些?






2018年10月11日 上午10:20

  1. 深度学习是通过反向传播来训练参数的
  2. 机器学习(回归+SVM)是通过在一个范围中进行search,这是一种穷举的遍历。
  3. 像决策树这些分类算法,他不是search,而是步骤。他总是一步一步的向前迈进,没有回头(bp),也没有等待(search)


2018年10月9日 下午10:47

算法杂货铺——分类算法之决策树(Decision tree) - T2噬菌体 - 博客园

没有明白的问题:

  1. 特征属性为连续值时,如何使用ID3算法,没看懂

  2. 有个问题是:如何证明ID3和C45是可行的?
    这个问题我现在认为不是我应该思考的问题。这个问题要从数学的角度去解决。而我更应该关注的是什么问题呢?

  3. 首先决策树的一定是:判定条件是量化的

  4. 决策树中的每个“结构元素”代表着啥?

    1. 决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。
    2. 其每个非叶节点表示一个特征属性上的测试
    3. 每个分支代表这个特征属性在某个值域上的输出
    4. 每个叶节点存放一个类别
    5. 使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并 按照其值选择输出分支 ,直到到达叶子节点,将 叶子节点存放的类别作为决策结果这其中体现了从值——>类别的转换过程,是在叶子节点上完成的
  5. 构造决策树的关键性内容:

    1. 进行属性选择 度量
      1. 属性选择度量算法有很多,
        1. 一般使用自顶向下递归分治法,并采用不回溯的贪心策略
        2. 这里介绍ID3和C4.5两种常用算法。
      2. 属性选择度量是一种选择分裂准则,是将给定的类标记的训练集合的数据划分D“最好”地分成个体类的启发式方法,它决定了拓扑结构及分裂点split_point的选择
  6. 分裂属性分为三种不同的情况:

    1. 属性是离散值不要求生成二叉决策树。此时用属性的每一个划分作为一个分支。
    2. 属性是离散值且要求生成二叉决策树。此时使用属性划分的一个子集进行测试,按照“属于此子集”和“不属于此子集”分成两个分支。
    3. 属性是连续值。此时 确定一个值作为分裂点split_point ,按照>split_point和<=split_point生成两个分支。
  7. ID3和C45的不同:

    1. ID3算法存在一个问题,就是偏向于多值属性,例如,如果存在唯一标识属性ID,则ID3会选择它作为分裂属性,这样虽然使得划分充分纯净,但这种划分对分类几乎毫无用处。
  8. 如果属性用完了怎么办?

    1. 一般对这些子集进行“多数表决
  9. 减枝

    1. 目的:处理由于数据中的噪声和离群点导致的过分拟合问题
    2. 分类: 先剪枝+后减枝

2018年10月9日 下午9:41
朴素贝叶斯分类器的应用 - 阮一峰的网络日志
弄懂特征是离散情况的例子:

  1. 男性的身高是均值5.855、方差0.035的正态分布
    1. 不是女性是男性
    2. 不是体重、脚掌是身高
  2. 男性的身高为6英尺的概率的相对值等于1.5789
    1. 大于1并没有关系,因为这里是密度函数的值,只用来反映各个值的相对可能性
  1. 贝叶斯的两个假设:
    1. 样本每个特征与其特征都是不相关的
    2. 如果特征是连续的,那么就符合高斯概率
  2. 作用:
    1. 分类算法
    1. 学习公式写成代码格式:
      1. 朴素贝叶斯的原理就是一个概率公式而已,但是通过程序实现的时候,并不是我以前认为的:要去调用各种math函数来组成一个非常复杂的一行代码,而是要将一个复杂的公式进行分解,在这个程序中老师将贝叶斯写成了一个类,类下面的各个方法就是对这个复杂公式的分解。
      2. 每个方法,最重要的就是要设计好输入和输入





方差和均值是如何算出来的?

  1. p(x=v|c)中x=v 这说明了在矩阵中竖的截取出了特征值为v的这一列,就一列!
  2. p(x=v|c)中c说明了我们横的截取。
  3. 我们在截取下的之中计算均值和方差。

2018年10月8日 下午11:31
从理解的直观的角度去分析一下adaboost:

  1. 我有一个智囊团,这个智囊团通过集体力量来解决问题
  2. 当然,这个智囊团中的人水平也是分高低的,我的策略优先考虑水平高的,也就是错误率低的人有限考虑,并且他的意见优先考虑。
  3. 并且,智囊团中的人,我还要不断的加大他们做错题的训练,针对性的提高个自己的问题。他好的更好,差的能力也有所提升,从而提高整体的水平。
  4. 定量:这中间涉及到两个定量的问题
    1. 他的意见优先考虑:弱分类器在最终分类器中的权重
      1. 根据的是这个弱分类器的结果误差
    2. 更新训练样本的权值分布
  5. 每个弱分类器是何时训练的
    1. 每次我们选择最优的弱分类器的之前,都要用最新的权重数据,将所有剩下的弱分类器训练一次,根据训练的效果,来选择最好的弱分类器。

Adaboost算法原理分析和实例+代码(简明易懂) - CSDN博客

Adaboost 算法的原理与推导 - CSDN博客

  1. 数学公式是给了你一种计算某个值的具体方法,这是好事呀,说明公式不用你推导了。你不用在想这个值我可怎么求啊
  2. 同时也说明了,公式的推导才是算法背后的原理,仅仅知道公式并不是算法的核心价值点,公式只是那些牛人思考、推导的最后结果
  3. 并且,只有在公式的推导中我们才可以理解到为啥要用这个公式?这个公式是怎样产生的?
    1. 就像July中”Adaboost的误差界“部分,他就用到了考研时求上下界,以及比较复杂的等式推导过程,这才是算法背后的数学,一个公式并不是!
  4. ::总结:::
    1. 第一不要怕数学公式。
    2. 第二公式背后还有他的数学推导,只知道公式是不够的。

2018年10月4日 上午11:08

  1. 我现在我认为广义的机器学习的整体架构我已经建立起来,其实很简单,只有三个部分
    1. 数据的编码方式创新深度学习和机器学习的不同
    2. 模型的发现
      1. 要从这篇文章中懂得什么是模型,狭义的机器学习是什么
      2. 最简单易懂的GAN(生成对抗网络)
    3. 训练架构的创新
      1. 机器学习中的集成学习
      2. GAN最简单易懂的GAN(生成对抗网络)
  2. 就像阅读一样,我们首先遇到一个问题,首先要做到的就是将这个问题进行分类。而这片文章就是给了一种分类的方式
  3. 我们写论文的时候也可以从这些角度去寻找创新的点。

2018年10月4日 上午10:59

最简单易懂的GAN(生成对抗网络)
这篇文章中提到:机器学习和强化学习的本质区别,和认识

  1. 深度学习本身就是机器学习的一部分
  2. 他们的不同点在于:
    1. 深度学习对原始数据的编码方式比较特殊。不同的深度学习算法,有不同的编码方式,egCNN、RNN、LSTM等等。
    2. 这些对数据的编码方式:频率图像的理解,图像的各种描述子,这些东西本质上是一样的,就是对数据换了一种编码方式而已
    3. 就深度学习而言,他的编码方式类似于穷举法,本质来说是一种最简单的方法而已。
  3. 相同点:
    1. 就CNN来说,我们其实可以把这个算法分成两个部分:
      1. 数据的再编码
      2. softmax,而这个softmax其实是一种机器学习的算法。这也就是为啥我们说深度学习还是机器学习的原因

2018年10月4日 上午10:09

2018年10月4日 下午8:26
最简单易懂的GAN(生成对抗网络)教程:从理论到实践(附代码) | 雷锋网

2019年4月21日 下午8:55
新的理解:

  1. 生成网络的训练其实是对生成-判别网络串接的训练
    1. 为什么要将生成的假样本的标签都设置为1
      1. 这样才能起到迷惑判别器的目的,让判别器的输入和输出有误差
      2. 如果,判别器真的全预测对的,那么生成器连误差都没了,还怎么接着训练
    2. 这时候的判别器参数是不变的
    3. 这时候,判别器其实可以理解成是生成模型的一个loss function
  1. 讲解了GAN的训练过程-生成网络-文字描述
    1. 在生成网络的时候:我们要把这些假样本的标签都设置为1,也就是认为这些假样本在生成网络训练的时候是真样本
    2. 并且,只有一类样本进行训练,只要这一类样本有误差就行,也就是说,虽然我们全都把这些假样本标记为1,但是通过判别网络,最后的结果一定是有0有1的,这就是误差的意思。
    3. 并且,在训练生成网络的时候,我们需要判别网络串联进行使用,但需要保证的判别网络的参数不会发生变化。
    4. 生成网络的初始随机参数,在训练完一次之后,需要重新进行随机吗?
      1. 我现在认为是不需要的
  2. 机器学习与机器学习的不同。
    1. 机器学习:说白了其实也好像是你事先知道让数据该怎么映射一样,只是核映射的参数可以学习罢了。所有的这些方法都在直接或者间接的告诉数据你该怎么映射一样,只是不同的映射方法能力不一样
    2. GAN强大之处:在于可以自动的学习原始真实样本集的数据分布,不管这个分布多么的复杂,只要训练的足够好就可以学出来
  3. GAN数学模型的描述
    1. 文字描述和数学模型的描述,他们本质上是相同的。我们可以理解他们为同一个问题的不同角度的描述
    2. 不同的角度,需要进行不同的侧重点和妥协。
      1. 数学模型:是把问题定义为一个最大最小的问题,从这个角度,再去理解这个模型,最终写成一个式子。
      2. 文字描述:目的是描述训练的过程
      3. 数学模型的目的:将当前的问题向当前已知的数学模型靠拢,本质是一种归类,归类到某种数学模型。