神经网络(1)--Non-linear hypotheses,为什么我们要学习神经网络这种算法来处理non-linear hypotheses
神经网络(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的更多相关文章
- 神经网络的Python实现(一)了解神经网络
网络上深度学习相关博客教程质量参差不齐,很多细节很少有文章提到,所以本着夯实深度学习基础的想法写下此系列博文. 本文会从神经网络的概述.不同框架的公式推导和对应的基于numpy的Python代码实现等 ...
- MIT算法导论——第五讲.Linear Time Sort
本栏目(Algorithms)下MIT算法导论专题是个人对网易公开课MIT算法导论的学习心得与笔记.所有内容均来自MIT公开课Introduction to Algorithms中Charles E. ...
- 用Keras搭建神经网络 简单模版(三)—— CNN 卷积神经网络(手写数字图片识别)
# -*- coding: utf-8 -*- import numpy as np np.random.seed(1337) #for reproducibility再现性 from keras.d ...
- Tensorflow笔记——神经网络图像识别(四)搭建模块化的神经网络八股(正则化,指数衰减学习率,滑动平均等优化)
实战案例: 数据X[x0,x1]为正太分布随机点, 标注Y_,当x0*x0+x1*x1<2时,y_=1(红),否则y_=0(蓝) 建立三个.py文件 1. generateds.py生成数据 ...
- [DeeplearningAI笔记]卷积神经网络1.9-1.11池化层/卷积神经网络示例/优点
4.1卷积神经网络 觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.9池化层 优点 池化层可以缩减模型的大小,提高计算速度,同时提高所提取特征的鲁棒性. 池化层操作 池化操作与卷积操作类似 ...
- Andrew Ng - 深度学习工程师 - Part 1. 神经网络和深度学习(Week 4. 深层神经网络)
=================第2周 神经网络基础=============== ===4.1 深层神经网络=== Although for any given problem it migh ...
- 神经网络一(用tensorflow搭建简单的神经网络并可视化)
import tensorflow as tf import numpy as np import matplotlib.pyplot as plt #创建一个input数据,-1到1之间300个数, ...
- NLP教程(3) | 神经网络与反向传播
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...
- [Machine Learning & Algorithm] 神经网络基础
目前,深度学习(Deep Learning,简称DL)在算法领域可谓是大红大紫,现在不只是互联网.人工智能,生活中的各大领域都能反映出深度学习引领的巨大变革.要学习深度学习,那么首先要熟悉神经网络(N ...
随机推荐
- C#调试C++DLL库
C#调试C++DLL库 https://blog.csdn.net/gggg_ggg/article/details/51086089 对于托管代码调用非托管DLL文件,已经是非常普遍的事情,下面写一 ...
- ZooKeeper 相关问题
[为什么部署个数是奇数个?] zookeeper有这样一个特性:集群中只要有过半的机器是正常工作的,那么整个集群对外就是可用的.即 2n 个机器的集群,最多可以容忍 n-1 个机器不可用,这个容忍度与 ...
- [转帖]Hive基础(一)
Hive基础(一) 2018-12-19 15:35:03 人间怪物 阅读数 234 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接 ...
- 请求部署在 IIS7.5 上的 REST 服务的 Put/Post/Delete 操作发生 HTTP Error 405.0 - Method Not Allowed 错误之解决
背景 请求部署在 IIS7.5 上的 REST 服务的 Put/POST/DELETE 操作发生 HTTP Error 405.0 - Method Not Allowed 错误. Issue 解决 ...
- 稀疏数组(java实现)
1.稀疏数组 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组. 稀疏数组的处理方法是: 1.1记录数组一共有几行几列,有多少个不同的值 1.2把具有不同值的元素的行列 ...
- java多线程中篇(二) —— 线程的创建和Synchronized锁关键字
学习之前,先了解线程状态图 说明:线程共包括以下5种状态. 1. 新建状态(New) : 线程对象被创建后,就进入了新建状态.例如,Thread thread = new Thread ...
- 第二章 Python基础语法
2.1 环境的安装 解释器:py2 / py3 (环境变量) 开发工具:pycharm 2.2 编码 编码基础 ascii ,英文.符号,8位为一个东西,2**8 unicode ,万国码,可以表示所 ...
- hadoop mapper reducer
Local模式运行MR流程------------------------- 1.创建外部Job(mapreduce.Job),设置配置信息 2.通过jobsubmitter将job.xml + sp ...
- mouseover mouseleave
mouseover在当鼠标移入元素或其子元素的时候都会触发,是一个重复触发,冒泡的过程.见下面例子,一个父元素包含一个子元素,在其父元素内滑动鼠标,超出子元素的范围时,也会触发事件. 而mouseen ...
- docker registry-v2 搭建私有仓库
参考官方文档:https://docs.docker.com/registry/deploying/ 参考 :http://www.tuicool.com/articles/6jEJZj 本例子使用两 ...