Andrew Ng 机器学习笔记---by Orangestar

Week4_Neural Networks : Representation

1. Non-linear Hypotheses

当特征量非常多的时候,训练分类器is not a good idea

会产生非常多的特征量

而,神经网络则可以在特征量非常大的时候,works well

2. Neurons and the Brain

神经网络的最初目的是,模仿人脑

大脑的神奇之处

3.  Model Representation I(一些术语)

如何表示神经网络?

人脑中的神经网络

至于电脑上面的神经模型,我们通过非常简单的构造来模拟神经元的工作

一个模型例子

树突,轴突

一些术语:

Sigmoid(logistic) activation function:激励函数

\(\theta\)我们可能叫它叫做一个东西的权重,也叫参数

其中我们而外加的x_0,可以叫做偏执单元bias unit,

偏置单元一般都设为1,再通过需要进行调整

上面的只是一个十分简单的神经元模型

接下来看看更复杂的及其一些定义术语

从左到右,分别叫做:

输入层,隐藏层,输出层

输入层/输出层:顾名思义,输出或者输入参数

隐藏层:训练集中看不到的层

事实上,所有非输出层和输入层的,都叫隐藏层

那么,如何计算?

如下图 计算步骤

为什么是3*4?

因为,bias,\theta_0,和x_0没有写出来!

所以,总结

如果网络有\(s_j\) 个单元在 j层上,\(s_{j+1}\)在j+1上,

则\(\theta^{(j)}\) 的维数就是\(s_{j+1} * (s_j+1)\)

就是,\(\theta^{(j)}\)是射线,能设多少条线都不会计算吗!?

可以联想映射的内容

4. Model Representation II (展示一个向量化的实现方法)(前向传播)

在之前,计算可以表示为向量计算

Forward propagation: Vectorized implementation

前向传播!

向量化实现方法

由线性代数知识不难理解!

就是把多项式方程组用矩阵或者向量来表示

  • Other network architectures

    architectures指的是神经元的架构


    本节总结

    这是上节的计算神经元的方法

    这节我们用向量来计算

    定义了一个新的变量\(z^{(j)}_k\)

    其中,J代表第几层。k代表第几个节点node

    就是说:(举个小栗子)

然后,

所以,用向量来表示就是:

其中,x就是第一层(输入层)的向量表示。只不过换了一个符号。\(x = a^{(1)}\)

复写方程为:\(z^{(j)} = \Theta^{(j-1)}a^{(j-1)}\)

注释:

*我们可以将矩阵$\Theta^{(j-1)} $ 乘与a(j-1),来得到z(j)

[$\Theta{(j-1)} $]: 维数为×(n+1),其中s_j是激励节点的数量)

如图:

然后,可以得到a^(j)

计算完之后,可以加上偏置项

然后:

5. 神经元的具体例子1

为什么神经网络可以用来学习复杂的非线性假设?

在下面这个例子中,x_1和x_2只有0,1两个取值。

所以,

y只有2个取值

OR或,AND与,XOR异或,NOR或非,NAND与非,XNOR异或非 异或只当两个数相同取0,不同取1

所以,图像为:

  • 下面讲解其中的神经元(与)其他的大同小异

    线上的数值为权重

    右下角的表格叫做真值表

6.如何计算非线性的假设函数

先看一个NOT X_1的神经元

嘛...差不多就这种感觉,要建立逻辑电路差不多,就把加权附上去,按照你想让它怎么样

然后,我们可以将逻辑神经元进行组合:

如图,组合为一个x_1 XNOR x_2

这样就可以计算出一个很复杂的函数

可以用矩阵来表示:

然后可以conbine起来。做出一个更复杂的逻辑门:

其中:

7. Multiclass Classification 用神经网络做多类别分类

直观感受,只要设多几个分类器就行

多分类的时候,一般y值为如图所示,而不是简单的数值,因为这样更容易表示!

week_4的更多相关文章

  1. 【Duke-Image】Week_4 Image restoration

    Chapter 5 Image Restoration and Reconstruction 图像复原与重建 5.1 A Model of the Image Defradation/Restorat ...

  2. 使用cJSON库解析JSON

    cJSON库的下载 cJSON是一个基于C的JSON解析库,这个库非常简单,只有cJSON.c和cJSON.h两个文件,支持JSON的解析和封装,需要调用时,只需要#include "cJS ...

  3. Qt平台下使用QJson解析和构建JSON字符串

    前言 上一篇介绍了C语言写的JSON解析库cJSON的使用:使用cJSON库解析和构建JSON字符串 本篇文章介绍,Qt开发环境下QJson库的使用示例,JSON解析配合API接口,就可以实现一些有趣 ...

  4. 使用cJSON库解析和构建JSON字符串

    使用cJSON库解析和构建JSON字符串 前言 其实之前的两篇博文已经介绍了json格式和如何使用cJSON库来解析JSON: 使用cJSON库解析JSON JSON简介 当时在MCU平台上使用时,会 ...

  5. HttpClient设置忽略SSL,实现HTTPS访问, 解决Certificates does not conform to algorithm constraints

    话不多说,直接上代码. 测试API:   https://api.k780.com/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f7 ...

随机推荐

  1. js基础知识--BOM

    之前说过,在js的 运行环境为浏览器时,js就主要有三部分组成: ECMAScript核心语法.BOM.DOM.今天就和大家详细说一下BOM的一些基础知识. BOM BOM通常被称为浏览器对象模型,主 ...

  2. 微信小程序开发优化

    一.开发优化一 1.使用Vant Weapp 1.1 什么是Vant Weapp Vant Weapp官网链接 Vant Weapp是有赞前端团队开源的一套小程序UI组件库,助力开发者快速搭建小程序应 ...

  3. 在Linux/redhat中安装amazon-ssm-agent及注意事项

    操作系统:Red Hat Enterprise Linux Server release 7.9 (Maipo) 首先说明一下SSM是什么.引用官网的说明: AWS Systems Manager A ...

  4. 在Tomcat中启用虚拟线程特性

    前提 趁着国庆前后阅读了虚拟线程相关的源码,写了一篇<虚拟线程 - VirtualThread源码透视>,里面介绍了虚拟线程的实现原理和使用示例.需要准备做一下前期准备: 安装OpenJD ...

  5. 洛谷P1438 无聊的数列 (线段树+差分)

    变了个花样,在l~r区间加上一个等差数列,等差数列的显著特点就是公差d,我们容易想到用线段树维护差分数组,在l位置加上k,在l+1~r位置加上d,最后在r+1位置减去k+(l-r)*d,这样就是在差分 ...

  6. java常用注解校验参数

    validation中内置的constraints 注解 描述 @AssertFalse 所注解的元素必须是Boolean类型,且值为false @AssertTrue 所注解的元素必须是Boolea ...

  7. 【YOLOv5】LabVIEW+YOLOv5快速实现实时物体识别(Object Detection)含源码

    前言 前面我们给大家介绍了基于LabVIEW+YOLOv3/YOLOv4的物体识别(对象检测),今天接着上次的内容再来看看YOLOv5.本次主要是和大家分享使用LabVIEW快速实现yolov5的物体 ...

  8. 17.ViewSet和Router

    REST框架为我们提高了一个更加抽象的ViewSet视图集,ViewSet提供一套自动的urlconf路由 ViewSet与View类几乎相同,不同之处在于它们提供诸如read或update之类的操作 ...

  9. 18.-cookies和session

    一.会话定义 从打开浏览器访问一个网站,到关闭浏览器结束此次访问,称之为一次绘画 HTTP协议是无状态的,导致绘画状态难以保持 Cookies和session就是为了保持会话状态而诞生的两个存储技术 ...

  10. 【MySQL】02_子查询与多表查询

    子查询 指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入. SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者 ...