神经网络(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. SCI-hub使用技巧(下载外文文献)

    下载外文文献方法指南: (1)首先查找需要下载文献的DOI (2)在Sci-Hub主页搜索框输入URL.DOI或者PMID. (3)点击open即可看见下载界面. 参考文献:https://mp.we ...

  2. Spring之22:DefaultListableBeanFactory

    1. DefaultListableBeanFactory的作用: 默认实现了ListableBeanFactory和BeanDefinitionRegistry接口,基于bean definitio ...

  3. django使用pyecharts(5)----django加入echarts_增量更新_定长

    五.Django 前后端分离_定时增量更新图表定长数据 1.安装 djangorestframework linux pip3 install djangorestframework windows ...

  4. 约会II

    #include <stdio.h> int main() { int a,b; while(scanf("%d %d",&a,&b)!=EOF& ...

  5. Android--DES加密

    Base64.java import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputS ...

  6. js 自定义加减乘除方法(防止js自身计算错误)

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  7. webpack css文件编译、自动添加前缀、剥离

    1.css文件编译 webpack默认只能编译js文件,引入css需要loader支持 // css文件写入js中 npm i style-loader -D // css文件loader npm i ...

  8. vscode之万里挑一

    前置 我们经常在工作区中打开很多项目文件夹,找起来比较麻烦. 步骤

  9. [Luogu5320][BJOI2019]堪破神机(DP+斯特林数)

    https://www.cnblogs.com/cjyyb/p/10747543.html 特征方程+斯特林反演化简式子,要注意在模998244353意义下5没有二次剩余,所以每个数都要用$a+b\s ...

  10. MyBatis Generator 自动生成的POJO对象的使用(一)

    MyBatis Generator 会自动生成以下几种类型的对象(除非你使用MyBatis3DynamicSql 的运行环境): Java Model Objects(总是生成) SQL Map Fi ...