吴恩达:机器学习的 6 个核心算法
导读:这六种算法分别是:线性回归、逻辑回归、梯度下降、神经网络、决策树与k均值聚类算法。
算法:线性和逻辑回归、决策树等 概念:正则化、优化损失函数、偏差/方差等
汽车的油耗 y 与其重量 x 之间的关系取决于直线的斜率 w(油耗随重量上升的幅度)和偏置项 b(零重量时的油耗):y=w*x+b。 在训练期间,给定汽车的重量,算法会预测预期的油耗。它比较了预期和实际的油耗。然后,它将平方差最小化,通常通过普通最小二乘技术,磨练 w 和 b 的值。 考虑汽车的阻力可以生成更精确的预测。附加变量将线延伸到平面。通过这种方式,线性回归可以容纳任意数量的变量/维度。
训练水平调整曲线的中心位置,垂直调整曲线的中间位置,以最大限度地减少函数输出与数据之间的误差。 将中心调整到右侧或左侧意味着杀死普通人需要或多或少的毒药。陡峭的坡度意味着确定性:在中途点之前,大多数人幸存下来;超过一半,「就只能说再见了」(死亡的意思)。缓坡更宽容:低于曲线中部,一半以上幸存;再往上,只有不到一半的人会幸存。 在一个结果和另一个结果之间设置一个阈值,比如 0.5,曲线就变成了一个分类器。只需在模型中输入剂量,您就会知道您应该计划聚会还是葬礼。
在 1960 年代后期,英国统计学家 David Cox 和荷兰统计学家 Henri Theil 独立工作,对具有两种以上可能结果的情况进行了逻辑回归。 进一步的工作产生了有序逻辑回归,其中结果是有序值。 为了处理稀疏或高维数据,逻辑回归可以利用与线性回归相同的正则化技术。
基本方法是向地形下降最陡的方向移动。诀窍是校准你的步幅。步幅太小,就需要很长时间才能取得进展;步幅太大,你就会跳入未知的领域,可能是上坡而不是下坡。 给定当前位置,算法通过计算损失函数的梯度来估计最快下降的方向。梯度指向上坡,那么该算法就是通过减去梯度的一小部分来以相反的方向前进。称为学习率的分数 α 决定了再次测量梯度之前的步长。 反复做这几个步骤,希望你能到达一个山谷。恭喜!
一个神经元可接受各种输入(例如,代表像素或单词的数字,或前一层的输出),将它们与权重相乘,乘积相加,并得出由开发人员选择的非线性函数或激活函数的总和。期间要考虑到它是线性回归、加上一个激活函数。 训练修改权重。对于每个示例输入,网络会计算一个输出并将其与预期输出进行比较。反向传播可通过梯度下降来改变权重,以减少实际输出和预期输出间的差异。当有足够多(好的)例子重复这个过程足够多次,网络就能学会执行这个任务。
这棵树从一个可视为包含了所有案例的生物数据库的根节点出发——黑猩猩、大猩猩和红毛猩猩,以及卷尾猴、狒狒和狨猴。根会在两个子节点间提供选择,是否表现出某种特定特征,导致两个子节点包含具有和不具有该特征的示例。以此类推,这个过程中以任意数量的叶节点结束,每个叶节点都包含大部分或全部属于一个类别。 为了成长,树必须找到根决策。要做选择,则得考虑所有的特征及其价值——后附肢、桶状胸等——并选择能够最大限度提高分割纯度的那个特征。「最佳纯度」被定义为一个类别示例会 100% 进入一个特定的子节点、而不进入另一个节点。分叉很少在只做了一个决定之后就百分之百纯粹、且很可能永远也达不到。随着这个过程继续进行,产生一个又一个层次的子节点,直至纯度不会因为考虑更多的特征而增加多少。此时,这棵树树已经完全训练好了。 在推理时,一个新的示例从上到下经历过决策树,完成每个级别不同决策的评估。它会得到它所在叶节点所包含的数据标签。
在训练期间,算法最初通过随机选择 k 人来指定 k 个质心。(K 必须手动选择,找到一个最优值有时非常重要。)然后它通过将每个人与最近的质心相关联来增长 k 个集群。 对于每个集群,它计算分配到该组的所有人的平均位置,并将该平均位置指定为新的质心。每个新的质心可能都没有被一个人占据,但那又如何呢?人们倾向于聚集在巧克力和火锅周围。 计算出新的质心后,算法将个体重新分配到离他们最近的质心。然后它计算新的质心,调整集群,等等,直到质心(以及它们周围的组)不再移动。之后,将新成员分配到正确的集群就很容易。让他们在房间里就位并寻找最近的质心。 预先警告:鉴于最初的随机质心分配,你可能最终不会与你希望与之相处的以数据为中心的可爱 AI 专家在同一组中。该算法做得很好,但不能保证找到最佳解决方案。
K-medoids 使用实际数据点作为质心,而不是给定集群中的平均位置。中心点是可以将到集群中所有点的距离最小化的点。这种变化更容易解释,因为质心始终是数据点。 Fuzzy C-Means Clustering 使数据点能够不同程度地参与多个集群。它根据与质心的距离,用集群的度来代替硬簇分配。
延伸阅读👇
延伸阅读《机器学习实战》
评论