神经网络(1)--No-linear hypotheses

为什么我们已经有了linear regression与logistic regression算法还要来学习神经网络这个另外的算法呢,让我们来看看几个复杂的no-linear hypotheses

想要对上面图中的trainning data做logistic regression的话,你可以做的是apply logistic regression with a lot of nonlinear features(如上图中的g(θ0+....),它是一个sigmoid function),如果包括了足够多的多项式的话,然后你可能会得到上图中的那条粉色的hypotheses(完全将positive与negative分开),当只有两个features这种多项式的方法很好,因为你可以把所有关于x1,x2的多项式包括进来。但是在实际生活中,我们可能会遇到远远多于2个features的问题。

如我们还是举卖房子的例子,现在房子的feature有100个,是个分类问题,对房子下个季度能否卖出做预测。

如果将所有的二次项都包括进来的话,将有5000个features(O(n2)),如果将这些features都考虑的话,不是一个好算法因为会出现overfitting的问题并且处理这么多的features计算也很耗时,当然可以考虑只包括这些二次项中的一部分,比如只考虑x12,x22,x32....x1002,这样只有100个features了,但是因为没有足够多的features,实际上画出来的图像是类似于椭圆的图像,所以不可以画出像左上图那样的hypotheses。

如果考虑三次项的话,features有大约170000,这是一个很大的数量,不是一个好的处理方式。

对于很多机器学习的问题来说,features都很大,让我们来看一个关于computer vision的问题。假设我们想知道一幅图片是否是一辆车。

为什么computer vision的问题很复杂,因为在我们看来很容易辨别这是一辆车,但是对于计算机来说却很难,因为它看到的和我们是不同的。比如就车把手那一小块地方来说,计算机看到的是一个像素强度值的矩阵(告诉我们每个像素点的brightness),实际上计算机看到的是这个矩阵,然后告诉我们这是一辆车的门把手。

实际上我们在使用machine learning to build a car detector,我们要处理一个label training set(有一些label 为car的例子,有一些label 不为car的例子),然后我们把这个training set给我们的learning algorithm去训练,然后你可以用一张新的图片来test,看是否来正确识别出它是否为一辆车。

取两个位置的像素点,然后再下面的图中plots相应的点,用+表示是car,用-表示不是car,随着训练集中的点的plot,我们可以看出这是一个Non-linear hypotheses

如果每幅图片取50*50个像素点,则有2500个像素点,我们的features个数为2500个,则我们的测试x是一个维度为2500的向量,向量里面的元素为每个像素点的值,如果图片是灰度表示的话,值在0-255之间。如果图片是用RGB表示的话,则有7500个features。features为2500时,如果我们用二次项来计算这个No-linear hypotheses,把所有的二次项都包括进来的话,则大约有3 million的features,这个太大了,来完成计算太费时,可能也完不成计算。

所有simple logistic regression together with adding in with maybe 二次项或者三次项的方法----不是一个好的当很大时学习复杂的nonlinear hypotheses的方法,因为你会得到很多features。

神经网络是经验证了的一种更好的处理这种当n很大时的复杂问题的方法(complex nonlinear hypotheses)

神经网络(1)--Non-linear hypotheses,为什么我们要学习神经网络这种算法来处理non-linear hypotheses的更多相关文章

  1. 神经网络的Python实现(一)了解神经网络

    网络上深度学习相关博客教程质量参差不齐,很多细节很少有文章提到,所以本着夯实深度学习基础的想法写下此系列博文. 本文会从神经网络的概述.不同框架的公式推导和对应的基于numpy的Python代码实现等 ...

  2. MIT算法导论——第五讲.Linear Time Sort

    本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记.所有内容均来自MIT公开课Introduction to Algorithms中Charles E. ...

  3. 用Keras搭建神经网络 简单模版(三)—— CNN 卷积神经网络(手写数字图片识别)

    # -*- coding: utf-8 -*- import numpy as np np.random.seed(1337) #for reproducibility再现性 from keras.d ...

  4. Tensorflow笔记——神经网络图像识别(四)搭建模块化的神经网络八股(正则化,指数衰减学习率,滑动平均等优化)

    实战案例: 数据X[x0,x1]为正太分布随机点, 标注Y_,当x0*x0+x1*x1<2时,y_=1(红),否则y_=0(蓝)  建立三个.py文件 1.  generateds.py生成数据 ...

  5. [DeeplearningAI笔记]卷积神经网络1.9-1.11池化层/卷积神经网络示例/优点

    4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.9池化层 优点 池化层可以缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性. 池化层操作 池化操作与卷积操作类似 ...

  6. Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 4. 深层神经网络)

     =================第2周 神经网络基础=============== ===4.1  深层神经网络=== Although for any given problem it migh ...

  7. 神经网络一(用tensorflow搭建简单的神经网络并可视化)

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt #创建一个input数据,-1到1之间300个数, ...

  8. NLP教程(3) | 神经网络与反向传播

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...

  9. [Machine Learning & Algorithm] 神经网络基础

    目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫,现在不只是互联网.人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革.要学习深度学习,那么首先要熟悉神经网络(N ...

随机推荐

  1. pv回收

    学习cloudman中的k8s 152课,创建pod时,需要在k8s-host2 中挂着到在k8s-master 中/nfs中创建的挂载目录,结果提示没有/nfs/pv1 root@k8s-maste ...

  2. Action<T>和Func<T>委托事例

    Action<T>和Func<T>委托事例 using System; //除了为每个参数和返回类型定义一个新委托类型之外,还可以使用Action<T>和Func& ...

  3. miniconda3 安装tensorflow

    使用miniconda3进行安装 conda create -n tensorflow conda install tensorflow 输入下面的代码进行测试 import tensorflow a ...

  4. Oracle创建视图权限不足

    Oracle 在创建用户的时候如果直接给用户DBA权限,那么在B用户中可以直接查询A用户的表,但是在创建视图时就会报无权限,在这种情况下需要再在被访问的A用户里面去给予要访问该表的B用户授权. --创 ...

  5. gitlab私有环境搭建

    1. 环境准备 安装所需的依赖包 yum install curl openssh-server openssh-clients postfix cronieGitLab使用postfix发送邮件 s ...

  6. Python TypeError: __init__() got multiple values for argument 'master'(转)

    转自:https://stackoverflow.com/questions/33153404/python-typeerror-init-got-multiple-values-for-argume ...

  7. sqlserver case when 的使用方法

    sql使用case when then 判断某字段是否为null没效果 CASE columnName WHEN null THEN 0 ELSE columnName END虽然columnName ...

  8. hdu1171 灵活的运用背包问题咯。。。 还有!!!! 合理的计算数组的范围!! wa了好多次!

    Problem Description Nowadays, we all know that Computer College is the biggest department in HDU. Bu ...

  9. IClientMessageInspector IDispatchMessageInspector

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  10. springboot接收date类型参数

    springboot接收日期类型参数,实现自动转换. 1. 当请求类型为json,date类型字段为 json 字段时,可以使用如下两种方法 1.1. 当前参数加两个注解(有些文章说接收只需要加 @D ...