写在前面 今天, 我们将会更加深入的学习神经网络, 了解神经网络的学习过程. 误差逆传播算法 多层网络的学习能力比单层感知机强得多. 欲训练多层网络, 简单的感知机学习规则显然不够了, 需要更强大的学习算法. 误差逆传播(Error BackPropagation, 简称 BP)算法就是其中最杰出的代表, 它是迄今最成功的神经网络学习算法. 现实任务中使用神经网络时, 大多是在使用BP算法进行训练. 值得指出的是, BP算法不仅可用于多层前馈神经网络, 还可用于其他类型的神经网络. BP算法的工作流程: 输入: 训练集 学习率 过程: 在(0,…
Posts tagged as “西瓜书”
写在前面 今天, 我们将会学习神经元模型, 感知机与多层网络. 大家在学习与理解的过程中, 如果遇见问题, 可以利用google先搜索一下, 仔细想想, 如果还是未解决, 可以在文章下面留言, 或者直接微信联系博主. 神经元模型 M-P神经元模型: 在M-P神经元模型中, 神经元接受到来自 个其他神经元传递过来的输入信号, 这些输入信号通过带权重的连接(Connection)进行传递, 神经元接收到的总输入值将与神经元的阈值进行比较, 然后通过'激活函数'(Activation Function)处理以产生神经元的输出, 如下图: 激活函数(Activation Function), 常用的激活函数如下: 阶跃函数:…
写在前面 今天, 我们继续学习决策树的最后一个小节, 多变量决策树. 本文中的内容会比较少, 也为大家留下了查漏补缺的时间, 如若前面有些问题还未弄清楚, 可以适当的补充数学知识, 倒回去看前面的内容. 学而时习之, 可以为师矣. 多变量决策树 若我们把每个属性视为坐标空间中的一个坐标轴, 则 个属性描述的样本就对应了 维空间中的一个数据点, 对样本分类则意味着在这个坐标空间中寻找不同类样本的分类便捷. 决策树所形成的分类边界有一个明显的特点: 轴平行(axis-parallel), 即它的分类边界由若干个与坐标轴平行的分段组成. 这样的分类边界使得学习结果有较好的可解释性, 因为每一段划分都直接对应了某个属性取值. 但在学习任务的真实分类边界比较复杂时, 必须使用很多段划分才能获得较好的近似. 此时的决策树会相当复杂,…
写在前面 在这篇文章中, 我们将会介绍决策树中的剪枝处理, 连续值与缺失值处理. 剪枝处理 剪枝(Pruning)是决策树学习算法对付'过拟合'的主要手段. 决策树剪枝的基本策略有'预剪枝'(Prepruning)和'后剪枝'(Postpruning). 预剪枝是指在决策树生成过程中, 对每个节点在划分前先进行估计, 若当前节点的划分不能带来决策树泛化性能提升, 则停止划分并将当前结点标记为叶结点; 后剪枝则是先从训练集生成一颗完整的决策树, 然后自底向上地对非叶结点进行考察, 若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升, 则将该子树替换为叶结点. 在这里, 我们可以使用留出法, 即预留一部分数据用作'验证集'以进行性能评估. 预剪枝 预剪枝基于信息增益准则, 预剪枝使得决策树的很多分值都没有'展开', 这不仅降低了过拟合的风险, 还显著减少了决策树的训练时间开销和测试时间开销. 另一方面, 有些分值的当前划分虽不能提升泛化性能,…
写在前面 在上一个章节中, 我们学习了线性模型. 在这篇文章中, 我们将会继续学习决策树相关的一些知识. 基本流程 决策树(Decision Tree)是一种常见的机器学习方法. 以二分类任务为例, 我们希望从给定训练数据集学的一个模型用以对新示例进行分类, 这个把样本分类的任务, 可以看做对'当前样本属于正类吗?'这个问题的'决策'或'判定'过程. 顾名思义, 决策树是基于树结构来进行决策的, 这恰是人类在面临决策问题时一种很自然的处理机制. 一般的, 一棵决策树, 包含一个根节点, 若干个内部节点和若干个叶节点; 叶节点对应于决策结果, 其他每个节点则对应于一个属性测试; 每个节点包含的样本集合根据属性测试的结果被划分到子节点中; 根节点包含样本全集. 从根节点到每个叶节点的路径对应了一个判定测试序列. 决策树学习的目的是为了产生一颗泛化能力强,…
写在前面 今天我们继续学习类别不平衡问题, 本文中主要对处理类别不平衡问题的方法做了一定的介绍. 类别不平衡问题 前面介绍的分类学习方法都有一个通通的基本假设, 即不同类别的训练样例数目相当. 如果不同类别的训练样例数目稍有差别, 通常影响不大, 但若差别很大, 则会对学习过程造成困扰. 类别不平衡(Class-Imbalance)就是指分类任务中不同类别的训练样例数目差别很大的情况. 不失一般性, 本节假设正类样例较少, 反类样例较多. 在现实的分类学习任务中, 我们经常会遇到类别不平衡. 从线性分类器的角度讨论容易理解, 在我们用 对新样本 进行分类时, 事实上是在用预测出的 值与一个阈值进行比较. 例如通常在 时判别为正例, 否则为反例.…
写在前面 在这篇文章中, 我们继续学习线性判别分析与多分类学习小节中的内容. 本文中涉及到的数学问题与名词比较多, 数学不好的同学也不害怕, 先过一遍, 有个概念之后就知道如何去查找解决不懂的问题了. 后续笔者也会相应的补充一些数学类的文章更新上来, 学习有个过程, 不要害怕未知, 每天学一点, 积累下来, 久而久之, 回头一看, 会发现自己已经不是曾经那个自己, 早已走远. 线性判别分析 线性判别分析(Linear Discriminant Analysis, 简称LDA), 是一种经典的线性学习方法, 在二分类问题上因为最早由Fisher提出, 亦称'Fisher判别分析'. LDA的思想非常朴素:…
写在前面 在这篇文章中, 我们继续学习线性模型, 如果时间地点允许, 我希望读者能拿着笔纸, 跟着一起推导一遍, 相信你会受益颇深. 基本形式 给定由d个属性描述的示例 , 其中 是 在第 个属性上的取值, 线性模型(Linear Model)试图学得一个通过属性的线性组合来进行预测的函数, 即: 一般用向量形式写成: 其中 , 和 学得之后, 模型就得以确定. 线性模型形式简单, 易于建模,…
写在前面 这篇文章中, 我们接着学习偏差与方差部分. 在学习的同时, 对于数学基础不是太好的童鞋, 最好能准备好google, 或者备一本<概率导论>. 偏差与方差 '偏差-方差分解'(Bias-Variance Decomposition): 是解释学习算法泛化性能的一种重要工具. 偏差-方差分解试图对学习算法的期望泛化错误率进行拆解. 我们知道, 算法在不同训练集上学的的结果很可能不同, 即便这些训练集是来自同一个分布. 对测试样本 , 令 为 在数据集中的标记, 为 的真实标记, 为训练集 上学的模型 在…
写在前面 在这篇文章中, 我们将继续学习模型评估与选择中的性能度量与比较检验这两个小节. 这两个小节中涉及到的概念性的东西比较多, 我们提炼了一些比较重要的点出来进行讲解. 性能度量 性能度量(Performance Measure): 对学习器的泛化性能机型评估, 不仅需要有效可行的实验估计方法, 还需要有度量模型泛化能力的评价标准, 这就是性能度量(Performace Measure). 性能度量反映了任务需求, 在对比不同模型的能力时, 使用不同的性能度量往往会导致不同的评判结果; 这意味着模型的'好坏'是相对的, 什么样的模型是好的, 不仅取决于算法和数据, 还决定于任务需求. 在预测任务中, 给定样例集 , 其中 是示例…