zoukankan      html  css  js  c++  java
  • 机器学习笔记6

    神经网络的表述

    1.1 非线性假设 Non-linear hypotheses

    回顾一下之前讲到逻辑回归中的分类问题,它是采用非线性的方式去拟合的,之前只有两个特征,但其实在实际的机器学习中是有很多特征的,当特征数n=100时,如果采用平方项会得到5000个平方项,如果采用立方项会得到170000个立方项,所以当特征数n很大时,建立一个非线性的分类器不是一个好的做法

    在计算机视觉中识别一个图像是否为汽车,是对图像的每一个像素进行分析,对于一个50×50的图像来说,它的特征数n=2500,这还只是在灰度空间上
    同样如果对这个使用平方项或者立方项的非线性分类器那么它的项数都将会得到一个非常大的数量级,所以接下来将会介绍神经网络,即便有很多特征也可以更有效的计算

    在学习神经网络之前,先了解一下神经网络的背景知识
    神经网络起源于人们想要通过算法去模仿人的大脑,神经网络兴起于二十世纪八九十年代并且得到了广大的运用,但由于各种原因在九十年代末期的应用减小了,但最近它又兴起了,它又一次兴起的原因之一是神经网络的计算量较大,如今对于许多应用来说,神经网络是最先进的技术

    1.2 模型展示 Model representation

    在学习神经网络之前,我们需要先了解一下神经元,神经元的结构如下图,大脑中充满了许多这样的神经元,值得注意的是,它像一个细胞体和神经元有许多的输入通道(树突),可以把它们想象成输入电线,它们接收其他神经元来的信息,神经元有一条输出通道(轴突),用来给其他神经元传递信息,那么我们就可以把神经元看成一个计算单元

    神经元之间信息传递的结构示意图就是这个样子的

    在电脑中,我们将以这样的方式来模拟神经元模型,将输入看成是树突,输出是轴突,输入的数据通过黄色圆圈计算把结果传给输出,sigmoid函数将作为激活函数,激活函数就是黄色圆圈这里使用的函数,其实在原有结构上还会加一个x0=1在输入里面,它的思想就和我们之前在特征向量里面加一个x0=1一样,便于后面的计算,在神经网络里面被叫做偏置

    那神经网络其实就是一组组的神经元组合而成的,把输入数据一层层传递,最后传到输出那里去,在神经网络的里面我们把输出数据的那一层叫做输入层,输出数据的那层叫做输出层,其余的中间层都叫做隐藏层

    在了解神经网络是如何计算之前,先了解一下ai(j)和Θ(j),ai(j)表示第j层中的第i个激活项,Θ(j)表示第j层到j+1层映射的权重矩阵,对于这个权重矩阵结构,如果第j层有sj个神经元,第j+1层有sj+1个神经元,那么权重矩阵的结构就是[s(j+1) × (sj+1)]
    那对于神经网络的计算,其实就是输入每一层的数据通过与权重相乘求和传入函数中得到激活项,激活项再以输入数据的形式传到下一层,最后在输出层输出数据

     对于这个计算过程我们可以:
    令z(2) = θ(1)x,则a(2) = g(z(2)),计算后添加a(2)0 = 1
    同样令z(2)(1)a(2) ,则hθ(x) = a(3) = g(z(3))

    在计算权重与输入数据的时候可以将它们向量化

    那这个计算hΘ(x)的过程其实就是计算输入层的激活项(如果有激活函数的话),再把结果传到到隐藏层计算激活项再传到输出计算激活项,从输入层到隐藏层再到输出层,这就可以算是一个前向传播

    在多层结构中的计算也是类似的,把前一层计算好的结果作为输入数据传到下一层继续计算

    1.3 例子与直觉理解 Examples and intuitions

    先看一下AND计算的例子,x1和x2是1或者0,通过简单的神经网络计算 y = x1 AND x2,采用sigmoid函数作为激活函数,x0=1,权重设定[-30,20,20]
    通过计算hΘ(x)得到结果会近似于 x1 AND x2 的结果

    同理在OR计算的例子中,也可以得到近似的结果

    在XNOR计算的例子中,我们是通过将x1 AND x2,(NOT x1) AND (NOT x2),x1 OR x2组合起来计算得到的
    计算后可以看到XNOR计算是x1和 x2同时为0或者同时为1得到1,其余得到0,确实与实际的结果相符合,这样我们就可以通过神经网络得到一个非线性的决策边界了

    1.4 多元分类 Multi-class classification

    在神经网络的多元分类中,它的预测值不再是采用 y={1,2,3,4} 这样的形式了,而是采用one-hot编码的形式,将[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]的形式代替y={1,2,3,4}

    之后将会对神经网络进一步的介绍

  • 相关阅读:
    容斥原理解决某个区间[1,n]闭区间与m互质数数量问题
    Educational Codeforces Round 28
    括号匹配问题(区间dp)
    小球装箱问题八连(组合数学)
    Educational Codeforces Round 29
    Codeforces Round #437 (Div. 2, based on MemSQL Start[c]UP 3.0
    Codeforces Round #434 (Div. 2, based on Technocup 2018 Elimination Round 1)
    Opencv保存读取float类型深度图
    OpenGL快速入门
    使用selenium判断标签的元素值是否存在
  • 原文地址:https://www.cnblogs.com/bird7/p/14978059.html
Copyright © 2011-2022 走看看