神经网络(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 ...
随机推荐
- ALT+J 多行编辑
很方便!!!
- 1.http 协议和 https 协议的原理
首先,我们得知道应用层是 OSI 七层网络模型的第七层,不同类型的网络应用有不同的通信规则,因此应用层协议是多种多样的,比如 DNS.FTP.Telnet.SMTP.HTTP. 等协议都是用于解决其各 ...
- 利用Python进行数据分析 第7章 数据清洗和准备(2)
7.3 字符串操作 pandas加强了Python的字符串和文本处理功能,使得能够对整组数据应用字符串表达式和正则表达式,且能够处理烦人的缺失数据. 7.3.1 字符串对象方法 对于许多字符串处理和脚 ...
- PAT(B) 1084 外观数列(Java)
题目链接:1084 外观数列 (20 point(s)) 题目描述 外观数列是指具有以下特点的整数序列: d, d1, d111, d113, d11231, d112213111, - 它从不等于 ...
- dotnet Core 图片验证码
9102年了,.NET Core 2.x已经稳定,但是还是有很多人搞不定.NET Core的图片验证码. 下面说重点 1.引用Nuget包:System.Drawing.Common 2.像NET F ...
- 【计数DP】种树
种树 题目描述 事实上,小X邀请两位奆老来的目的远不止是玩斗地主,主要是为了抓来苦力,替他的后花园种树……小X的后花园是环形的,他想在花园周围均匀地种上n棵树,但是奆老花园的土壤当然非同寻常,每个位置 ...
- Singer House CodeForces - 830D (组合计数,dp)
大意: 一个$k$层完全二叉树, 每个节点向它祖先连边, 就得到一个$k$房子, 求$k$房子的所有简单路径数. $DP$好题. 首先设$dp_{i,j}$表示$i$房子, 分出$j$条简单路径的方案 ...
- Codeforces Round #557 (Div. 1)
A.直接做. #include<vector> #include<cstdio> #include<cstring> #include<iostream> ...
- java redisUtils工具类很全
GitHub地址:https://github.com/whvcse/RedisUtil redisUtils工具类: package com.citydo.utils; import org.spr ...
- Vue+VSCode开发环境搭建
时间2019.9月 1. 安装 nodeJS; 安装VScode 安装好nodeJS之后,默认会安装好npm 测试 nodeJS 和npm是否可以执行 node -v npm -v 1.1 VScod ...