机器学习(一) 线性分类器——损失函数——梯度下降法

个人学习笔记,可能漏洞百出

机器学习

机器学习是人工智能的核心,是一种借鉴于人的学习行为,训练机器使其可以自行分析数据(图片,声音,文字)解决问题的方法。
机器学习基于学习方法可以分为

监督学习 根据已有经验分析输入数据(的分类),学习结果为函数,应用最为广泛
非监督学习 分析没有标签的输入数据,学习结果为可以对数据分类的类别,未来的方向
强化学习 对系统的输入进行奖惩,从而优化学习的方法

监督学习

Supervised Learning的特点是有已知的,被分类好的数据作为训练数据集。,可以解决的问题可以分为两类

分类学习 预测分类标签,如图像识别。 从训练数据中抽取所需要的特征形成特征向量。将特征向量及其分类一并送入学习算法,训练一个预测模型。
回归预测 预测一个连续值,如根据教育水平预测收入。 采用同样的特征抽取方法作用于新测试数据,得到用于测试的特征向量,最后使用预测模型对待测试的特征向量进行预测并得到结果。

回归是统计学中的概念,用来确定两个变量之间的相互依赖的定量关系。

线性回归就是确定一个线性关系。

接下来从很简单但是也很重要的线性分类器开始,分类模型采用线性函数的就是线性分类器(一条直线完成分类任务)。

线性分类器

这样一个机器中输入输出之间的关系是一个线性函数——在机器学习中称为目标函数Objectiv Function,学习的过程就是优化参数(权重偏置)的过程,优化完成后的机器可以通过输出分数的高低实现对输入项的正确分类。(这个参数在二维平面中就是斜率和截距)

(线性分类器的)目标函数

在这里插入图片描述

输入 x 我们的处理对象, 一个等待被分类的向量
权重向量 w 每一个分类对应一个权重向量,维度对应 x 的维度,与x加权求和得到该分类的得分
权重矩阵 W 由所有的权重向量w组成,w个数对应目标分类个数
偏置向量 b 可以被调整的偏置项

目标函数的输出项为一个向量,其元素个数与目标分类个数一致,每个元素对应输入值可能为某个目标分类的可能性大小。目标分类可以有多个,目标函数输出给出输入向量相对于每个分类的一个打分

举个胡说八道的栗子:问题:如何判断输入对象 [年龄,性别] (组成一个向量)是一家四口中的爸爸妈妈女儿儿子?

此时目标分类有四个,那么通过权重操作后,得出四个得分,对应输入对象可能是四个分类中的某一个的可能性。比如输入对象是年龄大,性别女, 与妈妈对应的权重向量操作后应该会得到一个最大的值,而是儿子的可能性最小。 那么问题来了—— 在复杂的问题中,如何确定每个目标分类对应的权重向量?
这时就轮到另一个函数出场了——

损失函数

Lost function用于计算预测的分类和实际分类之间的差异,使损失函数最小可以确定目标分类应该对应的权重向量,从而进行精准预测。损失函数也被称为代价函数,有时也被称为目标函数。(一个需要优化的目标)
机器学习(一) 线性分类器——损失函数——梯度下降法_第1张图片
其中——

在这里插入图片描述 损失函数是根据当前权重矩阵求得的,学习过程就是获得使平均损失函数最小的权重矩阵
在这里插入图片描述 样本 i 的实际得分
在这里插入图片描述 样本 i 期望的得分
在这里插入图片描述 正则化项,用参数 λ 进行控制, 防止过拟合

所谓过拟合表现为某些权重的值过大,过大的意思是权重与某个训练集中的样本数据过于重合,但是不能泛泛的对任何一份其他样本数据给出稳定的有效结论。还是那个胡说八道的例子,通过训练数据集中多组家庭的妈妈这个类别的特征,可以得到妈妈的权重为年龄大性别女时,损失函数平均而言是最小的。但是假如我们除了年龄和性别意外,再加入一个头发长短的特征,如果这个特征的权重过大,可想而知预测的结果就反而不准了。

铰链损失函数 在这里插入图片描述
支持向量机 SVM常用的hinge loss。一句话解释就是比较正确类别 sj 和其他类别 si 的分数差,将其中所有大于零的求和作为损失函数。
交叉熵损失函数 在这里插入图片描述
衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就表示为真实概率分布与预测概率分布之间的差异。 交叉熵在分类问题中常常与softmax是标配,softmax即使括号里的运算——将输出的结果进行处理,使所有个分类的预测值和为1(分数转换为概率),再通过交叉熵方法来计算损失。这有个介绍交叉熵的好视频

下一个问题——如何调整权重使损失函数最小?

梯度下降法

吴恩达- Gradient Descent Intuition

Gradient descent 方法是找出函数的梯度方向——也就是函数上升最快的方向,从而从反方向改变权重矩阵找到函数的最小值。可以用解析方法但是更实用的是数值方法,常常是从随机的初始状态(w,L(w))开始,使权重矩阵小步循环往函数减小的方向改变,改变的程度根据局部的梯度决定,并由系数学习率调节。

学习率小时,函数找到最小值可能需要更多的循环次数,学习率过大时,循环过程中可能会跳过最小值,从而也会增加循环次数,甚至发生偏离的情况。

代码示例参考 https://blog.csdn.net/qq_41800366/article/details/86583789

小结

线性分类器是类别和输入信息存在线性关系的简单分类器,权重经过优化(梯度下降法)以后的线性模型可以处理一些简单任务,难以应用于复杂问题如图像识别。线性分类器的一个典型就是单层感知机,这也是神经网络中的基本组成结构,随着层数的增多以及非线性处理的应用,系统就能更善于抓取数据中的复杂特征进行分析。

你可能感兴趣的:(机器学习,机器学习,深度学习)