其他分享
首页 > 其他分享> > 人工神经网络:当前最火热的深度学习基础

人工神经网络:当前最火热的深度学习基础

作者:互联网

算法原理

一个最简单的神经系统,里面总共有两层神经元:一层输入单元和一层输出单元

Y=X1+2X1+3X1+4

 

 

                                                     处理线性关系

 

 

                                              处理非线性关系

 

预先设定一种网络结构和激活函数----》初始化模型权重--------》根据输入数据和权重来预测结果---------》模型要调节权重

 

关于激活函数

神经元的激活需要电信号累加到一定的水平

常见的激活函数:ReLU、tanh、Sigmoid

 

算法优点

可以像搭积木一样不断地扩展模型的边界,而对于内部具体的运行不需要加以太多的干涉

 

算法缺点

1.神经网络缺乏可解释性,它的内部纷繁复杂

2.神经网络非常耗资源

 

#神经网络
from sklearn import datasets #sklearn的数据集
from sklearn.neural_network import MLPClassifier 
import numpy as np #矩形运算库numpy

np.random.seed(0)
#设置随机种子,不设置的话默认是按系统时间作为参数,设置后可以保证我们每次产生的随机数是一样的

iris = datasets.load_iris() #获取鸢尾花数据集
iris_x = iris.data #数据部分
iris_y = iris.target #类别部分

#从150条数据中选取140条作为训练集,10条作为测试集。permutation接收一个数作为参数(这里为数据集长度150),
#产生一个0-149乱序一维数组
indices = np.random.permutation(len(iris_x))
iris_x_train = iris_x[indices[:-10]]  #训练集数据
iris_y_train = iris_y[indices[:-10]]  #训练集标签
iris_x_test = iris_x[indices[-10:]]   #测试集数据
iris_y_test = iris_y[indices[-10:]]   #测试集数据

#slover是权重优化的策略;activation表示选择的激活函数,这里没有设置,默认是relu;alpha是惩罚参数;hidden_layer_sizes是隐藏层大小,长度就是隐藏层的数量,
#每一个大小就是设置每层隐藏层的神经元数量;random_state是初始化所使用的随机项
#(5,2)表示有两层,第一层有5个神经元,第二层有2个
clf = MLPClassifier(solver='lbfgs',alpha=le-5, hidden_layer_sizes=(5,2),random_state=1) #调用该对象的训练方法,主要接收两个参数:训练数据集及其类别标签 clf.fit(iris_x_train,iris_y_train) #拟合 #调用该对象的测试方法,主要接收一个参数:测试数据集 iris_y_predict = clf.predict(iris_x_test) #调用该对象的打分方法,计算出准确率 score = clf.score(iris_x_test,iris_y_test,sample_weight=None) #输出测试结果 print('iris_y_predict=') print(iris_y_predict) #输出原始测试数据集的正确标签,以方便对比 print('iris_y_test=') print(iris_y_test) #输出准确率计算结果 print('Accuracy:',score)

 

深度学习:

图像处理方面、自然语言处理方面

标签:iris,10,random,火热,人工神经网络,print,深度,test,indices
来源: https://www.cnblogs.com/ning-cli/p/15986721.html