@danren-aa120
2021-02-01T09:56:52.000000Z
字数 810
阅读 116
机器学习
1 在二分类问题中,你可以根据神经网络节点的输出,通过一个激活函数如Sigmoid,将其转换为属于某一类的概率,为了给出具体的分类结果,你可以取0.5作为阈值,凡是大于0.5的样本被认为是正类,小于0.5则认为是负类.
然而这样的做法并不容易推广到多分类问题。多分类问题神经网络最常用的方法是根据类别个数n,设置n个输出节点,这样每个样本神经网络都会给出一个n维数组作为输出结果,然后我们运用激活函数如softmax,将输出转换为一种概率分布,其中的每一个概率代表了该样本属于某类的概率。
比如一个手写数字识别这种简单的10分类问题,对于数字1的识别,神经网络模型的输出结果应该越接近[0,1,0,0,0,0,0,0,0,0]越好,其中[0,1,0,0,0,0,0,0,0,0]是最理想的结果了.
但是如何衡量一个神经网络输出向量和理想的向量的接近程度呢?交叉熵(cross entropy)就是这个评价方法之一,他刻画了两个概率分布之间的距离,是多分类问题中常用的一种损失函数.
2 模型选择:线性回归中模型设函数(wx+b)或加上二次三次,逻辑回归方法解决分类中函数是wx+b(属于判别模型,不假设符合高斯分布,就是求w和b,最终输出几率),而生成模型中(如利用朴素贝叶斯方法)假设符合高斯分布(最后计算出几率),由于生成模型存在假设,则很多情况下,逻辑回归的判别模型优于生成模型的结果。
3 损失函数:线性回归选择square error(方差,真实值与预测值的差的平方)评价方法,分类中选择cross entropy(交叉熵)评价方法形成损失函数;
4 线性回归输出时不需要激活函数,输出的是真实的值;而二分类需要选择Sigmoid,将其转换为属于某一类的0到1之间的概率,多分类需要选择Softmax激活函数,输出的每个概率值在0到1之间,且全部概率值相加为1。(激活函数是对输出结果的处理)