机器学习:神经网络之表达

liguangsunls liguangsunls     2022-09-01     197

关键词:

**************************************

注:本系列博客是博主学习Stanford大学 Andrew Ng 教授的《机器学习》课程笔记。博主深感学过课程后,不进行总结非常easy遗忘。依据课程加上自己对不明确问题的补充遂有此系列博客。

本系列博客包含线性回归、逻辑回归、神经网络、机器学习的应用和系统设计、支持向量机、聚类、将维、异常检測、推荐系统及大规模机器学习等内容。

**************************************

神经网络:表达

非线性假说

使用非线性的多项式项,可以帮助我们建立更好的分类模型。

如果我们有许多的特征。比如大于100个变量,我们希望用这 100个特征来构建一个非线性的多项式模型,结果将是数量很惊人的特征组合。即便我们仅仅採用两两特征的组合(x1x2+x1x3+x1x4+...+x2x3+x2x4+...+x99x100),我们也会有接近 5000个组合而成的特征。这对于一 般的逻辑回归来说须要计算的特征太多了。

技术分享

这种问题还有非常多,比如在计算机视觉的汽车检測问题中。对于一副汽车图片来说,你能够轻易的辨别出这是一辆汽车,可是在计算机或者相机“眼里”。这仅仅是一堆像素的数字矩阵而已:

技术分享

所以,对于汽车检測问题,我们须要一堆汽车图片和一堆非汽车图片作为训练集,训练一个用于汽车检測的分类器

技术分享

假使我们採用的都是 50x50 像素的小图片。而且我们将全部的像素视为特征,则会有 2500 个特征,假设我们要进一步将两两特征组合构成一个多项式模型,则会有约 25002/2  个(接近3百万个)特征。

普通的逻辑回归模型,不能有效地处理这么多的特征。这时候我们须要神经网络。

 

技术分享

我们模拟大脑中的神经元结构建立一个简单的模型-Logistic unit:

技术分享

我们设计出了类似于神经元的神经网络,效果例如以下:

技术分享

当中x1,x2,x3是输入单元(input units),我们将原始数据输入给它们。 a1,a2,a3是中间单元。它们负责将数据进行处理,然后呈递到下一层。 最后是输出单元,它负责计算 h(x)。

 神经网络模型是很多逻辑单元依照不同层级组织起来的网络,每一层的输出变量都是下一层的输入变量。上图为一个3 层的神经网络,第一层成为输入(InputLayer),最后一层称为输出层(Output Layer)。中间一层成为隐藏层(Hidden Layers)。我们为每一层都添加了一个偏差单位(bias unit)。

技术分享

模型表示二

相对与使用循环来编码。利用向量化的方法会使得计算更为简便。

技术分享

技术分享

事实上神经网络就像是 logistic regression。只只是我们把 logistic regression 中的输入向量[x1~x3]变成了中间层的[a(2)1~a(2)3],  我们能够把a0,a1,a2,a3看成更为高级的特征值,也就是 x0,x1,x2,x3的进化体,而且它们是由x与决定的,由于是梯度下降的,所以a是变化的,而且变得越来越厉害。所以这些更高级的特征值远比只将 x次方厉害。也能更好的预測新数据。

 这就是神经网络相比于逻辑回归和线性回归的优势。

 

特征和直观解释

我们的目标是利用神经网络实现一个逻辑代数中的同或运算,因此首先介绍一下同或运算和异或运算:
同或逻辑和异或逻辑是仅仅有两个逻辑变量的逻辑函数。假设当两个逻辑变量A和B同样时,逻辑函数F等于1。否则F等于0。这样的逻辑关系称为同或。

反之。假设当两个逻辑变量A和B相异时,逻辑函数F等于1,否则F等于0。这样的逻辑关系称为异或。

技术分享

将其相应到一个非线性分类器,例如以下图所看到的:

技术分享

先介绍三种最主要的逻辑运算(与逻辑运算、或逻辑运算、非逻辑运算),同一时候分别介绍其相应的神经网络实现。最后将这几种主要的逻辑运算组合,形成终于的同或逻辑运算的神经网络。

技术分享

技术分享

技术分享

左图的神经元(三个权重分别为-30,20,20)能够被视为作用同于逻辑与(AND)。中图的神经元(三个权重分别为-10,20,20)能够被视为作用等同于逻辑或(OR)。右图的神经元(两个权重分别为  10,-20)能够被视为作用等同于逻辑非(NOT):

技术分享

我们能够利用神经元来组合成更为复杂的神经网络以实现更复杂的运算。

比如我们要实现 XNOR  功能(输入的两个值必须一样,均为 1 或均为0)。即  XNOR=(x1ANDx2)OR((NOTx1)AND(NOTx2)) 

技术分享

上图中第二层隐藏网络a1和a2分别代表了A And B和Not A And Not B。a1和a2又做了一次或逻辑运算就得到了同或逻辑运算。

该神经网络相应的输出与同或运算的真值表同样。

多分类问题

当我们有不止两种分类时(也就是 y=1,2,3….)。比方我们要训练一个神经网络算法来识别路人、汽车、摩托车和卡车。在输出层我们应该有 4个值。

比如,第一个值为1或0用于预測是否是行人,第二个值用于推断是否为汽车。 输入向量x有三个维度,两个中间层,输出层4个神经元分别用来表示4类,也就是每
一个数据在输出层都会出现[a b c d]T,且a,b,c,d中仅有一个为1,表示当前类。以下是该神经网络的可能结构演示样例: 

技术分享

当向量的某个元素为1,其它为0时,代表分类结果为某个为1元素所相应的类别。这与之前逻辑回归中的多类分类表示不同,在逻辑回归中,输出y属于类似于{1, 2, 3,4}中的某个值,而非一个向量。因此。假设要训练一个多类分类问题的神经网络模型,训练集是这种:

技术分享

******************

作者:hao_09

时间:2015/8/13

文章地址:http://blog.csdn.net/lsh_2013/article/details/47454079

******************


  


 































andrewng机器学习课程笔记之神经网络

AndrewNg机器学习课程笔记(四)之神经网络版权声明:本文为博主原创文章,转载请指明转载地址http://www.cnblogs.com/fydeblog/p/7365730.html前言学习了AndrewNg课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,... 查看详情

莫烦python之机器学习概念了解

...有监督学习无监督学习半监督学习强化学习遗传算法2、神经网络一种基于传统统计学的模型,由大量的神经元与其关系构成。常用来对复杂的输入和输出关系进行建模误差反向传递:给出信号,得到经过神经网络算法之后的结... 查看详情

机器学习笔记之四adaboost算法

...个策略将它们结合起来。个体学习器可以选择:决策树,神经网络。集成时可以所有个体学习器属于同一类算法:全是决策树,或全是神经网络;也可以 查看详情

stanford机器学习---第十四讲.机器学习应用举例之photoocr

...的线性回归、OctaveTutorial、LogisticRegression、Regularization、神经网络、机器学习系统设计、SVM(SupportVectorMachines支持向量机)、聚类、降维、异常检 查看详情

机器学习算法之dcgan(代码片段)

...络GAN中一种常见的模型结构。其中的生成器和判别器都是神经网络模型。GAN是一种生成式对抗网络,即通过对抗的方式,去学习数据分布的生成式模型。所谓的对抗,指的是生成网络和判别网络的互相对抗。生成网络尽可能生成... 查看详情

spark2.0机器学习系列之7:mlpc(多层神经网络)

Spark2.0MLPC(多层神经网络分类器)算法概述MultilayerPerceptronClassifier(MLPC)这是一个基于前馈神经网络的分类器,它是一种在输入层与输出层之间含有一层或多层隐含结点的具有正向传播机制的神经网络模型。 中间的节点使... 查看详情

简单易学的机器学习算法——神经网络之bp神经网络

一、BP神经网络的概念  BP神经网络是一种多层的前馈神经网络,其基本的特点是:信号是前向传播的,而误差是反向传播的。详细来说。对于例如以下的仅仅含一个隐层的神经网络模型:(三层BP神经网络模型)BP神经网络... 查看详情

麦子学院学习视频之机器学习:1.1机器学习介绍

    今天开始学习机器学习,在网上找了很多视频还有书籍。由于本人不是计算机专业的学生,基础知识还是比较薄弱,但我非常想学习机器学习以及深度学习。最后还是选择了麦子学院的彭亮老师的《机器学习基... 查看详情

人工智能与机器学习的不同之处

...习和模仿人类行为的算法。在学习方面,最重要的算法是神经网络,但由于模型过于强大,没有足够的数据支持,导致不是很成功。然而,在一些更具体的任务中,使用数据来适应函数的想法获得了巨大的成功,这也构成了机器... 查看详情

全网最快掌握机器学习之深度学习之神经网络数学基础(附源代码)(代码片段)

...而且对解释问题也不是绝对必要的。本文将首先给出一个神经网络的示 查看详情

[深度之眼机器学习训练营第四期]神经网络之参数学习

损失函数为了学习神经网络中的参数,我们要为神经网络模型定义损失函数。回想一下,逻辑回归可以将数据分成正例和负例两类,因此它的损失函数为:[J( heta)=-frac1nsum_i=1^nleft[y^(i)log(h_ heta(x^(i)))+(1-y^(i))log(1-h_ heta(x^(i)))ight]+frac... 查看详情

机器学习之神经网络的公式推导与python代码(手写+pytorch)实现(代码片段)

文章目录前言神经网络公式推导参数定义前向传播(forward)反向传播(backward)隐藏层和输出层的权重更新输入层和隐藏层的权重更新代码实现python手写实现pytorch实现总结参考前言因为要课上讲这东西,因此... 查看详情

机器挖掘之经典算法

...在监督学习(即预测建模)中尤其如此。例如,你不能说神经网络总是比决策树好,反之亦然。有很多因素在起作用,例如数据集的大小和结构。因此,你应该针对具体问题尝试多种不同算法,并留出一个数据「测试集」来评估... 查看详情

机器学习实践之决策树算法学习

...37608890/article/details/78731169)。  本文根据最近学习机器学习书籍网络文章的情况,特将一些学习思路做了归纳整理,详情如下.如有不当之处 查看详情

机器学习实践之logistic回归

...et/qq_37608890/article/details/78827013)。 本文根据最近学习机器学习书籍网络文章的情况,特将一些学习思路做了归纳整理 查看详情

机器学习和深度学习的关系啦!(?´?`?)

...从简单特征中提取复杂特征。最初的深度学习是利用深度神经网络(DNN)(超过三层的神经网络模型)来解决特征表达的一种学习过程。深度神经网络本身并不是一个全新的概念,可以大致理解为包含多个隐含层的神经网络结构... 查看详情

机器学习|数学基础mathematicsformachinelearning系列之线性代数(26):线性变换的矩阵表达式

目录前言往期文章6.5线性变换的矩阵表达式定义6定理2定义7举例例11结语前言Hello!小伙伴!非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ 自我介绍ଘ(੭ˊᵕˋ)੭昵称:海轰标签࿱... 查看详情

十个机器学习基本算法之-线性回归(代码片段)

...用到的10个及其学习算法。举个例子来说,你不能说神经网络永远比决策树好,反之亦然。模型运行被许多因素左右,例如数据集的大小和结构。因此,你应该根据你的问题尝试许多不同的算法,同时使用数据... 查看详情