神经网络与深度学习

神经网络与深度学习神经网络的基本知识

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

学习资料:deeplearning.ai的《神经网络和深度学习》

一. 深层神经网络

1. 为什么需要深层神经网络

  • 对于深层神经网络,神经网络前几层的特征比较简单,之后几层可以抽取出更复杂的特征。
    比如:语音识别:前几层是声音的声波识别->声音的音位->声音里的字母->单词->短语->句子
    从最简单的特征的不断向上提升层次。
  • 是遵循电路原理:浅层次的网络相对于深层次的需要指数级的神经单元才能达到和深层次的同样效果。

当然神经网络不是越深越好,层次的深度和调参数一样,也是需要不断的尝试选择一个最适合的层次。

2. 神经网络中的参数及其维度

L代表层数,输入层为第0层(l=0),一个n层神经网络有n-1层隐藏层。

每一层神经网络都有输出,记作\(A^{[l]}\),输入层输入的特征记作\(x\),但是\(x\)同样也是0层的输出,所以\(x=A^{[0]}\)

假设每个样本有\(x\)个特征,训练集总共有m个样本。

\(A^{[l]}\)\(Z^{[l]}\)维度:(\(n^{[l]}\),m)

\(W^{[l]}\)维度:(\(n^{[l]}\),\(n^{[l-1]}\))

\(b^{[l]}\)维度:(\(n^{[l]}\),1)

无论是前向传播还是反向传播,所有的矩阵维数都是前后一致的!

截屏2020-01-15下午12.40.11

3. 参数的随机初始化

对于\(W^{[l]}\)可以用高斯分布随机初始化,\(b^{[l]}\)可以初始化为0。

4. 激活函数

神经网络中的每个结点包括线性运算和非线性运算,激活函数就是非线性部分。

  • sigmoid激活函数:除了输出层是一个二分类问题基本不会用它。

  • tanh激活函数:tanh是几乎适合所有场合。

  • ReLu激活函数:最常用的默认函数,如果不确定用哪个激活函数,就使用ReLu或者Leaky ReLu

神经网络与深度学习

二. 前向传播和反向传播

1. 前向传播

for l in range(1,L+1):

\[Z^{[l]}=W^{[l]}A^{[l-1]}+b^{[l]} \]

\[A^{[l]}=g^{[l]}(Z^{[l]}) \]

其中\(A^{[0]}=X;X={x_1,x_2,x_3}\)

2. 反向传播

截屏2020-01-15下午12.29.34

3. 传播过程

截屏2020-01-15下午12.30.27

三. 广播机制

1. 广播broadcast

两个多维度向量加减乘除时,只要两个向量columns或者ranks有一个相等,即行数相等或者列数相等则可以在相应的位置上进行运算。如果没有哪一个对应相等,则不可以运算。

(m*n)数组 与 (m*1)/(1*n)数组都可以进行+-*/。
运算时(m*1)/(1*n)自动扩充至(m*n)
同理:
(1*m) 与 k也可以运算

注意:如果列数等于行数不可以进行运算!唯一的特例:(1,n)与(n,1)之间可以运算,结果为(n,n)维向量

2. 乘法使用

元素乘法:np.multiply(a,b)
矩阵乘法:np.dot(a,b) 或 np.matmul(a,b) 或 a.dot(b)
唯独注意:*,在 np.array 中重载为元素乘法,在 np.matrix 中重载为矩阵乘法!

元素乘法可以用利用broadcast;而矩阵乘法必须要满足(m*n)(n*k)

3. 定义矩阵时的建议

shape: (n,) 与 (1,n) 区别:
例: (4,) [1,2,3,4] 一维数组 
    (1,4) [[1,2,3,4]] 二维数组

1.不要使用rank 1array!

如下:
不要使用:
a = np.arange(100)
a = np.random.randn(5)

用(1,n)(n,1)等来代替
a = np.arange(100).reshape(1,100)
a = np.random.randn(1,5)

2.经常使用np.reshape来使向量理想化

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167879.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • Rinetd工具的使用

    介绍起因:为了提高系统的安全性,一般情况下,线上的服务都是通过反向代理来接收连接请求的,那么线上的服务是不需要通外网的。但是如果要应用在不通外网的情况下访问第三方接口的去获取一些数据,那么就需要借助rinetd工具。rinetd工具可以做端口转发,也就是说我可以将获取数据的接口的url做重定向到跳板机上,再由跳板机去获取数据返回给应用程序编译安装:wgethttp://www.boute…

  • kong网关教程_网关怎么登陆

    kong网关教程_网关怎么登陆网关是微服务中不可或缺的一部分,它承载了所有请求流量入口,参数验证拦截,用户权限验证,但是除了JAVA的springcloud之外,公共网关屈指可数,其中最受关注的就是KONG了,笔者半年前就已经在使用kong的那时候使用的是0.11.2-bate版本(之前还被官方坑了一次),前不久终于等到了1.X的正式版发布了,笔者就在这里给大家分享一下kong网关的基本情况以及使用安装的方式。附上:喵…

  • insert into select * from 锁表

    insert into select * from 锁表mysql[192.168.11.187]processid[249]root@localhostindb[zjzc]holdtransactiontime197112069858,

  • 4个世界上最长域名的网站是_域名最长多少个字符

    4个世界上最长域名的网站是_域名最长多少个字符第一个http://www.llanfairpwllgwyngyllg…iliogogogoch.co.uk/这个域名属于一个旨在宣传英国圭内斯郡安格尔西的一个同名村庄,这个名字的意思是“位于急流附近白榛树山谷中的圣玛丽亚教堂和红山洞附近的圣泰西里奥教堂。”第二个http://www.111111111111111111111…11111111111111.com/这个域

  • android的surfaceflinger原理学习「建议收藏」

    android的surfaceflinger原理学习「建议收藏」概念SurfaceFlinger是一个系统服务,如:audioflinger,audiopolicyservice等等,系统的主要服务通过这个文章进行了解,Android的系统服务一览。这个系统服务主要实现了Surface的建立、控制、管理等功能。换种说法就是,在Android的实现中它是一个service,提供系统范围内的surfacecomposer功能,它能够将各种应用程序的2D、3…

  • Java并发——线程同步Volatile与Synchronized详解

    Java并发——线程同步Volatile与Synchronized详解Java面试——线程同步volatile与synchronized详解0.前言面试时很可能遇到这样一个问题:使用volatile修饰int型变量i,多个线程同时进行i++操作,这样可以实现线程安全吗?提到线程安全、线程同步,我们经常会想到两个关键字:volatile和synchronized,那么这两者有什么区别呢?1.volatile与synchronized介绍volatile是变量修

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号