Java教程

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

本文主要是介绍人工神经网络:当前最火热的深度学习基础,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

算法原理

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

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)

 

深度学习:

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

这篇关于人工神经网络:当前最火热的深度学习基础的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!