python机器学习---监督学习---神经网络(用于分类和回归)

目录

1、神经网络算法的原理

2、神经网络算法的参数说明

3、神经网络算法的优缺点

4、使用神经网络算法进行手写识别案例


1、神经网络算法的原理

        在本次人工智能大潮中,深度学习(多层神经网络算法)占据了统治地位,不管是在图像识别、语音识别、自然语音处理、无人驾驶等领域,都有非常广泛的应用。本章主要介绍“多层感知器”MLP算法。

        在介绍神经网络的原理之前,我们先回忆一下线性模型:

python机器学习---监督学习---神经网络(用于分类和回归)_第1张图片

而神经网络模型从x到y会有很多隐藏层,预测模型变为

权重系数v和w都是通过对数据的学习所得出的。

python机器学习---监督学习---神经网络(用于分类和回归)_第2张图片

 

2、神经网络算法的参数说明

class sklearn.neural_network.MLPClassifier(hidden_layer_sizes=(100, ), activation=’relu’, solver=’adam’, alpha=0.0001, 
batch_size=’auto’, learning_rate=’constant’, learning_rate_init=0.001, power_t=0.5, max_iter=200, shuffle=True,
 random_state=None, tol=0.0001, verbose=False, warm_start=False, momentum=0.9, nesterovs_momentum=True, 
 early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999, epsilon=1e-08, n_iter_no_change=10)

  • 官方文档:https://scikit-learn.org/dev/modules/generated/sklearn.neural_network.MLPClassifier.html#sklearn.neural_network.MLPClassifier
  • 参数说明:

hidden_layer_sizes:tuple,第i个元素表示第i个隐藏层的神经元个数。如hidden_layer_sizes=(60, 40, 20),表示有三层隐藏层,第一层隐藏层有60个神经元,第二层有40个神经元,第三层有40个神经元。
activation:隐藏层激活函数,identity、logistic、tanh、relu。
solver:权重优化算法,lbfgs、sgd、adam。
alpha:正则化项参数。
batch_size:随机优化的minibatches的大小。
learning_rate:学习率,constant、invscaling、adaptive。
learning_rate_init:初始学习率。只有当solver为sgd或adam时才使用。
power_t:逆扩展学习率的指数,只有当solver为sgd时才使用。
max_iter:较大迭代次数。
shuffle:是否在每次迭代时对样本进行清洗,当solver为sgd或adam时使用。
random_state:随机数种子。
tol:优化算法停止的条件。当迭代前后的函数差值小于等于tol时就停止。
verbose:是否将过程打印出。
warm_start:是否使用之前的解决方法作为初始拟合。
momentum:梯度下降的动量,介于0到1之间,solver为sgd时使用。
nesterovs_momentum:是否使用Nesterov动量。
early_stopping:判断当验证效果不再改善时是否终止训练。
validation_fraction:用作早起停止验证的预留训练集的比例,0到1之间。
beta_1:估计一阶矩向量的指数衰减速率,[0,1)之间。
beta_2:估计二阶矩向量的指数衰减速率,[0,1)之间。
epsilon:数值稳定值,solver为adam时使用。

  • 返回值属性说明

classes_:每个输出的类标签,大小为(n_classes,)。
loss_:损失函数计算出的当前损失值。
coefs_:列表中的第i个元素表示i层的权重矩阵。
intercepts_:列表中第i个元素表示i+1层的偏差向量。
n_iter_:迭代次数。
n_layers_:层数。
n_outputs_:输出的个数。
out_activation_:输出激活函数的名称。

  • 返回值方法说明

fit(X,y):拟合。
get_params():获取参数。
predict(X):进行预测。
predict_log_proba(X):对数概率估计。
predict_proba(X):概率估计。
score(X, y):返回给定测试数据和标签的平均准确度。
set_params():设置参数。

 

3、神经网络算法的优缺点

python机器学习---监督学习---神经网络(用于分类和回归)_第3张图片

4、使用神经网络算法进行手写识别案例

待更新......

 

 

 

 

 

你可能感兴趣的:(python机器学习)