栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

人工神经网络ANN学习笔记(一)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

人工神经网络ANN学习笔记(一)

定义:人工神经网络(Artificial Neural Network),它是人脑神经元网络的抽象,是一种运算模型,由大量的节点(或称神经元)相互联接构成。每个节点代表一种特定的输出函数,称为激活函数。每两个节点间的连接都代表一个对于通过该连接信号的加权值,称之为权重。网络的输出则依网络的连接方式,权重值和激励函数的不同而不同。而网络自身通常都是对自然界某种算法或者函数的逼近,也可能是对一种逻辑策略的表达。

 注:1.样本有多少个feature,输入层就有多少个节点。

2.根据组合的情况来设定权重,权重要进行初始化。

下面以手写体数字识别为例继续学习ANN

数据集简介:MNIST数据集,60000个样本用于学习,10000个样本用于测试,每一个样本都是28*28点阵图,共784个像素点,每个像素点的值从0-255。 每个样本的784个像素点的值就是feature,每个样本的数字就是label。

从输入到输出的过程叫做前向传播(forward propagation),输入层有784个节点,隐藏层根据需要自己设置,每个节点的输入值乘以对应的权重的和送入激活函数,依此类推。输出可以设置一个节点,输出0-9这十个类别;也可以设置十个节点,输出一种概率分布,比如0.8的概率为“0”,0.1的概率是“6”,0.05的概率是“8”……

 

 当输出值和目标值之间有差距时,就定义了一个损失函数(cost function),将损失返回回去,来寻找一个新的权重的组合,再算一遍输出,使其更接近目标值,这个过程就叫做反向传播(back propagation)。

如何初始化权重向量

1.生成半开区间上的均匀分布

##生成1000个从-1到0区间上的均匀分布
import numpy as np

mumber_of_samples = 1000
low = -1
high = 0
s = np.random(low, high, number_of_samples)

2.生成二项式分布

##100次试验,每次成功的概率为0.5
import numpy as np

s = np.random.binomial(100, 0.5, 1000)

3.numpy.random.normal不能指定区间值,引入scipy.stats.truncnorm

import numpy as np

def truncated_normal(mean=0, as=1, low=0, upp=10):
    return truncnorm(
                     (low - mean) / sd, (upp - mean) / ad, loc=mean, scale=sd)

no_of_input_nodes = 3
no_of_hidden_nodes = 4
rad = 1 / np.sqrt (no_of_input_nodes)

X = truncated_normal (mean=2, sd=1, low=-rad, upp=rad)
wih = X.rvs((no_of_hidden_nodes, no_of_input_nodes))

激活函数(activation function)

只能对输入值进行线性处理,引入激活函数就可以进行非线性处理了,这样神经网络就可以应用到众多的非线性模型中。下面是几种激活函数:

1.sigmoid 

可以将变量非线性映射到0,1之间,定义为:

它的导数可以用其自身来表示:

2.ReLU (Rectified Linear Unit)

3.Softmax

映射区间[0,1],主要用于离散化概率分布

损失函数(以Squared Error Loss为例)

为了优化输出,我们要使用损失函数。设每个节点目标输出为,ANN的实际输出为,则误差,下面是推导过程:

 如何评价预测模型

混淆矩阵(Confusion Matrix,cm)

准确率(Accuracy)       精确率(Precision)      召回率(Recall)

predicted
actualnegativepositive
negativeTNFP
positiveFNTP

精确率是对于预测结果而言的,简言之,预测为正的结果里有多少是对的。

召回率是对于原来的样本而言的,简言之,原来为正的样本有多少被预测对了。

准确率是对于全部样本而言的,表示所有的样本有多少被准确地预测了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/283816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号